summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2009-08-05 11:55:14 -0700
committerSven Gothel <[email protected]>2009-08-05 11:55:14 -0700
commit0e998e8416b38b084b517c299061856b7ff963d7 (patch)
tree2cc191d7ab3d42b0316838d756019f45b62b0061
parentd741053ed1a422b75d6aeac28be7c5cdba4c4564 (diff)
Update GlueGen to 7dc9c5601d5689dcbc003ca51cfe826942ea3e6b (latest)
- Fixes for OpenGL 3.2 - More strict define/function checking - Better documentation in source code: extension relation - GL extension marker exclusion is done by GlueGen now - Adapted gluegen cfg files Added OpenGL 3.2 extensions for GL3 Revalidation of all OpenGL 2.0/3.0/3.1 and 3.2 extensions GL2GL3 based on OpenGL 2.0/3.0 headers EGL shares common egl-common.cfg file Removed experimental java system property 'jogl.GLContext.3_2', try a 3.2 context in case of GL3. X11GLXContext: - Always try to make a created context current, to verify it's usability. This is different than under WGL. - Temporary removed usage: GLX.GLX_CONTEXT_PROFILE_MASK_ARB NV driver bug.
-rw-r--r--make/build-jogl.xml6
-rw-r--r--make/config/jogl/cgl-macosx.cfg4
-rwxr-xr-xmake/config/jogl/cglext.cfg4
-rw-r--r--make/config/jogl/egl-common.cfg46
-rwxr-xr-xmake/config/jogl/egl.cfg22
-rwxr-xr-xmake/config/jogl/eglext.cfg82
-rw-r--r--make/config/jogl/gl-common-extensions.cfg10
-rw-r--r--make/config/jogl/gl-common-gl2.cfg8
-rw-r--r--make/config/jogl/gl-common.cfg101
-rwxr-xr-xmake/config/jogl/gl-desktop.cfg3
-rw-r--r--make/config/jogl/gl-gl2.cfg2
-rw-r--r--make/config/jogl/gl-gl2es12.cfg2
-rw-r--r--make/config/jogl/gl-gl3-set.cfg (renamed from make/config/jogl/gl-gl2-set.cfg)7
-rw-r--r--make/config/jogl/gl-gl3.cfg14
-rw-r--r--make/config/jogl/gl-if-CustomJavaCode-gl2.java21
-rw-r--r--make/config/jogl/gl-if-CustomJavaCode-gl3.java8
-rw-r--r--make/config/jogl/gl-if-gl2_gl3.cfg20
-rwxr-xr-xmake/config/jogl/gl-impl-CustomJavaCode-gles1.java2
-rwxr-xr-xmake/config/jogl/gl-impl-CustomJavaCode-gles2.java2
-rw-r--r--make/config/jogl/gl3-common.cfg24
-rwxr-xr-xmake/config/jogl/gl3-desktop.cfg1
-rw-r--r--make/config/jogl/glu-common.cfg2
-rw-r--r--make/config/jogl/glx-x11.cfg5
-rwxr-xr-xmake/config/jogl/glxext.cfg5
-rw-r--r--make/config/jogl/wgl-win32.cfg7
-rw-r--r--make/config/jogl/wglext.cfg7
-rwxr-xr-xmake/stub_includes/egl/EGL/egl.h7
-rwxr-xr-xmake/stub_includes/egl/EGL/eglext.h58
-rw-r--r--make/stub_includes/opengl/GL/glext.h74
-rw-r--r--make/stub_includes/opengl/GL/glu.h19
-rw-r--r--make/stub_includes/opengl/GL/glx.h10
-rw-r--r--make/stub_includes/opengl/GL/glxext.h11
-rwxr-xr-xmake/stub_includes/opengl/GL3/gl3.h4
-rw-r--r--make/stub_includes/opengl/GL3/gl3ext.h309
-rwxr-xr-xmake/stub_includes/opengl/GLES/gl.h10
-rwxr-xr-xmake/stub_includes/opengl/GLES/glext.h2
-rwxr-xr-xmake/stub_includes/opengl/GLES2/gl2.h8
-rwxr-xr-xmake/stub_includes/opengl/GLES2/gl2ext.h11
-rw-r--r--make/stub_includes/opengl/gl2es12.c5
-rw-r--r--make/stub_includes/opengl/gl3-64bit-types.h41
-rw-r--r--make/stub_includes/opengl/glu-impl.c3
-rw-r--r--make/stub_includes/win32/wingdi.h9
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java1
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java2
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java2
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java12
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java69
47 files changed, 738 insertions, 344 deletions
diff --git a/make/build-jogl.xml b/make/build-jogl.xml
index e5bb1ab38..846779fed 100644
--- a/make/build-jogl.xml
+++ b/make/build-jogl.xml
@@ -640,14 +640,14 @@
<target name="java.generate.gl2_gl3_if">
<echo message="Generating GL2_GL3 interface" />
<antcall target="java.generate.copy2temp" inheritRefs="true" />
- <gluegen src="${stub.includes.opengl}/gl2.c"
+ <gluegen src="${stub.includes.opengl}/gl3.c"
outputRootDir="${build}"
- config="${config}/gl-gl2-set.cfg"
+ config="${config}/gl-gl3-set.cfg"
includeRefid="stub.includes.fileset.all.gl2"
emitter="com.sun.gluegen.opengl.GLEmitter">
<classpath refid="gluegen.classpath" />
</gluegen>
- <gluegen src="${stub.includes.opengl}/gl3.c"
+ <gluegen src="${stub.includes.opengl}/gl2.c"
outputRootDir="${build}"
config="${config}/gl-if-gl2_gl3.cfg"
includeRefid="stub.includes.fileset.all.gl2"
diff --git a/make/config/jogl/cgl-macosx.cfg b/make/config/jogl/cgl-macosx.cfg
index 780afcf5b..54b4be171 100644
--- a/make/config/jogl/cgl-macosx.cfg
+++ b/make/config/jogl/cgl-macosx.cfg
@@ -6,10 +6,12 @@ NativeOutputDir gensrc/native/jogl/MacOSX
Package com.sun.opengl.impl.macosx.cgl
JavaClass CGL
Style allstatic
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
+GLHeader GL/cglext.h
+
Opaque long void *
# Opaque directives for low-level CGL binding (for Java2D/JOGL bridge)
diff --git a/make/config/jogl/cglext.cfg b/make/config/jogl/cglext.cfg
index 4000ecb2b..3bd027c84 100755
--- a/make/config/jogl/cglext.cfg
+++ b/make/config/jogl/cglext.cfg
@@ -11,9 +11,11 @@ Style InterfaceAndImpl
JavaClass CGLExt
ImplPackage com.sun.opengl.impl.macosx.cgl
ImplJavaClass CGLExtImpl
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-desktop.cfg
+GLHeader GL/cglext.h
+
EmitProcAddressTable true
ProcAddressTableClassName CGLExtProcAddressTable
GetProcAddressTableExpr _context.getCGLExtProcAddressTable()
diff --git a/make/config/jogl/egl-common.cfg b/make/config/jogl/egl-common.cfg
new file mode 100644
index 000000000..bcda00b07
--- /dev/null
+++ b/make/config/jogl/egl-common.cfg
@@ -0,0 +1,46 @@
+# Inform the glue code generator of the association between #defines
+# and functions and the extensions in which they are defined
+GLHeader EGL/egl.h
+GLHeader EGL/eglext.h
+
+# Imports needed by all glue code
+Import java.nio.*
+Import java.util.*
+Import javax.media.opengl.*
+Import javax.media.opengl.fixedfunc.*
+Import com.sun.opengl.impl.*
+
+# Treat all of the EGL types as opaque longs
+# Opaque long EGLConfig
+Opaque long EGLContext
+Opaque long EGLDisplay
+Opaque long EGLSurface
+Opaque long EGLNativeDisplayType
+Opaque long EGLNativeWindowType
+Opaque long EGLNativePixmapType
+Opaque long EGLClientBuffer
+Opaque long EGLImageKHR
+#Opaque long EGLPerfMonitorNV
+#Opaque long EGLPerfCounterNV
+#Opaque long EGLPerfMarkerNV
+Opaque long EGLSyncKHR
+Opaque long NativeSyncKHR
+Opaque boolean EGLBoolean
+
+# Make eglGetProcAddress return an opaque long
+Opaque long __EGLFuncPtr
+
+# Implement the first argument to eglGetProcAddress as String instead
+# of byte[]
+ArgumentIsString eglGetProcAddress 0
+ReturnsString eglQueryString
+
+# 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
+# depend on the presence of an import library for a particular device
+ForceProcAddressGen __ALL__
+
+# Also force the calling conventions of the locally generated function
+# pointer typedefs for these routines to EGLAPIENTRY
+LocalProcAddressCallingConvention __ALL__ EGLAPIENTRY
+
diff --git a/make/config/jogl/egl.cfg b/make/config/jogl/egl.cfg
index 6457ab21a..26979fb6d 100755
--- a/make/config/jogl/egl.cfg
+++ b/make/config/jogl/egl.cfg
@@ -7,40 +7,20 @@ Package com.sun.opengl.impl.egl
JavaClass EGL
Style allstatic
# Shouldn't matter which one of these we pick up
+Include egl-common.cfg
HierarchicalNativeOutput false
-Include gl-common.cfg
# Use a ProcAddressTable so we dynamically look up the routines
EmitProcAddressTable true
ProcAddressTableClassName EGLProcAddressTable
GetProcAddressTableExpr _table
-# Translate EGLBoolean as Java boolean
-Opaque boolean EGLBoolean
-
# Implement the first argument to eglGetProcAddress as String instead
# of byte[]
ArgumentIsString eglGetProcAddress 0
ReturnsString eglQueryString
-# Make eglGetProcAddress return an opaque long
-Opaque long __EGLFuncPtr
-
-# 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
-# depend on the presence of an import library for a particular device
-ForceProcAddressGen __ALL__
-
-# Treat all of the EGL types as opaque longs
-Opaque long EGLContext
-Opaque long EGLDisplay
-Opaque long EGLSurface
-Opaque long EGLNativeDisplayType
-Opaque long EGLNativeWindowType
-Opaque long EGLNativePixmapType
-Opaque long EGLClientBuffer
-
CustomCCode #include <EGL/egl.h>
Include ../intptr.cfg
diff --git a/make/config/jogl/eglext.cfg b/make/config/jogl/eglext.cfg
index 857eb5804..fedff35e9 100755
--- a/make/config/jogl/eglext.cfg
+++ b/make/config/jogl/eglext.cfg
@@ -9,54 +9,17 @@ JavaClass EGLExt
ImplPackage com.sun.opengl.impl.egl
ImplJavaClass EGLExtImpl
# Shouldn't matter which one of these we pick up
+Include egl-common.cfg
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/sun/opengl/impl/egl/EGL.java
+
HierarchicalNativeOutput false
-Include gl-common.cfg
# Use a ProcAddressTable so we dynamically look up the routines
EmitProcAddressTable true
ProcAddressTableClassName EGLExtProcAddressTable
GetProcAddressTableExpr _context.getEGLExtProcAddressTable()
-# Translate EGLBoolean as Java boolean
-Opaque boolean EGLBoolean
-
-# Implement the first argument to eglGetProcAddress as String instead
-# of byte[]
-ArgumentIsString eglGetProcAddress 0
-ReturnsString eglQueryString
-
-# Make eglGetProcAddress return an opaque long
-Opaque long __EGLFuncPtr
-
-# 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
-# depend on the presence of an import library for a particular device
-ForceProcAddressGen __ALL__
-
-# Also force the calling conventions of the locally generated function
-# pointer typedefs for these routines to EGLAPIENTRY
-LocalProcAddressCallingConvention __ALL__ EGLAPIENTRY
-
-# Treat all of the EGL types as opaque longs
-# Opaque long EGLConfig
-Opaque long EGLContext
-Opaque long EGLDisplay
-Opaque long EGLSurface
-Opaque long EGLNativeDisplayType
-Opaque long EGLNativeWindowType
-Opaque long EGLNativePixmapType
-Opaque long EGLClientBuffer
-Opaque long EGLImageKHR
-#Opaque long EGLPerfMonitorNV
-#Opaque long EGLPerfCounterNV
-#Opaque long EGLPerfMarkerNV
-Opaque long EGLSyncKHR
-Opaque long NativeSyncKHR
-
-# Opaque long EGLClientBuffer
-
CustomCCode /* Define EGL_EGLEXT_PROTOTYPES so that the EGL extension prototypes in
CustomCCode "eglext.h" are parsed. */
CustomCCode #define EGL_EGLEXT_PROTOTYPES
@@ -66,9 +29,14 @@ CustomCCode #include <EGL/eglext.h>
Include ../intptr.cfg
# There are some #defines in eglext.h that GlueGen and PCPP don't currently handle
+CustomJavaCode EGLExt /** Part of <code>EGL_KHR_image</code> */
CustomJavaCode EGLExt public static final long EGL_NO_IMAGE = 0;
+CustomJavaCode EGLExt /** Part of <code>EGL_NV_perfmon</code> */
CustomJavaCode EGLExt public static final long EGL_NO_PERFMONITOR = 0;
+CustomJavaCode EGLExt /** Part of <code>EGL_NV_perfmon</code> */
CustomJavaCode EGLExt public static final long EGL_DEFAULT_PERFMARKER = 0;
+CustomJavaCode EGLExt /** Part of <code>EGL_KHR_sync</code> */
+CustomJavaCode EGLExt public static final long EGL_FOREVER_KHR = 0xFFFFFFFFFFFFFFFFL ;
CustomJavaCode EGLExt public boolean isFunctionAvailable(String glFunctionName);
CustomJavaCode EGLExt public boolean isExtensionAvailable(String glExtensionName);
@@ -88,39 +56,3 @@ CustomJavaCode EGLExtImpl }
CustomJavaCode EGLExtImpl private EGLContext _context;
-# These Ignores cause the core EGL routines to be ignored from the
-# EGLExt interface and EGLExtImpl implementing class.
-Ignore eglBindAPI
-Ignore eglBindTexImage
-Ignore eglChooseConfig
-Ignore eglCopyBuffers
-Ignore eglCreateContext
-Ignore eglCreatePbufferFromClientBuffer
-Ignore eglCreatePbufferSurface
-Ignore eglCreatePixmapSurface
-Ignore eglCreateWindowSurface
-Ignore eglDestroyContext
-Ignore eglDestroySurface
-Ignore eglGetConfigAttrib
-Ignore eglGetConfigs
-Ignore eglGetCurrentContext
-Ignore eglGetCurrentDisplay
-Ignore eglGetCurrentSurface
-Ignore eglGetDisplay
-Ignore eglGetError
-Ignore eglGetProcAddress
-Ignore eglInitialize
-Ignore eglMakeCurrent
-Ignore eglQueryAPI
-Ignore eglQueryContext
-Ignore eglQueryString
-Ignore eglQuerySurface
-Ignore eglReleaseTexImage
-Ignore eglReleaseThread
-Ignore eglSurfaceAttrib
-Ignore eglSwapBuffers
-Ignore eglSwapInterval
-Ignore eglTerminate
-Ignore eglWaitClient
-Ignore eglWaitGL
-Ignore eglWaitNative
diff --git a/make/config/jogl/gl-common-extensions.cfg b/make/config/jogl/gl-common-extensions.cfg
index fb46e43ca..e28ff43c8 100644
--- a/make/config/jogl/gl-common-extensions.cfg
+++ b/make/config/jogl/gl-common-extensions.cfg
@@ -1,8 +1,8 @@
-# Note: we keep the Apple, ATI and NVidia extensions since they are generally
+# Note: we keep the Apple, AMD/ATI and NVidia extensions since they are generally
# the most useful and up-to-date
DropUniqVendorExtensions 3DFX
-DropUniqVendorExtensions AMD
+# DropUniqVendorExtensions AMD
# DropUniqVendorExtensions APPLE
# DropUniqVendorExtensions ATI
DropUniqVendorExtensions HP
@@ -51,11 +51,6 @@ IgnoreExtension GL_NV_present_video
IgnoreExtension GL_NV_coverage_sample
IgnoreExtension GL_NV_framebuffer_vertex_attrib_array
-# Remove extension suffixes from extensions which are common
-RenameExtensionIntoCore GL_ARB_framebuffer_object
-IgnoreExtension GL_EXT_framebuffer_object
-RenameExtensionIntoCore GL_OES_framebuffer_object
-
# Remove extension suffixes from extensions which are common between OpenGL and OpenGL ES
RenameExtensionIntoCore GL_ARB_half_float_pixel
RenameExtensionIntoCore GL_ARB_point_sprite
@@ -65,6 +60,7 @@ RenameExtensionIntoCore GL_OES_blend_subtract
RenameExtensionIntoCore GL_OES_compressed_paletted_texture
RenameExtensionIntoCore GL_OES_depth24
RenameExtensionIntoCore GL_OES_depth32
+RenameExtensionIntoCore GL_OES_framebuffer_object
RenameExtensionIntoCore GL_OES_mapbuffer
RenameExtensionIntoCore GL_OES_point_sprite
RenameExtensionIntoCore GL_OES_rgb8_rgba8
diff --git a/make/config/jogl/gl-common-gl2.cfg b/make/config/jogl/gl-common-gl2.cfg
deleted file mode 100644
index 4d86d74cd..000000000
--- a/make/config/jogl/gl-common-gl2.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-# This .cfg file provides common options used among all GL glue code
-# generated for Jogl on Windows.
-
-HierarchicalNativeOutput false
-Include gl-common.cfg
-
-# XID needs to be treated as a long for 32/64 bit compatibility
-Opaque long XID
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
index efa4c7bdd..4d3a05d63 100644
--- a/make/config/jogl/gl-common.cfg
+++ b/make/config/jogl/gl-common.cfg
@@ -1,6 +1,8 @@
# This .cfg file provides common options used among all glue code
# generated for Jogl on all platforms.
+HierarchicalNativeOutput false
+
# Raise GLException instead of RuntimeException in glue code
RuntimeExceptionType GLException
UnsupportedExceptionType GLException
@@ -38,7 +40,6 @@ Ignore glTracePointerRangeMESA
# Manually implement glMapBuffer as the size of the returned buffer
# can only be computed by calling another routine
ManuallyImplement glMapBuffer
-ManuallyImplement glMapBufferOES
# Ignore the ATI_map_object_buffer extension for now unless someone
# claims they need it, as it will undoubtedly require a similar
@@ -49,36 +50,6 @@ Ignore glUnmapObjectBufferATI
# Ignore some GL functions that have outgoing void** parameters; we cannot yet deal with them
Ignore glGetVariantPointervEXT
-# Don't output #defines of GL name strings as constants, because we
-# don't need them java-side.
-# Format of name strings is found at:
-# http://oss.sgi.com/projects/ogl-sample/registry/doc/template.txt
-
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_EXT_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_ARB_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_OES_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_PGI_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SGI_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SGIS_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SGIX_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_MESA_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_HP_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_ATI_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_NV_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_IBM_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_WIN_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_REND_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_APPLE_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_INTEL_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_INGR_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SUN_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SUNX_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_3DFX_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_OML_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_I3D_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_S3_.+
-Ignore GL_KTX_buffer_region
-
# FIXME: these extensions require either a handle to a device context
# or take void** parameters or both. Until we think through the
# semantics of each of these individually we need to disable them.
@@ -234,47 +205,79 @@ IgnoreExtension GL_EXT_texture_sRGB
# <<< OpenGL 2.1
# >>> OpenGL 3.0
-# Ignore extensions subsumed in OpenGL 3.0 (from OpenGL 3.0 spec, Appendix N)
-IgnoreExtension GL_EXT_gpu_shader4
+# Ignore/Rename extensions subsumed in OpenGL 3.0 (from OpenGL 3.0 spec, Appendix N)
+RenameExtensionIntoCore GL_EXT_gpu_shader4
-IgnoreExtension GL_NV_conditional_render
+RenameExtensionIntoCore GL_NV_conditional_render
-#Not promoted in header files: GL_APPLE_flush_buffer_range
+RenameExtensionIntoCore GL_APPLE_flush_buffer_range
-IgnoreExtension GL_ARB_color_buffer_float
-#Not promoted in header files: GL_NV_depth_buffer_float
-IgnoreExtension GL_ARB_texture_float
-IgnoreExtension GL_EXT_packed_float
-IgnoreExtension GL_EXT_texture_shared_exponent
+RenameExtensionIntoCore GL_ARB_color_buffer_float
+# gl.h uses GL_ARB_depth_buffer_float
+RenameExtensionIntoCore GL_ARB_depth_buffer_float
+IgnoreExtension GL_NV_depth_buffer_float
+RenameExtensionIntoCore GL_ARB_texture_float
+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
-# GL_NV_half_float, GL_NV_half_float_pixel: these are also not usable for Java ..
-IgnoreExtension GL_NV_half_float
-IgnoreExtension GL_NV_half_float_pixel
+RenameExtensionIntoCore GL_NV_half_float
+RenameExtensionIntoCore GL_ARB_half_float_pixel
-IgnoreExtension GL_EXT_framebuffer_multisample
-IgnoreExtension GL_EXT_framebuffer_blit
+RenameExtensionIntoCore GL_EXT_framebuffer_multisample
+RenameExtensionIntoCore GL_EXT_framebuffer_blit
#Big gap of promoted tokens and functions: GL_EXT_texture_integer
+RenameExtensionIntoCore GL_EXT_texture_integer
-IgnoreExtension GL_EXT_texture_array
+RenameExtensionIntoCore GL_EXT_texture_array
-IgnoreExtension GL_EXT_packed_depth_stencil
+RenameExtensionIntoCore GL_EXT_packed_depth_stencil
-#Not promoted in header files: GL_EXT_draw_buffers2
+RenameExtensionIntoCore GL_EXT_draw_buffers2
+# gl.h uses GL_ARB_texture_compression_rgtc
+RenameExtensionIntoCore GL_ARB_texture_compression_rgtc
IgnoreExtension GL_EXT_texture_compression_rgtc
-IgnoreExtension GL_EXT_transform_feedback
+RenameExtensionIntoCore GL_EXT_transform_feedback
IgnoreExtension GL_NV_transform_feedback
+# gl.h uses GL_ARB_vertex_array_object
+RenameExtensionIntoCore GL_ARB_vertex_array_object
IgnoreExtension GL_APPLE_vertex_array_object
+# gl.h uses GL_ARB_framebuffer_sRGB
+RenameExtensionIntoCore GL_ARB_framebuffer_sRGB
IgnoreExtension GL_EXT_framebuffer_sRGB
+RenameExtensionIntoCore GL_ARB_map_buffer_range
+
# <<< OpenGL 3.0
+# >>> OpenGL 3.1
+# Rename extension suffices (if exist) subsumed in OpenGL 3.1 (from OpenGL 3.1 spec, Appendix G.1)
+# We alias 3.1 subsumed extension even for GL2, due to the convenience of the common GL2GL3 profile!
+RenameExtensionIntoCore GL_ARB_draw_instanced
+IgnoreExtension GL_EXT_draw_instanced
+RenameExtensionIntoCore GL_ARB_copy_buffer
+RenameExtensionIntoCore 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
+RenameExtensionIntoCore GL_EXT_texture_rectangle
+IgnoreExtension GL_NV_texture_rectangle
+RenameExtensionIntoCore GL_ARB_uniform_buffer_object
+# <<< OpenGL 3.1
+
# Ignore a few obsolete versions of extensions that have been subsumed into the core or ARB extensions
diff --git a/make/config/jogl/gl-desktop.cfg b/make/config/jogl/gl-desktop.cfg
index d6a610c59..7e500a4f0 100755
--- a/make/config/jogl/gl-desktop.cfg
+++ b/make/config/jogl/gl-desktop.cfg
@@ -26,6 +26,9 @@ Opaque boolean BOOL
Opaque long PROC
Opaque long void **
+# XID needs to be treated as a long for 32/64 bit compatibility
+Opaque long XID
+
#
# Directives needed when processing cglext.h on MacOSX and other platforms
#
diff --git a/make/config/jogl/gl-gl2.cfg b/make/config/jogl/gl-gl2.cfg
index 7b689093a..50574598a 100644
--- a/make/config/jogl/gl-gl2.cfg
+++ b/make/config/jogl/gl-gl2.cfg
@@ -26,7 +26,7 @@ Implements GL2Impl GL
Implements GL2Impl GL2ES1
Implements GL2Impl GL2ES2
Implements GL2Impl GL2GL3
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
diff --git a/make/config/jogl/gl-gl2es12.cfg b/make/config/jogl/gl-gl2es12.cfg
index 36bab82ed..9e36da2ea 100644
--- a/make/config/jogl/gl-gl2es12.cfg
+++ b/make/config/jogl/gl-gl2es12.cfg
@@ -18,7 +18,7 @@ Implements GL2ES12Impl GL
Implements GL2ES12Impl GL2ES1
Implements GL2ES12Impl GL2ES2
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
diff --git a/make/config/jogl/gl-gl2-set.cfg b/make/config/jogl/gl-gl3-set.cfg
index bce9cc731..ac1edac47 100644
--- a/make/config/jogl/gl-gl2-set.cfg
+++ b/make/config/jogl/gl-gl3-set.cfg
@@ -3,10 +3,11 @@ JavaOutputDir ../../build-temp/gluegen-set
Package javax.media.opengl
Style InterfaceOnly
-JavaClass GL2Set
-Include gl-common-gl2.cfg
+JavaClass GL3Set
+Include gl-common.cfg
Include gl-common-extensions.cfg
-Include gl-desktop.cfg
+Include gl3-common.cfg
+Include gl3-desktop.cfg
EmitProcAddressTable false
ProcAddressTableClassName DontGenerateProcAddressTableStuff
diff --git a/make/config/jogl/gl-gl3.cfg b/make/config/jogl/gl-gl3.cfg
index c5354cba4..576cd7cad 100644
--- a/make/config/jogl/gl-gl3.cfg
+++ b/make/config/jogl/gl-gl3.cfg
@@ -20,14 +20,26 @@ Implements GL3Impl GLBase
Implements GL3Impl GL
Implements GL3Impl GL2ES2
Implements GL3Impl GL2GL3
-Include gl-common-gl2.cfg
+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
+
EmitProcAddressTable true
ProcAddressTableClassName GL3ProcAddressTable
GetProcAddressTableExpr ((GL3ProcAddressTable)_context.getGLProcAddressTable())
+# 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
+# depend on the presence of an import library for a particular device
+ForceProcAddressGen __ALL__
+
+# Also force the calling conventions of the locally generated function
+# pointer typedefs for these routines to APIENTRY
+LocalProcAddressCallingConvention __ALL__ APIENTRY
+
# Pick up on-line OpenGL javadoc thanks to user cylab on javagaming.org forums
TagNativeBinding true
diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl2.java b/make/config/jogl/gl-if-CustomJavaCode-gl2.java
index fe6388cbe..4d1d0e048 100644
--- a/make/config/jogl/gl-if-CustomJavaCode-gl2.java
+++ b/make/config/jogl/gl-if-CustomJavaCode-gl2.java
@@ -10,30 +10,9 @@ 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_ARB_color_buffer_float promotion to 3.0 core */
-public static final int GL_RGBA_FLOAT_MODE_ARB = 0x8820;
-
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_ALPHA32F_ARB = 0x8816;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_INTENSITY32F_ARB = 0x8817;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_LUMINANCE32F_ARB = 0x8818;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_ALPHA16F_ARB = 0x881C;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_INTENSITY16F_ARB = 0x881D;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_LUMINANCE16F_ARB = 0x881E;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_LUMINANCE_ALPHA16F_ARB = 0x881F;
-
/** 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_texture_array promotion to 3.0 core */
-public static final int GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E;
-
/** 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-gl3.java b/make/config/jogl/gl-if-CustomJavaCode-gl3.java
new file mode 100644
index 000000000..1777c1557
--- /dev/null
+++ b/make/config/jogl/gl-if-CustomJavaCode-gl3.java
@@ -0,0 +1,8 @@
+
+/** Part of <code>GL_ARB_uniform_buffer_object</code> */
+public static final int GL_INVALID_INDEX = 0xFFFFFFFF ;
+
+/** Part of <code>GL_ARB_sync</code> */
+public static final long GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFFL ;
+
+
diff --git a/make/config/jogl/gl-if-gl2_gl3.cfg b/make/config/jogl/gl-if-gl2_gl3.cfg
index 0afe5d5b5..7f6903dd6 100644
--- a/make/config/jogl/gl-if-gl2_gl3.cfg
+++ b/make/config/jogl/gl-if-gl2_gl3.cfg
@@ -10,18 +10,18 @@ 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/GL2Set.java
+ExtendedInterfaceSymbolsOnly ../build-temp/gluegen-set/javax/media/opengl/GL3Set.java
HierarchicalNativeOutput false
Include gl-common.cfg
Include gl-common-extensions.cfg
+Include gl-desktop.cfg
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl
#
# Same name but different signature ..
-#
# No collisions found .. good!
EmitProcAddressTable false
@@ -30,10 +30,22 @@ GetProcAddressTableExpr DontGenerateProcAddressTableStuff
# Inform the glue code generator of the association between #defines
# and functions and the extensions in which they are defined
-GLHeader GL3/gl3.h
-GLHeader GL3/gl3ext.h
+GLHeader GL/gl.h
+GLHeader GL/glext.h
+
+# 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
+# depend on the presence of an import library for a particular device
+ForceProcAddressGen __ALL__
+
+# Also force the calling conventions of the locally generated function
+# pointer typedefs for these routines to APIENTRY
+LocalProcAddressCallingConvention __ALL__ APIENTRY
# Pick up on-line OpenGL javadoc thanks to user cylab on javagaming.org forums
TagNativeBinding true
+# Ignore extensions that are already picked up via the GL2ES1 interface
+IgnoreExtension GL_EXT_point_parameters
+
Import java.io.PrintStream
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gles1.java b/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
index 65236676a..c5831f426 100755
--- a/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
@@ -292,7 +292,7 @@ private Map/*<ARBVBOKey, ByteBuffer>*/ arbVBOCache = new HashMap();
/** Entry point to C language function: <br> <code> LPVOID glMapBuffer(GLenum target, GLenum access); </code> */
public java.nio.ByteBuffer glMapBuffer(int target, int access) {
- final long __addr_ = ((GLES1ProcAddressTable)_context.getGLProcAddressTable())._addressof_glMapBufferOES;
+ final long __addr_ = ((GLES1ProcAddressTable)_context.getGLProcAddressTable())._addressof_glMapBuffer;
if (__addr_ == 0) {
throw new GLException("Method \"glMapBuffer\" not available");
}
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gles2.java b/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
index 2f69905a9..7e9b786b0 100755
--- a/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
@@ -302,7 +302,7 @@ private Map/*<ARBVBOKey, ByteBuffer>*/ arbVBOCache = new HashMap();
/** Entry point to C language function: <br> <code> LPVOID glMapBuffer(GLenum target, GLenum access); </code> */
public java.nio.ByteBuffer glMapBuffer(int target, int access) {
- final long __addr_ = ((GLES2ProcAddressTable)_context.getGLProcAddressTable())._addressof_glMapBufferOES;
+ final long __addr_ = ((GLES2ProcAddressTable)_context.getGLProcAddressTable())._addressof_glMapBuffer;
if (__addr_ == 0) {
throw new GLException("Method \"glMapBuffer\" not available");
}
diff --git a/make/config/jogl/gl3-common.cfg b/make/config/jogl/gl3-common.cfg
new file mode 100644
index 000000000..fac8323bb
--- /dev/null
+++ b/make/config/jogl/gl3-common.cfg
@@ -0,0 +1,24 @@
+
+# >>> 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
+
+# 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/gl3-desktop.cfg b/make/config/jogl/gl3-desktop.cfg
index 2d34ade30..c3dd180bb 100755
--- a/make/config/jogl/gl3-desktop.cfg
+++ b/make/config/jogl/gl3-desktop.cfg
@@ -8,7 +8,6 @@ GLHeader GL3/gl3ext.h
#Include gl-desktop-tracker.cfg
-
#
# Directives needed when processing wglext.h on Windows and other platforms
#
diff --git a/make/config/jogl/glu-common.cfg b/make/config/jogl/glu-common.cfg
index 3b5a1160a..df59175bb 100644
--- a/make/config/jogl/glu-common.cfg
+++ b/make/config/jogl/glu-common.cfg
@@ -1,3 +1,5 @@
+GLHeader GL/glu.h
+
# This .cfg file provides common options used among all GLU glue code
HierarchicalNativeOutput false
diff --git a/make/config/jogl/glx-x11.cfg b/make/config/jogl/glx-x11.cfg
index 3ef151c44..c9079b84f 100644
--- a/make/config/jogl/glx-x11.cfg
+++ b/make/config/jogl/glx-x11.cfg
@@ -6,10 +6,13 @@ NativeOutputDir gensrc/native/jogl/X11
Package com.sun.opengl.impl.x11.glx
JavaClass GLX
Style allstatic
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
+GLHeader GL/glx.h
+GLHeader GL/glxext.h
+
EmitProcAddressTable true
ProcAddressTableClassName GLXProcAddressTable
GetProcAddressTableExpr glxProcAddressTable
diff --git a/make/config/jogl/glxext.cfg b/make/config/jogl/glxext.cfg
index ea4b6fe47..39ba379c4 100755
--- a/make/config/jogl/glxext.cfg
+++ b/make/config/jogl/glxext.cfg
@@ -10,9 +10,12 @@ ImplPackage com.sun.opengl.impl.x11.glx
ImplJavaClass GLXExtImpl
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/sun/opengl/impl/x11/glx/GLX.java
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-desktop.cfg
+GLHeader GL/glx.h
+GLHeader GL/glxext.h
+
EmitProcAddressTable true
ProcAddressTableClassName GLXExtProcAddressTable
GetProcAddressTableExpr _context.getGLXExtProcAddressTable()
diff --git a/make/config/jogl/wgl-win32.cfg b/make/config/jogl/wgl-win32.cfg
index f86f1adcc..6cd4fd412 100644
--- a/make/config/jogl/wgl-win32.cfg
+++ b/make/config/jogl/wgl-win32.cfg
@@ -6,10 +6,15 @@ NativeOutputDir gensrc/native/jogl/Windows
Package com.sun.opengl.impl.windows.wgl
JavaClass WGL
Style allstatic
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
+AllowNonGLExtensions true
+
+GLHeader wingdi.h
+GLHeader GL/wglext.h
+
# Implement the first argument to wglGetProcAddress as String instead
# of byte[]
ArgumentIsString wglGetProcAddress 0
diff --git a/make/config/jogl/wglext.cfg b/make/config/jogl/wglext.cfg
index af4430bbe..ea9a0257e 100644
--- a/make/config/jogl/wglext.cfg
+++ b/make/config/jogl/wglext.cfg
@@ -8,9 +8,14 @@ Style InterfaceAndImpl
JavaClass WGLExt
ImplPackage com.sun.opengl.impl.windows.wgl
ImplJavaClass WGLExtImpl
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-desktop.cfg
+AllowNonGLExtensions true
+
+GLHeader wingdi.h
+GLHeader GL/wglext.h
+
EmitProcAddressTable true
ProcAddressTableClassName WGLExtProcAddressTable
GetProcAddressTableExpr _context.getWGLExtProcAddressTable()
diff --git a/make/stub_includes/egl/EGL/egl.h b/make/stub_includes/egl/EGL/egl.h
index 86ca4818f..fc6cc4c87 100755
--- a/make/stub_includes/egl/EGL/egl.h
+++ b/make/stub_includes/egl/EGL/egl.h
@@ -39,6 +39,8 @@ typedef void *EGLClientBuffer;
#define EGL_VERSION_1_3 1
#define EGL_VERSION_1_4 1
+#ifndef EGL_VERSION_1_X
+
/* EGL Enumerants. Bitmasks and other exceptional cases aside, most
* enums are assigned unique values starting at 0x3000.
*/
@@ -226,7 +228,10 @@ typedef void *EGLClientBuffer;
* a bug in Khronos Bugzilla against task "Registry".
*/
+#endif /* EGL_VERSION_1_X */
+#ifndef EGL_VERSION_1_X
+#define EGL_VERSION_1_X 1
/* EGL Functions */
@@ -300,6 +305,8 @@ EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
typedef void (* EGLAPIENTRY __EGLFuncPtr)(void);
EGLAPI __EGLFuncPtr eglGetProcAddress(const char *procname);
+#endif /* EGL_VERSION_1_X */
+
#ifdef __cplusplus
}
#endif
diff --git a/make/stub_includes/egl/EGL/eglext.h b/make/stub_includes/egl/EGL/eglext.h
index 5afa60118..7d7347e71 100755
--- a/make/stub_includes/egl/EGL/eglext.h
+++ b/make/stub_includes/egl/EGL/eglext.h
@@ -90,7 +90,7 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display
#define EGL_KHR_image 1
#define EGL_NATIVE_PIXMAP_KHR 0x30B0 /* eglCreateImageKHR target */
typedef void *EGLImageKHR;
-#define EGL_NO_IMAGE_KHR ((EGLImageKHR)0)
+/* Manual: #define EGL_NO_IMAGE_KHR ((EGLImageKHR)0) */
#ifdef EGL_EGLEXT_PROTOTYPES
EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, EGLint *attr_list);
EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
@@ -160,8 +160,8 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGL
#define EGL_RAW_VALUE_NV 0x1239
#define EGL_PERCENTAGE_VALUE_NV 0x1240
#define EGL_BAD_CURRENT_PERFMONITOR_NV 0x1241
-#define EGL_NO_PERFMONITOR_NV ((EGLPerfMonitorNV)0)
-#define EGL_DEFAULT_PERFMARKER_NV ((EGLPerfMarkerNV)0)
+/* Manual: #define EGL_NO_PERFMONITOR_NV ((EGLPerfMonitorNV)0) */
+/* Manual: #define EGL_DEFAULT_PERFMARKER_NV ((EGLPerfMarkerNV)0) */
typedef void *EGLPerfMonitorNV;
typedef void *EGLPerfMarkerNV;
#ifdef USE_GLUEGEN
@@ -272,31 +272,10 @@ EGLAPI EGLBoolean EGLAPIENTRY eglNvmaOutputSurfacePbufferUnlock(EGLDisplay displ
#endif
-/* EGL_KHR_sync
+/**
+ * EGL_KHR_sync
*/
#ifndef EGL_KHR_sync
-#define EGL_KHR_sync 1
-typedef void* EGLSyncKHR;
-typedef void* NativeSyncKHR;
-typedef uint64_t EGLTimeKHR;
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLSyncKHR eglCreateFenceSyncKHR( EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list );
-NativeSyncKHR eglCreateNativeSyncKHR( EGLSyncKHR sync );
-EGLBoolean eglDestroySyncKHR( EGLSyncKHR sync );
-EGLBoolean eglFenceKHR( EGLSyncKHR sync );
-EGLint eglClientWaitSyncKHR( EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout );
-EGLBoolean eglSignalSyncKHR( EGLSyncKHR sync, EGLenum mode );
-EGLBoolean eglGetSyncAttribKHR( EGLSyncKHR sync, EGLint attribute, EGLint *value );
-#else
-typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATEFENCESYNCKHRPROC)( EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list );
-typedef NativeSyncKHR (EGLAPIENTRYP PFNEGLCREATENATIVESYNCKHRPROC)( EGLSyncKHR sync );
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC)( EGLSyncKHR sync );
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCEKHRPROC)( EGLSyncKHR sync );
-typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC)( EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout );
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC)( EGLSyncKHR sync, EGLenum mode );
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC)( EGLSyncKHR sync, EGLint attribute, EGLint *value );
-#endif
-
/* !!!!! TODO: Get correct values for these defines !!!!
Do not rely on these values...THEY WILL CHANGE!
And it WILL BREAK binary compatibility when they do! */
@@ -306,7 +285,7 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC)( EGLSyncKHR sync, E
#define EGL_SIGNALED_KHR 0x3103
#define EGL_UNSIGNALED_KHR 0x3104
#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
-#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull
+/* Manual: #define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull */
#define EGL_ALREADY_SIGNALED_KHR 0x3105
#define EGL_TIMEOUT_EXPIRED_KHR 0x3106
#define EGL_CONDITION_SATISFIED_KHR 0x3107
@@ -314,9 +293,32 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC)( EGLSyncKHR sync, E
#define EGL_SYNC_CONDITION_KHR 0x3109
#define EGL_SYNC_FENCE_KHR 0x310A
#define EGL_NO_SYNC_KHR 0x0000
-#endif
+typedef void* EGLSyncKHR;
+typedef void* NativeSyncKHR;
+typedef uint64_t EGLTimeKHR;
+
+#endif
+#ifndef EGL_KHR_sync
+#define EGL_KHR_sync 1
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLSyncKHR eglCreateFenceSyncKHR( EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list );
+NativeSyncKHR eglCreateNativeSyncKHR( EGLSyncKHR sync );
+EGLBoolean eglDestroySyncKHR( EGLSyncKHR sync );
+EGLBoolean eglFenceKHR( EGLSyncKHR sync );
+EGLint eglClientWaitSyncKHR( EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout );
+EGLBoolean eglSignalSyncKHR( EGLSyncKHR sync, EGLenum mode );
+EGLBoolean eglGetSyncAttribKHR( EGLSyncKHR sync, EGLint attribute, EGLint *value );
+#endif
+typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATEFENCESYNCKHRPROC)( EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list );
+typedef NativeSyncKHR (EGLAPIENTRYP PFNEGLCREATENATIVESYNCKHRPROC)( EGLSyncKHR sync );
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC)( EGLSyncKHR sync );
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCEKHRPROC)( EGLSyncKHR sync );
+typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC)( EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout );
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC)( EGLSyncKHR sync, EGLenum mode );
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC)( EGLSyncKHR sync, EGLint attribute, EGLint *value );
+#endif
/* EGL_NV_omx_il_sink
*/
diff --git a/make/stub_includes/opengl/GL/glext.h b/make/stub_includes/opengl/GL/glext.h
index 68bf425cf..b2c23a822 100644
--- a/make/stub_includes/opengl/GL/glext.h
+++ b/make/stub_includes/opengl/GL/glext.h
@@ -1185,6 +1185,13 @@ extern "C" {
#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
#endif
+#ifndef GL_EXT_texture_rectangle
+#define GL_TEXTURE_RECTANGLE_EXT 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8
+#endif
+
#ifndef GL_ARB_color_buffer_float
#define GL_RGBA_FLOAT_MODE_ARB 0x8820
#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A
@@ -3150,16 +3157,6 @@ extern "C" {
#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
#endif
-/* Support for GL_EXT_texture_rectangle on non-nVidia cards */
-#ifndef GL_EXT_texture_rectangle
-#define GL_EXT_texture_rectangle 1
-#define GL_TEXTURE_RECTANGLE_EXT 0x84F5
-#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6
-#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7
-#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8
-#endif /* GL_TEXTURE_RECTANGLE_EXT */
-
-
#ifndef GL_ATI_vertex_streams
#define GL_MAX_VERTEX_STREAMS_ATI 0x876B
#define GL_VERTEX_STREAM0_ATI 0x876C
@@ -3318,6 +3315,23 @@ extern "C" {
#define GL_MODULATE_SUBTRACT_ATI 0x8746
#endif
+#ifndef GL_APPLE_float_pixels
+#define GL_HALF_APPLE 0x140B
+#define GL_COLOR_FLOAT_APPLE 0x8A0F
+#define GL_RGBA_FLOAT32_APPLE 0x8814
+#define GL_RGB_FLOAT32_APPLE 0x8815
+#define GL_ALPHA_FLOAT32_APPLE 0x8816
+#define GL_INTENSITY_FLOAT32_APPLE 0x8817
+#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
+#define GL_RGBA_FLOAT16_APPLE 0x881A
+#define GL_RGB_FLOAT16_APPLE 0x881B
+#define GL_ALPHA_FLOAT16_APPLE 0x881C
+#define GL_INTENSITY_FLOAT16_APPLE 0x881D
+#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
+#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
+#endif
+
#ifndef GL_ATI_texture_float
#define GL_RGBA_FLOAT32_ATI 0x8814
#define GL_RGB_FLOAT32_ATI 0x8815
@@ -3792,7 +3806,7 @@ extern "C" {
#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
#endif
-#ifndef NV_parameter_buffer_object
+#ifndef GL_NV_parameter_buffer_object
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
@@ -3810,9 +3824,9 @@ extern "C" {
#endif
#ifndef GL_EXT_texture_compression_rgtc
-#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
-#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
-#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
+#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
+#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
+#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
#endif
@@ -5142,6 +5156,10 @@ typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs)
#define GL_ARB_texture_rectangle 1
#endif
+#ifndef GL_EXT_texture_rectangle
+#define GL_EXT_texture_rectangle 1
+#endif
+
#ifndef GL_ARB_color_buffer_float
#define GL_ARB_color_buffer_float 1
#ifdef GL_GLEXT_PROTOTYPES
@@ -7329,6 +7347,10 @@ typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs)
#define GL_ATI_texture_env_combine3 1
#endif
+#ifndef GL_APPLE_float_pixels
+#define GL_APPLE_float_pixels 1
+#endif
+
#ifndef GL_ATI_texture_float
#define GL_ATI_texture_float 1
#endif
@@ -8035,7 +8057,7 @@ GLAPI void APIENTRY glBindBufferRangeEXT (GLenum, GLuint, GLuint, GLintptr, GLsi
GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum, GLuint, GLuint, GLintptr);
GLAPI void APIENTRY glBindBufferBaseEXT (GLenum, GLuint, GLuint);
GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint, GLsizei, const GLchar **, GLenum);
-GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint, GLuint, GLint *);
+GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
#endif /* GL_GLEXT_PROTOTYPES */
typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode);
typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void);
@@ -8043,7 +8065,7 @@ typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint inde
typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer);
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
-typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLint *location);
+typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
#endif
#ifndef GL_EXT_direct_state_access
@@ -8436,6 +8458,7 @@ typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenu
/**
* http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
*/
+
#ifndef GL_AMD_vertex_shader_tessellator
#define GL_SAMPLER_BUFFER_AMD 0x9001
#define GL_INT_SAMPLER_BUFFER_AMD 0x9002
@@ -8447,7 +8470,7 @@ typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenu
#endif
#ifndef GL_AMD_vertex_shader_tessellator
-#define GL_AMD_vertex_shader_tessellator
+#define GL_AMD_vertex_shader_tessellator 1
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glTessellationFactorAMD(GLfloat factor);
GLAPI void APIENTRY glTessellationModeAMD(GLenum mode);
@@ -8522,23 +8545,6 @@ typedef void (APIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei len
typedef void (APIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params);
#endif
-#ifndef GL_APPLE_float_pixels
-#define GL_HALF_APPLE 0x140B
-#define GL_COLOR_FLOAT_APPLE 0x8A0F
-#define GL_RGBA_FLOAT32_APPLE 0x8814
-#define GL_RGB_FLOAT32_APPLE 0x8815
-#define GL_ALPHA_FLOAT32_APPLE 0x8816
-#define GL_INTENSITY_FLOAT32_APPLE 0x8817
-#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
-#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
-#define GL_RGBA_FLOAT16_APPLE 0x881A
-#define GL_RGB_FLOAT16_APPLE 0x881B
-#define GL_ALPHA_FLOAT16_APPLE 0x881C
-#define GL_INTENSITY_FLOAT16_APPLE 0x881D
-#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
-#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
-#endif
-
#ifndef GL_APPLE_pixel_buffer
#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10
#endif
diff --git a/make/stub_includes/opengl/GL/glu.h b/make/stub_includes/opengl/GL/glu.h
index bccda7f8e..e3a16f304 100644
--- a/make/stub_includes/opengl/GL/glu.h
+++ b/make/stub_includes/opengl/GL/glu.h
@@ -62,6 +62,13 @@ extern "C" {
/*************************************************************/
+/* Version */
+#define GLU_VERSION_1_1 1
+#define GLU_VERSION_1_2 1
+#define GLU_VERSION_1_3 1
+
+#ifndef GLU_VERSION_1_X
+
/* Extensions */
#define GLU_EXT_object_space_tess 1
#define GLU_EXT_nurbs_tessellator 1
@@ -70,11 +77,6 @@ extern "C" {
#define GLU_FALSE 0
#define GLU_TRUE 1
-/* Version */
-#define GLU_VERSION_1_1 1
-#define GLU_VERSION_1_2 1
-#define GLU_VERSION_1_3 1
-
/* StringName */
#define GLU_VERSION 100800
#define GLU_EXTENSIONS 100801
@@ -280,6 +282,11 @@ typedef GLUtesselator GLUtriangulatorObj;
/* Internal convenience typedefs */
typedef void (GLAPIENTRY *_GLUfuncptr)();
+#endif /* GLX_VERSION_1_X */
+
+#ifndef GLU_VERSION_1_X
+#define GLU_VERSION_1_X 1
+
GLAPI void GLAPIENTRY gluBeginCurve (GLUnurbs* nurb);
GLAPI void GLAPIENTRY gluBeginPolygon (GLUtesselator* tess);
GLAPI void GLAPIENTRY gluBeginSurface (GLUnurbs* nurb);
@@ -401,6 +408,8 @@ typedef void (GLAPIENTRY * PFNGLUTESSVERTEXPROC) (GLUtesselator* tess, GLdouble
typedef GLint (GLAPIENTRY * PFNGLUUNPROJECTPROC) (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ);
typedef GLint (GLAPIENTRY * PFNGLUUNPROJECT4PROC) (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW);
+#endif /* GLU_VERSION_1_X */
+
#ifdef __cplusplus
}
#endif
diff --git a/make/stub_includes/opengl/GL/glx.h b/make/stub_includes/opengl/GL/glx.h
index 4032f45da..67225e043 100644
--- a/make/stub_includes/opengl/GL/glx.h
+++ b/make/stub_includes/opengl/GL/glx.h
@@ -66,9 +66,9 @@ extern "C" {
#define GLX_VERSION_1_4 1
*/
-#define GLX_EXTENSION_NAME "GLX"
-
+#ifndef GLX_VERSION_1_X
+#define GLX_EXTENSION_NAME "GLX"
/*
* Tokens for glXChooseVisual and glXGetConfig:
@@ -192,8 +192,12 @@ typedef XID GLXContextID;
typedef XID GLXWindow;
typedef XID GLXPbuffer;
+#endif /* GLX_VERSION_1_X */
+#ifndef GLX_VERSION_1_X
+#define GLX_VERSION_1_X 1
+
extern XVisualInfo* glXChooseVisual( Display *dpy, int screen,
int *attribList );
@@ -300,6 +304,8 @@ extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable,
/* GLX 1.4 and later */
extern void (*glXGetProcAddress(const GLubyte *procname))();
+#endif /* GLX_VERSION_1_X */
+
#ifndef GLX_GLXEXT_LEGACY
#include <GL/glxext.h>
diff --git a/make/stub_includes/opengl/GL/glxext.h b/make/stub_includes/opengl/GL/glxext.h
index 2ed99a824..ad580022e 100644
--- a/make/stub_includes/opengl/GL/glxext.h
+++ b/make/stub_includes/opengl/GL/glxext.h
@@ -266,16 +266,13 @@ extern "C" {
typedef void (*__GLXextFuncPtr)(void);
-#ifdef GLX_GLXEXT_PROTOTYPES
-extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *);
-#endif /* GLX_GLXEXT_PROTOTYPES */
-typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
-
#ifndef GLX_ARB_get_proc_address
#define GLX_ARB_get_proc_address 1
#ifdef GLX_GLXEXT_PROTOTYPES
+extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *);
extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName);
#endif
@@ -868,9 +865,9 @@ typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy,
#endif
#ifndef GLX_NV_present_video
-#define GLX_NV_present_video
+#define GLX_NV_present_video 1
#ifdef GLX_GLXEXT_PROTOTYPES
-extern unsigned int *glXEnumerateVideoDevicesNV(Display *dpy,
+extern unsigned int* glXEnumerateVideoDevicesNV(Display *dpy,
int screen,
int *nelements);
extern int glXBindVideoDeviceNV(Display *dpy,
diff --git a/make/stub_includes/opengl/GL3/gl3.h b/make/stub_includes/opengl/GL3/gl3.h
index 41ed2ad2e..7db3851bd 100755
--- a/make/stub_includes/opengl/GL3/gl3.h
+++ b/make/stub_includes/opengl/GL3/gl3.h
@@ -1059,7 +1059,7 @@ typedef void GLvoid;
#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
-#define GL_INVALID_INDEX 0xFFFFFFFFu
+/** Manual: #define GL_INVALID_INDEX -1 == (int) 0xFFFFFFFFu */
#endif
#ifndef GL_ARB_copy_buffer
@@ -1103,8 +1103,6 @@ typedef unsigned short GLhalfARB;
typedef unsigned short GLhalfNV;
#endif
-#include "glext-64bit-types.h"
-
#ifndef GL_VERSION_1_0
#define GL_VERSION_1_0 1
#ifdef GL3_PROTOTYPES
diff --git a/make/stub_includes/opengl/GL3/gl3ext.h b/make/stub_includes/opengl/GL3/gl3ext.h
index 8dcc9b4a3..7d391921f 100644
--- a/make/stub_includes/opengl/GL3/gl3ext.h
+++ b/make/stub_includes/opengl/GL3/gl3ext.h
@@ -1,6 +1,185 @@
#ifndef __gl3ext_h_
#define __gl3ext_h_
+#include "gl3-64bit-types.h"
+
+/*
+ * ------------------------------------------------
+ * Everything here and below was added manually
+ * to the version of glext.h obtained from:
+ * http://oss.sgi.com/projects/ogl-sample/registry/index.html
+ * ------------------------------------------------
+ *
+ * Structure is:
+ * #ifndef GL_EXTENSION_NAME
+ * Add DEFINES here
+ * #endif
+ * #ifndef GL_EXTENSION_NAME
+ * Add TYPEDEFS here
+ * #endif
+ * #ifndef GL_EXTENSION_NAME
+ * #define GL_EXTENSION_NAME 1
+ * #ifdef GL_GL3EXT_PROTOTYPES
+ * Add FUNCTION DECLARATIONS here
+ * #endif
+ * FUNCTION POINTER DECLARATIONS NOT NEEDED
+ * #endif
+ */
+
+#ifndef GL_VERSION_3_2
+#define GL_VERSION_3_2 1
+/* OpenGL 3.2 also reuses entry points from these extensions: */
+/* ARB_vertex_array_bgra */
+/* ARB_draw_elements_base_vertex */
+/* ARB_fragment_coord_conventions */
+/* ARB_provoking_vertex */
+/* ARB_seamless_cube_map */
+/* ARB_texture_multisample */
+/* ARB_depth_clamp */
+/* ARB_geometry_shader4 */
+/* ARB_sync */
+#ifdef GL_GL3EXT_PROTOTYPES
+#endif /* GL3_PROTOTYPES */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/vertex_array_bgra.txt
+ */
+#ifndef GL_ARB_vertex_array_bgra
+#define GL_BGRA 0x80E1
+#endif
+#ifndef GL_ARB_vertex_array_bgra
+#define GL_ARB_vertex_array_bgra 1
+#ifdef GL_GL3EXT_PROTOTYPES
+/* No FUNCTIONS */
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt
+ */
+#ifndef GL_ARB_draw_elements_base_vertex
+/* No TOKENS */
+#endif
+#ifndef GL_ARB_draw_elements_base_vertex
+#define GL_ARB_draw_elements_base_vertex 1
+#ifdef GL_GL3EXT_PROTOTYPES
+GLAPI void APIENTRY glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
+ GLvoid *indices, GLint basevertex);
+GLAPI void APIENTRY glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end,
+ GLsizei count, GLenum type, GLvoid *indices, GLint basevertex);
+GLAPI void APIENTRY glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count,
+ GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex);
+GLAPI void APIENTRY glMultiDrawElementsBaseVertex(GLenum mode, GLsizei *count, GLenum type,
+ GLvoid **indices, GLsizei primcount, GLint *basevertex);
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/fragment_coord_conventions.txt
+ */
+#ifndef GL_ARB_fragment_coord_conventions
+/* No Tokens */
+#endif
+#ifndef GL_ARB_fragment_coord_conventions
+#define GL_ARB_fragment_coord_conventions 1
+#ifdef GL_GL3EXT_PROTOTYPES
+/* No Functions */
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/provoking_vertex.txt
+ */
+#ifndef GL_ARB_provoking_vertex
+#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
+#define GL_LAST_VERTEX_CONVENTION 0x8E4E
+#define GL_PROVOKING_VERTEX 0x8E4F
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
+#endif
+#ifndef GL_ARB_provoking_vertex
+#define GL_ARB_provoking_vertex 1
+#ifdef GL_GL3EXT_PROTOTYPES
+GLAPI void APIENTRY glProvokingVertex(GLenum mode);
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt
+ */
+#ifndef GL_ARB_seamless_cube_map
+#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
+#endif
+#ifndef GL_ARB_seamless_cube_map
+#define GL_ARB_seamless_cube_map 1
+#ifdef GL_GL3EXT_PROTOTYPES
+/* No Functions */
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/texture_multisample.txt
+ */
+#ifndef GL_ARB_texture_multisample
+#define GL_SAMPLE_POSITION 0x8E50
+#define GL_SAMPLE_MASK 0x8E51
+#define GL_SAMPLE_MASK_VALUE 0x8E52
+#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
+#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
+#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
+#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
+#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
+#define GL_MAX_INTEGER_SAMPLES 0x9110
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
+#define GL_TEXTURE_SAMPLES 0x9106
+#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
+#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
+#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
+#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
+#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
+#endif
+#ifndef GL_ARB_texture_multisample
+#define GL_ARB_texture_multisample 1
+#ifdef GL_GL3EXT_PROTOTYPES
+GLAPI void APIENTRY glTexImage2DMultisample(GLenum target, GLsizei samples, GLint internalformat,
+ GLsizei width, GLsizei height,
+ GLboolean fixedsamplelocations);
+GLAPI void APIENTRY glTexImage3DMultisample(GLenum target, GLsizei samples, GLint internalformat,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLboolean fixedsamplelocations);
+GLAPI void APIENTRY glGetMultisamplefv(GLenum pname, GLuint index, GLfloat *val);
+GLAPI void APIENTRY glSampleMaski(GLuint index, GLbitfield mask);
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/depth_clamp.txt
+ */
+#ifndef GL_ARB_depth_clamp
+#define GL_DEPTH_CLAMP 0x864F
+#endif
+#ifndef GL_ARB_depth_clamp
+#define GL_ARB_depth_clamp 1
+#ifdef GL_GL3EXT_PROTOTYPES
+/* No FUNCTIONS */
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt
+ */
#ifndef GL_ARB_geometry_shader4
#define GL_LINES_ADJACENCY_ARB 0x000A
#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B
@@ -23,7 +202,6 @@
/* reuse GL_MAX_VARYING_COMPONENTS */
/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
#endif
-
#ifndef GL_ARB_geometry_shader4
#define GL_ARB_geometry_shader4 1
#ifdef GL_GL3EXT_PROTOTYPES
@@ -31,22 +209,62 @@ GLAPI void APIENTRY glProgramParameteriARB (GLuint, GLenum, GLint);
GLAPI void APIENTRY glFramebufferTextureARB (GLenum, GLenum, GLuint, GLint);
GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum, GLenum, GLuint, GLint, GLint);
GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum, GLenum, GLuint, GLint, GLenum);
-#endif /* GL_GL3EXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value);
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
#endif
+/**
+ * http://www.opengl.org/registry/specs/ARB/sync.txt
+ */
+#ifndef GL_ARB_sync
+#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
+#define GL_OBJECT_TYPE 0x9112
+#define GL_SYNC_CONDITION 0x9113
+#define GL_SYNC_STATUS 0x9114
+#define GL_SYNC_FLAGS 0x9115
+#define GL_SYNC_FENCE 0x9116
+#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
+#define GL_UNSIGNALED 0x9118
+#define GL_SIGNALED 0x9119
+#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
+/* Manual: #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFul */
+#define GL_ALREADY_SIGNALED 0x911A
+#define GL_TIMEOUT_EXPIRED 0x911B
+#define GL_CONDITION_SATISFIED 0x911C
+#define GL_WAIT_FAILED 0x911D
+#endif
+#ifndef GL_ARB_sync
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef struct __GLsync *GLsync;
+#endif
+#ifndef GL_ARB_sync
+#define GL_ARB_sync 1
+#ifdef GL_GL3EXT_PROTOTYPES
+GLAPI GLsync APIENTRY glFenceSync(GLenum condition, GLbitfield flags);
+GLAPI GLboolean APIENTRY glIsSync(GLsync sync);
+GLAPI void APIENTRY glDeleteSync(GLsync sync);
+GLAPI GLenum APIENTRY glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLAPI void APIENTRY glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLAPI void APIENTRY glGetInteger64v(GLenum pname, GLint64 *params);
+GLAPI void APIENTRY glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
-/*
- * ------------------------------------------------
- * Everything here and below was added manually
- * to the version of glext.h obtained from:
- * http://oss.sgi.com/projects/ogl-sample/registry/index.html
- * ------------------------------------------------
+/**
+ * Convenient names only .. actually subsumed into core
*/
-
+#ifndef GL_ARB_texture_rectangle
+#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
+#endif
+
+#ifndef GL_ARB_texture_rectangle
+#define GL_ARB_texture_rectangle 1
+#endif
/**
* http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
@@ -60,9 +278,8 @@ typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLen
#define GL_TESSELLATION_MODE_AMD 0x9004
#define GL_TESSELLATION_FACTOR_AMD 0x9005
#endif
-
#ifndef GL_AMD_vertex_shader_tessellator
-#define GL_AMD_vertex_shader_tessellator
+#define GL_AMD_vertex_shader_tessellator 1
#ifdef GL_GL3EXT_PROTOTYPES
GLAPI void APIENTRY glTessellationFactorAMD(GLfloat factor);
GLAPI void APIENTRY glTessellationModeAMD(GLenum mode);
@@ -71,5 +288,67 @@ typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor);
typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode);
#endif
+#ifndef GL_APPLE_float_pixels
+#define GL_HALF_APPLE 0x140B
+#define GL_COLOR_FLOAT_APPLE 0x8A0F
+#define GL_RGBA_FLOAT32_APPLE 0x8814
+#define GL_RGB_FLOAT32_APPLE 0x8815
+#define GL_ALPHA_FLOAT32_APPLE 0x8816
+#define GL_INTENSITY_FLOAT32_APPLE 0x8817
+#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
+#define GL_RGBA_FLOAT16_APPLE 0x881A
+#define GL_RGB_FLOAT16_APPLE 0x881B
+#define GL_ALPHA_FLOAT16_APPLE 0x881C
+#define GL_INTENSITY_FLOAT16_APPLE 0x881D
+#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
+#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
#endif
+#ifndef GL_APPLE_float_pixels
+#define GL_APPLE_float_pixels 1
+#endif
+
+#ifndef GL_ATI_texture_float
+#define GL_RGBA_FLOAT32_ATI 0x8814
+#define GL_RGB_FLOAT32_ATI 0x8815
+#define GL_ALPHA_FLOAT32_ATI 0x8816
+#define GL_INTENSITY_FLOAT32_ATI 0x8817
+#define GL_LUMINANCE_FLOAT32_ATI 0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
+#define GL_RGBA_FLOAT16_ATI 0x881A
+#define GL_RGB_FLOAT16_ATI 0x881B
+#define GL_ALPHA_FLOAT16_ATI 0x881C
+#define GL_INTENSITY_FLOAT16_ATI 0x881D
+#define GL_LUMINANCE_FLOAT16_ATI 0x881E
+#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
+#endif
+
+#ifndef GL_ATI_texture_float
+#define GL_ATI_texture_float 1
+#endif
+
+#ifndef GL_NV_float_buffer
+#define GL_FLOAT_R_NV 0x8880
+#define GL_FLOAT_RG_NV 0x8881
+#define GL_FLOAT_RGB_NV 0x8882
+#define GL_FLOAT_RGBA_NV 0x8883
+#define GL_FLOAT_R16_NV 0x8884
+#define GL_FLOAT_R32_NV 0x8885
+#define GL_FLOAT_RG16_NV 0x8886
+#define GL_FLOAT_RG32_NV 0x8887
+#define GL_FLOAT_RGB16_NV 0x8888
+#define GL_FLOAT_RGB32_NV 0x8889
+#define GL_FLOAT_RGBA16_NV 0x888A
+#define GL_FLOAT_RGBA32_NV 0x888B
+#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
+#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
+#define GL_FLOAT_RGBA_MODE_NV 0x888E
+#endif
+
+#ifndef GL_NV_float_buffer
+#define GL_NV_float_buffer 1
+#endif
+
+#endif /* __gl3ext_h_ */
+
diff --git a/make/stub_includes/opengl/GLES/gl.h b/make/stub_includes/opengl/GLES/gl.h
index da71230b5..41afe2239 100755
--- a/make/stub_includes/opengl/GLES/gl.h
+++ b/make/stub_includes/opengl/GLES/gl.h
@@ -71,6 +71,8 @@ typedef int GLsizeiptr;
#define GL_VERSION_ES_CM_1_1 1
#define GL_VERSION_ES_CL_1_1 1
+#ifndef GL_VERSION_ES_1_0
+
/* ClearBufferMask */
#define GL_DEPTH_BUFFER_BIT 0x00000100
#define GL_STENCIL_BUFFER_BIT 0x00000400
@@ -576,6 +578,8 @@ typedef int GLsizeiptr;
#define GL_DOT3_RGB 0x86AE
#define GL_DOT3_RGBA 0x86AF
+#endif /* GL_VERSION_ES_1_0 */
+
/*------------------------------------------------------------------------*
* required OES extension tokens
*------------------------------------------------------------------------*/
@@ -617,6 +621,8 @@ typedef int GLsizeiptr;
/*************************************************************/
+#ifndef GL_VERSION_ES_CM
+#define GL_VERSION_ES_CM 1
/* Available only in Common profile */
GL_API void GL_APIENTRY glAlphaFunc (GLenum func, GLclampf ref);
GL_API void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
@@ -658,7 +664,10 @@ GL_API void GL_APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *
GL_API void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
GL_API void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
GL_API void GL_APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
+#endif /* GL_VERSION_ES_CM */
+#ifndef GL_VERSION_ES_CL_CM
+#define GL_VERSION_ES_CL 1
/* Available in both Common and Common-Lite profiles */
GL_API void GL_APIENTRY glActiveTexture (GLenum texture);
GL_API void GL_APIENTRY glAlphaFuncx (GLenum func, GLclampx ref);
@@ -768,6 +777,7 @@ GL_API void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffs
GL_API void GL_APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z);
GL_API void GL_APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
GL_API void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
+#endif /* GL_VERSION_ES_CL */
/*------------------------------------------------------------------------*
* Required OES extension functions
diff --git a/make/stub_includes/opengl/GLES/glext.h b/make/stub_includes/opengl/GLES/glext.h
index ee6ebae20..f9e181dd0 100755
--- a/make/stub_includes/opengl/GLES/glext.h
+++ b/make/stub_includes/opengl/GLES/glext.h
@@ -244,7 +244,6 @@ typedef void* GLeglImageOES;
#define GL_3DC_XY_AMD 0x87FA
#endif
-/* GL_AMD_compressed_ATC_texture */
#ifndef GL_AMD_compressed_ATC_texture
#define GL_ATC_RGB_AMD 0x8C92
#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
@@ -634,7 +633,6 @@ typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum
#define GL_AMD_compressed_3DC_texture 1
#endif
-/* GL_AMD_compressed_ATC_texture */
#ifndef GL_AMD_compressed_ATC_texture
#define GL_AMD_compressed_ATC_texture 1
#endif
diff --git a/make/stub_includes/opengl/GLES2/gl2.h b/make/stub_includes/opengl/GLES2/gl2.h
index 9c68b1e7a..44338000e 100755
--- a/make/stub_includes/opengl/GLES2/gl2.h
+++ b/make/stub_includes/opengl/GLES2/gl2.h
@@ -99,8 +99,7 @@ typedef int GLclampx;
typedef int GLintptr;
typedef int GLsizeiptr;
-/* OpenGL ES core versions */
-#define GL_ES_VERSION_2_0 1
+#ifndef GL_ES_VERSION_2_0
/* ClearBufferMask */
#define GL_DEPTH_BUFFER_BIT 0x00000100
@@ -532,10 +531,14 @@ typedef int GLsizeiptr;
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+#endif /* GL_ES_VERSION_2_0 */
+
/*-------------------------------------------------------------------------
* GL core functions.
*-----------------------------------------------------------------------*/
+#ifndef GL_ES_VERSION_2_0
+#define GL_ES_VERSION_2_0 1
GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const char* name);
@@ -678,6 +681,7 @@ GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GL
GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values);
GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr);
GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
+#endif /* GL_ES_VERSION_2_0 */
#ifdef __cplusplus
}
diff --git a/make/stub_includes/opengl/GLES2/gl2ext.h b/make/stub_includes/opengl/GLES2/gl2ext.h
index 8580e2bdf..e3bbede8a 100755
--- a/make/stub_includes/opengl/GLES2/gl2ext.h
+++ b/make/stub_includes/opengl/GLES2/gl2ext.h
@@ -61,9 +61,7 @@ extern "C" {
#define GL_NVIDIA_PLATFORM_BINARY_NV 0x890B
-#define GL_OES_EGL_image 1
-
-#ifdef GL_OES_EGL_image
+#ifndef GL_OES_EGL_image
/** sgothel: wrong defines and/or numbers:
*
#define GL_TEXTURE_2D_OES 0x1
@@ -76,12 +74,17 @@ extern "C" {
#define GL_RENDERBUFFER_OES 0x9
#define GL_TEXTURE_RECTANGLE_NV_OES 0xb
*/
+#endif /* GL_OES_EGL_image */
+#ifndef GL_OES_EGL_image
typedef void *GLeglImageOES;
+#endif /* GL_OES_EGL_image */
+
+#ifndef GL_OES_EGL_image
+#define GL_OES_EGL_image 1
GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
#ifdef GL_GLEXT_PROTOTYPES
typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
-
#endif
#endif
diff --git a/make/stub_includes/opengl/gl2es12.c b/make/stub_includes/opengl/gl2es12.c
index 75cb4acfc..bc9d24ace 100644
--- a/make/stub_includes/opengl/gl2es12.c
+++ b/make/stub_includes/opengl/gl2es12.c
@@ -6,8 +6,3 @@
#include <GL/gl.h>
-// removed due to renaming and the fact that the renamed version is not included
-// in the super interfaces ..
-GLAPI void APIENTRY glWeightPointer (GLint, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glMatrixIndexPointer (GLint, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCurrentPaletteMatrix (GLint);
diff --git a/make/stub_includes/opengl/gl3-64bit-types.h b/make/stub_includes/opengl/gl3-64bit-types.h
new file mode 100644
index 000000000..fc8b4ce05
--- /dev/null
+++ b/make/stub_includes/opengl/gl3-64bit-types.h
@@ -0,0 +1,41 @@
+#ifndef __gl3_64bit_types_h_
+#define __gl3_64bit_types_h_
+
+#ifndef GL3_64_TYPES_DEFINED
+ /* This code block is duplicated in glext.h, so must be protected */
+ #define GL3_64_TYPES_DEFINED
+ /* Define int32_t, int64_t, and uint64_t types for UST/MSC */
+ /* (as used in the GL_EXT_timer_query extension). */
+ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+ #include <inttypes.h>
+ #elif defined(__sun__)
+ #include <inttypes.h>
+ #if defined(__STDC__)
+ #if defined(__arch64__)
+ typedef long int int64_t;
+ typedef unsigned long int uint64_t;
+ #else
+ typedef long long int int64_t;
+ typedef unsigned long long int uint64_t;
+ #endif /* __arch64__ */
+ #endif /* __STDC__ */
+ #elif defined( __VMS )
+ #include <inttypes.h>
+ #elif defined(__SCO__) || defined(__USLC__)
+ #include <stdint.h>
+ #elif defined(__UNIXOS2__) || defined(__SOL64__)
+ typedef long int int32_t;
+ typedef long long int int64_t;
+ typedef unsigned long long int uint64_t;
+ #elif defined(WIN32) && defined(__GNUC__)
+ #include <stdint.h>
+ #elif defined(_WIN32)
+ typedef __int32 int32_t;
+ typedef __int64 int64_t;
+ typedef unsigned __int64 uint64_t;
+ #else
+ #include <inttypes.h> /* Fallback option */
+ #endif
+#endif
+
+#endif /* __gl3_64bit_types_h_ */
diff --git a/make/stub_includes/opengl/glu-impl.c b/make/stub_includes/opengl/glu-impl.c
deleted file mode 100644
index 2328639d8..000000000
--- a/make/stub_includes/opengl/glu-impl.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include <GL/glu.h>
-
-
diff --git a/make/stub_includes/win32/wingdi.h b/make/stub_includes/win32/wingdi.h
index 4d980755b..46aeec2b6 100644
--- a/make/stub_includes/win32/wingdi.h
+++ b/make/stub_includes/win32/wingdi.h
@@ -6,6 +6,8 @@
*
*/
+#ifndef WGL_GDI_VERSION_1_X
+
typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
@@ -163,6 +165,11 @@ typedef struct tagPIXELFORMATDESCRIPTOR
#define SW_FORCEMINIMIZE 11
#define SW_MAX 11
+#endif /* WGL_GDI_VERSION_1_X */
+
+#ifndef WGL_GDI_VERSION_1_X
+#define WGL_GDI_VERSION_1_X
+
// Windows routines
WINBASEAPI DWORD WINAPI GetLastError(VOID);
WINBASEAPI HMODULE WINAPI LoadLibraryA(LPCSTR lpLibFileName);
@@ -214,3 +221,5 @@ WINUSERAPI BOOL WINAPI DestroyWindow(HWND hWnd);
// Routines for changing gamma ramp of display device
WINGDIAPI BOOL WINAPI GetDeviceGammaRamp(HDC,LPVOID);
WINGDIAPI BOOL WINAPI SetDeviceGammaRamp(HDC,LPVOID);
+
+#endif /* WGL_GDI_VERSION_1_X */
diff --git a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
index d1a35b1b6..16eb934bd 100644
--- a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
+++ b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
@@ -61,7 +61,6 @@ public abstract class GLContextImpl extends GLContext {
// platforms anyway in particular with the disabling of the
// GLWorkerThread which we found to be necessary in 1.0 beta 4.
protected boolean optimizationEnabled = Debug.isPropertyDefined("jogl.GLContext.optimize", true);
- protected boolean tryGLContext3_2 = Debug.isPropertyDefined("jogl.GLContext.3_2", true);
// Cache of the functions that are available to be called at the current
// moment in time
diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java
index 4ea3519bf..0754c4b57 100644
--- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java
@@ -86,7 +86,7 @@ public class MacOSXPbufferCGLContext extends MacOSXCGLContext {
rect = false;
}
}
- textureTarget = (rect ? GL2.GL_TEXTURE_RECTANGLE_EXT: GL.GL_TEXTURE_2D);
+ textureTarget = (rect ? GL2.GL_TEXTURE_RECTANGLE : GL.GL_TEXTURE_2D);
int[] tmp = new int[1];
gl.glGenTextures(1, tmp, 0);
texture = tmp[0];
diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java
index 0d031ffff..2d7b3ea34 100644
--- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java
@@ -98,7 +98,7 @@ public class MacOSXPbufferCGLDrawable extends MacOSXCGLDrawable {
GLProfile glProfile = capabilities.getGLProfile();
int renderTarget;
if (glProfile.isGL2() && capabilities.getPbufferRenderToTextureRectangle()) {
- renderTarget = GL2.GL_TEXTURE_RECTANGLE_EXT;
+ renderTarget = GL2.GL_TEXTURE_RECTANGLE;
} else {
int w = getNextPowerOf2(getWidth());
int h = getNextPowerOf2(getHeight());
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
index e459d0c5a..9a3860ae2 100644
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
@@ -178,7 +178,8 @@ public class WindowsWGLContext extends GLContextImpl {
if(glCaps.getGLProfile().isGL3()) {
// Try >= 3.2 core first !
- // In contrast to GLX no verify with a None drawable binding (default framebuffer) is necessary.
+ // In contrast to GLX no verify with a None drawable binding (default framebuffer) is necessary,
+ // if no 3.2 is available creation fails already!
attribs[0+1] = 3;
attribs[2+1] = 2;
attribs[6+0] = WGLExt.WGL_CONTEXT_PROFILE_MASK_ARB;
@@ -186,7 +187,7 @@ public class WindowsWGLContext extends GLContextImpl {
hglrc = wglExt.wglCreateContextAttribsARB(drawable.getNativeWindow().getSurfaceHandle(), hglrc2, attribs, 0);
if(0==hglrc) {
if(DEBUG) {
- System.err.println("WindowsWGLContext.createContext couldn't create >= 3.2 core context");
+ System.err.println("WindowsWGLContext.createContext couldn't create >= 3.2 core context - fallback");
}
// Try >= 3.1 forward compatible - last resort for GL3 !
attribs[0+1] = 3;
@@ -201,6 +202,13 @@ public class WindowsWGLContext extends GLContextImpl {
if(0==hglrc) {
// 3.1 or 3.0 ..
hglrc = wglExt.wglCreateContextAttribsARB(drawable.getNativeWindow().getSurfaceHandle(), hglrc2, attribs, 0);
+ if(DEBUG) {
+ if(0==hglrc) {
+ System.err.println("WindowsWGLContext.createContext couldn't create >= 3.0 context - fallback");
+ } else {
+ System.err.println("WindowsWGLContext.createContext >= 3.0 available 0x"+Long.toHexString(hglrc));
+ }
+ }
}
if(0==hglrc) {
diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
index 126062d27..d5a5f3433 100644
--- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
@@ -202,27 +202,30 @@ public abstract class X11GLXContext extends GLContextImpl {
};
if(glCaps.getGLProfile().isGL3()) {
- if(tryGLContext3_2) {
- // Try >= 3.2 core first
- // and verify with a None drawable binding (default framebuffer)
- attribs[0+1] = 3;
- attribs[2+1] = 2;
- // FIXME: attribs[8+0] = GLX.GLX_CONTEXT_PROFILE_MASK_ARB;
- // FIXME: attribs[8+1] = GLX.GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
-
- context = glXExt.glXCreateContextAttribsARB(display, config.getFBConfig(), share, direct, attribs, 0);
- if(0!=context) {
- if (!GLX.glXMakeContextCurrent(display, 0, 0, context)) {
- if(DEBUG) {
- System.err.println("X11GLXContext.createContext couldn't make >= 3.2 core context current - fallback");
- }
- GLX.glXMakeContextCurrent(display, 0, 0, 0);
- GLX.glXDestroyContext(display, context);
- context = 0;
- } else if(DEBUG) {
- System.err.println("X11GLXContext.createContext >= 3.2 available 0x"+Long.toHexString(context));
+ // Try >= 3.2 core first
+ // and verify with a None drawable binding (default framebuffer)
+ attribs[0+1] = 3;
+ attribs[2+1] = 2;
+ // FIXME NV Bug: attribs[8+0] = GLX.GLX_CONTEXT_PROFILE_MASK_ARB;
+ // FIXME NV Bug: attribs[8+1] = GLX.GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
+
+ context = glXExt.glXCreateContextAttribsARB(display, config.getFBConfig(), share, direct, attribs, 0);
+ if(0!=context) {
+ if (!GLX.glXMakeContextCurrent(display,
+ drawable.getNativeWindow().getSurfaceHandle(),
+ drawable.getNativeWindow().getSurfaceHandle(),
+ context)) {
+ if(DEBUG) {
+ System.err.println("X11GLXContext.createContext couldn't make >= 3.2 core context current - fallback");
}
+ GLX.glXMakeContextCurrent(display, 0, 0, 0);
+ GLX.glXDestroyContext(display, context);
+ context = 0;
} else if(DEBUG) {
+ System.err.println("X11GLXContext.createContext >= 3.2 available 0x"+Long.toHexString(context));
+ }
+ } else {
+ if(DEBUG) {
System.err.println("X11GLXContext.createContext couldn't create >= 3.2 core context - fallback");
}
}
@@ -238,6 +241,25 @@ public abstract class X11GLXContext extends GLContextImpl {
if(0==context) {
// 3.1 or 3.0 ..
context = glXExt.glXCreateContextAttribsARB(display, config.getFBConfig(), share, direct, attribs, 0);
+ if(0!=context) {
+ if (!GLX.glXMakeContextCurrent(display,
+ drawable.getNativeWindow().getSurfaceHandle(),
+ drawable.getNativeWindow().getSurfaceHandle(),
+ context)) {
+ if(DEBUG) {
+ System.err.println("X11GLXContext.createContext couldn't make >= 3.0 core context current - fallback");
+ }
+ GLX.glXMakeContextCurrent(display, 0, 0, 0);
+ GLX.glXDestroyContext(display, context);
+ context = 0;
+ } else if(DEBUG) {
+ System.err.println("X11GLXContext.createContext >= 3.0 available 0x"+Long.toHexString(context));
+ }
+ } else {
+ if(DEBUG) {
+ System.err.println("X11GLXContext.createContext couldn't create >= 3.0 core context - fallback");
+ }
+ }
}
if(0==context) {
@@ -253,22 +275,17 @@ public abstract class X11GLXContext extends GLContextImpl {
drawable.getNativeWindow().getSurfaceHandle(),
drawable.getNativeWindow().getSurfaceHandle(),
context)) {
+ GLX.glXMakeContextCurrent(display, 0, 0, 0);
+ GLX.glXDestroyContext(display, temp_context);
throw new GLException("Error making context (old) current: display 0x"+Long.toHexString(display)+", context 0x"+Long.toHexString(context)+", drawable "+drawable);
}
if(DEBUG) {
System.err.println("X11GLXContext.createContext done (old ctx < 3.0 - no 3.0) 0x"+Long.toHexString(context));
}
} else {
- GLX.glXMakeContextCurrent(display, 0, 0, 0);
GLX.glXDestroyContext(display, temp_context);
// need to update the GL func table ..
- if (!GLX.glXMakeContextCurrent(display,
- drawable.getNativeWindow().getSurfaceHandle(),
- drawable.getNativeWindow().getSurfaceHandle(),
- context)) {
- throw new GLException("Error making context (new) current: display 0x"+Long.toHexString(display)+", context 0x"+Long.toHexString(context)+", drawable "+drawable);
- }
updateGLProcAddressTable();
if(DEBUG) {
System.err.println("X11GLXContext.createContext done (new ctx >= 3.0) 0x"+Long.toHexString(context));