What does the following error mean?
---
Exception in thread "AWT-EventQueue-0" net.java.games.jogl.GLException: Surface
already locked
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.lockSurface
(WindowsOnscreenGLContext.java:165)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent
(WindowsOnscreenGLContext.java:126)
at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:246)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.invokeGL(Wi
ndowsOnscreenGLContext.java:79)
at net.java.games.jogl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas
.java:236)
at net.java.games.jogl.GLCanvas.display(GLCanvas.java:77)
at gov.nasa.jsc.renderer.Renderer.clearScreen(Renderer.java:924)
at gov.nasa.jsc.renderer.Renderer.init(Renderer.java:139)
at net.java.games.jogl.impl.GLDrawableHelper.init(GLDrawableHelper.java:
68)
at net.java.games.jogl.GLCanvas$InitAction.run(GLCanvas.java:242)
at net.java.games.jogl.impl.windows.WindowsGLContext.makeCurrent(Windows
GLContext.java:171)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent
(WindowsOnscreenGLContext.java:129)
at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:246)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.invokeGL(Wi
ndowsOnscreenGLContext.java:76)
at net.java.games.jogl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas
.java:236)
at net.java.games.jogl.GLCanvas.reshape(GLCanvas.java:133)
at java.awt.Component.setBounds(Unknown Source)
at java.awt.BorderLayout.layoutContainer(Unknown Source)
at java.awt.Container.layout(Unknown Source)
at java.awt.Container.doLayout(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
---
I get that error when I invoke the clearScreen() method as is below. I have the gldrawable as a class member so that I can access it and make calls from outside this class when I click buttons to clear my screen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| public class MyRenderer implements GLEventListener, MouseListener, MouseMotionListener, KeyListener { private GLDrawable gldrawable = null;
public void init(GLDrawable drawable) { GL gl = drawable.getGL(); GLU glu = drawable.getGLU(); this.gldrawable = drawable; ... }
public void display(GLDrawable drawable) { GL gl = drawable.getGL(); GLU glu = drawable.getGLU(); this.gldrawable = drawable; ... }
public void clearScreen() { gldrawable.getGL().glClearColor(0.0f, 0.0f, 0.0f, 1.0f); gldrawable.getGL().glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
this.gldrawable.display();
return; } } |