Sharing VBOs in multiple windows

I’ve used the trick of creating a Pbuffer and then passing the Pbuffer’s GLContent to the constructor of every GLCanvas I create to share textures and shader objects. I’d like to share VBOs this way too, but I don’t seem to be able to. At the moment, I’ve created a Pbuffer and added a GLEventListener to it that creates and adds the data to my VBOs in it’s display() method. My GLCanvases are created with this Pbuffer’s GLContext passed in their constructor. However, when I’m rendering a GLEventListener attached to my GLCanvas, all points in the VBO are treated as if they are (0, 0, 0).

Is there a way to share VBOs across several windows?

Not sure. Might be a driver-level issue. What graphics card are you using? Have you tried the simple case of two GLCanvases (no intervening pbuffer)? Have you tried hacking up a small example in C/C++ to see whether it’s a JOGL-specific issue?