Unable to create temp OpenGL context for device context

classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Unable to create temp OpenGL context for device context

makoto1337
I am getting the following error with an NVidia Quadro FX 3500 on Windows 7 64 bit (using an AMD64 CPU).

javax.media.opengl.GLException: Unable to create temp OpenGL context for device context 0xffffffffad011890
at
jogamp.opengl.windows.wgl.WindowsWGLContext.createImpl(WindowsWGLContext.java:296)
at jogamp.opengl.GLContextImpl.makeCurrentLocking(GLContextImpl.java:406)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:352)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:348)
at
javax.media.opengl.awt.GLCanvas$DisplayOnEventDispatchThreadAction.run(GLCanvas.java:890)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:612)
at
org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:853)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:650)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:621)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:592)
at
jp.atr.dni.bmi.desktop.workspace.WorkspaceTopComponent.componentOpened(WorkspaceTopComponent.java:278)
at
org.openide.windows.WindowManager.componentOpenNotify(WindowManager.java:307)
at
org.netbeans.core.windows.WindowManagerImpl.notifyTopComponentOpened(WindowManagerImpl.java:986)
at
org.netbeans.core.windows.Central.addModeOpenedTopComponent(Central.java:774)
at
org.netbeans.core.windows.ModeImpl.addOpenedTopComponent(ModeImpl.java:314)
at
org.netbeans.core.windows.WindowManagerImpl.topComponentOpenAtTabPosition(WindowManagerImpl.java:1094)
at
org.netbeans.core.windows.WindowManagerImpl.topComponentOpen(WindowManagerImpl.java:1061)
at org.openide.windows.TopComponent.open(TopComponent.java:503)
at org.openide.windows.TopComponent.open(TopComponent.java:483)
at
org.openide.windows.OpenComponentAction.actionPerformed(OpenComponentAction.java:89)
at org.openide.awt.AlwaysEnabledAction$1.run(AlwaysEnabledAction.java:137)
at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:95)
at
org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116)
at
org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99)
at
org.openide.awt.AlwaysEnabledAction.actionPerformed(AlwaysEnabledAction.java:140)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
at
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at
org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148)
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)
Caused: javax.media.opengl.GLException
at
jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:98)
at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:197)
at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:164)
at
javax.media.opengl.awt.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:767)
at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:388)
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:74)
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:140)
at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:180)
[catch] at java.lang.Thread.run(Thread.java:662)



