From b5ce9cce6223810c6df7b66cf1a51318309fdc90 Mon Sep 17 00:00:00 2001 From: sg215889 Date: Wed, 29 Jul 2009 06:27:46 -0700 Subject: Fixed GL* documentation. Moved common GL functions to GLBase. Moved glAllocateMemoryNV to GL2GL3 only. Add GL2GL3 interface. Fix some GL2 signatures. BroadcomEGL disable custom setSize(). --- make/config/jogl/gl-impl-CustomJavaCode-gl2.java | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'make/config/jogl/gl-impl-CustomJavaCode-gl2.java') diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl2.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java index b3410040b..5aec51fc7 100644 --- a/make/config/jogl/gl-impl-CustomJavaCode-gl2.java +++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2.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); } -- cgit v1.2.3 From 9a4619d5ab1c0441dfb273d057e288b4bf4c6dbc Mon Sep 17 00:00:00 2001 From: sg215889 Date: Thu, 30 Jul 2009 22:09:24 -0700 Subject: Fix SwapInterval (return value, check ctx current, egl), add getSwapInterval. --- make/config/jogl/gl-impl-CustomJavaCode-gl2.java | 4 ++++ .../jogl/gl-impl-CustomJavaCode-gl2es12.java | 4 ++++ make/config/jogl/gl-impl-CustomJavaCode-gl3.java | 4 ++++ make/config/jogl/gl-impl-CustomJavaCode-gles1.java | 4 ++++ make/config/jogl/gl-impl-CustomJavaCode-gles2.java | 4 ++++ .../classes/com/sun/opengl/impl/GLContextImpl.java | 20 +++++++++++++---- .../com/sun/opengl/impl/egl/EGLContext.java | 6 ++++++ .../opengl/impl/macosx/cgl/MacOSXCGLContext.java | 3 ++- .../impl/macosx/cgl/MacOSXPbufferCGLContext.java | 13 ++++++++++- .../macosx/cgl/awt/MacOSXJava2DCGLContext.java | 4 ---- .../opengl/impl/windows/wgl/WindowsWGLContext.java | 25 ++++------------------ .../com/sun/opengl/impl/x11/glx/X11GLXContext.java | 8 +++---- src/jogl/classes/javax/media/opengl/GLBase.java | 17 ++++++++++++++- 13 files changed, 80 insertions(+), 36 deletions(-) (limited to 'make/config/jogl/gl-impl-CustomJavaCode-gl2.java') diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl2.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java index 5aec51fc7..061830cb4 100644 --- a/make/config/jogl/gl-impl-CustomJavaCode-gl2.java +++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java @@ -126,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-gl2es12.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java index cb4cab175..3dfcf5908 100644 --- a/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java +++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java @@ -127,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-gl3.java b/make/config/jogl/gl-impl-CustomJavaCode-gl3.java index a15964bcc..9123f35c8 100644 --- a/make/config/jogl/gl-impl-CustomJavaCode-gl3.java +++ b/make/config/jogl/gl-impl-CustomJavaCode-gl3.java @@ -126,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 5141376df..65236676a 100755 --- a/make/config/jogl/gl-impl-CustomJavaCode-gles1.java +++ b/make/config/jogl/gl-impl-CustomJavaCode-gles1.java @@ -101,6 +101,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-gles2.java b/make/config/jogl/gl-impl-CustomJavaCode-gles2.java index b53715ae0..2f69905a9 100755 --- a/make/config/jogl/gl-impl-CustomJavaCode-gles2.java +++ b/make/config/jogl/gl-impl-CustomJavaCode-gles2.java @@ -105,6 +105,10 @@ public void setSwapInterval(int interval) { _context.setSwapInterval(interval); } +public int getSwapInterval() { + return _context.getSwapInterval(); +} + public Object getPlatformGLExtensions() { return _context.getPlatformGLExtensions(); } diff --git a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java index c60cccec6..fa7e1ade7 100644 --- a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java +++ b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java @@ -284,11 +284,23 @@ public abstract class GLContextImpl extends GLContext { public abstract ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3); - /* - * Sets the swap interval for onscreen OpenGL contexts. Has no - * effect for offscreen contexts. - */ public void setSwapInterval(final int interval) { + GLContext current = getCurrent(); + if (current != this) { + throw new GLException("This context is not current. Current context: "+current+ + ", this context "+this); + } + setSwapIntervalImpl(interval); + } + + protected int currentSwapInterval = -1; // default: not set yet .. + + public int getSwapInterval() { + return currentSwapInterval; + } + + protected void setSwapIntervalImpl(final int interval) { + // nop per default .. } /** Maps the given "platform-independent" function name to a real function diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLContext.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLContext.java index 45fe0fcd3..1a75f03a9 100755 --- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLContext.java +++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLContext.java @@ -261,6 +261,12 @@ public abstract class EGLContext extends GLContextImpl { } } + protected void setSwapIntervalImpl(int interval) { + if (EGL.eglSwapInterval(drawable.getDisplay(), interval)) { + currentSwapInterval = interval ; + } + } + public abstract void bindPbufferToTexture(); public abstract void releasePbufferFromTexture(); diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLContext.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLContext.java index b424e9516..f60dd1645 100644 --- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLContext.java +++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLContext.java @@ -337,11 +337,12 @@ public abstract class MacOSXCGLContext extends GLContextImpl return ""; } - public void setSwapInterval(int interval) { + protected void setSwapIntervalImpl(int interval) { if (nsContext == 0) { throw new GLException("OpenGL context not current"); } CGL.setSwapInterval(nsContext, interval); + currentSwapInterval = interval ; } public ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) { diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java index d702150d3..4ea3519bf 100644 --- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java +++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java @@ -121,11 +121,12 @@ public class MacOSXPbufferCGLContext extends MacOSXCGLContext { } } - public void setSwapInterval(int interval) { + protected void setSwapIntervalImpl(int interval) { if (nsContext == 0) { throw new GLException("OpenGL context not current"); } impl.setSwapInterval(nsContext, interval); + currentSwapInterval = impl.getSwapInterval() ; } public int getFloatingPointMode() { @@ -210,6 +211,7 @@ public class MacOSXPbufferCGLContext extends MacOSXCGLContext { public boolean makeCurrent(long ctx); public boolean release(long ctx); public void setSwapInterval(long ctx, int interval); + public int getSwapInterval(); } // NSOpenGLContext-based implementation @@ -241,8 +243,14 @@ public class MacOSXPbufferCGLContext extends MacOSXCGLContext { return CGL.clearCurrentContext(ctx); } + private int currentSwapInterval = 0 ; + public void setSwapInterval(long ctx, int interval) { CGL.setSwapInterval(ctx, interval); + currentSwapInterval = interval ; + } + public int getSwapInterval() { + return currentSwapInterval; } } @@ -344,5 +352,8 @@ public class MacOSXPbufferCGLContext extends MacOSXCGLContext { public void setSwapInterval(long ctx, int interval) { // For now not supported (not really relevant for off-screen contexts anyway) } + public int getSwapInterval() { + return 0; + } } } diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/awt/MacOSXJava2DCGLContext.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/awt/MacOSXJava2DCGLContext.java index 4423f8da5..22b0ffe55 100644 --- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/awt/MacOSXJava2DCGLContext.java +++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/awt/MacOSXJava2DCGLContext.java @@ -144,10 +144,6 @@ public class MacOSXJava2DCGLContext extends MacOSXCGLContext implements Java2DGL } } - public void setSwapInterval(int interval) { - // Not supported in this context implementation - } - public void setOpenGLMode(int mode) { if (mode != MacOSXCGLDrawable.CGL_MODE) throw new GLException("OpenGL mode switching not supported for Java2D GLContexts"); diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java index 1bc3acada..92a563445 100644 --- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java +++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java @@ -332,29 +332,12 @@ public class WindowsWGLContext extends GLContextImpl { } } - public boolean isFunctionAvailable(String glFunctionName) - { - boolean available = super.isFunctionAvailable(glFunctionName); - - // Sanity check for implementations that use proc addresses for run-time - // linking: if the function IS available, then make sure there's a proc - // address for it if it's an extension or not part of the OpenGL 1.1 core - // (post GL 1.1 functions are run-time linked on windows). - /* FIXME: - assert(!available || - (getGLProcAddressTable().getAddressFor(mapToRealGLFunctionName(glFunctionName)) != 0 || - FunctionAvailabilityCache.isPartOfGLCore("1.1", mapToRealGLFunctionName(glFunctionName))) - ); */ - - return available; - } - - public void setSwapInterval(int interval) { - // FIXME: make the context current first? Currently assumes that - // will not be necessary. Make the caller do this? + protected void setSwapIntervalImpl(int interval) { WGLExt wglExt = getWGLExt(); if (wglExt.isExtensionAvailable("WGL_EXT_swap_control")) { - wglExt.wglSwapIntervalEXT(interval); + if ( wglExt.wglSwapIntervalEXT(interval) ) { + currentSwapInterval = interval ; + } } } diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java index 57abcf588..718d55aa0 100644 --- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java +++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java @@ -396,11 +396,9 @@ public abstract class X11GLXContext extends GLContextImpl { private int hasSwapIntervalSGI = 0; - public void setSwapInterval(int interval) { + protected void setSwapIntervalImpl(int interval) { getDrawableImpl().getFactoryImpl().lockToolkit(); try { - // FIXME: make the context current first? Currently assumes that - // will not be necessary. Make the caller do this? GLXExt glXExt = getGLXExt(); if(0==hasSwapIntervalSGI) { try { @@ -409,7 +407,9 @@ public abstract class X11GLXContext extends GLContextImpl { } if (hasSwapIntervalSGI>0) { try { - glXExt.glXSwapIntervalSGI(interval); + if( 0 == glXExt.glXSwapIntervalSGI(interval) ) { + currentSwapInterval = interval; + } } catch (Throwable t) { hasSwapIntervalSGI=-1; } } } finally { diff --git a/src/jogl/classes/javax/media/opengl/GLBase.java b/src/jogl/classes/javax/media/opengl/GLBase.java index 7b59344cc..92498077b 100644 --- a/src/jogl/classes/javax/media/opengl/GLBase.java +++ b/src/jogl/classes/javax/media/opengl/GLBase.java @@ -227,9 +227,24 @@ public interface GLBase { until swapping buffers. The default, which is platform-specific, is usually either 0 or 1. This function is not guaranteed to have an effect, and in particular only affects heavyweight - onscreen components. */ + onscreen components. + + @see #getSwapInterval + @throws GLException if this context is not the current + */ public void setSwapInterval(int interval); + /** Provides a platform-independent way to get the swap + interval set by {@link #setSwapInterval}.
+ + If the interval is not set by {@link #setSwapInterval} yet, + -1 is returned, indicating that the platforms default + is being used. + + @see #setSwapInterval + */ + public int getSwapInterval(); + /** * Returns an object through which platform-specific OpenGL extensions * (EGL, GLX, WGL, etc.) may be accessed. The data type of the returned -- cgit v1.2.3 From 97c28763a19a2b2a55486f9908c763ceb2e60775 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Sun, 2 Aug 2009 03:49:31 -0700 Subject: Update OpenGL GL2 profile subsumed/promoted extensions. Base is 3.0, ignore the colission-free subsumed extensions. --- make/config/jogl/gl-common.cfg | 63 +++++++++++++++++++++- make/config/jogl/gl-gl2.cfg | 2 + make/config/jogl/gl-if-CustomJavaCode-gl2.java | 40 ++++++++++++++ make/config/jogl/gl-impl-CustomJavaCode-gl2.java | 1 + make/doc/jogl/spec-overview.html | 26 ++++++--- .../javax/media/opengl/GLPipelineFactory.java | 9 ++-- 6 files changed, 128 insertions(+), 13 deletions(-) create mode 100644 make/config/jogl/gl-if-CustomJavaCode-gl2.java (limited to 'make/config/jogl/gl-impl-CustomJavaCode-gl2.java') diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg index 269ea68a7..3e38aa0da 100644 --- a/make/config/jogl/gl-common.cfg +++ b/make/config/jogl/gl-common.cfg @@ -133,6 +133,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 +142,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 +166,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 +184,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 +202,81 @@ 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 extensions subsumed in OpenGL 3.0 (from OpenGL 3.0 spec, Appendix N) +IgnoreExtension GL_EXT_gpu_shader4 + +IgnoreExtension GL_NV_conditional_render + +#Not promoted in header files: 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 + +IgnoreExtension GL_EXT_framebuffer_object + +# 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 + +IgnoreExtension GL_EXT_framebuffer_multisample +IgnoreExtension GL_EXT_framebuffer_blit + +#Big gap of promoted tokens and functions: GL_EXT_texture_integer + +IgnoreExtension GL_EXT_texture_array + +IgnoreExtension GL_EXT_packed_depth_stencil + +#Not promoted in header files: GL_EXT_draw_buffers2 + +IgnoreExtension GL_EXT_texture_compression_rgtc + +IgnoreExtension GL_EXT_transform_feedback +IgnoreExtension GL_NV_transform_feedback + +IgnoreExtension GL_APPLE_vertex_array_object + +IgnoreExtension GL_EXT_framebuffer_sRGB + +# <<< OpenGL 3.0 + + # Ignore a few obsolete versions of extensions that have been subsumed into the core or ARB extensions IgnoreExtension GL_EXT_multisample @@ -536,7 +595,7 @@ ClassJavadoc GL2 *

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 2.0, inclusive, are specifically +ClassJavadoc GL2 * was incorporated into core OpenGL by version 3.0, inclusive, are specifically ClassJavadoc GL2 * excluded. ClassJavadoc GL2 *

ClassJavadoc GL2 */ diff --git a/make/config/jogl/gl-gl2.cfg b/make/config/jogl/gl-gl2.cfg index 55f5b9781..7b689093a 100644 --- a/make/config/jogl/gl-gl2.cfg +++ b/make/config/jogl/gl-gl2.cfg @@ -43,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-if-CustomJavaCode-gl2.java b/make/config/jogl/gl-if-CustomJavaCode-gl2.java new file mode 100644 index 000000000..fe6388cbe --- /dev/null +++ b/make/config/jogl/gl-if-CustomJavaCode-gl2.java @@ -0,0 +1,40 @@ + +/** 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_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-impl-CustomJavaCode-gl2.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java index 061830cb4..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(); diff --git a/make/doc/jogl/spec-overview.html b/make/doc/jogl/spec-overview.html index 4ee902719..f79e5ff23 100644 --- a/make/doc/jogl/spec-overview.html +++ b/make/doc/jogl/spec-overview.html @@ -53,7 +53,7 @@ bindings to the native OpenGL(R) 3D graphics library profiles: This interface contains all core desktop OpenGL methods through version 3.0, inclusive, as well as most of it's extensions defined at the time of this specification. Early OpenGL extensions whose functionality -was incorporated into core OpenGL by version 2.0, inclusive, are specifically +was incorporated into core OpenGL by version 3.0, inclusive, are specifically excluded.
Future extensions will be added with a maintenance update
@@ -304,11 +304,16 @@ according the following rules:
  • -
  • All functions in core OpenGL 2.0, inclusive, have been included.
  • +
  • All functions in core OpenGL 3.0, inclusive, have been included.
  • If the functionality of the OpenGL extension was subsumed into core -OpenGL by version 2.0, then the extension was dropped from the Java bindings. +OpenGL by version 3.0, then the extension was dropped from the Java bindings. However, if the core function name is not available in the native OpenGL implementation, - the extension named equivalent is used instead, e.g. GL_ARB_framebuffer_object.
  • + the extension named equivalent is used instead, e.g. GL_ARB_framebuffer_object. + In general the native method name will be looked up as follows +
      +
    • Try the interface name
    • +
    • Try the extension name: ARB, EXT, ..
    • +
  • Functions that deal with explicit pointer values in such a way that they cannot be properly implemented in Java have been excluded.  This includes retrieval methods with a C void ** in the OpenGL signature like glGetBufferPointerv, @@ -370,8 +375,8 @@ implementation.

    OpenGL Version on Runtime System

    Even though OpenGL extensions whose functionality was included into core -OpenGL by version 2.0, inclusive, are not included in the bindings, it should -be noted that OpenGL version 2.0 is not an absolute requirement on the runtime +OpenGL by version 3.0, inclusive, are not included in the bindings, it should +be noted that OpenGL version 3.0 is not an absolute requirement on the runtime system.  This is because a user could query whether any particular function is available before calling certain core APIs that might not be present.  Also, if the core function name is not available in the native OpenGL implementation, @@ -423,6 +428,15 @@ http://www.khronos.org/registry/cl/ href="http://www.opengl.org/registry/doc/glspec31.20090324.pdf"> http://www.opengl.org/registry/doc/glspec31.20090324.pdf +
      +
    • OpenGL 3.0 Specification
    • + +
    + +
    +http://www.opengl.org/registry/doc/glspec30.20080923.pdf
    +
    • OpenGL 2.1 Specification
    • diff --git a/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java b/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java index bb9f86911..9aceb2c53 100644 --- a/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java +++ b/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java @@ -54,13 +54,12 @@ public class GLPipelineFactory { * The upstream GL instance is determined as follows: *
        *
      • Use pipelineClazzBaseName as the class name's full basename, incl. package name
      • - *
      • For all downstream classes, do:
      • + *
      • For the downstream classe and it's superclasses, do:
      • *
          - *
        • For all downstream class interfaces, do:
        • + *
        • For all downstream class and superclass interfaces, do:
        • *
            - *
          • If reqInterface is not null and the interface is unequal, continue.
          • - *
          • If downstream is not instance of interface, continue.
          • - *
          • If downstream is not instance of interface, continue.
          • + *
          • If reqInterface is not null and the interface is unequal, continue loop.
          • + *
          • If downstream is not instance of interface, continue loop.
          • *
          • If upstream class is available use it, end loop.
          • *
          *
        -- cgit v1.2.3