aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/opengl/macosx/cgl/awt
diff options
context:
space:
mode:
authorSven Gothel <sgothel@jausoft.com>2011-11-29 12:38:05 +0100
committerSven Gothel <sgothel@jausoft.com>2011-11-29 12:38:05 +0100
commit6b3fae9aebdafd8ed605543272d7d9cbf2f8c5dd (patch)
tree1284bad3097883c3385c9e7353034d01f151b194 /src/jogl/classes/jogamp/opengl/macosx/cgl/awt
parent7ce949289c71cc4a64e15227c7760974b40e2c33 (diff)
GLContextImpl*: createImpl() / makeCurrentImpl() refinement / robostness
createImpl(): If successful must leave context current. makeCurrentImpl(): Is only called if context is not just created, hence the boolean parameter 'boolean newCreatedContext' is removed. This clearifies and actually cleans up the native makeContextCurrent/releaseContext call pairs. MacOSXCGLContext: CGL and NS impl. of native makeContextCurrent/releaseContext uses CGL locking to provide a thread safety. This is recommended in OS X OpenGL documentation on [shared context] multithreaded use cases. Post creation code, as seen in some pbuffer cases is moved to overriden createImpl() methods.
Diffstat (limited to 'src/jogl/classes/jogamp/opengl/macosx/cgl/awt')
-rw-r--r--src/jogl/classes/jogamp/opengl/macosx/cgl/awt/MacOSXJava2DCGLContext.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/jogl/classes/jogamp/opengl/macosx/cgl/awt/MacOSXJava2DCGLContext.java b/src/jogl/classes/jogamp/opengl/macosx/cgl/awt/MacOSXJava2DCGLContext.java
index a9376fb34..cfec6d6a4 100644
--- a/src/jogl/classes/jogamp/opengl/macosx/cgl/awt/MacOSXJava2DCGLContext.java
+++ b/src/jogl/classes/jogamp/opengl/macosx/cgl/awt/MacOSXJava2DCGLContext.java
@@ -74,7 +74,7 @@ public class MacOSXJava2DCGLContext extends MacOSXCGLContext implements Java2DGL
this.graphics = g;
}
- protected void makeCurrentImpl(boolean newCreated) throws GLException {
+ protected void makeCurrentImpl() throws GLException {
if (!Java2D.makeOGLContextCurrentOnSurface(graphics, contextHandle)) {
throw new GLException("Error making context current");
}
@@ -85,6 +85,16 @@ public class MacOSXJava2DCGLContext extends MacOSXCGLContext implements Java2DGL
long ctx = Java2D.createOGLContextOnSurface(graphics, share);
if (ctx == 0) {
+ if(DEBUG) {
+ System.err.println("Error creating current: "+this);
+ }
+ return false;
+ }
+ if (!Java2D.makeOGLContextCurrentOnSurface(graphics, contextHandle)) {
+ Java2D.destroyOGLContext(ctx);
+ if(DEBUG) {
+ System.err.println("Error making created context current: "+this);
+ }
return false;
}
setGLFunctionAvailability(true, true, 0, 0, CTX_PROFILE_COMPAT|CTX_OPTION_ANY); // use GL_VERSION