Our source is on GitHub (e.g., https://github.com/mtakemiya/BMIDesktop/blob/fcad73408b6285902f6a1701bbf045b227712544/timeline/src/jp/atr/dni/bmi/desktop/timeline/TimelineTopComponent.java). It is still under dev right now and not very pretty. Are there any known issues with the NVidia Quadro FX 3500?

I am using the jars and native libs from the latest signed release of jogl (jogl-2.0-b23-20110303-windows-amd64).

This same source works fine on my mac.
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

gouessej
Administrator
Hi!

Which version of JOGL 2 do you use? Which build?
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

makoto1337
jogl-2.0-b23-20110303-windows-amd64

I also tried jogl-2.0-b23-20110303-windows-i586.
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

Rami Santina
Administrator
Hi,

Looking at the code line 250:
Animator animator = new Animator(getGlCanvas());
animator.add(getGlCanvas());

u add the canvas twice one at cnstr and another using add, could cause
a problem. (at least will call display twice!)
plus run it with sun.awt.noerasebackground=true

also you need to call setVisible(true) at creation of the container.

you can also run it with jogl.debug.Animator to get debug messages to
see whats happening.

Cheers,

On Tue, Jun 21, 2011 at 10:34 AM, Makoto [via jogamp]
<[hidden email]> wrote:
> jogl-2.0-b23-20110303-windows-amd64
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://forum.jogamp.org/Unable-to-create-temp-OpenGL-context-for-device-context-tp3089571p3089624.html
> To start a new topic under jogamp, email
> [hidden email]
> To unsubscribe from jogamp, click here.
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

makoto1337
Rami,

Thanks for catching that. I made the changes and committed them to github: https://github.com/mtakemiya/BMIDesktop/blob/master/timeline/src/jp/atr/dni/bmi/desktop/timeline/TimelineTopComponent.java

However, this did not fix the original problem of "unable to create temp OpenGL context for device context".

I am using the netbeans platform for a netbean module project, so for the life of me I can't find a way to set vm args.
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

gouessej
Administrator
Try to do this very early:
System.setProperty("sun.awt.noerasebackground", "true");
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

makoto1337
I am trying to se the property with System.setProperty("sun.awt.noerasebackground", "true"); like you said, but I am not sure if it is doing anything.

I don't get the "unable to create temp OpenGL context for device context" error on open, but rather when the window is dragged out of the main window into its own window, the exception occurs. This works fine on the Mac, but not on windows, using different hardware configs. Any ideas on what might be the problem?
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

Makoto
Even running with sun.awt.noerasebackground and sun.java2d.noddraw set to true, I get the following errors. I am wondering, is the java.lang.UnsatisfiedLinkError: Native Library related to the unable to create temp openGL context?

Just to review, I only get the GLException when docking the window containing the glcanvas or pulling the window out of the main UI in my netbeans platform project. This works fine on my Mac, but it gives this error on two different windows machines running different versions of windows (vista and 7) and different hardware.


javax.media.opengl.GLException: Unable to create temp OpenGL context for device context 0xffffffffa30120c6
        at jogamp.opengl.windows.wgl.WindowsWGLContext.createImpl(WindowsWGLContext.java:296)
        at jogamp.opengl.GLContextImpl.makeCurrentLocking(GLContextImpl.java:406)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:352)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:348)
        at javax.media.opengl.awt.GLCanvas$DisplayOnEventDispatchThreadAction.run(GLCanvas.java:890)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
        at java.awt.EventQueue.access$000(EventQueue.java:84)
        at java.awt.EventQueue$1.run(EventQueue.java:602)
        at java.awt.EventQueue$1.run(EventQueue.java:600)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148)
        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)
Caused: javax.media.opengl.GLException
        at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:98)
        at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:197)
        at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:164)
        at javax.media.opengl.awt.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:767)
        at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:388)
        at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:74)
        at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:140)
        at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:180)
[catch] at java.lang.Thread.run(Thread.java:662)






