From 3a0d7703da32e9a5ddf08a334f18588a78038d88 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Mon, 15 Jul 2013 13:39:22 +0200 Subject: Add Support for GL 4.3 (Bug 716) and ES 3.0 (Bug 717) ES3 / GL4.3: - Update all EGL, GLX, WGL and GL (desktop and mobile) khronos headers to latest version. - GL3/gl3* -> GL/glcorearb* - Explicitly preserve ES2_compatibility and ES3_compatibility in header, most extension grouping was removed in new headers. - Always load all GLHeader to ensure proper extension association across all profiles. - Unified method signatures - Added GL_EXT_map_buffer_range to core - Using common 'glMapBufferImpl(..)' for all glMapBuffer(..) and glMapBufferRange(..) impl. - Init necessary fields of GL instances via 'finalizeInit()' called by reflection, if exist. This allows removing initialization checks, i.e. for all buffer validations. - BuildStaticGLInfo: Can handle new GL header structure, i.e. one CPP extenstion block incl. define + funcs. - GLJavaMethodBindingEmitter: Simply print the - No GL duplication due to new intermediate interfaces, see below - OO lineare inheritance (Added GL2ES3, GL3ES3 and GL4ES3 intemediates): GLBase - GL - GL2ES2 - GLES2 GLBase - GL - GL2ES2 - GL2GL3 - [ GL2, GL3 ] GLBase - GL - GL2ES2 - GL2ES3 - GL3ES3 - [ GL3 ] GLBase - GL - GL2ES2 - GL2ES3 - GL3ES3 - GL4ES3 - [ GLES3, GL4, .. ] - Expose 'usable' intermediate interfaces GL3ES3 and GL4ES3 in GLBase/GLProfile/GLContext via is*() and get*(). - GLContext*: - isGL3core() is true if [ GL4, GL3, GLES3 ] (added GLES3) - Added ctxProfile argument to allow handling ES versions: - getMaxMajor(..), getMaxMinor(..), isValidGLVersion(..) and decrementGLVersion(..) - mapGLVersions(..) prepared for ES ARB/KHR validation - EGLContext checks ES3 (via old ctx's GL_VERSION) - ExtensionAvailabilityCache adds GL_ES_Version_X_Y for ES. - Prelim tests w/ Mesa 9.1.3 GL Version 3.0 (ES profile, ES2 compat, ES3 compat, FBO, hardware) - OpenGL ES 3.0 Mesa 9.1.3 [GL 3.0.0, vendor 9.1.3 (Mesa 9.1.3)] - TODO: - Use KHR_create_context in EGLContext.createContextARBImpl(..) - More tests (Mobile, ..) +++ Misc: - GLContext*: - Complete glAllocateMemoryNV w/ glFreeMemoryNV. --- make/config/jogl/gl-if-gl3bc.cfg | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'make/config/jogl/gl-if-gl3bc.cfg') diff --git a/make/config/jogl/gl-if-gl3bc.cfg b/make/config/jogl/gl-if-gl3bc.cfg index f07a9a417..bca3d61e6 100644 --- a/make/config/jogl/gl-if-gl3bc.cfg +++ b/make/config/jogl/gl-if-gl3bc.cfg @@ -5,6 +5,8 @@ NativeOutputDir gensrc/native/jogl/gl3 ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES1.java ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.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/GL2GL3.java ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2.java ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL3.java @@ -20,6 +22,8 @@ JavaClass GL3bc #Extends GL3bc GL #Extends GL3bc GL2ES1 #Extends GL3bc GL2ES2 +#Extends GL3bc GL2ES3 +#Extends GL3bc GL3ES3 #Extends GL3bc GL2GL3 Extends GL3bc GL2 Extends GL3bc GL3 @@ -30,6 +34,8 @@ Include gl-desktop.cfg Include gl3-desktop.cfg Include gl-if-gl4-ignores.cfg +IncludeAs CustomJavaCode GL2 gl-if-CustomJavaCode-gl_compat.java + # Pick up on-line OpenGL javadoc thanks to user cylab on javagaming.org forums TagNativeBinding true -- cgit v1.2.3 From 4e83a5df7a851cc33d85f76381f058256906ad4c Mon Sep 17 00:00:00 2001 From: Sven Gothel 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 ', 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/build-jogl.xml | 19 ++++- make/config/jogl/gl-common-gpubufferonly.cfg | 50 +++++++++++ make/config/jogl/gl-es3-impl.cfg | 91 ++++++++++++++++++++ make/config/jogl/gl-es3.cfg | 98 ---------------------- make/config/jogl/gl-gl4bc.cfg | 3 + make/config/jogl/gl-if-es2.cfg | 3 + make/config/jogl/gl-if-es3.cfg | 39 +++++++++ make/config/jogl/gl-if-gl.cfg | 1 + make/config/jogl/gl-if-gl2.cfg | 3 + make/config/jogl/gl-if-gl2_es1.cfg | 2 + make/config/jogl/gl-if-gl2_es2.cfg | 1 + make/config/jogl/gl-if-gl2_es3.cfg | 1 + make/config/jogl/gl-if-gl2_gl3.cfg | 1 + make/config/jogl/gl-if-gl3.cfg | 1 + make/config/jogl/gl-if-gl3bc.cfg | 2 +- make/config/jogl/gl-if-gl4.cfg | 1 + make/config/jogl/gl-if-gl4_es3.cfg | 1 + make/config/jogl/gl-impl-CustomJavaCode-gles3.java | 2 +- make/config/jogl/gl2-common-cpubufferJavaCode.java | 13 +++ .../jogl/gl2_es1-common-cpubufferJavaCode.java | 4 + .../jogl/gl2_es2-common-cpubufferJavaCode.java | 4 + .../jogl/gl3bc-common-cpubufferJavaCode.java | 13 +++ .../jogl/gl4bc-common-cpubufferJavaCode.java | 21 +++++ .../com/jogamp/gluegen/opengl/GLConfiguration.java | 8 ++ .../com/jogamp/gluegen/opengl/GLEmitter.java | 25 ++++-- .../com/jogamp/opengl/util/ImmModeSink.java | 6 +- src/jogl/classes/javax/media/opengl/GLContext.java | 14 +++- src/jogl/classes/javax/media/opengl/GLProfile.java | 4 +- .../util/glsl/fixedfunc/FixedFuncPipeline.java | 15 +++- 29 files changed, 328 insertions(+), 118 deletions(-) create mode 100644 make/config/jogl/gl-common-gpubufferonly.cfg create mode 100644 make/config/jogl/gl-es3-impl.cfg delete mode 100644 make/config/jogl/gl-es3.cfg create mode 100644 make/config/jogl/gl-if-es3.cfg create mode 100644 make/config/jogl/gl2-common-cpubufferJavaCode.java create mode 100644 make/config/jogl/gl2_es1-common-cpubufferJavaCode.java create mode 100644 make/config/jogl/gl2_es2-common-cpubufferJavaCode.java create mode 100644 make/config/jogl/gl3bc-common-cpubufferJavaCode.java create mode 100644 make/config/jogl/gl4bc-common-cpubufferJavaCode.java (limited to 'make/config/jogl/gl-if-gl3bc.cfg') diff --git a/make/build-jogl.xml b/make/build-jogl.xml index e83f33603..8c30bb038 100644 --- a/make/build-jogl.xml +++ b/make/build-jogl.xml @@ -602,11 +602,24 @@ - + + + + + + + + + @@ -641,7 +654,7 @@ - +