aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-09-30 21:32:46 +0200
committerSven Gothel <[email protected]>2011-09-30 21:32:46 +0200
commit900ac9dd13a732474642fa135b13350f8ddd01b0 (patch)
tree63f27603b5fed568f64eb9a5636048f7508099e7
parent541e96ace7ed3f4b863a7374a5ea72895d9362be (diff)
GLContext/GLDebugMessageHandler: Fix/clarify init and usage of dbg handler
-rw-r--r--src/jogl/classes/javax/media/opengl/GLContext.java1
-rw-r--r--src/jogl/classes/jogamp/opengl/GLContextImpl.java12
-rw-r--r--src/jogl/classes/jogamp/opengl/GLDebugMessageHandler.java14
3 files changed, 23 insertions, 4 deletions
diff --git a/src/jogl/classes/javax/media/opengl/GLContext.java b/src/jogl/classes/javax/media/opengl/GLContext.java
index 47a453484..a3aa369dd 100644
--- a/src/jogl/classes/javax/media/opengl/GLContext.java
+++ b/src/jogl/classes/javax/media/opengl/GLContext.java
@@ -428,6 +428,7 @@ public abstract class GLContext {
public final boolean isGLCompatibilityProfile() { return ( 0 != ( CTX_PROFILE_COMPAT & ctxOptions ) ); }
public final boolean isGLCoreProfile() { return ( 0 != ( CTX_PROFILE_CORE & ctxOptions ) ); }
public final boolean isGLForwardCompatible() { return ( 0 != ( CTX_OPTION_FORWARD & ctxOptions ) ); }
+ public final boolean isGLDebugEnabled() { return ( 0 != ( CTX_OPTION_DEBUG & ctxOptions ) ); }
public final boolean isCreatedWithARBMethod() { return ( 0 != ( CTX_IS_ARB_CREATED & ctxOptions ) ); }
/**
diff --git a/src/jogl/classes/jogamp/opengl/GLContextImpl.java b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
index 6f2786b03..99693aabe 100644
--- a/src/jogl/classes/jogamp/opengl/GLContextImpl.java
+++ b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
@@ -380,7 +380,10 @@ public abstract class GLContextImpl extends GLContext {
if (null == getGLDrawable().getChosenGLCapabilities()) {
throw new GLException("drawable has no chosen GLCapabilities: "+getGLDrawable());
}
- additionalCtxCreationFlags |= DEBUG_GL ? GLContext.CTX_OPTION_DEBUG : 0 ;
+ if(DEBUG_GL) {
+ // only impacts w/ createContextARB(..)
+ additionalCtxCreationFlags |= GLContext.CTX_OPTION_DEBUG ;
+ }
}
lockConsiderFailFast();
@@ -408,14 +411,17 @@ public abstract class GLContextImpl extends GLContext {
// throws an GLException if not
getGLDrawable().getGLProfile().verifyEquality(gl.getGLProfile());
+ glDebugHandler.init( isGL2GL3() && isGLDebugEnabled() );
+
if(DEBUG_GL) {
gl = gl.getContext().setGL( GLPipelineFactory.create("javax.media.opengl.Debug", null, gl, null) );
- glDebugHandler.addListener(new GLDebugMessageHandler.StdErrGLDebugListener(true));
+ if(glDebugHandler.isEnabled()) {
+ glDebugHandler.addListener(new GLDebugMessageHandler.StdErrGLDebugListener(true));
+ }
}
if(TRACE_GL) {
gl = gl.getContext().setGL( GLPipelineFactory.create("javax.media.opengl.Trace", null, gl, new Object[] { System.err } ) );
}
- glDebugHandler.init(0 != (additionalCtxCreationFlags & GLContext.CTX_OPTION_DEBUG));
}
/* FIXME: refactor dependence on Java 2D / JOGL bridge
diff --git a/src/jogl/classes/jogamp/opengl/GLDebugMessageHandler.java b/src/jogl/classes/jogamp/opengl/GLDebugMessageHandler.java
index 9ca573536..8ca0c016d 100644
--- a/src/jogl/classes/jogamp/opengl/GLDebugMessageHandler.java
+++ b/src/jogl/classes/jogamp/opengl/GLDebugMessageHandler.java
@@ -99,9 +99,14 @@ public class GLDebugMessageHandler {
}
public void init(boolean enable) {
+ if(DEBUG) {
+ System.err.println("GLDebugMessageHandler.init("+enable+")");
+ }
init();
if(isAvailable()) {
enableImpl(enable);
+ } else if(DEBUG) {
+ System.err.println("GLDebugMessageHandler.init("+enable+") .. n/a");
}
}
@@ -111,6 +116,13 @@ public class GLDebugMessageHandler {
return;
}
+ if( !ctx.isGLDebugEnabled() ) {
+ if(DEBUG) {
+ System.err.println("GLDebugMessageHandler: GL DEBUG not set in ARB ctx options: "+ctx.getGLVersion());
+ }
+ return;
+ }
+
if( ctx.isExtensionAvailable(GL_ARB_debug_output) ) {
extName = GL_ARB_debug_output;
extType = EXT_ARB;
@@ -124,7 +136,7 @@ public class GLDebugMessageHandler {
if(0 == extType) {
if(DEBUG) {
- System.err.println("GLDebugMessageHandler: No extension available!");
+ System.err.println("GLDebugMessageHandler: No extension available! "+ctx.getGLVersion());
}
return;
}