diff options
author | Sven Gothel <[email protected]> | 2009-08-05 11:55:14 -0700 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2009-08-05 11:55:14 -0700 |
commit | 0e998e8416b38b084b517c299061856b7ff963d7 (patch) | |
tree | 2cc191d7ab3d42b0316838d756019f45b62b0061 /make/config | |
parent | d741053ed1a422b75d6aeac28be7c5cdba4c4564 (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.
Diffstat (limited to 'make/config')
25 files changed, 209 insertions, 200 deletions
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() |