diff options
Diffstat (limited to 'src/classes/com/sun/opengl/impl/macosx')
-rw-r--r-- | src/classes/com/sun/opengl/impl/macosx/MacOSXExternalGLContext.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/classes/com/sun/opengl/impl/macosx/MacOSXExternalGLContext.java b/src/classes/com/sun/opengl/impl/macosx/MacOSXExternalGLContext.java index 7a0b53a98..ceda14f3b 100644 --- a/src/classes/com/sun/opengl/impl/macosx/MacOSXExternalGLContext.java +++ b/src/classes/com/sun/opengl/impl/macosx/MacOSXExternalGLContext.java @@ -45,6 +45,7 @@ import com.sun.opengl.impl.*; public class MacOSXExternalGLContext extends MacOSXGLContext { private boolean firstMakeCurrent = true; private boolean created = true; + private GLContext lastContext; public MacOSXExternalGLContext() { super(null, null); @@ -74,6 +75,23 @@ public class MacOSXExternalGLContext extends MacOSXGLContext { return true; } + public int makeCurrent() throws GLException { + // Save last context if necessary to allow external GLContexts to + // talk to other GLContexts created by this library + GLContext cur = getCurrent(); + if (cur != null && cur != this) { + lastContext = cur; + setCurrent(null); + } + return super.makeCurrent(); + } + + public void release() throws GLException { + super.release(); + setCurrent(lastContext); + lastContext = null; + } + protected int makeCurrentImpl() throws GLException { if (firstMakeCurrent) { firstMakeCurrent = false; |