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)