Login  Register

Unable to set pixel format 4 for device context

Posted by RobC on Apr 22, 2011; 8:29pm
URL: https://forum.jogamp.org/Unable-to-set-pixel-format-4-for-device-context-tp2852819.html


Hello all,

I'm having an issue with OpenGL/JOGL in a stand-alone application that I am currently building. In the application, the user selects items in a 2D view and then have the ability to look at the items in 3D using OpenGL/JOGL. The user has the ability to switch back and forth between the 2D view and the 3D view. I am getting very inconsistent errors when a user enters 3D, returns to 2D, and then goes back into 3D again. Sometimes the app will work, sometimes it will crash. I am developing on a Dell Optiplex 740 and have not been able to recreate the error on this machine. I am testing the app on a Dell Optiplex 260 and getting errors. The app worked with previous versions of JOGL but started erroring when the version was switched to a March '11 build. Since, I've updated to the 04/22/11 build. Any help would be greatly appreciated.

Info about testing PC:
Dell Optiplex 260
Intel 82845G Graphics Controller (Driver: 6.14.10.4342)
Windows XP Professional Service Pack 2
JOGL source from 04/22/11

I have tried to use the JOGL jars and I have also tried using the source code itself. The following is the stack trace I'm getting with the error:

Exception in thread "AWT-EventQueue-0" javax.media.opengl.GLException: Unable to set pixel format 4 for device context 0x4b0106c8: error code 0
        at jogamp.opengl.windows.wgl.WindowsWGLGraphicsConfigurationFactory.updateGraphicsConfiguration(WindowsWGLGraphicsConfigurationFactory.java:203)
        at jogamp.opengl.windows.wgl.WindowsWGLGraphicsConfiguration.updateGraphicsConfiguration(WindowsWGLGraphicsConfiguration.java:136)
        at jogamp.opengl.windows.wgl.WindowsWGLDrawable.setRealizedImpl(WindowsWGLDrawable.java:71)
        at jogamp.opengl.GLDrawableImpl.setRealized(GLDrawableImpl.java:155)
        at javax.media.opengl.awt.GLCanvas.validateGLDrawable(GLCanvas.java:559)
        at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:382)
        at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:487)
        at com.Landscape.Display.D3D.display.Panel3D.paint(Panel3D.java:28)
        at com.Landscape.Screen.ObjectPanel.paintWidget(ObjectPanel.java:57)
        at com.Landscape.Screen.Widget.paint(Widget.java:690)
        at com.Landscape.Screen.Widget.paint(Widget.java:721)
        at com.Landscape.Screen.MainFrame.paint(MainFrame.java:81)
        at com.Landscape.Screen.MainFrame.update(MainFrame.java:104)
        at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239)
        at sun.awt.RepaintArea.paint(RepaintArea.java:216)
        at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310)
        at sun.awt.windows.WWindowPeer.handleEvent(WWindowPeer.java:695)
        at java.awt.Component.dispatchEventImpl(Component.java:4706)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" javax.media.opengl.GLException: Unable to create temp OpenGL context for device context 0x4b0106c8
        at jogamp.opengl.windows.wgl.WindowsWGLContext.createImpl(WindowsWGLContext.java:296)
        at jogamp.opengl.GLContextImpl.makeCurrentLocking(GLContextImpl.java:414)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:353)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:348)
        at javax.media.opengl.awt.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:772)
        at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:388)
        at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:487)
        at com.Landscape.Display.D3D.display.Panel3D.paint(Panel3D.java:28)
        at com.Landscape.Screen.ObjectPanel.paintWidget(ObjectPanel.java:57)
        at com.Landscape.Screen.Widget.paint(Widget.java:690)
        at com.Landscape.Screen.Widget.paint(Widget.java:721)
        at com.Landscape.Screen.MainFrame.paint(MainFrame.java:81)
        at com.Landscape.Screen.MainFrame.update(MainFrame.java:104)
        at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239)
        at sun.awt.RepaintArea.paint(RepaintArea.java:216)
        at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310)
        at sun.awt.windows.WWindowPeer.handleEvent(WWindowPeer.java:695)
        at java.awt.Component.dispatchEventImpl(Component.java:4706)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

-------------------------------------------------------------------------

I also added some prints to the source code and gathered the following information:

---------------------------------
The first few times through when the app was working:

WindowsWGLGraphicsConfigurationFactory.java - updateGraphicsConfiguration
chooser null
factory jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@14c352e
ns GDISurface[config WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type Windows, connection decon, unitID 0, handle 0x0], idx 0], pfdID 0, ARB-Choosen false,
        requested GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]],
        chosen    GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]]], displayHandle 0x0, windowHandle 0x3702e4, surfaceHandle 0xffffffffbd010dbd, size 64x64]
pfdIDs null
!config.isExternal() true
!config.isDetermined() true
config WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type Windows, connection decon, unitID 0, handle 0x0], idx 0], pfdID 0, ARB-Choosen false,
        requested GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]],
        chosen    GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]]]

