aboutsummaryrefslogtreecommitdiffstats
path: root/make/config/jogl/gl-common.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'make/config/jogl/gl-common.cfg')
-rw-r--r--make/config/jogl/gl-common.cfg371
1 files changed, 266 insertions, 105 deletions
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
index 8af080ec8..d5c45314e 100644
--- a/make/config/jogl/gl-common.cfg
+++ b/make/config/jogl/gl-common.cfg
@@ -7,6 +7,20 @@ HierarchicalNativeOutput false
RuntimeExceptionType GLException
UnsupportedExceptionType GLException
+# 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
+GLHeader GL/glcorearb.h
+GLHeader GL/glcorearbext.h
+GLHeader GLES/gl.h
+GLHeader GLES/glext.h
+GLHeader GLES2/gl2.h
+GLHeader GLES2/gl2ext.h
+GLHeader GLES3/gl3.h
+GLHeader GLES3/gl3ext.h
+GLHeader GL/glext-20130207.h
+
# Imports needed by all glue code
Import java.util.*
Import javax.media.opengl.*
@@ -37,14 +51,71 @@ Ignore glGetVertexAttribPointerv
Ignore glGetVertexAttribPointervARB
Ignore glGetVertexAttribPointervNV
Ignore glTracePointerRangeMESA
-Ignore glMultiDrawElementsBaseVertex
-Ignore glDebugMessageCallbackARB
Ignore glDebugMessageCallbackAMD
+Ignore glDebugMessageCallbackARB
+Ignore glDebugMessageCallbackKHR
+Ignore glDebugMessageCallback
+
+#
+# Manually implement following GL functions to be redirected
+# to GLBufferObjectTracker.
+#
+ManuallyImplement glBufferData
+ForceProcAddressGen glBufferData
+MethodJavadoc glBufferData * <p>
+MethodJavadoc glBufferData * Throws a {@link GLException} if GL-function constraints are not met or the native GL-function fails.
+MethodJavadoc glBufferData * </p>
+MethodJavadoc glBufferData * <p>
+MethodJavadoc glBufferData * @throws GLException if buffer is not bound to target
+MethodJavadoc glBufferData * @throws GLException if size is less-than zero
+MethodJavadoc glBufferData * @throws GLException if a native GL-Error occurs
+MethodJavadoc glBufferData * </p>
+
+# FIXME: Add for OpenGL 4.4
+#Ignore glBufferStorage
+#ManuallyImplement glBufferStorage
+#ForceProcAddressGen glBufferStorage
+#MethodJavadoc glBufferStorage * <p>
+#MethodJavadoc glBufferStorage * Throws a {@link GLException} if GL-function constraints are not met or the native GL-function fails.
+#MethodJavadoc glBufferStorage * </p>
+#MethodJavadoc glBufferStorage * <p>
+#MethodJavadoc glBufferStorage * @throws GLException if buffer is not bound to target
+#MethodJavadoc glBufferStorage * @throws GLException if size is less-or-equal zero
+#MethodJavadoc glBufferStorage * @throws GLException if a native GL-Error occurs
+#MethodJavadoc glBufferStorage * </p>
-# Manually implement glMapBuffer as the size of the returned buffer
-# can only be computed by calling another routine
ManuallyImplement glMapBuffer
ForceProcAddressGen glMapBuffer
+MethodJavadoc glMapBuffer * <p>
+MethodJavadoc glMapBuffer * Throws a {@link GLException} if GL-function constraints are not met.
+MethodJavadoc glMapBuffer * </p>
+MethodJavadoc glMapBuffer * <p>
+MethodJavadoc glMapBuffer * Returns {@link GL#mapBuffer(int, int)}'s {@link GLBufferStorage#getMappedBuffer()}.
+MethodJavadoc glMapBuffer * </p>
+MethodJavadoc glMapBuffer * @throws GLException if buffer is not bound to target
+MethodJavadoc glMapBuffer * @throws GLException if buffer is not tracked
+MethodJavadoc glMapBuffer * @throws GLException if buffer is already mapped
+MethodJavadoc glMapBuffer * @throws GLException if buffer has invalid store size, i.e. less-than zero
+MethodJavadoc glMapBuffer * </p>
+
+ManuallyImplement glMapBufferRange
+ForceProcAddressGen glMapBufferRange
+MethodJavadoc glMapBufferRange * <p>
+MethodJavadoc glMapBufferRange * Throws a {@link GLException} if GL-function constraints are not met.
+MethodJavadoc glMapBufferRange * </p>
+MethodJavadoc glMapBufferRange * <p>
+MethodJavadoc glMapBufferRange * Returns {@link GL#mapBufferRange(int, long, long, int)}'s {@link GLBufferStorage#getMappedBuffer()}.
+MethodJavadoc glMapBufferRange * </p>
+MethodJavadoc glMapBufferRange * <p>
+MethodJavadoc glMapBufferRange * @throws GLException if buffer is not bound to target
+MethodJavadoc glMapBufferRange * @throws GLException if buffer is not tracked
+MethodJavadoc glMapBufferRange * @throws GLException if buffer is already mapped
+MethodJavadoc glMapBufferRange * @throws GLException if buffer has invalid store size, i.e. less-than zero
+MethodJavadoc glMapBufferRange * @throws GLException if buffer mapping range does not fit, incl. offset
+MethodJavadoc glMapBufferRange * </p>
+
+ManuallyImplement glUnmapBuffer
+ForceProcAddressGen glUnmapBuffer
# Ignore the ATI_map_object_buffer extension for now unless someone
# claims they need it, as it will undoubtedly require a similar
@@ -250,7 +321,7 @@ RenameExtensionIntoCore GL_EXT_draw_buffers2
RenameExtensionIntoCore GL_ARB_texture_compression_rgtc
IgnoreExtension GL_EXT_texture_compression_rgtc
-RenameExtensionIntoCore GL_EXT_transform_feedback
+IgnoreExtension GL_EXT_transform_feedback
IgnoreExtension GL_NV_transform_feedback
# gl.h uses GL_ARB_vertex_array_object
@@ -278,6 +349,8 @@ IgnoreExtension GL_EXT_texture_buffer_object
RenameExtensionIntoCore GL_EXT_texture_rectangle
IgnoreExtension GL_NV_texture_rectangle
RenameExtensionIntoCore GL_ARB_uniform_buffer_object
+# Use Manual definition, otherwise GlueGen uses 'long' type
+Ignore GL_INVALID_INDEX
# <<< OpenGL 3.1
# >>> OpenGL 3.2
@@ -340,6 +413,17 @@ RenameExtensionIntoCore GL_ARB_viewport_array
# Rename extension suffices (if exist) subsumed in OpenGL 4.2 (from OpenGL 4.2 spec, Appendix L.1)
# <<< OpenGL 4.2
+# >>> OpenGL 4.3
+# Rename extension suffices (if exist) subsumed in OpenGL 4.3 (from OpenGL 4.3 spec, Appendix ?.1)
+RenameExtensionIntoCore GL_ARB_debug_output
+# <<< OpenGL 4.3
+
+# >>> OpenGL ES 2.0
+# <<< OpenGL ES 2.0
+
+# >>> OpenGL ES 3.0
+# <<< OpenGL ES 3.0
+
# Ignore a few obsolete versions of extensions that have been subsumed into the core or ARB extensions
IgnoreExtension GL_EXT_multisample
IgnoreExtension GL_EXT_point_parameters
@@ -353,6 +437,8 @@ IgnoreExtension GL_EXT_shader_image_load_store
Opaque boolean GLboolean
Opaque long GLsync
Opaque long GLeglImageOES
+Opaque long cl_context
+Opaque long cl_event
ReturnsString glGetString
ReturnsString glGetStringi
@@ -360,57 +446,68 @@ ReturnsString glGetStringi
# NIOOnly __ALL__
#
-# NIODirectOnly directives for vertex arrays and other core routines
+# NIODirectOnly directives for pointer functions
+# essential where memory needs to be kept pinpointed after the function call.
# essential where the buffer lifecycle extends the function call.
#
-# Note: API calls like glColorPointer(..) will not be exploded to
-# multiple primitive arrays, since the pointer argument is 'void *'.
+# Note-1: API calls like glColorPointer(..) will not be exploded to
+# multiple primitive arrays, since the pointer argument is 'void *'.
#
-
-#NIO Review: No technical reason to constrain array access for these:
-#NIODirectOnly glColorPointer
-#NIODirectOnly glEdgeFlagPointer
-#NIODirectOnly glIndexPointer
-#NIODirectOnly glNormalPointer
-#NIODirectOnly glTexCoordPointer
-#NIODirectOnly glVertexPointer
-#NIODirectOnly glVertexAttribPointer
-#NIODirectOnly glFogCoordPointer
-#NIODirectOnly glSecondaryColorPointer
-
-#Return values
-#NIODirectOnly glGenBuffers
-#NIODirectOnly glGetPointerv
-#NIODirectOnly glFeedbackBuffer
-#NIODirectOnly glSelectBuffer
-#NIODirectOnly glGetBufferSubData
-
-#
-# NIODirectOnly directives for other extensions
+# Note-2: It may be possible to track the primitive non-direct NIO backed arrays and pinpoint them.
+# JNI's Get*ArrayElements may be able to pinpoint, however it could result
+# in a copy of the data, which would render this feature non performant.
+# The tracking itself may be another no-go, since it would add up complexity
+# and failing to free resources would be another negative sideeffect.
#
-#NIO Review: No technical reason to constrain array access for these:
-#NIODirectOnly glMatrixIndexPointerARB
+NIODirectOnly glColorPointer
+NIODirectOnly glEdgeFlagPointer
+NIODirectOnly glFeedbackBuffer
+NIODirectOnly glFogCoordPointer
+NIODirectOnly glGetBufferSubData
NIODirectOnly glGetProgramStringARB
+NIODirectOnly glIndexPointer
+NIODirectOnly glMatrixIndexPointerARB
+NIODirectOnly glMultiTexCoordPointerEXT
+NIODirectOnly glNormalPointer
NIODirectOnly glPixelDataRangeNV
+NIODirectOnly glSecondaryColorPointer
+NIODirectOnly glSelectBuffer
+NIODirectOnly glTangentPointerEXT
+NIODirectOnly glTexCoordPointer
+NIODirectOnly glVariantPointerEXT
NIODirectOnly glVertexArrayRangeNV
NIODirectOnly glVertexArrayRangeApple
+NIODirectOnly glVertexAttribIPointer
+NIODirectOnly glVertexAttribLPointer
+NIODirectOnly glVertexAttribPointer
+NIODirectOnly glVertexPointer
+NIODirectOnly glVertexWeightPointerEXT
+NIODirectOnly glWeightPointerARB
NIODirectOnly wglFreeMemoryNV
NIODirectOnly glXFreeMemoryNV
+# Native PointerBuffer usage:
+NIODirectOnly glMultiDrawElements
+NIODirectOnly glMultiDrawElementsBaseVertex
+NIODirectOnly glVDPAUMapSurfacesNV
+NIODirectOnly glVDPAUUnmapSurfacesNV
+NIODirectOnly glExtGetBufferPointervQCOM
+
+#NIO Review: No technical reason to constrain array access for these:
+#Return values
+#NIODirectOnly glGenBuffers
+#NIODirectOnly glGetPointerv
+
#
-# NIOOnly for a few API calls ..
+# NIODirectOnly directives for other extensions
#
-NIOOnly glVertexAttribPointerNV
-NIOOnly glVertexWeightPointerEXT
+#NIO Review: No technical reason to constrain array access for these:
# Capacity of wglAllocateMemoryNV/glXAllocateMemoryNV return value is
# same as value of first argument
ReturnValueCapacity wglAllocateMemoryNV {0}
ReturnValueCapacity glXAllocateMemoryNV {0}
-ReturnValueCapacity glMapBufferRange {2}
-ReturnValueCapacity glMapNamedBufferRangeEXT {2}
-
# Pass arguments to ARB_vertex_program, ARB_fragment_program,
# ARB_shader_objects, NV_vertex_program, NV_fragment_program, and
# ARB_vertex_shader as Strings
@@ -431,6 +528,7 @@ ArgumentIsString glProgramNamedParameter4fvNV 2
ArgumentIsString glProgramNamedParameter4dvNV 2
ArgumentIsString glShaderSource 2
ArgumentIsString glShaderSourceARB 2
+ArgumentIsString glCreateShaderProgramv 2
ArgumentIsString glBindFragDataLocation 2
ArgumentIsString glGetFragDataLocation 1
@@ -459,7 +557,7 @@ ArgumentIsString glGetFragDataIndex 1
ArgumentIsString glGetSubroutineIndex 2
ArgumentIsString glGetSubroutineUniformLocation 2
-ArgumentIsString glDebugMessageInsertARB 5
+ArgumentIsString glDebugMessageInsert 5
ArgumentIsString glDebugMessageInsertAMD 4
ArgumentIsString glNamedStringARB 2 4
@@ -482,6 +580,19 @@ JavaPrologue glGetString } */
JavaPrologue glGetString }
#
+# Allow special FBO GLContext/GLDrawable to reset to it's
+# default FBO framebuffer.
+#
+JavaPrologue glBindFramebuffer if( 0 == framebuffer ) {
+JavaPrologue glBindFramebuffer if( GL_FRAMEBUFFER == target || 0x8CA9 /* GL_DRAW_FRAMEBUFFER */ == target ) {
+JavaPrologue glBindFramebuffer framebuffer = _context.getDefaultDrawFramebuffer();
+JavaPrologue glBindFramebuffer } else if( 0x8CA8 /* GL_READ_FRAMEBUFFER */ == target ) {
+JavaPrologue glBindFramebuffer framebuffer = _context.getDefaultReadFramebuffer();
+JavaPrologue glBindFramebuffer }
+JavaPrologue glBindFramebuffer }
+JavaEpilogue glBindFramebuffer _context.setBoundFramebuffer(target, framebuffer);
+
+#
# Directives for Vertex Buffer Object and Pixel Buffer Object checking
#
# NOTE: we currently don't emit glue code for some of these but
@@ -493,13 +604,18 @@ JavaPrologue glGetString }
#
JavaPrologue glBegin inBeginEndPair = true;
JavaEpilogue glEnd inBeginEndPair = false;
-JavaEpilogue glBindBuffer bufferStateTracker.setBoundBufferObject({0}, {1});
-JavaEpilogue glBindBufferARB bufferStateTracker.setBoundBufferObject({0}, {1});
-JavaEpilogue glPushClientAttrib bufferStateTracker.clearBufferObjectState();
-JavaEpilogue glPushClientAttrib glStateTracker.pushAttrib(mask);
-JavaEpilogue glPopClientAttrib bufferStateTracker.clearBufferObjectState();
-JavaEpilogue glPopClientAttrib glStateTracker.popAttrib();
-JavaEpilogue glBufferData bufferSizeTracker.setBufferSize(bufferStateTracker, {0}, this, {1});
+
+JavaEpilogue glBindBuffer bufferStateTracker.setBoundBufferObject({0}, {1});
+JavaEpilogue glBindBufferARB bufferStateTracker.setBoundBufferObject({0}, {1});
+JavaEpilogue glBindBufferBase bufferStateTracker.setBoundBufferObject({0}, {2});
+JavaEpilogue glBindBufferRange bufferStateTracker.setBoundBufferObject({0}, {2});
+JavaEpilogue glBindVertexArray bufferStateTracker.setBoundBufferObject(GL2GL3.GL_VERTEX_ARRAY_BINDING, {0});
+JavaEpilogue glPushClientAttrib bufferStateTracker.clear();
+JavaEpilogue glPushClientAttrib glStateTracker.pushAttrib(mask);
+JavaEpilogue glPopClientAttrib bufferStateTracker.clear();
+JavaEpilogue glPopClientAttrib glStateTracker.popAttrib();
+
+JavaPrologue glDeleteBuffers bufferObjectTracker.notifyBuffersDeleted({0}, {1});
BufferObjectKind Array glColorPointer
BufferObjectKind Array glEdgeFlagPointer
@@ -519,12 +635,23 @@ BufferObjectKind Array glVertexPointer
BufferObjectKind Array glVertexAttribPointer
BufferObjectKind Array glVertexAttribPointerARB
BufferObjectKind Array glVertexAttribPointerNV
+BufferObjectKind Array glVertexAttribIPointer
+BufferObjectKind Array glVertexAttribLPointer
BufferObjectKind Array glVertexWeightPointerEXT
BufferObjectKind Array glWeightPointerARB
BufferObjectKind Element glDrawElements
+BufferObjectKind Element glDrawElementsBaseVertex
+BufferObjectKind Element glDrawElementsInstanced
+BufferObjectKind Element glDrawElementsInstancedBaseInstance
+BufferObjectKind Element glDrawElementsInstancedBaseVertex
+BufferObjectKind Element glDrawElementsInstancedBaseVertexBaseInstance
BufferObjectKind Element glDrawRangeElements
-BufferObjectKind Element glDrawRangeElementsEXT
+BufferObjectKind Element glDrawRangeElementsBaseVertex
+
+BufferObjectKind Indirect glDrawArraysIndirect
+BufferObjectKind Indirect glDrawElementsIndirect
+BufferObjectKind Indirect glMultiDrawArraysIndirect
# There are no PBOs in the embedded OpenGL variants right now
BufferObjectKind UnpackPixel glBitmap
@@ -575,9 +702,20 @@ BufferObjectKind PackPixel glReadPixels
# FIXME: some of these are really the bare minimum and won't catch
# many classes of errors. Should extend the DebugGL to perform much
# more error checking with e.g. glDrawElements.
-RangeCheck glColorPointer 3 1
-RangeCheck glDrawElements 3 {1}
-RangeCheck glDrawRangeElements 5 {3}
+RangeCheck glColorPointer 3 1
+
+RangeCheck glDrawElements 3 {1}
+RangeCheck glDrawElementsBaseVertex 3 {1}
+RangeCheck glDrawElementsInstanced 3 {1}
+RangeCheck glDrawElementsInstancedBaseInstance 3 {1}
+RangeCheck glDrawElementsInstancedBaseVertex 3 {1}
+RangeCheck glDrawElementsInstancedBaseVertexBaseInstance 3 {1}
+RangeCheck glDrawRangeElements 5 {3}
+RangeCheck glDrawRangeElementsBaseVertex 5 {3}
+
+RangeCheck glDrawArraysIndirect 1 1
+RangeCheck glDrawElementsIndirect 2 1
+
RangeCheck glEdgeFlagPointer 1 1
RangeCheck glElementPointerATI 1 1
RangeCheck glFogCoordPointer 2 1
@@ -591,6 +729,8 @@ RangeCheck glTexCoordPointer 3 1
RangeCheck glVariantPointerEXT 3 1
RangeCheck glVertexPointer 3 1
RangeCheck glVertexAttribPointer 5 1
+RangeCheck glVertexAttribIPointer 4 1
+RangeCheck glVertexAttribLPointer 4 1
RangeCheck glVertexAttribPointerARB 5 1
RangeCheck glWeightPointerARB 3 1
@@ -657,78 +797,107 @@ RangeCheck glDeleteVertexArraysAPPLE 1 {0}
# Javadoc for the GL class
ClassJavadoc GL /**
-ClassJavadoc GL * <P> Common interface containing the subset of all profiles, GL3bc, GL3, GL2, GLES1 and GLES2.<br>
-ClassJavadoc GL * This interface reflects common data types, texture and framebuffer functionality.</P>
+ClassJavadoc GL * <p> Common interface containing the subset of all profiles, GL3bc, 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 * <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 * <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 * This interface is almost GLES2 complete.<br/>
+ClassJavadoc GL2ES2 * </p>
ClassJavadoc GL2ES2 */
+ClassJavadoc GL2ES3 /**
+ClassJavadoc GL2ES3 * <p>
+ClassJavadoc GL2ES3 * Interface containing the common subset of core GL2 and GLES3 (OpenGL ES 3.0).<br/>
+ClassJavadoc GL2ES3 * This interface reflects only the programmable shader functionality of desktop and embedded OpenGL<br/>
+ClassJavadoc GL2ES3 * This interface is not GLES3 complete and merely exist to avoid duplicated definitions.<br/>
+ClassJavadoc GL2ES3 * </p>
+ClassJavadoc GL2ES3 */
+
+ClassJavadoc GL3ES3 /**
+ClassJavadoc GL3ES3 * <p>
+ClassJavadoc GL3ES3 * Interface containing the common subset of core GL3 (OpenGL 3.1+) and GLES3 (OpenGL ES 3.0).<br/>
+ClassJavadoc GL3ES3 * This interface reflects only the programmable shader functionality of desktop and embedded OpenGL<br/>
+ClassJavadoc GL3ES3 * This interface is almost GLES3 complete, lacking <code>GL_ARB_ES3_compatibility</code> extension.<br/>
+ClassJavadoc GL3ES3 * </p>
+ClassJavadoc GL3ES3 */
+
+ClassJavadoc GL4ES3 /**
+ClassJavadoc GL4ES3 * <p>
+ClassJavadoc GL4ES3 * Interface containing the common subset of core GL4 (OpenGL 4.0+) and GLES3 (OpenGL ES 3.0).<br/>
+ClassJavadoc GL4ES3 * This interface reflects only the programmable shader functionality of desktop and embedded OpenGL<br/>
+ClassJavadoc GL4ES3 * This interface is GLES3 complete w/o vendor extensions.<br/>
+ClassJavadoc GL4ES3 * </p>
+ClassJavadoc GL4ES3 */
+
ClassJavadoc GL2GL3 /**
-ClassJavadoc GL2GL3 * <P>
-ClassJavadoc GL2GL3 * Interface containing the common subset of core 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 * <p>
+ClassJavadoc GL2GL3 * Interface containing the common subset of core GL3 (OpenGL 3.1+) and GL2,
+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} or {@link GL3bc} OpenGL 3.1+ context to benefit
-ClassJavadoc GL2 * from new functionality and versions.
-ClassJavadoc GL2 * </P>
+ClassJavadoc GL2 * <p>
+ClassJavadoc GL2 * This interface contains all OpenGL [ 1.0 .. 3.0 ] methods,
+ClassJavadoc GL2 * as well as most of it's extensions defined at the time of this specification.
+ClassJavadoc GL2 * </p>
+ClassJavadoc GL2 * <p>
+ClassJavadoc GL2 * OpenGL extensions whose functionality was incorporated into core OpenGL &le; 3.0,
+ClassJavadoc GL2 * are subsumed into the core namespace.</p>
+ClassJavadoc GL2 * </p>
ClassJavadoc GL2 */
+ClassJavadoc GL3 /**
+ClassJavadoc GL3 * <p>This interface contains all OpenGL [ 3.1 .. 3.3 ] <i>core</i> methods,
+ClassJavadoc GL3 * as well as most of it's extensions defined at the time of this specification.</p>
+ClassJavadoc GL3 * <p>Note: OpenGL [ 3.1 .. 3.3 ] core profile does not includes fixed point functionality.</p>
+ClassJavadoc GL3 */
+
ClassJavadoc GL3bc /**
-ClassJavadoc GL3bc * <P>
-ClassJavadoc GL3bc * This interface contains the OpenGL 3.x compatibility profile, ie includes all methods
-ClassJavadoc GL3bc * as defined in {@link GL2} and {@link GL3}.<br>
-ClassJavadoc GL3bc * </P>
+ClassJavadoc GL3bc * <p>This interface contains all OpenGL [ 3.1 .. 3.3 ] <i>compatibility</i> methods,
+ClassJavadoc GL3bc * as well as most of it's extensions defined at the time of this specification.</p>
+ClassJavadoc GL3bc * <p>Note: OpenGL [ 3.1 .. 3.3 ] compatibility profile does includes fixed point functionality.</p>
ClassJavadoc GL3bc */
-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 GL4 /**
+ClassJavadoc GL4 * <p>This interface contains all OpenGL [ 4.0 .. 4.3 ] <i>core</i> methods,
+ClassJavadoc GL4 * as well as most of it's extensions defined at the time of this specification.</p>
+ClassJavadoc GL4 * <p>Note: OpenGL [ 4.0 .. 4.3 ] core profile does not includes fixed point functionality.</p>
+ClassJavadoc GL4 */
+
+ClassJavadoc GL4bc /**
+ClassJavadoc GL4bc * <p>This interface contains all OpenGL [ 4.0 .. 4.3 ] <i>compatibility</i> profile,
+ClassJavadoc GL4bc * as well as most of it's extensions defined at the time of this specification.</p>
+ClassJavadoc GL4bc * <p>Note: OpenGL [ 4.0 .. 4.3 ] compatibility profile does includes fixed point functionality.</p>
+ClassJavadoc GL4bc */
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 * <p>This interface contains all OpenGL ES [ 1.0 .. 1.1 ] methods,
+ClassJavadoc GLES1 * as well as most of it's extensions defined at the time of this specification.</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 * <p>This interface contains all OpenGL ES 2.0 methods,
+ClassJavadoc GLES2 * as well as most of it's extensions defined at the time of this specification.</p>
ClassJavadoc GLES2 */
+ClassJavadoc GLES3 /**
+ClassJavadoc GLES3 * <p>This interface contains all OpenGL ES 3.0 methods,
+ClassJavadoc GLES3 * as well as most of it's extensions defined at the time of this specification.</p>
+ClassJavadoc GLES3 */
+
# Javadoc for the EGL class
ClassJavadoc EGL /**
ClassJavadoc EGL * Provides access to the embedded-specific OpenGL vendor extensions.
@@ -760,11 +929,3 @@ ClassJavadoc XVisualInfo * extensions. No other access is provided to these dat
ClassJavadoc XVisualInfo * this wrapper is not useful to end users, though it is used in the implementation.
ClassJavadoc XVisualInfo */
-# Custom code for querying extensions and exposing
-# wglAllocateMemoryNV/glXAllocateMemoryNV
-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);
-