Question 1:
Is it legal to call canvas.display() (where canvas is a GLDrawable) from any thread and at any time if all my GL calls are done inside the display(GLDrawable) callback? In other words if JOGL is in the middle of repainting for some reason outside my control, like handling an OS requested repaint, does it properly block the request to display until it can?
Question 2:
Every time I move a window over my frame which contains the GLDrawable I get the following:
net.java.games.jogl.GLException: Error making context current
at net.java.games.jogl.impl.windows.WindowsGLContext.makeCurrent(Windows
GLContext.java:125)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent
(WindowsOnscreenGLContext.java:110)
at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:162)
at net.java.games.jogl.GLCanvas.displayImpl(GLCanvas.java:196)
at net.java.games.jogl.GLCanvas.display(GLCanvas.java:91)
at net.java.games.jogl.GLCanvas.paint(GLCanvas.java:102)
at sun.awt.RepaintArea.paint(RepaintArea.java:177)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260)
at java.awt.Component.dispatchEventImpl(Component.java:3678)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
There seems to be nothing I can do to stop it.
Question 3:
If I draw a frame and then the window needs to be redrawn due to a OS level repaint why does the window go white in the occluded areas and never refreshed?
This is true even if I am sitting in a loop in my main thread doing a canvas.display() over and over.