WindowsWGLGraphicsConfigurationFactory.java - updateGraphicsConfiguration
chooser null
factory jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@14c352e
ns JAWT-Window[windowHandle 0x160568, surfaceHandle 0x2d0106e2, bounds [ 10 / 91  650 x 524 ], pos 10/91, size 650x524, visible true, lockedExt false,
        config AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type AWT[subType null], connection \Display0, unitID 0, awtDevice Win32GraphicsDevice[screen=0], handle 0x0], idx 0],
        chosen    GLCaps[4 arb: on-scr, rgba 5/6/5/0, opaque, accum-rgba 16/16/16/16, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]],
        requested GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]],
        sun.awt.Win32GraphicsConfig@12bbe6b[dev=Win32GraphicsDevice[screen=0],pixfmt=4],
        encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type Windows, connection decon, unitID 0, handle 0x0], idx 0], pfdID 4, ARB-Choosen true,
        requested GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]],
        chosen    GLCaps[4 arb: on-scr, rgba 5/6/5/0, opaque, accum-rgba 16/16/16/16, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]]]],
        awtComponent AWT-GLCanvas[Realized true,
        jogamp.opengl.windows.wgl.WindowsOnscreenWGLDrawable,
        Realized true,
        Factory   jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@14c352e,
        handle    0x2d0106e2,
        Drawable size 650x524,
        AWT pos 10/91, size 650x524,
        visible true,
        AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type AWT[subType null], connection \Display0, unitID 0, awtDevice Win32GraphicsDevice[screen=0], handle 0x0], idx 0],
        chosen    GLCaps[4 arb: on-scr, rgba 5/6/5/0, opaque, accum-rgba 16/16/16/16, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]],
        requested GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]],
        sun.awt.Win32GraphicsConfig@12bbe6b[dev=Win32GraphicsDevice[screen=0],pixfmt=4],
        encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type Windows, connection decon, unitID 0, handle 0x0], idx 0], pfdID 4, ARB-Choosen true,
        requested GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]],
        chosen    GLCaps[4 arb: on-scr, rgba 5/6/5/0, opaque, accum-rgba 16/16/16/16, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]]]]]]
pfdIDs null
!config.isExternal() true
!config.isDetermined() false
config WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type Windows, connection decon, unitID 0, handle 0x0], idx 0], pfdID 4, ARB-Choosen true,
        requested GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]],
        chosen    GLCaps[4 arb: on-scr, rgba 5/6/5/0, opaque, accum-rgba 16/16/16/16, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2]]]
hdc 755042018
config.getPixelFormatID() 4
config.getPixelFormat().getClass() class jogamp.nativewindow.windows.PIXELFORMATDESCRIPTOR32
config.getPixelFormat().getBReserved() 0
config.getPixelFormat().getCAccumAlphaBits() 16
config.getPixelFormat().getCAccumBits() 64
config.getPixelFormat().getCAccumBlueBits() 16
config.getPixelFormat().getCAccumGreenBits() 16
config.getPixelFormat().getCAccumRedBits() 16
config.getPixelFormat().getCAlphaBits() 0
config.getPixelFormat().getCAlphaShift() 0
config.getPixelFormat().getCAuxBuffers() 0
config.getPixelFormat().getCBlueBits() 5
config.getPixelFormat().getCColorBits() 16
config.getPixelFormat().getCDepthBits() 16
config.getPixelFormat().getCGreenBits() 6
config.getPixelFormat().getCGreenShift() 5
config.getPixelFormat().getCRedBits() 5
config.getPixelFormat().getCRedShift() 11
config.getPixelFormat().getCStencilBits() 0
config.getPixelFormat().getDwDamageMask() 0
config.getPixelFormat().getDwFlags() 37
config.getPixelFormat().getDwLayerMask() 0
config.getPixelFormat().getDwVisibleMask() 0
config.getPixelFormat().getILayerType() 0
config.getPixelFormat().getIPixelType() 0
config.getPixelFormat().getNSize() 40
config.getPixelFormat().getNVersion() 1
!GDI.SetPixelFormat(hdc, config.getPixelFormatID(), config.getPixelFormat()) false

------------------------------
The last time in the following line was "true" and the error occurred:


!GDI.SetPixelFormat(hdc, config.getPixelFormatID(), config.getPixelFormat()) true
Exception in thread "AWT-EventQueue-0" javax.media.opengl.GLException: Unable to create temp OpenGL context for device context 0x350106dd
        at jogamp.opengl.windows.wgl.WindowsWGLContext.createImpl(WindowsWGLContext.java:296)
        at jogamp.opengl.GLContextImpl.makeCurrentLocking(GLContextImpl.java:414)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:353)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:348)
        at javax.media.opengl.awt.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:772)
        at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:388)
        at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:487)
        at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
        at sun.awt.RepaintArea.paint(RepaintArea.java:224)
        at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310)
        at java.awt.Component.dispatchEventImpl(Component.java:4706)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
2011-04-22 13:31:17,640 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:17,687 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:17,703 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:17,734 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:17,765 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:17,796 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:17,843 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:17,875 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:17,906 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:17,953 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:17,984 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:18,015 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:18,046 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:18,093 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:18,125 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:18,156 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:18,203 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:18,234 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:18,296 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:18,328 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:18,359 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:19,312 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:19,343 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:19,375 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:19,656 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:19,687 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:19,718 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:19,750 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:19,796 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:19,828 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:20,000 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:20,031 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:20,078 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:20,312 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:20,437 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:20,468 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:20,656 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:20,687 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:20,718 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
2011-04-22 13:31:21,609 21 ERROR [com.Landscape.Utils.Logging.Logger] Panel 3D Paint Failed
Exception in thread "AWT-EventQueue-0" javax.media.opengl.GLException: Unable to create temp OpenGL context for device context 0xffffffffbd010dbd
        at jogamp.opengl.windows.wgl.WindowsWGLContext.createImpl(WindowsWGLContext.java:296)
        at jogamp.opengl.GLContextImpl.makeCurrentLocking(GLContextImpl.java:414)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:353)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:348)
        at javax.media.opengl.awt.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:772)
        at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:388)
        at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:487)
        at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
        at sun.awt.RepaintArea.paint(RepaintArea.java:224)
        at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310)
        at java.awt.Component.dispatchEventImpl(Component.java:4706)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)