WARNING [org.netbeans.core.modules]
java.lang.UnsatisfiedLinkError: Native Library C:\Users\decode\Documents\gitSources\BMIDesktop\build\cluster\modules\lib\gluegen-rt.dll already loaded in another classloader
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1772)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1716)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1028)
        at com.jogamp.gluegen.runtime.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:102)
        at com.jogamp.gluegen.runtime.NativeLibLoader.access$000(NativeLibLoader.java:51)
        at com.jogamp.gluegen.runtime.NativeLibLoader$1.run(NativeLibLoader.java:70)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.jogamp.gluegen.runtime.NativeLibLoader.loadGlueGenRT(NativeLibLoader.java:68)
        at com.jogamp.common.jvm.JVMUtil.<clinit>(JVMUtil.java:56)
        at javax.media.opengl.GLProfile.<clinit>(GLProfile.java:1141)
        at jp.atr.jogltest.JoglTestTopComponent.initGL(JoglTestTopComponent.java:87)
        at jp.atr.jogltest.JoglTestTopComponent.<init>(JoglTestTopComponent.java:72)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at org.netbeans.modules.settings.convertors.XMLPropertiesConvertor.defaultInstanceCreate(XMLPropertiesConvertor.java:227)
        at org.netbeans.modules.settings.convertors.XMLPropertiesConvertor.read(XMLPropertiesConvertor.java:98)
        at org.netbeans.modules.settings.InstanceProvider$InstanceCookieImpl.instanceCreate(InstanceProvider.java:310)
        at org.netbeans.core.windows.persistence.PersistenceManager.getTopComponentPersistentForID(PersistenceManager.java:545)
        at org.netbeans.core.windows.persistence.PersistenceManager.getTopComponentForID(PersistenceManager.java:655)
        at org.netbeans.core.windows.PersistenceHandler.getTopComponentForID(PersistenceHandler.java:460)
        at org.netbeans.core.windows.WindowManagerImpl.getTopComponentForID(WindowManagerImpl.java:827)
        at org.netbeans.core.windows.model.TopComponentSubModel.getTopComponent(TopComponentSubModel.java:363)
        at org.netbeans.core.windows.model.TopComponentSubModel.getTopComponents(TopComponentSubModel.java:89)
        at org.netbeans.core.windows.model.DefaultModeModel.getTopComponents(DefaultModeModel.java:270)
        at org.netbeans.core.windows.model.DefaultModel.getModeTopComponents(DefaultModel.java:851)
        at org.netbeans.core.windows.Central.getModeTopComponents(Central.java:1513)
        at org.netbeans.core.windows.ModeImpl.getTopComponents(ModeImpl.java:189)
        at org.netbeans.core.windows.model.DefaultModel.isModePermanent(DefaultModel.java:793)
        at org.netbeans.core.windows.Central.isModePermanent(Central.java:1492)
        at org.netbeans.core.windows.ModeImpl.isPermanent(ModeImpl.java:378)
        at org.netbeans.core.windows.PersistenceHandler.getConfigFromMode(PersistenceHandler.java:698)
        at org.netbeans.core.windows.PersistenceHandler.getConfig(PersistenceHandler.java:608)
        at org.netbeans.core.windows.PersistenceHandler.save(PersistenceHandler.java:308)
        at org.netbeans.core.windows.WindowSystemImpl.save(WindowSystemImpl.java:78)
        at org.netbeans.core.NbLifecycleManager$ExitActions.run(NbLifecycleManager.java:131)
        at org.netbeans.core.startup.ModuleSystem$2.run(ModuleSystem.java:311)
[catch] at org.netbeans.ModuleManager.shutDown(ModuleManager.java:1737)
        at org.netbeans.core.startup.ModuleSystem.shutDown(ModuleSystem.java:316)
        at org.netbeans.core.NbLifecycleManager.doExit(NbLifecycleManager.java:167)
        at org.netbeans.core.NbLifecycleManager.access$000(NbLifecycleManager.java:75)
        at org.netbeans.core.NbLifecycleManager$ExitActions.run(NbLifecycleManager.java:123)
        at org.openide.util.Mutex.doEvent(Mutex.java:1341)
        at org.openide.util.Mutex.readAccess(Mutex.java:348)
        at org.netbeans.core.NbLifecycleManager.exit(NbLifecycleManager.java:111)
        at org.netbeans.core.windows.view.ui.MainWindow$5.windowClosing(MainWindow.java:427)
        at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:332)
        at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:332)
        at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:332)
        at java.awt.Window.processWindowEvent(Window.java:1865)
        at javax.swing.JFrame.processWindowEvent(JFrame.java:274)
        at java.awt.Window.processEvent(Window.java:1823)
        at java.awt.Component.dispatchEventImpl(Component.java:4651)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4481)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
        at java.awt.EventQueue.access$000(EventQueue.java:84)
        at java.awt.EventQueue$1.run(EventQueue.java:602)
        at java.awt.EventQueue$1.run(EventQueue.java:600)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$2.run(EventQueue.java:616)
        at java.awt.EventQueue$2.run(EventQueue.java:614)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148)
        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)
構築成功 (合計時間: 30 秒)
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

makoto1337
This was fixed on Windows by switching from GLCanvas to GLJPanel.

However, now on the Mac I get the following error with GLJPanel when dragging windows out of the main application in the netbeans platform project:


