diff options
author | Sven Gothel <[email protected]> | 2013-10-10 02:15:56 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2013-10-10 02:15:56 +0200 |
commit | 4e83a5df7a851cc33d85f76381f058256906ad4c (patch) | |
tree | 9454329d601da72c7e4642491406dac8eed3d4c6 /src/jogl/classes/com/jogamp/opengl | |
parent | e96b2d648e7d69b95325fb6b80c6eb508e1e8a14 (diff) |
Bug 852: Remove CPU sourced data API entry where not allowed (ES3 and GL core >= 3.0) ; GL2 cfg: Ignore GL2ES3 symbols (super)
Remove CPU sourced data API entries via new config 'BufferObjectOnly <name>',
listed in 'gl-common-gpubufferonly.cfg' and included in ES3 and all GL core >= 3 interfaces.
If BufferObjectOnly is defined for a function, only the 'long offset' variant is being emitted.
Due to limitations of GlueGen's 'ExtendedInterfaceSymbolsIgnore A.java', which only
identifies the function name and not the signature - all CPU sourced variants
are manually added to the compatibility and ES2 GL profiles via '*-common-cpubufferJavaCode.java' files.
GLContext: Added 'isCPUSourcedAvail()' to determine whether context allows CPU sourced data,
i.e. for GL2ES1 and GLES2 ctx.
GLContext/GLProfile/GL: isGLES2() now returns false if having a ES3 context due to 'CPU sourced'
incompatibility!
+++
GL2 cfg: Added ignore GL2ES3 symbols of it's superclass, removing duplicated symbols.
Diffstat (limited to 'src/jogl/classes/com/jogamp/opengl')
-rw-r--r-- | src/jogl/classes/com/jogamp/opengl/util/ImmModeSink.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/util/ImmModeSink.java b/src/jogl/classes/com/jogamp/opengl/util/ImmModeSink.java index dc96cb5f2..dbe916877 100644 --- a/src/jogl/classes/com/jogamp/opengl/util/ImmModeSink.java +++ b/src/jogl/classes/com/jogamp/opengl/util/ImmModeSink.java @@ -522,6 +522,10 @@ public class ImmModeSink { gl.glDrawArrays(mode, 0, vElems); } } else { + // FIXME: Impl. VBO usage .. or unroll (see above)! + if( !gl.getContext().isCPUSourcedAvail() ) { + throw new GLException("CPU sourcing n/a w/ "+gl.getContext()); + } final int type; if(indices instanceof ByteBuffer) { type = GL.GL_UNSIGNED_BYTE; @@ -553,7 +557,7 @@ public class ImmModeSink { } } } else { - gl.glDrawElements(mode, idxLen, type, indices); + ((GL2ES1)gl).glDrawElements(mode, idxLen, type, indices); // GL2: gl.glDrawRangeElements(mode, 0, idxLen-1, idxLen, type, indices); } } |