aboutsummaryrefslogtreecommitdiffstats
path: root/make/config/jogl
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2010-08-24 02:39:14 +0200
committerSven Gothel <[email protected]>2010-08-24 02:39:14 +0200
commitca119c97340caf325cd682c5fdbe8f794a35ac0e (patch)
tree3ad60aff37fe6e6167db14c3f3f4fcbf36e6a535 /make/config/jogl
parent8d55c437547a697b7d0bd4dd81b6669209cf912f (diff)
Add OpenGL 3.3, 4.0 and 4.1 language mapping.
- Update header: - GL/glext.h to khronos 2010-08-03 - GL3/gl3.h to khronos 2010-08-03 - Move platform code to GL/glplatform.h GL3/glplatform.h - Unify 64bit typedefs: gl-64bit-types.h - Move GL 3.[123] and 4.[01] complete subsumed extension enums and functions into their extension spec and just reference them. This ensures proper extension availability via lower OpenGL profiles, hence a proper GL2GL3 interface. - GL3/GL4 cleanup: - make-glextension-depignore.sh: determine required GL version for extensions for proper positioning, ie GL2GL3 or GL3 or GL4 via gluegen IgnoreExtension commands. - use ARB_ES2_compatibility for common GL2ES2 methods, if available - consolidated gl2-gl4 subsumed extension to gl-common.cfg - Missing GL3/GL4 Functions: glMultiDrawElementsBaseVertex glDebugMessageCallbackARB glDebugMessageCallbackAMD - TODO (new feature integration): - ARB_ES2_compatibility / ARB_get_program_binary for com/jogamp/opengl/util/glsl, ie - store binaries com/jogamp/opengl/util/glsl/sdk/CompileShader* - query supported binary formats (enums ?) - optional prio binaries - ARB_ES2_compatibility, if available GLES2/GL2ES12 would be available - ARB_separate_shader_objects for com/jogamp/opengl/util/glsl, ie - swizzle vertex/fragment shader in programs - ..
Diffstat (limited to 'make/config/jogl')
-rw-r--r--make/config/jogl/gl-common.cfg73
-rw-r--r--make/config/jogl/gl-es2.cfg1
-rw-r--r--make/config/jogl/gl-gl2es12.cfg7
-rw-r--r--make/config/jogl/gl-gl4bc.cfg9
-rw-r--r--make/config/jogl/gl-if-CustomJavaCode-gl2.java19
-rw-r--r--make/config/jogl/gl-if-CustomJavaCode-gl2_es2.java46
-rw-r--r--make/config/jogl/gl-if-CustomJavaCode-gl2_gl3.java (renamed from make/config/jogl/gl-if-CustomJavaCode-gl3.java)0
-rw-r--r--make/config/jogl/gl-if-gl.cfg2
-rw-r--r--make/config/jogl/gl-if-gl2.cfg (renamed from make/config/jogl/gl-gl2.cfg)4
-rw-r--r--make/config/jogl/gl-if-gl2_es2.cfg13
-rw-r--r--make/config/jogl/gl-if-gl2_gl3.cfg5
-rw-r--r--make/config/jogl/gl-if-gl3-ignores.cfg21
-rw-r--r--make/config/jogl/gl-if-gl3-subset.cfg (renamed from make/config/jogl/gl-gl3-set.cfg)7
-rw-r--r--make/config/jogl/gl-if-gl3.cfg (renamed from make/config/jogl/gl-gl3.cfg)4
-rw-r--r--make/config/jogl/gl-if-gl3bc.cfg (renamed from make/config/jogl/gl-gl3bc.cfg)2
-rw-r--r--make/config/jogl/gl-if-gl4-ignores.cfg13
-rw-r--r--make/config/jogl/gl-if-gl4.cfg (renamed from make/config/jogl/gl-gl4.cfg)4
-rw-r--r--make/config/jogl/gl-impl-CustomJavaCode-gl2_es2.java1
-rw-r--r--make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java14
-rw-r--r--make/config/jogl/gl-impl-CustomJavaCode-gl4bc.java15
-rw-r--r--make/config/jogl/gl2_es2-common.cfg23
-rw-r--r--make/config/jogl/gl3-common.cfg27
-rw-r--r--make/config/jogl/gl4-common.cfg5
-rw-r--r--make/config/jogl/make-glextension-depignore.sh70
24 files changed, 267 insertions, 118 deletions
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
index 2c8e79e75..3c413465e 100644
--- a/make/config/jogl/gl-common.cfg
+++ b/make/config/jogl/gl-common.cfg
@@ -35,6 +35,9 @@ Ignore glGetVertexAttribPointerv
Ignore glGetVertexAttribPointervARB
Ignore glGetVertexAttribPointervNV
Ignore glTracePointerRangeMESA
+Ignore glMultiDrawElementsBaseVertex
+Ignore glDebugMessageCallbackARB
+Ignore glDebugMessageCallbackAMD
# Manually implement glMapBuffer as the size of the returned buffer
# can only be computed by calling another routine
@@ -221,13 +224,8 @@ RenameExtensionIntoCore GL_EXT_packed_float
RenameExtensionIntoCore GL_EXT_texture_shared_exponent
# gl.h uses GL_ARB_framebuffer_object
-# GL_*_geometry_shader4 is included here, due to a naming collision otherwise.
-# glFramebufferTextureLayerARB is ignored due to it's existence in GL_ARB_framebuffer_object and GL_ARB_geometry_shader4
RenameExtensionIntoCore GL_ARB_framebuffer_object
IgnoreExtension GL_EXT_framebuffer_object
-RenameExtensionIntoCore GL_ARB_geometry_shader4
-IgnoreExtension GL_EXT_geometry_shader4
-Ignore glFramebufferTextureLayerARB
RenameExtensionIntoCore GL_NV_half_float
RenameExtensionIntoCore GL_ARB_half_float_pixel
@@ -269,27 +267,83 @@ RenameExtensionIntoCore GL_ARB_map_buffer_range
RenameExtensionIntoCore GL_ARB_draw_instanced
IgnoreExtension GL_EXT_draw_instanced
RenameExtensionIntoCore GL_ARB_copy_buffer
-RenameExtensionIntoCore GL_NV_primitive_restart
+# Does not match the common namespace GL_NV_primitive_restart
RenameExtensionIntoCore GL_ARB_texture_buffer_object
IgnoreExtension GL_EXT_texture_buffer_object
-# Actually GL_ARB_texture_rectangle, but let's be convenient
+# We rename EXT_texture_rectangle into core, so ARB_texture_rectangle will stay for convenience
RenameExtensionIntoCore GL_EXT_texture_rectangle
IgnoreExtension GL_NV_texture_rectangle
RenameExtensionIntoCore GL_ARB_uniform_buffer_object
# <<< OpenGL 3.1
-
+# >>> OpenGL 3.2
+# Rename extension suffices (if exist) subsumed in OpenGL 3.2 (from OpenGL 3.2 spec, Appendix H.1)
+RenameExtensionIntoCore GL_ARB_vertex_array_bgra
+RenameExtensionIntoCore GL_ARB_draw_elements_base_vertex
+RenameExtensionIntoCore GL_ARB_fragment_coord_conventions
+RenameExtensionIntoCore GL_ARB_provoking_vertex
+RenameExtensionIntoCore GL_ARB_seamless_cube_map
+RenameExtensionIntoCore GL_ARB_texture_multisample
+RenameExtensionIntoCore GL_ARB_depth_clamp
+# GL_ARB_geometry_shader4 is subsumed but values/namespace is orthogonal
+IgnoreExtension GL_EXT_geometry_shader4
+RenameExtensionIntoCore GL_ARB_sync
+# <<< OpenGL 3.2
+
+# >>> OpenGL 3.3
+# Rename extension suffices (if exist) subsumed in OpenGL 3.3 (from OpenGL 3.3 spec, Appendix I.1)
+RenameExtensionIntoCore GL_ARB_shader_bit_encoding
+RenameExtensionIntoCore GL_ARB_blend_func_extended
+RenameExtensionIntoCore GL_ARB_explicit_attrib_location
+RenameExtensionIntoCore GL_ARB_occlusion_query2
+RenameExtensionIntoCore GL_ARB_sampler_objects
+RenameExtensionIntoCore GL_ARB_texture_rgb10_a2ui
+RenameExtensionIntoCore GL_ARB_texture_swizzle
+RenameExtensionIntoCore GL_ARB_timer_query
+RenameExtensionIntoCore GL_ARB_instanced_arrays
+RenameExtensionIntoCore GL_ARB_vertex_type_2_10_10_10_rev
+# <<< OpenGL 3.3
+
+# >>> OpenGL 4.0
+# Rename extension suffices (if exist) subsumed in OpenGL 4.0 (from OpenGL 4.0 spec, Appendix J.1)
+RenameExtensionIntoCore GL_ARB_texture_query_lod
+RenameExtensionIntoCore GL_ARB_draw_buffers_blend
+RenameExtensionIntoCore GL_ARB_draw_indirect
+RenameExtensionIntoCore GL_ARB_gpu_shader5
+RenameExtensionIntoCore GL_ARB_gpu_shader_fp64
+RenameExtensionIntoCore GL_ARB_sample_shading
+RenameExtensionIntoCore GL_ARB_shader_subroutine
+RenameExtensionIntoCore GL_ARB_tessellation_shader
+RenameExtensionIntoCore GL_ARB_texture_buffer_object_rgb32
+RenameExtensionIntoCore GL_ARB_texture_cube_map_array
+RenameExtensionIntoCore GL_ARB_texture_gather
+RenameExtensionIntoCore GL_ARB_transform_feedback2
+RenameExtensionIntoCore GL_ARB_transform_feedback3
+# <<< OpenGL 4.0
+
+# >>> OpenGL 4.1
+# Rename extension suffices (if exist) subsumed in OpenGL 4.1 (from OpenGL 4.1 spec, Appendix K.1)
+RenameExtensionIntoCore GL_ARB_ES2_compatibility
+RenameExtensionIntoCore GL_ARB_get_program_binary
+RenameExtensionIntoCore GL_ARB_separate_shader_objects
+RenameExtensionIntoCore GL_ARB_shader_precision
+RenameExtensionIntoCore GL_ARB_vertex_attrib_64bit
+IgnoreExtension GL_EXT_vertex_attrib_64bit
+RenameExtensionIntoCore GL_ARB_viewport_array
+# <<< OpenGL 4.1
# Ignore a few obsolete versions of extensions that have been subsumed into the core or ARB extensions
IgnoreExtension GL_EXT_multisample
IgnoreExtension GL_EXT_point_parameters
-IgnoreExtension GL_EXT_texture_rectangle
+IgnoreExtension GL_EXT_separate_shader_objects
+
#
# Opaques and other directives for platform-independent routines
#
Opaque boolean GLboolean
+Opaque long GLsync
ReturnsString glGetString
ReturnsString glGetStringi
@@ -349,6 +403,7 @@ ReturnValueCapacity wglAllocateMemoryNV {0}
ReturnValueCapacity glXAllocateMemoryNV {0}
ReturnValueCapacity glMapBufferRange {2}
+ReturnValueCapacity glMapNamedBufferRangeEXT {2}
# Pass arguments to ARB_vertex_program, ARB_fragment_program,
# ARB_shader_objects, NV_vertex_program, NV_fragment_program, and
diff --git a/make/config/jogl/gl-es2.cfg b/make/config/jogl/gl-es2.cfg
index cdfd7fef8..14498d0b9 100644
--- a/make/config/jogl/gl-es2.cfg
+++ b/make/config/jogl/gl-es2.cfg
@@ -20,6 +20,7 @@ Implements GLES2Impl GL2ES2
HierarchicalNativeOutput false
Include gl-common.cfg
Include gl-common-extensions.cfg
+Include gl2_es2-common.cfg
EmitProcAddressTable true
ProcAddressTableClassName GLES2ProcAddressTable
diff --git a/make/config/jogl/gl-gl2es12.cfg b/make/config/jogl/gl-gl2es12.cfg
index ec121d777..0d04a0725 100644
--- a/make/config/jogl/gl-gl2es12.cfg
+++ b/make/config/jogl/gl-gl2es12.cfg
@@ -21,6 +21,7 @@ Implements GL2ES12Impl GL2ES2
Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
+Include gl2_es2-common.cfg
# Force all of the methods to be emitted using dynamic linking so we
# don't need to link against any emulation library on the desktop or
@@ -64,12 +65,6 @@ CustomJavaCode GL2ES12Impl glFrustum((double)left, (double)right, (double)bott
CustomJavaCode GL2ES12Impl public void glOrthof(float left, float right, float bottom, float top, float zNear, float zFar) {
CustomJavaCode GL2ES12Impl glOrtho((double)left, (double)right, (double)bottom, (double)top, (double)zNear, (double)zFar); }
-CustomJavaCode GL2ES12Impl public void glClearDepthf(float depth) {
-CustomJavaCode GL2ES12Impl glClearDepth((double)depth); }
-
-CustomJavaCode GL2ES12Impl public void glDepthRangef(float zNear, float zFar) {
-CustomJavaCode GL2ES12Impl glDepthRange((double)zNear, (double)zFar); }
-
Include gl-headers.cfg
Include ../intptr.cfg
diff --git a/make/config/jogl/gl-gl4bc.cfg b/make/config/jogl/gl-gl4bc.cfg
index ccd9723e6..005b667ef 100644
--- a/make/config/jogl/gl-gl4bc.cfg
+++ b/make/config/jogl/gl-gl4bc.cfg
@@ -42,9 +42,8 @@ Implements GL4bcImpl GL4
Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
-Include gl3-common.cfg
-Include gl4-common.cfg
Include gl3-desktop.cfg
+Include gl2_es2-common.cfg
# Manually implement glMapNamedBufferEXT as the size of the returned buffer
# can only be computed by calling another routine
@@ -84,12 +83,6 @@ CustomJavaCode GL4bcImpl glFrustum((double)left, (double)right, (double)bottom
CustomJavaCode GL4bcImpl public void glOrthof(float left, float right, float bottom, float top, float zNear, float zFar) {
CustomJavaCode GL4bcImpl glOrtho((double)left, (double)right, (double)bottom, (double)top, (double)zNear, (double)zFar); }
-CustomJavaCode GL4bcImpl public void glClearDepthf(float depth) {
-CustomJavaCode GL4bcImpl glClearDepth((double)depth); }
-
-CustomJavaCode GL4bcImpl public void glDepthRangef(float zNear, float zFar) {
-CustomJavaCode GL4bcImpl glDepthRange((double)zNear, (double)zFar); }
-
Include gl-headers.cfg
Include gl3ext-headers.cfg
Include ../intptr.cfg
diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl2.java b/make/config/jogl/gl-if-CustomJavaCode-gl2.java
deleted file mode 100644
index 4d1d0e048..000000000
--- a/make/config/jogl/gl-if-CustomJavaCode-gl2.java
+++ /dev/null
@@ -1,19 +0,0 @@
-
-/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */
-public static final int GL_SAMPLER_BUFFER_EXT = 0x8DC2;
-/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */
-public static final int GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD;
-/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */
-public static final int GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5;
-/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */
-public static final int GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8;
-/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */
-public static final int GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD;
-
-/** Missed in the GL_EXT_packed_float promotion to 3.0 core */
-public static final int GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C;
-
-/** Missed in the GL_EXT_framebuffer_sRGB promotion to 3.0 core */
-public static final int GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA;
-
-
diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl2_es2.java b/make/config/jogl/gl-if-CustomJavaCode-gl2_es2.java
new file mode 100644
index 000000000..1599a89ca
--- /dev/null
+++ b/make/config/jogl/gl-if-CustomJavaCode-gl2_es2.java
@@ -0,0 +1,46 @@
+
+ /** Start: GL_ARB_ES2_compatibility functions, which are part of ES2 core as well */
+
+ /** Entry point to C language function:
+ * <code> void {@native glReleaseShaderCompiler}(void); </code>
+ * <br>Part of <code>GL_ES_VERSION_2_0</code> and <code>GL_ARB_ES2_compatibility</code>.
+ * <br> Nop if no native implementation is available. */
+ public void glReleaseShaderCompiler();
+
+ /** Entry point to C language function:
+ * <code> void {@native glShaderBinary}(GLint n, const GLuint * shaders, GLenum binaryformat, const void * binary, GLint length); </code>
+ * <br>Part of <code>GL_ES_VERSION_2_0</code> and <code>GL_ARB_ES2_compatibility</code>.
+ * <br> Throws GLException if no native implementation is available. */
+ public void glShaderBinary(int n, IntBuffer shaders, int binaryformat, Buffer binary, int length);
+
+ /** Entry point to C language function:
+ * <code> void {@native glShaderBinary}(GLint n, const GLuint * shaders, GLenum binaryformat, const void * binary, GLint length); </code>
+ * <br>Part of <code>GL_ES_VERSION_2_0</code> and <code>GL_ARB_ES2_compatibility</code>.
+ * <br> Throws GLException if no native implementation is available. */
+ public void glShaderBinary(int n, int[] shaders, int shaders_offset, int binaryformat, Buffer binary, int length);
+
+ /** Entry point to C language function:
+ * <code> void {@native glGetShaderPrecisionFormat}(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision); </code>
+ * <br>Part of <code>GL_ES_VERSION_2_0</code> and <code>GL_ARB_ES2_compatibility</code>.
+ * <br> Throws GLException if no native implementation is available. */
+ public void glGetShaderPrecisionFormat(int shadertype, int precisiontype, IntBuffer range, IntBuffer precision);
+
+ /** Entry point to C language function:
+ * <code> void {@native glGetShaderPrecisionFormat}(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision); </code>
+ * <br>Part of <code>GL_ES_VERSION_2_0</code> and <code>GL_ARB_ES2_compatibility</code>.
+ * <br> Throws GLException if no native implementation is available. */
+ public void glGetShaderPrecisionFormat(int shadertype, int precisiontype, int[] range, int range_offset, int[] precision, int precision_offset);
+
+ /** Entry point to C language function:
+ * <code> void {@native glDepthRangef}(GLclampf zNear, GLclampf zFar); </code>
+ * <br>Part of <code>GL_ES_VERSION_2_0</code> and <code>GL_ARB_ES2_compatibility</code>.
+ * <br> Calls <code> void {@native glDepthRange}(GLclampd zNear, GLclampd zFar); </code> if no native implementation is available. */
+ public void glDepthRangef(float zNear, float zFar);
+
+ /** Entry point to C language function:
+ * <code> void {@native glClearDepthf}(GLclampf depth); </code>
+ * <br>Part of <code>GL_ES_VERSION_2_0</code> and <code>GL_ARB_ES2_compatibility</code>.
+ * <br> Calls <code> void {@native glClearDepth}(GLclampd depth); </code> if no native implementation is available. */
+ public void glClearDepthf(float depth);
+
+ /** End: GL_ARB_ES2_compatibility functions, which are part of ES2 core as well */
diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl3.java b/make/config/jogl/gl-if-CustomJavaCode-gl2_gl3.java
index 1777c1557..1777c1557 100644
--- a/make/config/jogl/gl-if-CustomJavaCode-gl3.java
+++ b/make/config/jogl/gl-if-CustomJavaCode-gl2_gl3.java
diff --git a/make/config/jogl/gl-if-gl.cfg b/make/config/jogl/gl-if-gl.cfg
index 1bba846e7..c57565b33 100644
--- a/make/config/jogl/gl-if-gl.cfg
+++ b/make/config/jogl/gl-if-gl.cfg
@@ -10,6 +10,8 @@ HierarchicalNativeOutput false
Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-if-gl-ignores.cfg
+Include gl-if-gl3-ignores.cfg
+Include gl-if-gl4-ignores.cfg
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl
diff --git a/make/config/jogl/gl-gl2.cfg b/make/config/jogl/gl-if-gl2.cfg
index 48dd8eda6..6063bba7e 100644
--- a/make/config/jogl/gl-gl2.cfg
+++ b/make/config/jogl/gl-if-gl2.cfg
@@ -22,6 +22,8 @@ Extends GL2 GL2GL3
Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
+Include gl-if-gl3-ignores.cfg
+Include gl-if-gl4-ignores.cfg
# Pick up on-line OpenGL javadoc thanks to user cylab on javagaming.org forums
TagNativeBinding true
@@ -32,8 +34,6 @@ IgnoreExtension GL_EXT_point_parameters
CustomJavaCode GL2 public boolean glIsPBOPackEnabled();
CustomJavaCode GL2 public boolean glIsPBOUnpackEnabled();
-IncludeAs CustomJavaCode GL2 gl-if-CustomJavaCode-gl2.java
-
Include gl-headers.cfg
Include ../intptr.cfg
diff --git a/make/config/jogl/gl-if-gl2_es2.cfg b/make/config/jogl/gl-if-gl2_es2.cfg
index 63f96d906..eedb5751d 100644
--- a/make/config/jogl/gl-if-gl2_es2.cfg
+++ b/make/config/jogl/gl-if-gl2_es2.cfg
@@ -10,21 +10,32 @@ ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.jav
HierarchicalNativeOutput false
Include gl-common.cfg
Include gl-common-extensions.cfg
+Include gl-if-gl3-ignores.cfg
+Include gl-if-gl4-ignores.cfg
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl
# Ignore all ES 2.X only stuff ..
# Ignore ^gl.*x(v)?(OES)?
-Ignore glGetShaderPrecisionFormat
Ignore glEGL.*
#Ignore glFramebufferVertexAttribArrayNV
#Ignore glCoverageOperationNV
#Ignore glCoverageMaskNV
+# Ignore GL_ARB_ES2_compatibility functions for interface code generation
+# since we need our own javadoc header for a detailed description
+Ignore glReleaseShaderCompiler
+Ignore glShaderBinary
+Ignore glGetShaderPrecisionFormat
+Ignore glDepthRangef
+Ignore glClearDepthf
+
CustomJavaCode GL2ES2 public void glClearDepth( double depth );
CustomJavaCode GL2ES2 public void glDepthRange(double zNear, double zFar);
+IncludeAs CustomJavaCode GL2ES2 gl-if-CustomJavaCode-gl2_es2.java
+
EmitProcAddressTable false
ProcAddressTableClassName DontGenerateProcAddressTableStuff
GetProcAddressTableExpr DontGenerateProcAddressTableStuff
diff --git a/make/config/jogl/gl-if-gl2_gl3.cfg b/make/config/jogl/gl-if-gl2_gl3.cfg
index 7f6903dd6..99e241f23 100644
--- a/make/config/jogl/gl-if-gl2_gl3.cfg
+++ b/make/config/jogl/gl-if-gl2_gl3.cfg
@@ -10,12 +10,15 @@ ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/G
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java
ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java
-ExtendedInterfaceSymbolsOnly ../build-temp/gluegen-set/javax/media/opengl/GL3Set.java
+ExtendedInterfaceSymbolsOnly ../build-temp/gluegen-set/javax/media/opengl/GL3Subset.java
HierarchicalNativeOutput false
Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
+Include gl-if-gl4-ignores.cfg
+
+IncludeAs CustomJavaCode GL2GL3 gl-if-CustomJavaCode-gl2_gl3.java
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl
diff --git a/make/config/jogl/gl-if-gl3-ignores.cfg b/make/config/jogl/gl-if-gl3-ignores.cfg
new file mode 100644
index 000000000..672c62278
--- /dev/null
+++ b/make/config/jogl/gl-if-gl3-ignores.cfg
@@ -0,0 +1,21 @@
+#
+# Generated Configuration File
+# Use make-glextension-depignore.sh to update!
+#
+
+#
+# OpenGL 3.x dependencies
+#
+# We allow GL_VERSION_3_0 within GL2
+IgnoreExtension GL_VERSION_3_1
+IgnoreExtension GL_VERSION_3_2
+IgnoreExtension GL_VERSION_3_3
+IgnoreExtension GL_VERSION_3_4
+IgnoreExtension GL_ARB_sync
+IgnoreExtension GL_ARB_texture_compression_bptc
+IgnoreExtension GL_ARB_draw_indirect
+IgnoreExtension GL_ARB_gpu_shader5
+IgnoreExtension GL_ARB_gpu_shader_fp64
+IgnoreExtension GL_ARB_tessellation_shader
+IgnoreExtension GL_NV_gpu_shader5
+
diff --git a/make/config/jogl/gl-gl3-set.cfg b/make/config/jogl/gl-if-gl3-subset.cfg
index ac1edac47..85797894d 100644
--- a/make/config/jogl/gl-gl3-set.cfg
+++ b/make/config/jogl/gl-if-gl3-subset.cfg
@@ -1,13 +1,14 @@
-# This .cfg file is used to generate the GL interface and implementing class.
+# This .cfg file is used to generate the common GL2 GL3 set
JavaOutputDir ../../build-temp/gluegen-set
Package javax.media.opengl
Style InterfaceOnly
-JavaClass GL3Set
+JavaClass GL3Subset
Include gl-common.cfg
Include gl-common-extensions.cfg
-Include gl3-common.cfg
Include gl3-desktop.cfg
+Include gl-if-gl3-ignores.cfg
+Include gl-if-gl4-ignores.cfg
EmitProcAddressTable false
ProcAddressTableClassName DontGenerateProcAddressTableStuff
diff --git a/make/config/jogl/gl-gl3.cfg b/make/config/jogl/gl-if-gl3.cfg
index d5e0003d4..6682e4145 100644
--- a/make/config/jogl/gl-gl3.cfg
+++ b/make/config/jogl/gl-if-gl3.cfg
@@ -22,10 +22,8 @@ Implements GL3Impl GL2ES2
Implements GL3Impl GL2GL3
Include gl-common.cfg
Include gl-common-extensions.cfg
-Include gl3-common.cfg
Include gl3-desktop.cfg
-
-IncludeAs CustomJavaCode GL3 gl-if-CustomJavaCode-gl3.java
+Include gl-if-gl4-ignores.cfg
EmitProcAddressTable false
diff --git a/make/config/jogl/gl-gl3bc.cfg b/make/config/jogl/gl-if-gl3bc.cfg
index 7c53ea8d6..f23d3710d 100644
--- a/make/config/jogl/gl-gl3bc.cfg
+++ b/make/config/jogl/gl-if-gl3bc.cfg
@@ -27,8 +27,8 @@ Extends GL3bc GL3
Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
-Include gl3-common.cfg
Include gl3-desktop.cfg
+Include gl-if-gl4-ignores.cfg
# Pick up on-line OpenGL javadoc thanks to user cylab on javagaming.org forums
TagNativeBinding true
diff --git a/make/config/jogl/gl-if-gl4-ignores.cfg b/make/config/jogl/gl-if-gl4-ignores.cfg
new file mode 100644
index 000000000..4948b64df
--- /dev/null
+++ b/make/config/jogl/gl-if-gl4-ignores.cfg
@@ -0,0 +1,13 @@
+#
+# Generated Configuration File
+# Use make-glextension-depignore.sh to update!
+#
+
+#
+# OpenGL 4.x dependencies
+#
+IgnoreExtension GL_VERSION_4_0
+IgnoreExtension GL_VERSION_4_1
+IgnoreExtension GL_VERSION_4_2
+IgnoreExtension GL_ARB_shader_precision
+
diff --git a/make/config/jogl/gl-gl4.cfg b/make/config/jogl/gl-if-gl4.cfg
index 1d4392899..b660bfaac 100644
--- a/make/config/jogl/gl-gl4.cfg
+++ b/make/config/jogl/gl-if-gl4.cfg
@@ -18,12 +18,8 @@ Extends GL4 GL2GL3
Extends GL4 GL3
Include gl-common.cfg
Include gl-common-extensions.cfg
-Include gl3-common.cfg
-Include gl4-common.cfg
Include gl3-desktop.cfg
-IncludeAs CustomJavaCode GL4 gl-if-CustomJavaCode-gl3.java
-
EmitProcAddressTable false
ProcAddressTableClassName DontGenerateProcAddressTableStuff
GetProcAddressTableExpr DontGenerateProcAddressTableStuff
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl2_es2.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2_es2.java
index 0d0daf463..d99f46ec1 100644
--- a/make/config/jogl/gl-impl-CustomJavaCode-gl2_es2.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2_es2.java
@@ -58,3 +58,4 @@
}
}
}
+
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java
index cb0d01312..bcfa64e95 100644
--- a/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java
@@ -363,20 +363,6 @@ native private long dispatch_glMapBuffer(int target, int access, long glProcAddr
native private ByteBuffer newDirectByteBuffer(long addr, int capacity);
- /** Dummy implementation for the ES 2.0 function: <br> <code> void {@native glShaderBinary}(GLint n, const GLuint * shaders, GLenum binaryformat, const void * binary, GLint length); </code> <br> Always throws a GLException! */
- public void glShaderBinary(int n, java.nio.IntBuffer shaders, int binaryformat, java.nio.Buffer binary, int length) {
- throw new GLException("Method \"glShaderBinary\" not available");
- }
-
- /** Dummy implementation for the ES 2.0 function: <br> <code> void {@native glShaderBinary}(GLint n, const GLuint * shaders, GLenum binaryformat, const void * binary, GLint length); </code> <br> Always throws a GLException! */
- public void glShaderBinary(int n, int[] shaders, int shaders_offset, int binaryformat, java.nio.Buffer binary, int length) {
- throw new GLException("Method \"glShaderBinary\" not available");
- }
-
- public void glReleaseShaderCompiler() {
- // nothing to do
- }
-
public void glVertexPointer(GLArrayData array) {
if(array.getComponentNumber()==0) return;
if(array.isVBO()) {
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl4bc.java b/make/config/jogl/gl-impl-CustomJavaCode-gl4bc.java
index aa176738a..ff177ec94 100644
--- a/make/config/jogl/gl-impl-CustomJavaCode-gl4bc.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gl4bc.java
@@ -15,7 +15,6 @@ public void setObjectTracker(GLObjectTracker tracker) {
*/
-
public GL4bcImpl(GLProfile glp, GLContextImpl context) {
this._context = context;
this.bufferSizeTracker = context.getBufferSizeTracker();
@@ -356,20 +355,6 @@ private native long dispatch_glMapNamedBufferEXT(int buffer, int access, long pr
native private ByteBuffer newDirectByteBuffer(long addr, int capacity);
- /** Dummy implementation for the ES 2.0 function: <br> <code> void {@native glShaderBinary}(GLint n, const GLuint * shaders, GLenum binaryformat, const void * binary, GLint length); </code> <br> Always throws a GLException! */
- public void glShaderBinary(int n, java.nio.IntBuffer shaders, int binaryformat, java.nio.Buffer binary, int length) {
- throw new GLException("Method \"glShaderBinary\" not available");
- }
-
- /** Dummy implementation for the ES 2.0 function: <br> <code> void {@native glShaderBinary}(GLint n, const GLuint * shaders, GLenum binaryformat, const void * binary, GLint length); </code> <br> Always throws a GLException! */
- public void glShaderBinary(int n, int[] shaders, int shaders_offset, int binaryformat, java.nio.Buffer binary, int length) {
- throw new GLException("Method \"glShaderBinary\" not available");
- }
-
- public void glReleaseShaderCompiler() {
- // nothing to do
- }
-
public void glVertexPointer(GLArrayData array) {
if(array.getComponentNumber()==0) return;
if(array.isVBO()) {
diff --git a/make/config/jogl/gl2_es2-common.cfg b/make/config/jogl/gl2_es2-common.cfg
new file mode 100644
index 000000000..47067f6f9
--- /dev/null
+++ b/make/config/jogl/gl2_es2-common.cfg
@@ -0,0 +1,23 @@
+
+JavaPrologue glReleaseShaderCompiler if ( !_context.hasNativeES2Methods() ) {
+JavaPrologue glReleaseShaderCompiler return;
+JavaPrologue glReleaseShaderCompiler }
+
+JavaPrologue glShaderBinary if ( !_context.hasNativeES2Methods() ) {
+JavaPrologue glShaderBinary throw new GLException("Method \"glShaderBinary\" not available");
+JavaPrologue glShaderBinary }
+
+JavaPrologue glGetShaderPrecisionFormat if ( !_context.hasNativeES2Methods() ) {
+JavaPrologue glGetShaderPrecisionFormat throw new GLException("Method \"glGetShaderPrecisionFormat\" not available");
+JavaPrologue glGetShaderPrecisionFormat }
+
+JavaPrologue glDepthRangef if ( !_context.hasNativeES2Methods() ) {
+JavaPrologue glDepthRangef glDepthRange( (double)n, (double)f );
+JavaPrologue glDepthRangef return;
+JavaPrologue glDepthRangef }
+
+JavaPrologue glClearDepthf if ( !_context.hasNativeES2Methods() ) {
+JavaPrologue glClearDepthf glClearDepth( (double)d );
+JavaPrologue glClearDepthf return;
+JavaPrologue glClearDepthf }
+
diff --git a/make/config/jogl/gl3-common.cfg b/make/config/jogl/gl3-common.cfg
deleted file mode 100644
index c2cc2968e..000000000
--- a/make/config/jogl/gl3-common.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-
-# >>> OpenGL 3.1
-# See gl-common.cfg !
-# <<< OpenGL 3.1
-
-# >>> OpenGL 3.2
-# Rename extension suffices (if exist) subsumed in OpenGL 3.2 (from OpenGL 3.2 spec, Appendix H.1)
-RenameExtensionIntoCore GL_ARB_vertex_array_bgra
-RenameExtensionIntoCore GL_ARB_draw_elements_base_vertex
-RenameExtensionIntoCore GL_ARB_fragment_coord_conventions
-RenameExtensionIntoCore GL_ARB_provoking_vertex
-RenameExtensionIntoCore GL_ARB_seamless_cube_map
-RenameExtensionIntoCore GL_ARB_texture_multisample
-RenameExtensionIntoCore GL_ARB_depth_clamp
-RenameExtensionIntoCore GL_ARB_geometry_shader4
-RenameExtensionIntoCore GL_ARB_sync
-# <<< OpenGL 3.2
-
-# >>> OpenGL 3.3
-# <<< OpenGL 3.3
-
-# Ignore GL functions that deal with explicit pointer values in such a
-# way that we cannot implement the functionality in Java
-Ignore glMultiDrawElementsBaseVertex
-
-Opaque long GLsync
-
diff --git a/make/config/jogl/gl4-common.cfg b/make/config/jogl/gl4-common.cfg
deleted file mode 100644
index 2c119da30..000000000
--- a/make/config/jogl/gl4-common.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-# >>> OpenGL 4.0
-# <<< OpenGL 4.0
-
-
diff --git a/make/config/jogl/make-glextension-depignore.sh b/make/config/jogl/make-glextension-depignore.sh
new file mode 100644
index 000000000..98db66a84
--- /dev/null
+++ b/make/config/jogl/make-glextension-depignore.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+thisdir=`pwd`
+registry=/data/docs/ComputerIT/3D_AV_GFX/gl/registry/specs
+classdirpos=9
+dirdep=$thisdir/tmp_glext_dep
+
+gl3ignores=$thisdir/gl-if-gl3-ignores.cfg
+gl4ignores=$thisdir/gl-if-gl4-ignores.cfg
+
+rm -rf $dirdep
+mkdir -p $dirdep
+
+cd $registry
+
+# We allow OpenGL 3.0 within GL2
+grep -RIl "^[ \t]*OpenGL 3\.[1234] is required" . > $dirdep/ext-req-3_x.txt
+grep -RIl "^[ \t]*OpenGL 3\.[1234] and GLSL .* are required" . >> $dirdep/ext-req-3_x.txt
+grep -RIl "^[ \t]*OpenGL 4\.. is required" . > $dirdep/ext-req-4_x.txt
+grep -RIl "^[ \t]*OpenGL 4\.. and GLSL .* are required" . >> $dirdep/ext-req-4_x.txt
+
+cd $thisdir
+
+function dump_ignore_ext() {
+ infile=$1
+ for i in `cat $infile` ; do
+ class=`echo $i | awk -F '/' ' { print \$2 } ' `
+ extname="GL_"$class"_"`basename $i .txt`
+ echo IgnoreExtension $extname
+ done
+}
+
+function dump_ignore_header() {
+ echo "#"
+ echo "# Generated Configuration File"
+ echo "# Use make-glextension-depignore.sh to update!"
+ echo "#"
+ echo
+}
+
+function dump_ignore_ext_gl3() {
+ echo "#"
+ echo "# OpenGL 3.x dependencies"
+ echo "#"
+ echo "# We allow GL_VERSION_3_0 within GL2"
+ echo "IgnoreExtension GL_VERSION_3_1"
+ echo "IgnoreExtension GL_VERSION_3_2"
+ echo "IgnoreExtension GL_VERSION_3_3"
+ echo "IgnoreExtension GL_VERSION_3_4"
+ dump_ignore_ext $dirdep/ext-req-3_x.txt
+ echo
+}
+
+function dump_ignore_ext_gl4() {
+ echo "#"
+ echo "# OpenGL 4.x dependencies"
+ echo "#"
+ echo "IgnoreExtension GL_VERSION_4_0"
+ echo "IgnoreExtension GL_VERSION_4_1"
+ echo "IgnoreExtension GL_VERSION_4_2"
+ dump_ignore_ext $dirdep/ext-req-4_x.txt
+ echo
+}
+
+dump_ignore_header > $gl3ignores
+dump_ignore_ext_gl3 >> $gl3ignores
+
+dump_ignore_header > $gl4ignores
+dump_ignore_ext_gl4 >> $gl4ignores
+