We’re using JOGL 1.1.1 on Fedora 7, and have an app that uses a pbuffer. We’ve discovered that if we have a multiple screen setup (i.e. not Twinview, but two screens), and direct the output of this app to some screen different from what’s in the DISPLAY env var by specifying the screen in the GraphicsConfiguration at the AWT level when the frame is created, the pbuffer creation ultimately fails at:
javax.media.opengl.GLException: pbuffer creation error: glXCreateNewContext() failed
at com.sun.opengl.impl.x11.X11PbufferGLContext.create(X11PbufferGLContext.java:146)
at com.sun.opengl.impl.x11.X11PbufferGLContext.makeCurrentImpl(X11PbufferGLContext.java:79)
at com.sun.opengl.impl.GLContextImpl.makeCurrent(GLContextImpl.java:134)
…
Poking around in the JOGL source it looks like X11GLDrawableFactory does XOpenDisplay(null), and eventually this display makes it down to X11PbufferGLDrawable’s createPbuffer method where GLX.DefaultScreen(display) is called. I’m guessing this results in the disagreement between the screen to which the frame was directed, and the screen the pbuffer gets created with.
Feature, or bug?