Bug 652

Summary: DebugGL of a GL2ES2 context doesn't return true for isGLES
Product: [JogAmp] Jogl Reporter: Brice Figureau <brice.figureau>
Component: embeddedAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: major    
Priority: ---    
Version: 2   
Hardware: embedded_arm   
OS: other   
Type: --- SCM Refs:
jogl 1062e8ebfd6d2643bba9a68bbbc78bb44b3ede6a
Workaround: ---

Description Brice Figureau 2012-12-13 10:27:53 CET
The following code:

GL _gl = drawable.getGL();
gl = _gl.getGL2ES2();

log.debug("Before adding a debug GL");
log.debug("GL class: " + gl.getClass().getName());
log.debug("isGLES: " + (gl.isGLES() ? "true" : "false"));
log.debug("isGLES1: " + (gl.isGLES1() ? "true" : "false"));
log.debug("isGLES2: " + (gl.isGLES2() ? "true" : "false"));
log.debug("isGL2ES1: " + (gl.isGL2ES1() ? "true" : "false"));
log.debug("isGL2ES2: " + (gl.isGL2ES2() ? "true" : "false"));

_gl =_gl.getContext().setGL(GLPipelineFactory.create("javax.media.opengl.Debug", GL2ES2.class, _gl, null));
gl = _gl.getGL2ES2();
		
log.debug("After adding a debug GL");
log.debug("GL class: " + gl.getClass().getName());
log.debug("isGLES: " + (gl.isGLES() ? "true" : "false"));
log.debug("isGLES1: " + (gl.isGLES1() ? "true" : "false"));
log.debug("isGLES2: " + (gl.isGLES2() ? "true" : "false"));
log.debug("isGL2ES1: " + (gl.isGL2ES1() ? "true" : "false"));
log.debug("isGL2ES2: " + (gl.isGL2ES2() ? "true" : "false"));

When run on an Android 4.0.3 (currently a Kindle HD) returns the following:
Before adding a debug GL
GL class: jogamp.opengl.es2.GLES2Impl
isGLES: true
isGLES1: false
isGLES2: true
isGL2ES1: false
isGL2ES2: true

After adding a debug GL
GL class: javax.media.opengl.DebugGL2ES2
isGLES: false
isGLES1: false
isGLES2: false
isGL2ES1: false
isGL2ES2: true

Obviously, the second case should exactly match the first output, but it isn't.

Note that if I use the following (ie debugging a GLES2 profile instead of an GL2ES2 profile):

_gl =_gl.getContext().setGL(GLPipelineFactory.create("javax.media.opengl.Debug", GLES2.class, _gl, null));
gl = _gl.getGL2ES2();


Then it correctly returns true for both isGLES2, isGLES and isGL2ES2 :)
Comment 1 Sven Gothel 2012-12-19 22:18:50 CET
<http://jogamp.org/git/?p=jogl.git;a=commit;h=1062e8ebfd6d2643bba9a68bbbc78bb44b3ede6a>

DEBUG/TRACE: Removed Debug/Trace pipelines of common profiles (won't work anyways)
  - [Debug|Trace]GL2ES1
  - [Debug|Trace]GL2ES2
  - [Debug|Trace]GL2GL3