java.lang.ArrayIndexOutOfBoundsException
        at java.lang.System.arraycopy(Native Method)
        at javax.media.opengl.awt.GLJPanel$AbstractReadbackBackend.postGL(GLJPanel.java:978)
        at javax.media.opengl.awt.GLJPanel$Updater.display(GLJPanel.java:683)
        at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:191)
        at jogamp.opengl.GLPbufferImpl$DisplayAction.run(GLPbufferImpl.java:288)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:363)
        at jogamp.opengl.GLPbufferImpl.invokeGL(GLPbufferImpl.java:274)
        at jogamp.opengl.GLPbufferImpl.display(GLPbufferImpl.java:147)
        at javax.media.opengl.awt.GLJPanel$PbufferBackend.doPaintComponentImpl(GLJPanel.java:1227)
        at javax.media.opengl.awt.GLJPanel$AbstractReadbackBackend.doPaintComponent(GLJPanel.java:996)
        at javax.media.opengl.awt.GLJPanel.paintComponent(GLJPanel.java:384)
        at javax.swing.JComponent.paint(JComponent.java:1029)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at org.netbeans.swing.tabcontrol.TabbedContainer.paint(TabbedContainer.java:959)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:34)
        at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
        at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
        at java.awt.Container.paint(Container.java:1793)
        at java.awt.Window.paint(Window.java:3375)
        at sun.awt.RepaintArea.paintComponent(RepaintArea.java:276)
        at sun.awt.RepaintArea.paint(RepaintArea.java:241)
        at apple.awt.ComponentModel.handleEvent(ComponentModel.java:263)
        at apple.awt.CWindow.handleEvent(CWindow.java:525)
        at java.awt.Component.dispatchEventImpl(Component.java:4812)
        at java.awt.Container.dispatchEventImpl(Container.java:2143)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4566)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:680)
        at java.awt.EventQueue.access$000(EventQueue.java:86)
        at java.awt.EventQueue$1.run(EventQueue.java:639)
        at java.awt.EventQueue$1.run(EventQueue.java:637)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$2.run(EventQueue.java:653)
        at java.awt.EventQueue$2.run(EventQueue.java:651)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:650)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148)
[catch] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

jouvieje
I'm having similar exception that shows up while switching a GLCanvas to fullscreen  (GLCanvas moved to a new undecorated frame, then setFullScreenWindow on it). I'm using sun.java2d.noddraw=true too.

Nothing crash and after the switch the rendering is fine. I'm wondering if the exception is normal behavior or may be something that should be fixed somewhere (and possibly from my code ?).
BTW I'm using JOGL b544 and the exception is below:

Exception in thread "RenderLoop-0" javax.media.opengl.GLException: javax.media.opengl.GLException: Unable to create temp OpenGL context for device context 0x51011f83
        at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:98)
        at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:197)
        at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:164)
        at javax.media.opengl.awt.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:797)
        at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:400)
        at jouvieje.scene.target.jogl2.GLCanvas_jogl2.onDisplay(GLCanvas_jogl2.java:63)
        at jouvieje.opengl.RenderLoop$Loop.run(RenderLoop.java:61)
Caused by: javax.media.opengl.GLException: Unable to create temp OpenGL context for device context 0x51011f83
        at jogamp.opengl.windows.wgl.WindowsWGLContext.createImpl(WindowsWGLContext.java:296)
        at jogamp.opengl.GLContextImpl.makeCurrentLocking(GLContextImpl.java:458)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:392)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:370)
        at javax.media.opengl.awt.GLCanvas$DisplayOnEventDispatchThreadAction.run(GLCanvas.java:920)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$000(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
       
Jérôme
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

gouessej
Administrator
Please use NEWT if you want to make a window in full screen mode as this feature is broken in AWT on KDE 4 on GNU/Linux. If you want to get a correct behavior everywhere, using GLCanvas (and then AWT) is a really bad idea.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

jouvieje
This post was updated on .
I know that newt is better but I can't used it when I have multiple context running/rendering. When I'll have my code working with multiple context and newt I could get ride of the remaining GLCanvas, but in the meantime I still try to get the best support with GLCanvas.

BTW thanks for pointing me out the problem in kde :)
Jérôme
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

Sven Gothel
Administrator
On Thursday, November 10, 2011 11:30:35 PM jouvieje [via jogamp] wrote:
>
> I know that newt is better but I can't used it when I have multiple context
> running/rendering. When I'll have my code working with multiple context and
> newt I could get of the remaining GLCanvas,

