Login  Register

GLJPanel & Java2D

Posted by Xfel on Dec 01, 2010; 7:21pm
URL: https://forum.jogamp.org/GLJPanel-Java2D-tp2001439.html

Hello,

I'm using jogl-2.0-b3-20101124-windows-amd64 on Windows 7. I wrote a Swing application, so it was logical to use GLJPanel.

When I use -Dsun.java2d.noddraw=true -Dsun.java2d.opengl=true i first get this exception:

exception in QueueFlusher:
javax.media.opengl.GLException: Error: attempted to make an external GLDrawable without a drawable current
        at com.jogamp.opengl.impl.windows.wgl.WindowsExternalWGLContext.create(WindowsExternalWGLContext.java:78)
        at com.jogamp.opengl.impl.windows.wgl.WindowsWGLDrawableFactory.createExternalGLContextImpl(WindowsWGLDrawableFactory.java:289)
        at com.jogamp.opengl.impl.GLDrawableFactoryImpl.createExternalGLContext(GLDrawableFactoryImpl.java:226)
        at com.jogamp.opengl.impl.awt.Java2D$3.run(Java2D.java:561)
        at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java:202)

additionally, at a specific width, there is a diplay error: the pixel colum is just repeated.

if I now resize, the error still begins at the same place. when i make the windows smaller, i suddenly get this one:
exception in QueueFlusher:
javax.media.opengl.GLException: GLEventListener org.xfel.eep.ui.splines.SplineRenderer@5ec24193 already initialized: AWT-GLJPanel[ com.jogamp.opengl.impl.GLPbufferImpl]
        at com.jogamp.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:168)
        at javax.media.opengl.awt.GLJPanel$Updater.init(GLJPanel.java:600)
        at com.jogamp.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:153)
        at com.jogamp.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:167)
        at com.jogamp.opengl.impl.GLPbufferImpl$InitAction.run(GLPbufferImpl.java:304)
        at com.jogamp.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:348)
        at com.jogamp.opengl.impl.GLPbufferImpl$DisplayOnEventDispatchThreadAction.run(GLPbufferImpl.java:328)
        at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java:202)
after this, my view is only black-white.

if i leave the -Dsun.java2d.opengl=true out, the display error is still existing, and on resize i get this exception:

Exception in thread "AWT-EventQueue-0" javax.media.opengl.GLException: GLEventListener org.xfel.eep.ui.splines.SplineRenderer@5289e2f1 already initialized: AWT-GLJPanel[ com.jogamp.opengl.impl.GLPbufferImpl]
        at com.jogamp.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:168)
        at javax.media.opengl.awt.GLJPanel$Updater.init(GLJPanel.java:600)
        at com.jogamp.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:153)
        at com.jogamp.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:167)
        at com.jogamp.opengl.impl.GLPbufferImpl$InitAction.run(GLPbufferImpl.java:304)
        at com.jogamp.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:348)
        at com.jogamp.opengl.impl.GLPbufferImpl.maybeDoSingleThreadedWorkaround(GLPbufferImpl.java:297)
        at com.jogamp.opengl.impl.GLPbufferImpl.display(GLPbufferImpl.java:121)
        at javax.media.opengl.awt.GLJPanel$PbufferBackend.doPaintComponentImpl(GLJPanel.java:1173)
        at javax.media.opengl.awt.GLJPanel$AbstractReadbackBackend.doPaintComponent(GLJPanel.java:944)
        at javax.media.opengl.awt.GLJPanel.paintComponent(GLJPanel.java:324)
        at javax.swing.JComponent.paint(JComponent.java:1017)
        at javax.swing.JComponent.paintChildren(JComponent.java:852)
        at javax.swing.JComponent.paint(JComponent.java:1026)
        at javax.swing.JComponent.paintChildren(JComponent.java:852)
        at javax.swing.JComponent.paint(JComponent.java:1026)
        at javax.swing.JComponent.paintChildren(JComponent.java:852)
        at javax.swing.JComponent.paint(JComponent.java:1026)
        at javax.swing.JComponent.paintChildren(JComponent.java:852)
        at javax.swing.JComponent.paint(JComponent.java:1026)
        at javax.swing.JComponent.paintChildren(JComponent.java:852)
        at javax.swing.JComponent.paint(JComponent.java:1026)
        at javax.swing.JComponent.paintChildren(JComponent.java:852)
        at javax.swing.JComponent.paint(JComponent.java:1026)
        at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
        at javax.swing.JComponent.paintChildren(JComponent.java:852)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5119)
        at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1475)
        at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1406)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1220)
        at javax.swing.JComponent.paint(JComponent.java:1003)
        at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
        at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
        at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
        at java.awt.Container.paint(Container.java:1780)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        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)

using GLCanvas is having some troubles, but in general it works very well

What is the problem here?
could you please fix it?