diff options
Diffstat (limited to 'make/config')
38 files changed, 628 insertions, 393 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 bdd9a3655..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 -ExtendedInterfaceSymbols ../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 50c2ff004..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 @@ -20,16 +22,15 @@ Import com.sun.opengl.impl.* # because we don't need them java-side. Ignore GL_VERSION_.+ -# There are a few routines we don't handle yet -Ignore glGetBufferPointerivNV -Ignore glGetBufferPointerv - # Ignore GL functions that deal with explicit pointer values in such a # way that we cannot implement the functionality in Java Ignore glGetBufferPointerv Ignore glGetBufferPointervARB +Ignore glGetBufferPointerivNV +Ignore glGetNamedBufferPointervEXT Ignore glGetPointerv Ignore glGetPointervEXT +Ignore glGetPointerIndexedvEXT Ignore glGetTexParameterPointervAPPLE Ignore glGetVertexAttribPointerv Ignore glGetVertexAttribPointervARB @@ -39,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 @@ -50,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. @@ -133,6 +103,7 @@ IgnoreExtension GL_EXT_coordinate_frame # Ignore discontinued extensions IgnoreExtension GL_NV_element_array +# >>> OpenGL 1.1 # Ignore extensions subsumed in OpenGL 1.1 (from OpenGL 1.1 spec, Appendix C) IgnoreExtension GL_EXT_vertex_array IgnoreExtension GL_EXT_blend_logic_op @@ -141,7 +112,9 @@ IgnoreExtension GL_EXT_polygon_offset IgnoreExtension GL_EXT_subtexture IgnoreExtension GL_EXT_texture IgnoreExtension GL_EXT_texture_object +# <<< OpenGL 1.1 +# >>> OpenGL 1.2 # Ignore extensions subsumed in OpenGL 1.2 and 1.2.1 (from OpenGL 1.2.1 spec, Appendix D) IgnoreExtension GL_EXT_bgra IgnoreExtension GL_EXT_blend_color @@ -163,7 +136,9 @@ IgnoreExtension GL_SGI_color_matrix IgnoreExtension GL_SGI_color_table IgnoreExtension GL_SGIS_texture_edge_clamp IgnoreExtension GL_SGIS_texture_lod +# <<< OpenGL 1.2 +# >>> OpenGL 1.3 # Ignore extensions subsumed in OpenGL 1.3 (from OpenGL 1.3 spec, Appendix F) IgnoreExtension GL_ARB_multisample IgnoreExtension GL_ARB_multitexture @@ -179,7 +154,9 @@ IgnoreExtension GL_EXT_texture_env_add IgnoreExtension GL_EXT_texture_env_combine IgnoreExtension GL_EXT_texture_env_dot3 IgnoreExtension GL_SGIS_texture_border_clamp +# <<< OpenGL 1.3 +# >>> OpenGL 1.4 # Ignore extensions subsumed in OpenGL 1.4 (from OpenGL 1.4 spec, Appendix G) IgnoreExtension GL_ARB_depth_texture IgnoreExtension GL_ARB_point_parameters @@ -195,29 +172,113 @@ IgnoreExtension GL_EXT_secondary_color IgnoreExtension GL_EXT_stencil_wrap IgnoreExtension GL_NV_blend_square IgnoreExtension GL_SGIS_generate_mipmap +# <<< OpenGL 1.4 +# >>> OpenGL 1.5 # Ignore extensions subsumed in OpenGL 1.5 (from OpenGL 1.5 spec, Appendix H) IgnoreExtension GL_ARB_occlusion_query IgnoreExtension GL_ARB_vertex_buffer_object IgnoreExtension GL_EXT_shadow_funcs +# <<< OpenGL 1.5 +# >>> OpenGL 2.0 # Ignore extensions subsumed in OpenGL 2.0 (from OpenGL 2.0 spec, Appendix I) # NOTE that GL_ARB_shader_objects is NOT ignored here, because the # naming convention is too different for us to pick up the entry # points automatically (e.g. glCreateShaderObjectARB was exposed as # glCreateShader) +# IgnoreExtension GL_ARB_shader_objects IgnoreExtension GL_ARB_vertex_shader IgnoreExtension GL_ARB_fragment_shader -IgnoreExtension GL_ARB_draw_buffers IgnoreExtension GL_ARB_texture_non_power_of_two IgnoreExtension GL_ARB_point_sprite +IgnoreExtension GL_ARB_draw_buffers IgnoreExtension GL_EXT_blend_equation_separate # Don't ignore the following one since the entry point is different from anything in the core # IgnoreExtension GL_EXT_stencil_two_side +# <<< OpenGL 2.0 +# >>> OpenGL 2.1 # Ignore extensions subsumed in OpenGL 2.1 (from OpenGL 2.1 spec, Appendix J) IgnoreExtension GL_ARB_pixel_buffer_object IgnoreExtension GL_EXT_texture_sRGB +# <<< OpenGL 2.1 + +# >>> OpenGL 3.0 +# Ignore/Rename extensions subsumed in OpenGL 3.0 (from OpenGL 3.0 spec, Appendix N) +RenameExtensionIntoCore GL_EXT_gpu_shader4 + +RenameExtensionIntoCore GL_NV_conditional_render + +RenameExtensionIntoCore GL_APPLE_flush_buffer_range + +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 + +RenameExtensionIntoCore GL_NV_half_float +RenameExtensionIntoCore GL_ARB_half_float_pixel + +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 + +RenameExtensionIntoCore GL_EXT_texture_array + +RenameExtensionIntoCore GL_EXT_packed_depth_stencil + +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 + +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 IgnoreExtension GL_EXT_multisample @@ -230,6 +291,7 @@ IgnoreExtension GL_EXT_texture_rectangle Opaque boolean GLboolean ReturnsString glGetString +ReturnsString glGetStringi # Experimental: Only NIO function, no arrays .. # NIOOnly __ALL__ @@ -289,6 +351,14 @@ ReturnValueCapacity glXAllocateMemoryNV {0} # Pass arguments to ARB_vertex_program, ARB_fragment_program, # ARB_shader_objects, NV_vertex_program, NV_fragment_program, and # ARB_vertex_shader as Strings +ArgumentIsString glBindAttribLocation 2 +ArgumentIsString glBindAttribLocationARB 2 +ArgumentIsString glGetAttribLocation 1 +ArgumentIsString glGetAttribLocationARB 1 +ArgumentIsString glGetProgramNamedParameterfvNV 2 +ArgumentIsString glGetProgramNamedParameterdvNV 2 +ArgumentIsString glGetUniformLocation 1 +ArgumentIsString glGetUniformLocationARB 1 ArgumentIsString glLoadProgramNV 3 ArgumentIsString glProgramString 3 ArgumentIsString glProgramStringARB 3 @@ -296,16 +366,32 @@ ArgumentIsString glProgramNamedParameter4fNV 2 ArgumentIsString glProgramNamedParameter4dNV 2 ArgumentIsString glProgramNamedParameter4fvNV 2 ArgumentIsString glProgramNamedParameter4dvNV 2 -ArgumentIsString glGetProgramNamedParameterfvNV 2 -ArgumentIsString glGetProgramNamedParameterdvNV 2 ArgumentIsString glShaderSource 2 ArgumentIsString glShaderSourceARB 2 -ArgumentIsString glGetUniformLocation 1 -ArgumentIsString glGetUniformLocationARB 1 -ArgumentIsString glBindAttribLocation 2 -ArgumentIsString glBindAttribLocationARB 2 -ArgumentIsString glGetAttribLocation 1 -ArgumentIsString glGetAttribLocationARB 1 + +ArgumentIsString glBindFragDataLocation 2 +ArgumentIsString glGetFragDataLocation 1 +ArgumentIsString glGetUniformIndices 2 +ArgumentIsString glGetUniformBlockIndex 1 +ArgumentIsString glTransformFeedbackVaryings 2 + +# String output values: +# ArgumentIsString glGetActiveAttrib 6 +# ArgumentIsString glGetActiveUniformBlockName 4 +# ArgumentIsString glGetActiveUniformName 4 +# ArgumentIsString glGetActiveUniform 6 +# ArgumentIsString glGetProgramInfoLog 3 +# ArgumentIsString glGetShaderInfoLog 3 +# ArgumentIsString glGetShaderSource 3 +# ArgumentIsString glGetTransformFeedbackVarying 6 + +# +# Use cached GL_EXTENSION if possible, +# which also allows GL3 compatibility. +# +JavaPrologue glGetString if(GL.GL_EXTENSIONS==name && _context.isExtensionCacheInitialized()) { +JavaPrologue glGetString return _context.getGLExtensions(); +JavaPrologue glGetString } # # Directives for Vertex Buffer Object and Pixel Buffer Object checking @@ -481,70 +567,93 @@ RangeCheck glDeleteVertexArraysAPPLE 1 {0} # Javadoc for the GL class ClassJavadoc GL /** -ClassJavadoc GL * <P> The basic interface to OpenGL, providing access to core -ClassJavadoc GL * functionality up through the OpenGL 2.0 specification as well as -ClassJavadoc GL * all vendor extensions. </P> -ClassJavadoc GL * -ClassJavadoc GL * <P> While the APIs for vendor extensions are unconditionally -ClassJavadoc GL * exposed, the underlying functions may not be present. The method -ClassJavadoc GL * {@link #isFunctionAvailable} should be used to query the -ClassJavadoc GL * availability of any non-core function before it is used for the -ClassJavadoc GL * first time; for example, -ClassJavadoc GL * <code>gl.isFunctionAvailable("glProgramStringARB")</code>. On -ClassJavadoc GL * certain platforms (Windows in particular), the most "core" -ClassJavadoc GL * functionality is only OpenGL 1.1, so in theory any routines first -ClassJavadoc GL * exposed in OpenGL 1.2, 1.3, and 1.4, 1.5, or 2.0 as well as vendor -ClassJavadoc GL * extensions should all be queried. Calling an unavailable function -ClassJavadoc GL * will cause a {@link GLException} to be raised. </P> -ClassJavadoc GL * -ClassJavadoc GL * {@link #isExtensionAvailable} may also be used to determine whether -ClassJavadoc GL * a specific extension is available before calling the routines or -ClassJavadoc GL * using the functionality it exposes: for example, -ClassJavadoc GL * <code>gl.isExtensionAvailable("GL_ARB_vertex_program");</code>. -ClassJavadoc GL * However, in this case it is up to the end user to know which -ClassJavadoc GL * routines or functionality are associated with which OpenGL -ClassJavadoc GL * extensions. It may also be used to test for the availability of a -ClassJavadoc GL * particular version of OpenGL: for example, -ClassJavadoc GL * <code>gl.isExtensionAvailable("GL_VERSION_1_5");</code>. -ClassJavadoc GL * -ClassJavadoc GL * <P> Exceptions to the window system extension naming rules: -ClassJavadoc GL * -ClassJavadoc GL * <UL> -ClassJavadoc GL * -ClassJavadoc GL * <LI> The memory allocators for the NVidia vertex_array_range (VAR) -ClassJavadoc GL * extension, in particular <code>wglAllocateMemoryNV</code> / -ClassJavadoc GL * <code>glXAllocateMemoryNV</code> and associated routines. {@link -ClassJavadoc GL * #glAllocateMemoryNV} has been provided for window system-independent -ClassJavadoc GL * access to VAR. {@link #isFunctionAvailable} will translate an argument -ClassJavadoc GL * of "glAllocateMemoryNV" or "glFreeMemoryNV" into the appropriate -ClassJavadoc GL * window system-specific name. </P> -ClassJavadoc GL * -ClassJavadoc GL * <LI> WGL_ARB_pbuffer, WGL_ARB_pixel_format, and other -ClassJavadoc GL * platform-specific pbuffer functionality; the availability of -ClassJavadoc GL * pbuffers can be queried on Windows, X11 and Mac OS X platforms by -ClassJavadoc GL * querying {@link #isExtensionAvailable} with an argument of -ClassJavadoc GL * "GL_ARB_pbuffer" or "GL_ARB_pixel_format". -ClassJavadoc GL * -ClassJavadoc GL * </UL> <P> -ClassJavadoc GL * +ClassJavadoc GL * <P> Common interface containing the subset of all profiles, GL3, GL2, GLES1 and GLES2.<br> +ClassJavadoc GL * This interface reflects common data types, texture and framebuffer functionality.</P> ClassJavadoc GL */ +ClassJavadoc GL2ES1 /** +ClassJavadoc GL2ES1 * <P> +ClassJavadoc GL2ES1 * Interface containing the common subset of GL2 and GLES1.<br> +ClassJavadoc GL2ES1 * This interface reflects only the fixed functionality of OpenGL<br> +ClassJavadoc GL2ES1 * </P> +ClassJavadoc GL2ES1 */ + +ClassJavadoc GL2ES2 /** +ClassJavadoc GL2ES2 * <P> +ClassJavadoc GL2ES2 * Interface containing the common subset of GL3, GL2 and GLES2.<br> +ClassJavadoc GL2ES2 * This interface reflects only the programmable shader functionality of desktop and embedded OpenGL<br> +ClassJavadoc GL2ES2 * </P> +ClassJavadoc GL2ES2 */ + +ClassJavadoc GL2GL3 /** +ClassJavadoc GL2GL3 * <P> +ClassJavadoc GL2GL3 * Interface containing the common subset of GL3 (OpenGL 3.1+) and GL2 (OpenGL 3.0), +ClassJavadoc GL2GL3 * also known as the OpenGL 3.0 forward compatible, non deprecated subset.<br> +ClassJavadoc GL2GL3 * This interface reflects only the programmable shader functionality of desktop OpenGL<br> +ClassJavadoc GL2GL3 * </P> +ClassJavadoc GL2GL3 */ + +ClassJavadoc GL2 /** +ClassJavadoc GL2 * <P> +ClassJavadoc GL2 * This interface contains all core desktop OpenGL methods through +ClassJavadoc GL2 * version 3.0, inclusive, as well as most of it's extensions defined at the +ClassJavadoc GL2 * time of this specification. Early OpenGL extensions whose functionality +ClassJavadoc GL2 * was incorporated into core OpenGL by version 3.0, inclusive, are specifically +ClassJavadoc GL2 * excluded.<br> +ClassJavadoc GL2 * Note: OpenGL 3.0 is the last subsumed version in the specification. +ClassJavadoc GL2 * You need to use a {@link GL3} OpenGL 3.1+ context to benefit +ClassJavadoc GL2 * from new functionality and versions. +ClassJavadoc GL2 * </P> +ClassJavadoc GL2 */ + +ClassJavadoc GL3 /** +ClassJavadoc GL3 * <P> +ClassJavadoc GL3 * This interface contains all core, forward compatible, OpenGL methods starting from 3.1, +ClassJavadoc GL3 * inclusive, as well as most of it's extensions defined at the time of this specification.<br> +ClassJavadoc GL3 * Note: OpenGL 3.0 forward compatible, non deprecated functionality is included in the +ClassJavadoc GL3 * 3.1 specification, hence the {@link GL2GL3} implemented interface.<br> +ClassJavadoc GL3 * Note: OpenGL 3.1 forward compatible no more includes fixed point functionality. +ClassJavadoc GL3 * </P> +ClassJavadoc GL3 */ + +ClassJavadoc GLES1 /** +ClassJavadoc GLES1 * <P> +ClassJavadoc GLES1 * This interface contains all core embedded OpenGL methods of ES 1.x, with x >= 0, +ClassJavadoc GLES1 * inclusive, as well as most of it's extensions defined at the +ClassJavadoc GLES1 * time of this specification. +ClassJavadoc GLES1 * </P> +ClassJavadoc GLES1 */ + +ClassJavadoc GLES2 /** +ClassJavadoc GLES2 * <P> +ClassJavadoc GLES2 * This interface contains all core embedded OpenGL methods of ES 2.x, with x >= 0, +ClassJavadoc GLES2 * inclusive, as well as most of it's extensions defined at the +ClassJavadoc GLES2 * time of this specification. +ClassJavadoc GLES2 * </P> +ClassJavadoc GLES2 */ + +# Javadoc for the EGL class +ClassJavadoc EGL /** +ClassJavadoc EGL * Provides access to the embedded-specific OpenGL vendor extensions. +ClassJavadoc EGL * See {@link GLBase} for more information. +ClassJavadoc EGL */ + # Javadoc for the WGL class ClassJavadoc WGL /** ClassJavadoc WGL * Provides access to the Windows-specific OpenGL vendor extensions. -ClassJavadoc WGL * See {@link GL} for more information. +ClassJavadoc WGL * See {@link GLBase} for more information. ClassJavadoc WGL */ # Javadoc for the GLX class ClassJavadoc GLX /** ClassJavadoc GLX * Provides access to the X11-specific OpenGL vendor extensions. -ClassJavadoc GLX * See {@link GL} for more information. +ClassJavadoc GLX * See {@link GLBase} for more information. ClassJavadoc GLX */ # Javadoc for the CGL class ClassJavadoc CGL /** ClassJavadoc CGL * Provides access to the MacOSX-specific OpenGL vendor extensions. -ClassJavadoc CGL * See {@link GL} for more information. +ClassJavadoc CGL * See {@link GLBase} for more information. ClassJavadoc CGL */ # Javadoc for the XVisualInfo class @@ -556,86 +665,9 @@ ClassJavadoc XVisualInfo */ # Custom code for querying extensions and exposing # wglAllocateMemoryNV/glXAllocateMemoryNV -CustomJavaCode GL /** -CustomJavaCode GL * Returns true if the specified OpenGL core- or extension-function can be -CustomJavaCode GL * used successfully through this GL instance given the current host (OpenGL -CustomJavaCode GL * <i>client</i>) and display (OpenGL <i>server</i>) configuration.<P> -CustomJavaCode GL * By "successfully" we mean that the function is both <i>callable</i> -CustomJavaCode GL * on the machine running the program and <i>available</i> on the current -CustomJavaCode GL * display.<P> -CustomJavaCode GL * -CustomJavaCode GL * In order to call a function successfully, the function must be both -CustomJavaCode GL * <i>callable</i> on the machine running the program and <i>available</i> on -CustomJavaCode GL * the display device that is rendering the output (note: on non-networked, -CustomJavaCode GL * single-display machines these two conditions are identical; on networked and/or -CustomJavaCode GL * multi-display machines this becomes more complicated). These conditions are -CustomJavaCode GL * met if the function is either part of the core OpenGL version supported by -CustomJavaCode GL * both the host and display, or it is an OpenGL extension function that both -CustomJavaCode GL * the host and display support. <P> -CustomJavaCode GL * -CustomJavaCode GL * A GL function is <i>callable</i> if it is successfully linked at runtime, -CustomJavaCode GL * hence the GLContext must be made current at least once. -CustomJavaCode GL * -CustomJavaCode GL * @param glFunctionName the name of the OpenGL function (e.g., use -CustomJavaCode GL * "glBindRenderbufferEXT" or "glBindRenderbuffer" to check if {@link -CustomJavaCode GL * #glBindRenderbuffer(int,int)} is available). -CustomJavaCode GL */ -CustomJavaCode GL public boolean isFunctionAvailable(String glFunctionName); - -CustomJavaCode GL /** -CustomJavaCode GL * Returns true if the specified OpenGL extension can be -CustomJavaCode GL * used successfully through this GL instance given the current host (OpenGL -CustomJavaCode GL * <i>client</i>) and display (OpenGL <i>server</i>) configuration.<P> -CustomJavaCode GL * -CustomJavaCode GL * @param glExtensionName the name of the OpenGL extension (e.g., -CustomJavaCode GL * "GL_ARB_vertex_program"). -CustomJavaCode GL */ -CustomJavaCode GL public boolean isExtensionAvailable(String glExtensionName); - -CustomJavaCode GL /** -CustomJavaCode GL * Provides platform-independent access to the <code>wglAllocateMemoryNV</code> / -CustomJavaCode GL * <code>glXAllocateMemoryNV</code> extension. -CustomJavaCode GL */ -CustomJavaCode GL public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3); - -CustomJavaCode GL /** Provides a platform-independent way to specify the minimum swap -CustomJavaCode GL interval for buffer swaps. An argument of 0 disables -CustomJavaCode GL sync-to-vertical-refresh completely, while an argument of 1 -CustomJavaCode GL causes the application to wait until the next vertical refresh -CustomJavaCode GL until swapping buffers. The default, which is platform-specific, -CustomJavaCode GL is usually either 0 or 1. This function is not guaranteed to -CustomJavaCode GL have an effect, and in particular only affects heavyweight -CustomJavaCode GL onscreen components. */ -CustomJavaCode GL public void setSwapInterval(int interval); - -CustomJavaCode GL /** -CustomJavaCode GL * Returns an object through which platform-specific OpenGL extensions -CustomJavaCode GL * (WGL, GLX, etc.) may be accessed. The data type of the returned -CustomJavaCode GL * object and its associated capabilities are undefined. Most -CustomJavaCode GL * applications will never need to call this method. It is highly -CustomJavaCode GL * recommended that any applications which do call this method perform -CustomJavaCode GL * all accesses on the returned object reflectively to guard -CustomJavaCode GL * themselves against changes to the implementation. -CustomJavaCode GL */ -CustomJavaCode GL public Object getPlatformGLExtensions(); - -CustomJavaCode GL /** -CustomJavaCode GL * Returns an object providing access to the specified OpenGL -CustomJavaCode GL * extension. This is intended to provide a mechanism for vendors who -CustomJavaCode GL * which to provide access to new OpenGL extensions without changing -CustomJavaCode GL * the public API of the core package. For example, a user may request -CustomJavaCode GL * access to extension "GL_VENDOR_foo" and receive back an object -CustomJavaCode GL * which implements a vendor-specified interface which can call the -CustomJavaCode GL * OpenGL extension functions corresponding to that extension. It is -CustomJavaCode GL * up to the vendor to specify both the extension name and Java API -CustomJavaCode GL * for accessing it, including which class or interface contains the -CustomJavaCode GL * functions. -CustomJavaCode GL * -CustomJavaCode GL * <P> -CustomJavaCode GL * -CustomJavaCode GL * Note: it is the intent to add new extensions as quickly as possible -CustomJavaCode GL * to the core GL API. Therefore it is unlikely that most vendors will -CustomJavaCode GL * use this extension mechanism, but it is being provided for -CustomJavaCode GL * completeness. -CustomJavaCode GL */ -CustomJavaCode GL public Object getExtension(String extensionName); +CustomJavaCode GL2GL3 /** +CustomJavaCode GL2GL3 * Provides platform-independent access to the <code>wglAllocateMemoryNV</code> / +CustomJavaCode GL2GL3 * <code>glXAllocateMemoryNV</code> extension. +CustomJavaCode GL2GL3 */ +CustomJavaCode GL2GL3 public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3); + 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-es1.cfg b/make/config/jogl/gl-es1.cfg index 02aae2860..35ea7f0ce 100755 --- a/make/config/jogl/gl-es1.cfg +++ b/make/config/jogl/gl-es1.cfg @@ -2,12 +2,12 @@ JavaOutputDir gensrc/classes NativeOutputDir gensrc/native/jogl/es1 -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES1.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES1.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java # There are a few routines we don't handle yet Ignore glGetBufferPointervOES diff --git a/make/config/jogl/gl-es2.cfg b/make/config/jogl/gl-es2.cfg index 244f1944f..6a81c9376 100755 --- a/make/config/jogl/gl-es2.cfg +++ b/make/config/jogl/gl-es2.cfg @@ -2,9 +2,9 @@ JavaOutputDir gensrc/classes NativeOutputDir gensrc/native/jogl/es2 -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java Package javax.media.opengl Style InterfaceAndImpl diff --git a/make/config/jogl/gl-gl2.cfg b/make/config/jogl/gl-gl2.cfg index 8dfe76758..50574598a 100644 --- a/make/config/jogl/gl-gl2.cfg +++ b/make/config/jogl/gl-gl2.cfg @@ -2,13 +2,14 @@ JavaOutputDir gensrc/classes NativeOutputDir gensrc/native/jogl/gl2 -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES1.java -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES1.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2GL3.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java Package javax.media.opengl Style InterfaceAndImpl @@ -17,13 +18,15 @@ Extends GL2 GLBase Extends GL2 GL Extends GL2 GL2ES1 Extends GL2 GL2ES2 +Extends GL2 GL2GL3 ImplPackage com.sun.opengl.impl.gl2 ImplJavaClass GL2Impl Implements GL2Impl GLBase Implements GL2Impl GL Implements GL2Impl GL2ES1 Implements GL2Impl GL2ES2 -Include gl-common-gl2.cfg +Implements GL2Impl GL2GL3 +Include gl-common.cfg Include gl-common-extensions.cfg Include gl-desktop.cfg @@ -40,6 +43,8 @@ IgnoreExtension GL_EXT_point_parameters CustomJavaCode GL2 public boolean glIsPBOPackEnabled(); CustomJavaCode GL2 public boolean glIsPBOUnpackEnabled(); +IncludeAs CustomJavaCode GL2 gl-if-CustomJavaCode-gl2.java + CustomJavaCode GL2Impl public void glFrustumf(float left, float right, float bottom, float top, float zNear, float zFar) { CustomJavaCode GL2Impl glFrustum((double)left, (double)right, (double)bottom, (double)top, (double)zNear, (double)zFar); } diff --git a/make/config/jogl/gl-gl2es12.cfg b/make/config/jogl/gl-gl2es12.cfg index c233ef4fd..9e36da2ea 100644 --- a/make/config/jogl/gl-gl2es12.cfg +++ b/make/config/jogl/gl-gl2es12.cfg @@ -13,12 +13,12 @@ ExtendedInterfaceSymbolsOnly ../src/jogl/classes/javax/media/opengl/fixedfunc/GL Style ImplOnly ImplPackage com.sun.opengl.impl.gl2es12 ImplJavaClass GL2ES12Impl +Implements GL2ES12Impl GLBase Implements GL2ES12Impl GL Implements GL2ES12Impl GL2ES1 Implements GL2ES12Impl GL2ES2 -Implements GL2ES12Impl GLBase -Include gl-common-gl2.cfg +Include gl-common.cfg Include gl-common-extensions.cfg Include gl-desktop.cfg @@ -32,6 +32,10 @@ ForceProcAddressGen glMapBuffer # 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 + EmitProcAddressTable true ProcAddressTableClassName GL2ES12ProcAddressTable GetProcAddressTableExpr ((GL2ES12ProcAddressTable)_context.getGLProcAddressTable()) diff --git a/make/config/jogl/gl-gl3-set.cfg b/make/config/jogl/gl-gl3-set.cfg new file mode 100644 index 000000000..ac1edac47 --- /dev/null +++ b/make/config/jogl/gl-gl3-set.cfg @@ -0,0 +1,14 @@ +# This .cfg file is used to generate the GL interface and implementing class. +JavaOutputDir ../../build-temp/gluegen-set + +Package javax.media.opengl +Style InterfaceOnly +JavaClass GL3Set +Include gl-common.cfg +Include gl-common-extensions.cfg +Include gl3-common.cfg +Include gl3-desktop.cfg + +EmitProcAddressTable false +ProcAddressTableClassName DontGenerateProcAddressTableStuff +GetProcAddressTableExpr DontGenerateProcAddressTableStuff diff --git a/make/config/jogl/gl-gl3.cfg b/make/config/jogl/gl-gl3.cfg index 2b521e30a..576cd7cad 100644 --- a/make/config/jogl/gl-gl3.cfg +++ b/make/config/jogl/gl-gl3.cfg @@ -2,9 +2,10 @@ JavaOutputDir gensrc/classes NativeOutputDir gensrc/native/jogl/gl3 -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2GL3.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java Package javax.media.opengl Style InterfaceAndImpl @@ -12,19 +13,33 @@ JavaClass GL3 Extends GL3 GLBase Extends GL3 GL Extends GL3 GL2ES2 +Extends GL3 GL2GL3 ImplPackage com.sun.opengl.impl.gl3 ImplJavaClass GL3Impl Implements GL3Impl GLBase Implements GL3Impl GL Implements GL3Impl GL2ES2 -Include gl-common-gl2.cfg +Implements GL3Impl GL2GL3 +Include gl-common.cfg Include gl-common-extensions.cfg +Include gl3-common.cfg Include gl3-desktop.cfg +IncludeAs CustomJavaCode GL3 gl-if-CustomJavaCode-gl3.java + 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-headers.cfg b/make/config/jogl/gl-headers.cfg index 1cc5bf05b..5a648b582 100755 --- a/make/config/jogl/gl-headers.cfg +++ b/make/config/jogl/gl-headers.cfg @@ -35,7 +35,3 @@ CustomCCode #include <GL/gl.h> CustomCCode #include <GL/glx.h> CustomCCode #include <GL/glxext.h> CustomCCode #endif -CustomCCode /* Provide GLES #define for locally generated function pointer typedefs */ -CustomCCode #ifndef GL_APIENTRY -CustomCCode #define GL_APIENTRY GLAPIENTRY -CustomCCode #endif diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl.java b/make/config/jogl/gl-if-CustomJavaCode-gl.java index 28d24c072..20657ef9f 100644 --- a/make/config/jogl/gl-if-CustomJavaCode-gl.java +++ b/make/config/jogl/gl-if-CustomJavaCode-gl.java @@ -1,5 +1,70 @@ - public GLProfile getGLProfile(); + /** Common in ES1, GL2 and GL3 */ + public static final int GL_AND = 0x1501; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_AND_INVERTED = 0x1504; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_AND_REVERSE = 0x1502; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_BLEND_DST = 0x0BE0; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_BLEND_SRC = 0x0BE1; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_BUFFER_ACCESS = 0x88BB; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_CLEAR = 0x1500; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_COLOR_LOGIC_OP = 0x0BF2; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_COPY = 0x1503; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_COPY_INVERTED = 0x150C; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_DEPTH_COMPONENT24 = 0x81A6; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_DEPTH_COMPONENT32 = 0x81A7; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_EQUIV = 0x1509; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_LINE_SMOOTH = 0x0B20; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_LINE_SMOOTH_HINT = 0x0C52; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_LOGIC_OP_MODE = 0x0BF0; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_MULTISAMPLE = 0x809D; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_NAND = 0x150E; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_NOOP = 0x1505; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_NOR = 0x1508; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_OR = 0x1507; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_OR_INVERTED = 0x150D; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_OR_REVERSE = 0x150B; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_POINT_FADE_THRESHOLD_SIZE = 0x8128; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_POINT_SIZE = 0x0B11; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_SAMPLE_ALPHA_TO_ONE = 0x809F; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_SET = 0x150F; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_STENCIL_INDEX1 = 0x8D46; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_STENCIL_INDEX4 = 0x8D47; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_WRITE_ONLY = 0x88B9; + /** Common in ES1, GL2 and GL3 */ + public static final int GL_XOR = 0x1506; public void glClearDepth( double depth ); diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl2.java b/make/config/jogl/gl-if-CustomJavaCode-gl2.java new file mode 100644 index 000000000..4d1d0e048 --- /dev/null +++ b/make/config/jogl/gl-if-CustomJavaCode-gl2.java @@ -0,0 +1,19 @@ + +/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */ +public static final int GL_SAMPLER_BUFFER_EXT = 0x8DC2; +/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */ +public static final int GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD; +/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */ +public static final int GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5; +/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */ +public static final int GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8; +/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */ +public static final int GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD; + +/** Missed in the GL_EXT_packed_float promotion to 3.0 core */ +public static final int GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C; + +/** Missed in the GL_EXT_framebuffer_sRGB promotion to 3.0 core */ +public static final int GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA; + + diff --git a/make/config/jogl/gl-if-CustomJavaCode-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-gl-ignores.cfg b/make/config/jogl/gl-if-gl-ignores.cfg index 1fa439702..5deb828e6 100644 --- a/make/config/jogl/gl-if-gl-ignores.cfg +++ b/make/config/jogl/gl-if-gl-ignores.cfg @@ -354,7 +354,7 @@ Ignore GL_WRITE_ONLY_OES Ignore GL_XOR Ignore glIsProgram Ignore glIsShader -Ignore glUnmapBufferOES +#Ignore glUnmapBufferOES Ignore glCreateProgram Ignore glCreateShader Ignore glGetAttribLocation @@ -363,12 +363,12 @@ Ignore glAlphaFunc Ignore glAttachShader Ignore glBindAttribLocation Ignore glBlendColor -Ignore glBlendEquation -Ignore glBlendEquationOES -Ignore glBlendEquationSeparate -Ignore glBlendEquationSeparateOES -Ignore glBlendFuncSeparate -Ignore glBlendFuncSeparateOES +#Ignore glBlendEquation +#Ignore glBlendEquationOES +#Ignore glBlendEquationSeparate +#Ignore glBlendEquationSeparateOES +#Ignore glBlendFuncSeparate +#Ignore glBlendFuncSeparateOES Ignore glClearDepthfOES Ignore glClientActiveTexture Ignore glClipPlanef @@ -401,8 +401,8 @@ Ignore glFogxvOES Ignore glFramebufferVertexAttribArrayNV Ignore glFrustumf Ignore glFrustumfOES -Ignore glGenerateMipmap -Ignore glGenerateMipmapOES +#Ignore glGenerateMipmap +#Ignore glGenerateMipmapOES Ignore glGetActiveAttrib Ignore glGetActiveUniform Ignore glGetAttachedShaders diff --git a/make/config/jogl/gl-if-gl.cfg b/make/config/jogl/gl-if-gl.cfg index 46e11fdd4..1bba846e7 100755 --- a/make/config/jogl/gl-if-gl.cfg +++ b/make/config/jogl/gl-if-gl.cfg @@ -4,7 +4,7 @@ Style InterfaceOnly JavaClass GL Extends GL GLBase -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java HierarchicalNativeOutput false Include gl-common.cfg diff --git a/make/config/jogl/gl-if-gl2_es1.cfg b/make/config/jogl/gl-if-gl2_es1.cfg index d09ebcb30..6fe6b4b90 100755 --- a/make/config/jogl/gl-if-gl2_es1.cfg +++ b/make/config/jogl/gl-if-gl2_es1.cfg @@ -8,11 +8,11 @@ Extends GL2ES1 GLMatrixFunc Extends GL2ES1 GLPointerFunc Extends GL2ES1 GLLightingFunc -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java HierarchicalNativeOutput false Include gl-common.cfg diff --git a/make/config/jogl/gl-if-gl2_es2.cfg b/make/config/jogl/gl-if-gl2_es2.cfg index 5345c3ba1..63f96d906 100755 --- a/make/config/jogl/gl-if-gl2_es2.cfg +++ b/make/config/jogl/gl-if-gl2_es2.cfg @@ -5,8 +5,8 @@ JavaClass GL2ES2 Extends GL2ES2 GLBase Extends GL2ES2 GL -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java HierarchicalNativeOutput false Include gl-common.cfg Include gl-common-extensions.cfg diff --git a/make/config/jogl/gl-if-gl2_gl3.cfg b/make/config/jogl/gl-if-gl2_gl3.cfg new file mode 100644 index 000000000..7f6903dd6 --- /dev/null +++ b/make/config/jogl/gl-if-gl2_gl3.cfg @@ -0,0 +1,51 @@ +# This .cfg file is used to generate the GL interface and implementing class. +Package javax.media.opengl +Style InterfaceOnly +JavaClass GL2GL3 +Extends GL2GL3 GLBase +Extends GL2GL3 GL +Extends GL2GL3 GL2ES2 + +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java +ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java + +ExtendedInterfaceSymbolsOnly ../build-temp/gluegen-set/javax/media/opengl/GL3Set.java + +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 +ProcAddressTableClassName DontGenerateProcAddressTableStuff +GetProcAddressTableExpr DontGenerateProcAddressTableStuff + +# Inform the glue code generator of the association between #defines +# and functions and the extensions in which they are defined +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-gl2.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java index b3410040b..5928b3a0b 100644 --- a/make/config/jogl/gl-impl-CustomJavaCode-gl2.java +++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java @@ -15,6 +15,7 @@ public void setObjectTracker(GLObjectTracker tracker) { */ + public GL2Impl(GLProfile glp, GLContextImpl context) { this._context = context; this.bufferSizeTracker = context.getBufferSizeTracker(); @@ -53,6 +54,10 @@ public final boolean isGL2ES2() { return true; } +public final boolean isGL2GL3() { + return true; +} + public final boolean hasGLSL() { return true; } @@ -85,6 +90,10 @@ public final GL2ES2 getGL2ES2() throws GLException { return this; } +public final GL2GL3 getGL2GL3() throws GLException { + return this; +} + public boolean isFunctionAvailable(String glFunctionName) { return _context.isFunctionAvailable(glFunctionName); } @@ -118,6 +127,10 @@ public void setSwapInterval(int interval) { _context.setSwapInterval(interval); } +public int getSwapInterval() { + return _context.getSwapInterval(); +} + public Object getPlatformGLExtensions() { return _context.getPlatformGLExtensions(); } diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java index d7b3de789..3dfcf5908 100644 --- a/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java +++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java @@ -56,6 +56,10 @@ public final boolean isGL2ES2() { return isGL2ES2; } +public final boolean isGL2GL3() { + return false; +} + public final boolean hasGLSL() { return isGL2ES2; } @@ -94,6 +98,10 @@ public final GL2ES2 getGL2ES2() throws GLException { throw new GLException("Not a GL2ES2 implementation"); } +public final GL2GL3 getGL2GL3() throws GLException { + throw new GLException("Not a GL2GL3 implementation"); +} + public boolean isFunctionAvailable(String glFunctionName) { return _context.isFunctionAvailable(glFunctionName); } @@ -115,18 +123,14 @@ public GLContext getContext() { private GLContextImpl _context; -/** - * Provides platform-independent access to the wglAllocateMemoryNV / - * glXAllocateMemoryNV extension. - */ -public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) { - return _context.glAllocateMemoryNV(arg0, arg1, arg2, arg3); -} - public void setSwapInterval(int interval) { _context.setSwapInterval(interval); } +public int getSwapInterval() { + return _context.getSwapInterval(); +} + public Object getPlatformGLExtensions() { return _context.getPlatformGLExtensions(); } diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl3.java b/make/config/jogl/gl-impl-CustomJavaCode-gl3.java index aa1ef6575..9123f35c8 100644 --- a/make/config/jogl/gl-impl-CustomJavaCode-gl3.java +++ b/make/config/jogl/gl-impl-CustomJavaCode-gl3.java @@ -53,6 +53,10 @@ public final boolean isGL2ES2() { return true; } +public final boolean isGL2GL3() { + return true; +} + public final boolean hasGLSL() { return true; } @@ -85,6 +89,10 @@ public final GL2ES2 getGL2ES2() throws GLException { return this; } +public final GL2GL3 getGL2GL3() throws GLException { + return this; +} + public boolean isFunctionAvailable(String glFunctionName) { return _context.isFunctionAvailable(glFunctionName); } @@ -118,6 +126,10 @@ public void setSwapInterval(int interval) { _context.setSwapInterval(interval); } +public int getSwapInterval() { + return _context.getSwapInterval(); +} + public Object getPlatformGLExtensions() { return _context.getPlatformGLExtensions(); } diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gles1.java b/make/config/jogl/gl-impl-CustomJavaCode-gles1.java index d349f8018..c5831f426 100755 --- a/make/config/jogl/gl-impl-CustomJavaCode-gles1.java +++ b/make/config/jogl/gl-impl-CustomJavaCode-gles1.java @@ -36,6 +36,10 @@ public final boolean isGL2ES2() { return false; } +public final boolean isGL2GL3() { + return false; +} + public final boolean hasGLSL() { return false; } @@ -68,6 +72,10 @@ public final GL2ES2 getGL2ES2() throws GLException { throw new GLException("Not a GL2ES2 implementation"); } +public final GL2GL3 getGL2GL3() throws GLException { + throw new GLException("Not a GL2GL3 implementation"); +} + public boolean isFunctionAvailable(String glFunctionName) { return _context.isFunctionAvailable(glFunctionName); } @@ -89,18 +97,14 @@ public GLContext getContext() { private GLContextImpl _context; -/** - * Provides platform-independent access to the wglAllocateMemoryNV / - * glXAllocateMemoryNV extension. - */ -public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) { - return _context.glAllocateMemoryNV(arg0, arg1, arg2, arg3); -} - public void setSwapInterval(int interval) { _context.setSwapInterval(interval); } +public int getSwapInterval() { + return _context.getSwapInterval(); +} + public Object getPlatformGLExtensions() { return _context.getPlatformGLExtensions(); } @@ -288,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 28edd7a63..7e9b786b0 100755 --- a/make/config/jogl/gl-impl-CustomJavaCode-gles2.java +++ b/make/config/jogl/gl-impl-CustomJavaCode-gles2.java @@ -40,6 +40,10 @@ public final boolean isGL2ES2() { return true; } +public final boolean isGL2GL3() { + return false; +} + public final boolean hasGLSL() { return true; } @@ -72,6 +76,10 @@ public final GL2ES2 getGL2ES2() throws GLException { return this; } +public final GL2GL3 getGL2GL3() throws GLException { + throw new GLException("Not a GL2GL3 implementation"); +} + public boolean isFunctionAvailable(String glFunctionName) { return _context.isFunctionAvailable(glFunctionName); } @@ -93,18 +101,14 @@ public GLContext getContext() { private GLContextImpl _context; -/** - * Provides platform-independent access to the wglAllocateMemoryNV / - * glXAllocateMemoryNV extension. - */ -public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) { - return _context.glAllocateMemoryNV(arg0, arg1, arg2, arg3); -} - public void setSwapInterval(int interval) { _context.setSwapInterval(interval); } +public int getSwapInterval() { + return _context.getSwapInterval(); +} + public Object getPlatformGLExtensions() { return _context.getPlatformGLExtensions(); } @@ -298,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/gl3-headers.cfg b/make/config/jogl/gl3-headers.cfg index 282a91ec5..8af9157cf 100755 --- a/make/config/jogl/gl3-headers.cfg +++ b/make/config/jogl/gl3-headers.cfg @@ -23,7 +23,3 @@ CustomCCode #include <stdlib.h> CustomCCode #include <X11/Xlib.h> CustomCCode #include <GL3/gl3.h> CustomCCode #endif -CustomCCode /* Provide GLES #define for locally generated function pointer typedefs */ -CustomCCode #ifndef GL_APIENTRY -CustomCCode #define GL_APIENTRY GLAPIENTRY -CustomCCode #endif diff --git a/make/config/jogl/glu-CustomJavaCode-base.java b/make/config/jogl/glu-CustomJavaCode-base.java index 6949cfb68..78c067606 100755 --- a/make/config/jogl/glu-CustomJavaCode-base.java +++ b/make/config/jogl/glu-CustomJavaCode-base.java @@ -76,8 +76,19 @@ public boolean isFunctionAvailable(String gluFunctionName) // Utility routines // -private static Class gl2Class; -private static Class gl2es1Class; +private static final Class gl2Class; +private static final Class gl2es1Class; + +static { + Class _gl2Class=null; + Class _gl2es1Class=null; + try { + _gl2Class = Class.forName("javax.media.opengl.glu.gl2.GLUgl2"); + _gl2es1Class = Class.forName("javax.media.opengl.glu.gl2es1.GLUgl2es1"); + } catch (Throwable t) {} + gl2Class = _gl2Class; + gl2es1Class = _gl2es1Class; +} /** * Instantiates a GLU implementation object in respect to the given GL profile @@ -94,32 +105,20 @@ public static final GLU createGLU() throws GLException { public static final GLU createGLU(GL gl) throws GLException { try { Class c = null; - if(gl.isGL2()) { - if (gl2Class == null) { - gl2Class = Class.forName("javax.media.opengl.glu.gl2.GLUgl2"); - } + if(gl.isGL2() && null!=gl2Class) { c = gl2Class; - } else if (gl.isGL2ES1()) { - if (gl2es1Class == null) { - gl2es1Class = Class.forName("javax.media.opengl.glu.gl2es1.GLUgl2es1"); - } + } else if(gl.isGL2ES1() && null!=gl2es1Class) { c = gl2es1Class; + /** There is no specialized ES 2 GLU at this time + } else if(gl.isGL2ES2() && null!=gl2es2Class) { + c = gl2es2Class; */ + } else { + c = GLU.class; } - if (c != null) { - return (GLU) c.newInstance(); - } + return (GLU) c.newInstance(); } catch (Exception e) { throw new GLException(e); } - // There is no specialized ES 2 GLU at this time - /* - try { - if(GLProfile.GL2ES12.equals(profile) || GLProfile.GL2.equals(profile) || GLProfile.GLES2.equals(profile)) { - return (GLU) NWReflection.createInstance("javax.media.opengl.glu.gl2es2.GLUgl2es2"); - } - } catch (GLException e) { e.printStackTrace(); } - */ - return new GLU(); } public GLU() 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 9688a9436..39ba379c4 100755 --- a/make/config/jogl/glxext.cfg +++ b/make/config/jogl/glxext.cfg @@ -9,10 +9,13 @@ JavaClass GLXExt ImplPackage com.sun.opengl.impl.x11.glx ImplJavaClass GLXExtImpl -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/com/sun/opengl/impl/x11/glx/GLX.java -Include gl-common-gl2.cfg +ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/sun/opengl/impl/x11/glx/GLX.java +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() |