aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Russel <[email protected]>2005-08-18 05:44:58 +0000
committerKenneth Russel <[email protected]>2005-08-18 05:44:58 +0000
commit967720b06e366cea635090ad0395758f91957d1b (patch)
treee4f3e7f874ae43e58444ecc032f5ac4ddaee62ae
parent25e37b6d9e27a5d3dc8caed49087f1a1e4904c4e (diff)
Fixed bug in X11OnscreenGLDrawable.swapBuffers() when surface was not
locked git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JSR-231@349 232f8b59-042b-4e1e-8c03-345bb8c30851
-rw-r--r--src/net/java/games/jogl/impl/x11/X11OnscreenGLDrawable.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/net/java/games/jogl/impl/x11/X11OnscreenGLDrawable.java b/src/net/java/games/jogl/impl/x11/X11OnscreenGLDrawable.java
index 0b66c51a7..a8308cf13 100644
--- a/src/net/java/games/jogl/impl/x11/X11OnscreenGLDrawable.java
+++ b/src/net/java/games/jogl/impl/x11/X11OnscreenGLDrawable.java
@@ -92,8 +92,25 @@ public class X11OnscreenGLDrawable extends X11GLDrawable {
public void swapBuffers() throws GLException {
lockAWT();
- GLX.glXSwapBuffers(display, drawable);
+ try {
+ boolean didLock = false;
+
+ if (drawable == 0) {
+ if (lockSurface() == LOCK_SURFACE_NOT_READY) {
+ return;
+ }
+
+ didLock = true;
+ }
+
+ GLX.glXSwapBuffers(display, drawable);
+
+ if (didLock) {
+ unlockSurface();
+ }
+ } finally {
unlockAWT();
+ }
}
public int lockSurface() throws GLException {