From 4e83a5df7a851cc33d85f76381f058256906ad4c Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Thu, 10 Oct 2013 02:15:56 +0200
Subject: 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.
---
 make/config/jogl/gl-if-es3.cfg | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 make/config/jogl/gl-if-es3.cfg

(limited to 'make/config/jogl/gl-if-es3.cfg')

diff --git a/make/config/jogl/gl-if-es3.cfg b/make/config/jogl/gl-if-es3.cfg
new file mode 100644
index 000000000..33e41762a
--- /dev/null
+++ b/make/config/jogl/gl-if-es3.cfg
@@ -0,0 +1,39 @@
+# This .cfg file is used to generate the GL interface.
+JavaOutputDir gensrc/classes
+
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GLES2.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES3.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL3ES3.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL4ES3.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java
+
+Package javax.media.opengl
+Style InterfaceOnly
+JavaClass GLES3
+#Extends GLES3 GLBase
+#Extends GLES3 GL
+#Extends GLES3 GL2ES2
+#Extends GLES3 GL2ES3
+#Extends GLES3 GL3ES3
+Extends GLES3 GLES2
+Extends GLES3 GL4ES3
+HierarchicalNativeOutput false
+Include gl-common.cfg
+Include gl-common-gpubufferonly.cfg
+Include gl-common-extensions.cfg
+Include gl2_es3-common.cfg
+Include gl2_es2-CustomJavaCode.cfg
+
+ForceExtension GL_ARB_ES3_compatibility
+
+# dummy procaddress config / force procaddress for comments
+EmitProcAddressTable false
+ProcAddressTableClassName DontGenerateProcAddressTableStuff
+GetProcAddressTableExpr DontGenerateProcAddressTableStuff
+ForceProcAddressGen __ALL__
+
+# Pick up on-line OpenGL javadoc thanks to user cylab on javagaming.org forums
+TagNativeBinding true
+
-- 
cgit v1.2.3