aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/classes/com/sun/opengl/impl/macosx/MacOSXOnscreenGLContext.java10
-rw-r--r--src/classes/com/sun/opengl/impl/windows/WindowsOnscreenGLContext.java14
-rw-r--r--src/classes/com/sun/opengl/impl/x11/X11OnscreenGLContext.java10
3 files changed, 23 insertions, 11 deletions
diff --git a/src/classes/com/sun/opengl/impl/macosx/MacOSXOnscreenGLContext.java b/src/classes/com/sun/opengl/impl/macosx/MacOSXOnscreenGLContext.java
index 977e3315c..3f08b084e 100644
--- a/src/classes/com/sun/opengl/impl/macosx/MacOSXOnscreenGLContext.java
+++ b/src/classes/com/sun/opengl/impl/macosx/MacOSXOnscreenGLContext.java
@@ -77,7 +77,7 @@ public class MacOSXOnscreenGLContext extends MacOSXGLContext {
}
return ret;
} finally {
- if (optimizationEnabled) {
+ if (isOptimizable()) {
if (lockRes != MacOSXOnscreenGLDrawable.LOCK_SURFACE_NOT_READY) {
drawable.unlockSurface();
}
@@ -86,10 +86,10 @@ public class MacOSXOnscreenGLContext extends MacOSXGLContext {
}
protected void releaseImpl() throws GLException {
- if (!optimizationEnabled) {
- try {
- super.releaseImpl();
- } finally {
+ try {
+ super.releaseImpl();
+ } finally {
+ if (!isOptimizable()) {
drawable.unlockSurface();
}
}
diff --git a/src/classes/com/sun/opengl/impl/windows/WindowsOnscreenGLContext.java b/src/classes/com/sun/opengl/impl/windows/WindowsOnscreenGLContext.java
index 4e1dbd1c0..4f41cd8e1 100644
--- a/src/classes/com/sun/opengl/impl/windows/WindowsOnscreenGLContext.java
+++ b/src/classes/com/sun/opengl/impl/windows/WindowsOnscreenGLContext.java
@@ -66,7 +66,19 @@ public class WindowsOnscreenGLContext extends WindowsGLContext {
int ret = super.makeCurrentImpl();
return ret;
} finally {
- if (lockRes != WindowsOnscreenGLDrawable.LOCK_SURFACE_NOT_READY) {
+ if (isOptimizable()) {
+ if (lockRes != WindowsOnscreenGLDrawable.LOCK_SURFACE_NOT_READY) {
+ drawable.unlockSurface();
+ }
+ }
+ }
+ }
+
+ protected void releaseImpl() throws GLException {
+ try {
+ super.releaseImpl();
+ } finally {
+ if (!isOptimizable()) {
drawable.unlockSurface();
}
}
diff --git a/src/classes/com/sun/opengl/impl/x11/X11OnscreenGLContext.java b/src/classes/com/sun/opengl/impl/x11/X11OnscreenGLContext.java
index f4f4c7094..908257ba1 100644
--- a/src/classes/com/sun/opengl/impl/x11/X11OnscreenGLContext.java
+++ b/src/classes/com/sun/opengl/impl/x11/X11OnscreenGLContext.java
@@ -68,7 +68,7 @@ public class X11OnscreenGLContext extends X11GLContext {
}
return super.makeCurrentImpl();
} finally {
- if (optimizationEnabled) {
+ if (isOptimizable()) {
if (lockRes != X11OnscreenGLDrawable.LOCK_SURFACE_NOT_READY) {
drawable.unlockSurface();
}
@@ -77,10 +77,10 @@ public class X11OnscreenGLContext extends X11GLContext {
}
protected void releaseImpl() throws GLException {
- if (!optimizationEnabled) {
- try {
- super.releaseImpl();
- } finally {
+ try {
+ super.releaseImpl();
+ } finally {
+ if (!isOptimizable()) {
drawable.unlockSurface();
}
}