sorry,  I guess I don't understand this statement.
however, NEWT imposes no restriction to multiple GLContext use or whatsoever.

if you think there is one .. please elaborate,
maybe adding a unit test or 'pseudo' code if in doubt.


> but in the meantime I still try
> to get the best support with GLCanvas.
>

sure, everybody chose their own .. all good.

ofc Julien is right, we have no control about AWT,
so we cannot help in situations where AWT is buggy.

~Sven
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

jouvieje
When I try to create a shared context in a NewtCanvasAWT I have a wglSharedLists failed exception (during makeCurrent of GLWindow.setSize) which breaks everything. Not sure where the problem come from, and not have time to look at that yet.

I can reproduce easily this exception modifying the RedSquare demo using context sharing.
Jérôme
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

Sven Gothel
Administrator
On Friday, November 11, 2011 09:38:29 AM jouvieje [via jogamp] wrote:
>
> When I try to create a shared context in a NewtCanvasAWT I have a
> wglSharedLists failed exception (during makeCurrent of GLWindow.setSize)
> which breaks everything. Not sure where the problem come from, and not have
> time to look at that yet.

We have 4 unit test for shared context and all work fine:

http://jogamp.org/git/?p=jogl.git;a=blob;f=src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextListAWT.java;hb=HEAD
http://jogamp.org/git/?p=jogl.git;a=blob;f=src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextListNEWT.java;hb=HEAD
http://jogamp.org/git/?p=jogl.git;a=blob;f=src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES1NEWT.java;hb=HEAD
http://jogamp.org/git/?p=jogl.git;a=blob;f=src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT.java;hb=HEAD

Maybe you can copy one of those and change it to reproduce the erroneous behavior,
so we can discuss it.

>
> I can reproduce easily this exception modifying the RedSquare demo using
> context sharing.

~Sven
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

jouvieje
I've modify the unit test to reproduce the exception:
TestSharedContextListNEWT.java
TestSharedContextListNEWT2.java

The wglShareLists happens > 75% of the time (so sometimes it works).
Using the same animator for all GLWindow never show the exception. As far as I know, running different context (all shared) in different thread is possible, but may be there are some constraint on their creation. Anyway, if something looks wrong on the changes let me know.
Jérôme
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

Sven Gothel
Administrator
On Friday, November 11, 2011 10:56:50 AM jouvieje [via jogamp] wrote:

>
> I've modify the unit test to reproduce the exception:
> http://jerome.jouvie.free.fr/downloads/TestSharedContextListNEWT.java
> TestSharedContextListNEWT.java
> http://jerome.jouvie.free.fr/downloads/TestSharedContextListNEWT2.java
> TestSharedContextListNEWT2.java
>
> The wglShareLists happens > 75% of the time (so sometimes it works).
> Using the same animator for all GLWindow never show the exception. As far as
> I know, running different context (all shared) in different thread is
> possible.

Not only possible, but one of the whole reasons for it.

> Anyway, if something looks wrong on the changes let me know.
>
>

This one ..

> I am getting the following error with an NVidia Quadro FX 3500 on Windows 7
> 64 bit (using an AMD64 CPU).

Can you complete the version information as requested / described in
our wiki/FAQ ? Thank you. If I have missed it, pls post URL.
Thank you.

I will check this one as well, sure - probably a driver bug.

~Sven
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

jouvieje
Here's the detailed information: TestSharedContextListNEWT2-information.txt

Let me know if I should fill a bug.
Jérôme
Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

Sven Gothel
Administrator
On Friday, November 11, 2011 12:57:11 PM jouvieje [via jogamp] wrote:
>
> Here's the detailed information:
> http://jerome.jouvie.free.fr/downloads/TestSharedContextListNEWT2-information.txt
> TestSharedContextListNEWT2-information.txt
>
Thx.

> Let me know if I should fill a bug.
That would be great and much helpfull so we can track it there (better than email).

~Sven

Reply | Threaded
Open this post in threaded view
|

Re: Unable to create temp OpenGL context for device context

jouvieje
12