diff --git a/src/java/org/lwjgl/opengl/ContextAttribs.java b/src/java/org/lwjgl/opengl/ContextAttribs.java
index 1654b67a..59d951f5 100644
--- a/src/java/org/lwjgl/opengl/ContextAttribs.java
+++ b/src/java/org/lwjgl/opengl/ContextAttribs.java
@@ -48,7 +48,7 @@ import java.nio.IntBuffer;
* implementation. Developers may encounter debug contexts being the same as non-debug contexts or forward compatible
* contexts having support for deprecated functionality.
*
- * Warning: This functionality is currently available on the Windows platform only. However, if the forwardCompatible
+ * If the forwardCompatible
* attribute is used, LWJGL will not load the deprecated functionality (as defined in the OpenGL 3.0 specification). This
* means that developers can start working on cleaning up their applications without an OpenGL 3.0 complaint driver.
*
@@ -64,6 +64,9 @@ public final class ContextAttribs {
private boolean debug;
private boolean forwardCompatible;
+ private boolean profileCore;
+ private boolean profileCompatibility;
+
public ContextAttribs() {
this(1, 0);
}
@@ -72,7 +75,7 @@ public final class ContextAttribs {
if ( majorVersion < 0 ||
3 < majorVersion ||
minorVersion < 0 ||
- (majorVersion == 3 && 1 < minorVersion) ||
+ (majorVersion == 3 && 2 < minorVersion) ||
(majorVersion == 2 && 1 < minorVersion) ||
(majorVersion == 1 && 5 < minorVersion) )
throw new IllegalArgumentException("Invalid OpenGL version specified: " + majorVersion + '.' + minorVersion);
@@ -84,6 +87,9 @@ public final class ContextAttribs {
this.debug = false;
this.forwardCompatible = false;
+
+ this.profileCore = 3 < majorVersion || (majorVersion == 3 && 2 <= minorVersion) ? true : false;
+ this.profileCompatibility = false;
}
private ContextAttribs(final ContextAttribs attribs) {
@@ -94,6 +100,9 @@ public final class ContextAttribs {
this.debug = attribs.debug;
this.forwardCompatible = attribs.forwardCompatible;
+
+ this.profileCore = attribs.profileCore;
+ this.profileCompatibility = attribs.profileCompatibility;
}
public int getMajorVersion() {
@@ -116,27 +125,74 @@ public final class ContextAttribs {
return forwardCompatible;
}
+ public boolean isProfileCore() {
+ return profileCore;
+ }
+
+ public boolean isProfileCompatibility() {
+ return profileCompatibility;
+ }
+
public ContextAttribs withLayer(final int layerPlane) {
if ( layerPlane < 0 )
throw new IllegalArgumentException("Invalid layer plane specified: " + layerPlane);
+ if ( layerPlane == this.layerPlane )
+ return this;
+
final ContextAttribs attribs = new ContextAttribs(this);
attribs.layerPlane = layerPlane;
return attribs;
}
public ContextAttribs withDebug(final boolean debug) {
+ if ( debug == this.debug )
+ return this;
+
final ContextAttribs attribs = new ContextAttribs(this);
attribs.debug = debug;
return attribs;
}
public ContextAttribs withForwardCompatible(final boolean forwardCompatible) {
+ if ( forwardCompatible == this.forwardCompatible )
+ return this;
+
final ContextAttribs attribs = new ContextAttribs(this);
attribs.forwardCompatible = forwardCompatible;
return attribs;
}
+ public ContextAttribs withProfileCore(final boolean profileCore) {
+ if ( majorVersion < 3 || (majorVersion == 3 && minorVersion < 2) )
+ throw new IllegalArgumentException("Profiles are only supported on OpenGL version 3.2 or higher.");
+
+ if ( profileCore == this.profileCore )
+ return this;
+
+ final ContextAttribs attribs = new ContextAttribs(this);
+ attribs.profileCore = profileCore;
+ if ( profileCore )
+ attribs.profileCompatibility = false;
+
+ return attribs;
+ }
+
+ public ContextAttribs withProfileCompatibility(final boolean profileCompatibility) {
+ if ( majorVersion < 3 || (majorVersion == 3 && minorVersion < 2) )
+ throw new IllegalArgumentException("Profiles are only supported on OpenGL version 3.2 or higher.");
+
+ if ( profileCompatibility == this.profileCompatibility )
+ return this;
+
+ final ContextAttribs attribs = new ContextAttribs(this);
+ attribs.profileCompatibility = profileCompatibility;
+ if ( profileCompatibility )
+ attribs.profileCore = false;
+
+ return attribs;
+ }
+
private static ContextAttribsImplementation getImplementation() {
switch ( LWJGLUtil.getPlatform() ) {
case LWJGLUtil.PLATFORM_LINUX:
@@ -168,6 +224,14 @@ public final class ContextAttribs {
if ( 0 < flags )
attribCount++;
+ int profileMask = 0;
+ if ( profileCore )
+ profileMask |= implementation.getProfileCoreBit();
+ else if ( profileCompatibility )
+ profileMask |= implementation.getProfileCompatibilityBit();
+ if ( 0 < profileMask )
+ attribCount++;
+
if ( attribCount == 0 )
return null;
@@ -181,6 +245,8 @@ public final class ContextAttribs {
attribs.put(implementation.getLayerPlaneAttrib()).put(layerPlane);
if ( 0 < flags )
attribs.put(implementation.getFlagsAttrib()).put(flags);
+ if ( 0 < profileMask )
+ attribs.put(implementation.getProfileMaskAttrib()).put(profileMask);
attribs.put(0);
attribs.rewind();
@@ -195,6 +261,13 @@ public final class ContextAttribs {
sb.append(" - Layer=").append(layerPlane);
sb.append(" - Debug=").append(debug);
sb.append(" - ForwardCompatible=").append(forwardCompatible);
+ sb.append(" - Profile=");
+ if ( profileCore )
+ sb.append("Core");
+ else if ( profileCompatibility )
+ sb.append("Compatibility");
+ else
+ sb.append("None");
return sb.toString();
}
diff --git a/src/java/org/lwjgl/opengl/ContextAttribsImplementation.java b/src/java/org/lwjgl/opengl/ContextAttribsImplementation.java
index c7ff7f41..44c320db 100644
--- a/src/java/org/lwjgl/opengl/ContextAttribsImplementation.java
+++ b/src/java/org/lwjgl/opengl/ContextAttribsImplementation.java
@@ -47,4 +47,10 @@ interface ContextAttribsImplementation {
int getForwardCompatibleBit();
+ int getProfileMaskAttrib();
+
+ int getProfileCoreBit();
+
+ int getProfileCompatibilityBit();
+
}
\ No newline at end of file
diff --git a/src/java/org/lwjgl/opengl/GLContext.java b/src/java/org/lwjgl/opengl/GLContext.java
index 686b888d..130aa0c8 100644
--- a/src/java/org/lwjgl/opengl/GLContext.java
+++ b/src/java/org/lwjgl/opengl/GLContext.java
@@ -200,6 +200,8 @@ public final class GLContext {
}
// ----------------------[ 3.X ]----------------------
+ if ( 3 < majorVersion || (3 == majorVersion && 2 <= minorVersion) )
+ supported_extensions.add("OpenGL32");
if ( 3 < majorVersion || (3 == majorVersion && 1 <= minorVersion) )
supported_extensions.add("OpenGL31");
if ( 3 <= majorVersion )
diff --git a/src/java/org/lwjgl/opengl/LinuxContextAttribs.java b/src/java/org/lwjgl/opengl/LinuxContextAttribs.java
index 061b59e2..d8fa015f 100644
--- a/src/java/org/lwjgl/opengl/LinuxContextAttribs.java
+++ b/src/java/org/lwjgl/opengl/LinuxContextAttribs.java
@@ -44,10 +44,14 @@ final class LinuxContextAttribs implements ContextAttribsImplementation {
private static final int GLX_CONTEXT_MINOR_VERSION_ARB = 0x2092;
private static final int GLX_CONTEXT_LAYER_PLANE_ARB = 0x2093;
private static final int GLX_CONTEXT_FLAGS_ARB = 0x2094;
+ private static final int GLX_CONTEXT_PROFILE_MASK_ARB = 0x9126;
private static final int GLX_CONTEXT_DEBUG_BIT_ARB = 0x0001;
private static final int GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x0002;
+ private static final int GLX_CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001;
+ private static final int GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002;
+
LinuxContextAttribs() {
}
@@ -75,4 +79,16 @@ final class LinuxContextAttribs implements ContextAttribsImplementation {
return GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
}
+ public int getProfileMaskAttrib() {
+ return GLX_CONTEXT_PROFILE_MASK_ARB;
+ }
+
+ public int getProfileCoreBit() {
+ return GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
+ }
+
+ public int getProfileCompatibilityBit() {
+ return GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB;
+ }
+
}
\ No newline at end of file
diff --git a/src/java/org/lwjgl/opengl/MacOSXContextAttribs.java b/src/java/org/lwjgl/opengl/MacOSXContextAttribs.java
index dd7de803..01a5c5a4 100644
--- a/src/java/org/lwjgl/opengl/MacOSXContextAttribs.java
+++ b/src/java/org/lwjgl/opengl/MacOSXContextAttribs.java
@@ -44,10 +44,14 @@ final class MacOSXContextAttribs implements ContextAttribsImplementation {
private static final int XGL_CONTEXT_MINOR_VERSION_ARB = 0x2092;
private static final int XGL_CONTEXT_LAYER_PLANE_ARB = 0x2093;
private static final int XGL_CONTEXT_FLAGS_ARB = 0x2094;
+ private static final int XGL_CONTEXT_PROFILE_MASK_ARB = 0x9126;
private static final int XGL_CONTEXT_DEBUG_BIT_ARB = 0x0001;
private static final int XGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x0002;
+ private static final int XGL_CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001;
+ private static final int XGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002;
+
MacOSXContextAttribs() {
}
@@ -75,4 +79,16 @@ final class MacOSXContextAttribs implements ContextAttribsImplementation {
return XGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
}
+ public int getProfileMaskAttrib() {
+ return XGL_CONTEXT_PROFILE_MASK_ARB;
+ }
+
+ public int getProfileCoreBit() {
+ return XGL_CONTEXT_CORE_PROFILE_BIT_ARB;
+ }
+
+ public int getProfileCompatibilityBit() {
+ return XGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB;
+ }
+
}
\ No newline at end of file
diff --git a/src/java/org/lwjgl/opengl/WindowsContextAttribs.java b/src/java/org/lwjgl/opengl/WindowsContextAttribs.java
index 6aea35d2..3273144b 100644
--- a/src/java/org/lwjgl/opengl/WindowsContextAttribs.java
+++ b/src/java/org/lwjgl/opengl/WindowsContextAttribs.java
@@ -42,10 +42,14 @@ final class WindowsContextAttribs implements ContextAttribsImplementation {
private static final int WGL_CONTEXT_MINOR_VERSION_ARB = 0x2092;
private static final int WGL_CONTEXT_LAYER_PLANE_ARB = 0x2093;
private static final int WGL_CONTEXT_FLAGS_ARB = 0x2094;
+ private static final int WGL_CONTEXT_PROFILE_MASK_ARB = 0x9126;
private static final int WGL_CONTEXT_DEBUG_BIT_ARB = 0x0001;
private static final int WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x0002;
+ private static final int WGL_CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001;
+ private static final int WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002;
+
WindowsContextAttribs() {
}
@@ -73,4 +77,16 @@ final class WindowsContextAttribs implements ContextAttribsImplementation {
return WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
}
+ public int getProfileMaskAttrib() {
+ return WGL_CONTEXT_PROFILE_MASK_ARB;
+ }
+
+ public int getProfileCoreBit() {
+ return WGL_CONTEXT_CORE_PROFILE_BIT_ARB;
+ }
+
+ public int getProfileCompatibilityBit() {
+ return WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB;
+ }
+
}
\ No newline at end of file
diff --git a/src/java/org/lwjgl/util/generator/FieldsGenerator.java b/src/java/org/lwjgl/util/generator/FieldsGenerator.java
index a37cf2db..689390be 100644
--- a/src/java/org/lwjgl/util/generator/FieldsGenerator.java
+++ b/src/java/org/lwjgl/util/generator/FieldsGenerator.java
@@ -48,17 +48,23 @@ public class FieldsGenerator {
if (!(field_type instanceof PrimitiveType))
throw new RuntimeException("Field " + field.getSimpleName() + " is not a primitive type");
PrimitiveType field_type_prim = (PrimitiveType)field_type;
- if (field_type_prim.getKind() != PrimitiveType.Kind.INT)
- throw new RuntimeException("Field " + field.getSimpleName() + " is not of type 'int'");
- Integer field_value = (Integer)field.getConstantValue();
+ if (field_type_prim.getKind() != PrimitiveType.Kind.INT && field_type_prim.getKind() != PrimitiveType.Kind.LONG)
+ throw new RuntimeException("Field " + field.getSimpleName() + " is not of type 'int' or 'long'");
+ Object field_value = field.getConstantValue();
if (field_value == null)
throw new RuntimeException("Field " + field.getSimpleName() + " has no initial value");
}
private static void generateField(PrintWriter writer, FieldDeclaration field) {
- Integer field_value = (Integer)field.getConstantValue();
validateField(field);
- String field_value_string = Integer.toHexString(field_value);
+
+ Object value = field.getConstantValue();
+ String field_value_string;
+ if ( value.getClass().equals(Integer.class) )
+ field_value_string = Integer.toHexString((Integer)field.getConstantValue());
+ else
+ field_value_string = Long.toHexString((Long)field.getConstantValue()) + 'l';
+
Utils.printDocComment(writer, field);
// Print field declaration
writer.println("\tpublic static final " + field.getType().toString() + " " + field.getSimpleName() + " = 0x" + field_value_string + ";");
diff --git a/src/java/org/lwjgl/util/generator/GLTypeMap.java b/src/java/org/lwjgl/util/generator/GLTypeMap.java
index ed2f0889..69a531a8 100644
--- a/src/java/org/lwjgl/util/generator/GLTypeMap.java
+++ b/src/java/org/lwjgl/util/generator/GLTypeMap.java
@@ -41,14 +41,16 @@ package org.lwjgl.util.generator;
* $Id$
*/
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-
-import java.io.*;
-import java.util.*;
+import java.io.PrintWriter;
import java.nio.*;
+import java.util.HashMap;
+import java.util.Map;
+
+import com.sun.mirror.declaration.AnnotationMirror;
+import com.sun.mirror.type.PrimitiveType;
public class GLTypeMap implements TypeMap {
+
private static final Map native_types_to_primitive;
static {
@@ -78,11 +80,14 @@ public class GLTypeMap implements TypeMap {
native_types_to_primitive.put(GLvoid.class, PrimitiveType.Kind.BYTE);
native_types_to_primitive.put(GLint64EXT.class, PrimitiveType.Kind.LONG);
native_types_to_primitive.put(GLuint64EXT.class, PrimitiveType.Kind.LONG);
+ native_types_to_primitive.put(GLint64.class, PrimitiveType.Kind.LONG);
+ native_types_to_primitive.put(GLuint64.class, PrimitiveType.Kind.LONG);
+ native_types_to_primitive.put(GLsync.class, PrimitiveType.Kind.LONG);
}
public PrimitiveType.Kind getPrimitiveTypeFromNativeType(Class native_type) {
PrimitiveType.Kind kind = native_types_to_primitive.get(native_type);
- if (kind == null)
+ if ( kind == null )
throw new RuntimeException("Unsupported type " + native_type);
return kind;
}
@@ -96,50 +101,46 @@ public class GLTypeMap implements TypeMap {
}
public Signedness getSignednessFromType(Class type) {
- if (GLuint.class.equals(type))
+ if ( GLuint.class.equals(type) )
return Signedness.UNSIGNED;
- else if (GLint.class.equals(type))
+ else if ( GLint.class.equals(type) )
return Signedness.SIGNED;
- else if (GLushort.class.equals(type))
+ else if ( GLushort.class.equals(type) )
return Signedness.UNSIGNED;
- else if (GLshort.class.equals(type))
+ else if ( GLshort.class.equals(type) )
return Signedness.SIGNED;
- else if (GLubyte.class.equals(type))
+ else if ( GLubyte.class.equals(type) )
return Signedness.UNSIGNED;
- else if (GLbyte.class.equals(type))
+ else if ( GLbyte.class.equals(type) )
return Signedness.SIGNED;
- else if (GLuint64EXT.class.equals(type))
+ else if ( GLuint64EXT.class.equals(type) )
return Signedness.UNSIGNED;
- else if (GLint64EXT.class.equals(type))
+ else if ( GLint64EXT.class.equals(type) )
+ return Signedness.SIGNED;
+ else if ( GLuint64.class.equals(type) )
+ return Signedness.UNSIGNED;
+ else if ( GLint64.class.equals(type) )
return Signedness.SIGNED;
else
return Signedness.NONE;
}
public String translateAnnotation(Class annotation_type) {
- if (annotation_type.equals(GLuint.class))
+ if ( annotation_type.equals(GLuint.class) || annotation_type.equals(GLint.class) )
return "i";
- else if (annotation_type.equals(GLint.class))
- return "i";
- else if (annotation_type.equals(GLushort.class))
- return"s";
- else if (annotation_type.equals(GLshort.class))
+ else if ( annotation_type.equals(GLushort.class) || annotation_type.equals(GLshort.class) )
return "s";
- else if (annotation_type.equals(GLubyte.class))
+ else if ( annotation_type.equals(GLubyte.class) || annotation_type.equals(GLbyte.class) )
return "b";
- else if (annotation_type.equals(GLbyte.class))
- return "b";
- else if (annotation_type.equals(GLfloat.class))
+ else if ( annotation_type.equals(GLfloat.class) )
return "f";
- else if (annotation_type.equals(GLdouble.class))
+ else if ( annotation_type.equals(GLdouble.class) )
return "d";
- else if (annotation_type.equals(GLhalf.class))
+ else if ( annotation_type.equals(GLhalf.class) )
return "h";
- else if (annotation_type.equals(GLuint64EXT.class))
+ else if ( annotation_type.equals(GLuint64EXT.class) || annotation_type.equals(GLint64EXT.class) || annotation_type.equals(GLuint64.class) || annotation_type.equals(GLint64.class) )
return "i64";
- else if (annotation_type.equals(GLint64EXT.class))
- return "i64";
- else if (annotation_type.equals(GLboolean.class) || annotation_type.equals(GLvoid.class))
+ else if ( annotation_type.equals(GLboolean.class) || annotation_type.equals(GLvoid.class) )
return "";
else
throw new RuntimeException(annotation_type + " is not allowed");
@@ -147,7 +148,7 @@ public class GLTypeMap implements TypeMap {
public Class getNativeTypeFromPrimitiveType(PrimitiveType.Kind kind) {
Class type;
- switch (kind) {
+ switch ( kind ) {
case INT:
type = GLint.class;
break;
@@ -184,43 +185,43 @@ public class GLTypeMap implements TypeMap {
}
private static Class[] getValidBufferTypes(Class type) {
- if (type.equals(IntBuffer.class))
- return new Class[]{GLbitfield.class, GLenum.class, GLhandleARB.class, GLint.class,
- GLsizei.class, GLuint.class};
- else if (type.equals(FloatBuffer.class))
- return new Class[]{GLclampf.class, GLfloat.class};
- else if (type.equals(ByteBuffer.class))
- return new Class[]{GLboolean.class, GLbyte.class, GLcharARB.class, GLchar.class, GLubyte.class, GLvoid.class};
- else if (type.equals(ShortBuffer.class))
- return new Class[]{GLhalf.class, GLshort.class, GLushort.class};
- else if (type.equals(DoubleBuffer.class))
- return new Class[]{GLclampd.class, GLdouble.class};
- else if (type.equals(LongBuffer.class))
- return new Class[]{GLint64EXT.class, GLuint64EXT.class};
+ if ( type.equals(IntBuffer.class) )
+ return new Class[] { GLbitfield.class, GLenum.class, GLhandleARB.class, GLint.class,
+ GLsizei.class, GLuint.class };
+ else if ( type.equals(FloatBuffer.class) )
+ return new Class[] { GLclampf.class, GLfloat.class };
+ else if ( type.equals(ByteBuffer.class) )
+ return new Class[] { GLboolean.class, GLbyte.class, GLcharARB.class, GLchar.class, GLubyte.class, GLvoid.class };
+ else if ( type.equals(ShortBuffer.class) )
+ return new Class[] { GLhalf.class, GLshort.class, GLushort.class };
+ else if ( type.equals(DoubleBuffer.class) )
+ return new Class[] { GLclampd.class, GLdouble.class };
+ else if ( type.equals(LongBuffer.class) )
+ return new Class[] { GLint64EXT.class, GLuint64EXT.class, GLint64.class, GLuint64.class, GLsync.class };
else
- return new Class[]{};
+ return new Class[] { };
}
private static Class[] getValidPrimitiveTypes(Class type) {
- if (type.equals(long.class))
- return new Class[]{GLintptrARB.class, GLuint.class, GLintptr.class, GLsizeiptrARB.class, GLsizeiptr.class, GLint64EXT.class, GLuint64EXT.class};
- else if (type.equals(int.class))
- return new Class[]{GLbitfield.class, GLenum.class, GLhandleARB.class, GLint.class, GLuint.class,
- GLsizei.class};
- else if (type.equals(double.class))
- return new Class[]{GLclampd.class, GLdouble.class};
- else if (type.equals(float.class))
- return new Class[]{GLclampf.class, GLfloat.class};
- else if (type.equals(short.class))
- return new Class[]{GLhalf.class, GLshort.class, GLushort.class};
- else if (type.equals(byte.class))
- return new Class[]{GLbyte.class, GLcharARB.class, GLchar.class, GLubyte.class};
- else if (type.equals(boolean.class))
- return new Class[]{GLboolean.class};
- else if (type.equals(void.class))
- return new Class[]{GLvoid.class};
+ if ( type.equals(long.class) )
+ return new Class[] { GLintptrARB.class, GLuint.class, GLintptr.class, GLsizeiptrARB.class, GLsizeiptr.class, GLint64EXT.class, GLuint64EXT.class, GLint64.class, GLuint64.class, GLsync.class };
+ else if ( type.equals(int.class) )
+ return new Class[] { GLbitfield.class, GLenum.class, GLhandleARB.class, GLint.class, GLuint.class,
+ GLsizei.class };
+ else if ( type.equals(double.class) )
+ return new Class[] { GLclampd.class, GLdouble.class };
+ else if ( type.equals(float.class) )
+ return new Class[] { GLclampf.class, GLfloat.class };
+ else if ( type.equals(short.class) )
+ return new Class[] { GLhalf.class, GLshort.class, GLushort.class };
+ else if ( type.equals(byte.class) )
+ return new Class[] { GLbyte.class, GLcharARB.class, GLchar.class, GLubyte.class };
+ else if ( type.equals(boolean.class) )
+ return new Class[] { GLboolean.class };
+ else if ( type.equals(void.class) )
+ return new Class[] { GLvoid.class };
else
- return new Class[]{};
+ return new Class[] { };
}
public String getTypedefPrefix() {
@@ -233,55 +234,59 @@ public class GLTypeMap implements TypeMap {
public Class[] getValidAnnotationTypes(Class type) {
Class[] valid_types;
- if (Buffer.class.isAssignableFrom(type))
+ if ( Buffer.class.isAssignableFrom(type) )
valid_types = getValidBufferTypes(type);
- else if (type.isPrimitive())
+ else if ( type.isPrimitive() )
valid_types = getValidPrimitiveTypes(type);
- else if (String.class.equals(type))
- valid_types = new Class[]{GLubyte.class};
+ else if ( String.class.equals(type) )
+ valid_types = new Class[] { GLubyte.class };
else
- valid_types = new Class[]{};
+ valid_types = new Class[] { };
return valid_types;
}
public Class getInverseType(Class type) {
- if (GLuint.class.equals(type))
+ if ( GLuint.class.equals(type) )
return GLint.class;
- else if (GLint.class.equals(type))
+ else if ( GLint.class.equals(type) )
return GLuint.class;
- else if (GLushort.class.equals(type))
+ else if ( GLushort.class.equals(type) )
return GLshort.class;
- else if (GLshort.class.equals(type))
+ else if ( GLshort.class.equals(type) )
return GLushort.class;
- else if (GLubyte.class.equals(type))
+ else if ( GLubyte.class.equals(type) )
return GLbyte.class;
- else if (GLbyte.class.equals(type))
+ else if ( GLbyte.class.equals(type) )
return GLubyte.class;
- else if (GLuint64EXT.class.equals(type))
+ else if ( GLuint64EXT.class.equals(type) )
return GLint64EXT.class;
- else if (GLint64EXT.class.equals(type))
+ else if ( GLint64EXT.class.equals(type) )
return GLuint64EXT.class;
+ else if ( GLuint64.class.equals(type) )
+ return GLint64.class;
+ else if ( GLint64.class.equals(type) )
+ return GLuint64.class;
else
return null;
}
public String getAutoTypeFromAnnotation(AnnotationMirror annotation) {
Class annotation_class = NativeTypeTranslator.getClassFromType(annotation.getAnnotationType());
- if (annotation_class.equals(GLint.class))
+ if ( annotation_class.equals(GLint.class) )
return "GL11.GL_INT";
- else if (annotation_class.equals(GLbyte.class))
+ else if ( annotation_class.equals(GLbyte.class) )
return "GL11.GL_BYTE";
- else if (annotation_class.equals(GLshort.class))
+ else if ( annotation_class.equals(GLshort.class) )
return "GL11.GL_SHORT";
- if (annotation_class.equals(GLuint.class))
+ if ( annotation_class.equals(GLuint.class) )
return "GL11.GL_UNSIGNED_INT";
- else if (annotation_class.equals(GLubyte.class))
+ else if ( annotation_class.equals(GLubyte.class) )
return "GL11.GL_UNSIGNED_BYTE";
- else if (annotation_class.equals(GLushort.class))
+ else if ( annotation_class.equals(GLushort.class) )
return "GL11.GL_UNSIGNED_SHORT";
- else if (annotation_class.equals(GLfloat.class))
+ else if ( annotation_class.equals(GLfloat.class) )
return "GL11.GL_FLOAT";
- else if (annotation_class.equals(GLdouble.class))
+ else if ( annotation_class.equals(GLdouble.class) )
return "GL11.GL_DOUBLE";
else
return null;
diff --git a/src/native/common/extgl.h b/src/native/common/extgl.h
index 02826aa6..b26b92bd 100644
--- a/src/native/common/extgl.h
+++ b/src/native/common/extgl.h
@@ -129,6 +129,9 @@ typedef unsigned short GLhalfNV;
typedef unsigned short GLhalf;
typedef int64_t GLint64EXT;
typedef uint64_t GLuint64EXT;
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef struct __GLsync *GLsync;
/* helper stuff */
diff --git a/src/templates/org/lwjgl/opengl/AMD_draw_buffers_blend.java b/src/templates/org/lwjgl/opengl/AMD_draw_buffers_blend.java
new file mode 100644
index 00000000..9786cfa3
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/AMD_draw_buffers_blend.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+import org.lwjgl.util.generator.GLenum;
+import org.lwjgl.util.generator.GLuint;
+
+public interface AMD_draw_buffers_blend {
+
+ void glBlendFuncIndexedAMD(@GLuint int buf, @GLenum int src, @GLenum int dst);
+
+ void glBlendFuncSeparateIndexedAMD(@GLuint int buf, @GLenum int srcRGB, @GLenum int dstRGB,
+ @GLenum int srcAlpha, @GLenum int dstAlpha);
+
+ void glBlendEquationIndexedAMD(@GLuint int buf, @GLenum int mode);
+
+ void glBlendEquationSeparateIndexedAMD(@GLuint int buf, @GLenum int modeRGB,
+ @GLenum int modeAlpha);
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_depth_clamp.java b/src/templates/org/lwjgl/opengl/ARB_depth_clamp.java
new file mode 100644
index 00000000..c81bf962
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_depth_clamp.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+public interface ARB_depth_clamp {
+
+ /**
+ * Accepted by the <cap> parameter of Enable, Disable, and IsEnabled,
+ * and by the <pname> parameter of GetBooleanv, GetIntegerv,
+ * GetFloatv, and GetDoublev:
+ */
+ int GL_DEPTH_CLAMP = 0x864F;
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_draw_buffers_blend.java b/src/templates/org/lwjgl/opengl/ARB_draw_buffers_blend.java
new file mode 100644
index 00000000..d45400c8
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_draw_buffers_blend.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+import org.lwjgl.util.generator.GLenum;
+import org.lwjgl.util.generator.GLuint;
+
+public interface ARB_draw_buffers_blend {
+
+ void glBlendEquationiARB(@GLuint int buf, @GLenum int mode);
+
+ void glBlendEquationSeparateiARB(@GLuint int buf, @GLenum int modeRGB, @GLenum int modeAlpha);
+
+ void glBlendFunciARB(@GLuint int buf, @GLenum int src, @GLenum int dst);
+
+ void glBlendFuncSeparateiARB(@GLuint int buf, @GLenum int srcRGB, @GLenum int dstRGB, @GLenum int srcAlpha, @GLenum int dstAlpha);
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_draw_elements_base_vertex.java b/src/templates/org/lwjgl/opengl/ARB_draw_elements_base_vertex.java
new file mode 100644
index 00000000..0024d956
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_draw_elements_base_vertex.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+import org.lwjgl.util.generator.*;
+
+import java.nio.Buffer;
+
+public interface ARB_draw_elements_base_vertex {
+
+ void glDrawElementsBaseVertex(@GLenum int mode, @AutoSize("indices") @GLsizei int count, @AutoType("indices") @GLenum int type,
+ @BufferObject(BufferKind.ElementVBO)
+ @Const
+ @GLubyte
+ @GLushort
+ @GLuint Buffer indices, int basevertex);
+
+ void glDrawRangeElementsBaseVertex(@GLenum int mode, @GLuint int start, @GLuint int end, @AutoSize("indices") @GLsizei int count, @AutoType("indices") @GLenum int type,
+ @BufferObject(BufferKind.ElementVBO)
+ @Const
+ @GLubyte
+ @GLushort
+ @GLuint Buffer indices, int basevertex);
+
+ void glDrawElementsInstancedBaseVertex(@GLenum int mode, @AutoSize("indices") @GLsizei int count, @AutoType("indices") @GLenum int type,
+ @BufferObject(BufferKind.ElementVBO)
+ @Const
+ @GLubyte
+ @GLushort
+ @GLuint Buffer indices, @GLsizei int primcount, int basevertex);
+
+ //void glMultiDrawElementsBaseVertex(@GLenum int mode, @GLsizei*count, @GLenum int type, void**indices, @GLsizei int primcount, int*basevertex)
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_fragment_coord_conventions.java b/src/templates/org/lwjgl/opengl/ARB_fragment_coord_conventions.java
new file mode 100644
index 00000000..d4eedabc
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_fragment_coord_conventions.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+public interface ARB_fragment_coord_conventions {
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_provoking_vertex.java b/src/templates/org/lwjgl/opengl/ARB_provoking_vertex.java
new file mode 100644
index 00000000..0bf26e78
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_provoking_vertex.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+import org.lwjgl.util.generator.GLenum;
+
+public interface ARB_provoking_vertex {
+
+ /** Accepted by the <mode> parameter of ProvokingVertex: */
+ int GL_FIRST_VERTEX_CONVENTION = 0x8E4D;
+ int GL_LAST_VERTEX_CONVENTION = 0x8E4E;
+
+ /**
+ * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
+ * GetFloatv, and GetDoublev:
+ */
+ int GL_PROVOKING_VERTEX = 0x8E4F;
+ int GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C;
+
+ void glProvokingVertex(@GLenum int mode);
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_sample_shading.java b/src/templates/org/lwjgl/opengl/ARB_sample_shading.java
new file mode 100644
index 00000000..543ef6c1
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_sample_shading.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+import org.lwjgl.util.generator.GLclampf;
+
+public interface ARB_sample_shading {
+
+ /**
+ * Accepted by the <cap> parameter of Enable, Disable, and IsEnabled,
+ * and by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv,
+ * and GetDoublev:
+ */
+ int GL_SAMPLE_SHADING_ARB = 0x8C36;
+
+ /**
+ * Accepted by the <pname> parameter of GetBooleanv, GetDoublev,
+ * GetIntegerv, and GetFloatv:
+ */
+ int GL_MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37;
+
+ void glMinSampleShadingARB(@GLclampf float value);
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_seamless_cube_map.java b/src/templates/org/lwjgl/opengl/ARB_seamless_cube_map.java
new file mode 100644
index 00000000..0a58ffbf
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_seamless_cube_map.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+public interface ARB_seamless_cube_map {
+
+ /**
+ * Accepted by the <cap> parameter of Enable, Disable and IsEnabled,
+ * and by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv
+ * and GetDoublev:
+ */
+ int GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F;
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_shader_texture_lod.java b/src/templates/org/lwjgl/opengl/ARB_shader_texture_lod.java
new file mode 100644
index 00000000..e646deac
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_shader_texture_lod.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+public interface ARB_shader_texture_lod {
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_sync.java b/src/templates/org/lwjgl/opengl/ARB_sync.java
new file mode 100644
index 00000000..db74eb72
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_sync.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+import org.lwjgl.util.generator.*;
+
+import java.nio.IntBuffer;
+import java.nio.LongBuffer;
+
+@Extension(postfix = "")
+public interface ARB_sync {
+
+ /** Accepted as the <pname> parameter of GetInteger64v: */
+ int GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111;
+
+ /** Accepted as the <pname> parameter of GetSynciv: */
+ int GL_OBJECT_TYPE = 0x9112;
+ int GL_SYNC_CONDITION = 0x9113;
+ int GL_SYNC_STATUS = 0x9114;
+ int GL_SYNC_FLAGS = 0x9115;
+
+ /** Returned in <values> for GetSynciv <pname> OBJECT_TYPE: */
+ int GL_SYNC_FENCE = 0x9116;
+
+ /** Returned in <values> for GetSynciv <pname> SYNC_CONDITION: */
+ int GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117;
+
+ /** Returned in <values> for GetSynciv <pname> SYNC_STATUS: */
+ int GL_UNSIGNALED = 0x9118;
+ int GL_SIGNALED = 0x9119;
+
+ /** Accepted in the <flags> parameter of ClientWaitSync: */
+ int GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001;
+
+ /** Accepted in the <timeout> parameter of WaitSync: */
+ long GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFFl;
+
+ /** Returned by ClientWaitSync: */
+ int GL_ALREADY_SIGNALED = 0x911A;
+ int GL_TIMEOUT_EXPIRED = 0x911B;
+ int GL_CONDITION_SATISFIED = 0x911C;
+ int GL_WAIT_FAILED = 0x911D;
+
+ @GLsync
+ long glFenceSync(@GLenum int condition, @GLbitfield int flags);
+
+ boolean glIsSync(@GLsync long sync);
+
+ void glDeleteSync(@GLsync long sync);
+
+ @GLenum
+ int glClientWaitSync(@GLsync long sync, @GLbitfield int flags, @GLuint64 long timeout);
+
+ void glWaitSync(@GLsync long sync, @GLbitfield int flags, @GLuint64 long timeout);
+
+ @StripPostfix("params")
+ void glGetInteger64v(@GLenum int pname, @OutParameter @Check("1") @GLint64 LongBuffer params);
+
+ void glGetSynciv(@GLsync long sync, @GLenum int pname,
+ @AutoSize("values") @GLsizei int bufSize,
+ @OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length,
+ @OutParameter IntBuffer values);
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_texture_cube_map_array.java b/src/templates/org/lwjgl/opengl/ARB_texture_cube_map_array.java
new file mode 100644
index 00000000..dd5d95e9
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_texture_cube_map_array.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+public interface ARB_texture_cube_map_array {
+
+ /**
+ * Accepted by the <target> parameter of TexParameteri, TexParameteriv,
+ * TexParameterf, TexParameterfv, BindTexture, and GenerateMipmap:
+ *
+ * Accepted by the <target> parameter of TexImage3D, TexSubImage3D,
+ * CompressedTeximage3D, CompressedTexSubImage3D and CopyTexSubImage3D:
+ *
+ * Accepted by the <tex> parameter of GetTexImage:
+ */
+ int GL_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009;
+
+ /**
+ * Accepted by the <pname> parameter of GetBooleanv, GetDoublev,
+ * GetIntegerv and GetFloatv:
+ */
+ int GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A;
+
+ /**
+ * Accepted by the <target> parameter of TexImage3D, TexSubImage3D,
+ * CompressedTeximage3D, CompressedTexSubImage3D and CopyTexSubImage3D:
+ */
+ int GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B;
+
+ /** Returned by the <type> parameter of GetActiveUniform: */
+ int GL_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C;
+ int GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D;
+ int GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E;
+ int GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F;
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_texture_gather.java b/src/templates/org/lwjgl/opengl/ARB_texture_gather.java
new file mode 100644
index 00000000..bc1af498
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_texture_gather.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+public interface ARB_texture_gather {
+
+ /**
+ * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
+ * GetFloatv, and GetDoublev:
+ */
+ int GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E;
+ int GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F;
+ int GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F;
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_texture_multisample.java b/src/templates/org/lwjgl/opengl/ARB_texture_multisample.java
new file mode 100644
index 00000000..fe586bf8
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_texture_multisample.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+import org.lwjgl.util.generator.*;
+
+import java.nio.FloatBuffer;
+
+@Extension(postfix = "")
+public interface ARB_texture_multisample {
+
+ /** Accepted by the <pname> parameter of GetMultisamplefv: */
+ int GL_SAMPLE_POSITION = 0x8E50;
+
+ /**
+ * Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, and by
+ * the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and
+ * GetDoublev:
+ */
+ int GL_SAMPLE_MASK = 0x8E51;
+
+ /**
+ * Accepted by the <target> parameter of GetBooleani_v and
+ * GetIntegeri_v:
+ */
+ int GL_SAMPLE_MASK_VALUE = 0x8E52;
+
+ /**
+ * Accepted by the <target> parameter of BindTexture and
+ * TexImage2DMultisample:
+ */
+ int GL_TEXTURE_2D_MULTISAMPLE = 0x9100;
+
+ /** Accepted by the <target> parameter of TexImage2DMultisample: */
+ int GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101;
+
+ /**
+ * Accepted by the <target> parameter of BindTexture and
+ * TexImage3DMultisample:
+ */
+ int GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102;
+
+ /** Accepted by the <target> parameter of TexImage3DMultisample: */
+ int GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103;
+
+ /**
+ * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv,
+ * and GetFloatv:
+ */
+ int GL_MAX_SAMPLE_MASK_WORDS = 0x8E59;
+ int GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E;
+ int GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F;
+ int GL_MAX_INTEGER_SAMPLES = 0x9110;
+ int GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104;
+ int GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105;
+
+ /** Accepted by the <pname> parameter of GetTexLevelParameter */
+ int GL_TEXTURE_SAMPLES = 0x9106;
+ int GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107;
+
+ /** Returned by the <type> parameter of GetActiveUniform: */
+ int GL_SAMPLER_2D_MULTISAMPLE = 0x9108;
+ int GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109;
+ int GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A;
+ int GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B;
+ int GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C;
+ int GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D;
+
+ void glTexImage2DMultisample(@GLenum int target, @GLsizei int samples, int internalformat,
+ @GLsizei int width, @GLsizei int height,
+ boolean fixedsamplelocations);
+
+ void glTexImage3DMultisample(@GLenum int target, @GLsizei int samples, int internalformat,
+ @GLsizei int width, @GLsizei int height, @GLsizei int depth,
+ boolean fixedsamplelocations);
+
+ @StripPostfix("val")
+ void glGetMultisamplefv(@GLenum int pname, @GLuint int index, @OutParameter @Check("2") FloatBuffer val);
+
+ void glSampleMaski(@GLuint int index, @GLbitfield int mask);
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_texture_query_lod.java b/src/templates/org/lwjgl/opengl/ARB_texture_query_lod.java
new file mode 100644
index 00000000..d54023a3
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_texture_query_lod.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+public interface ARB_texture_query_lod {
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/ARB_vertex_array_bgra.java b/src/templates/org/lwjgl/opengl/ARB_vertex_array_bgra.java
new file mode 100644
index 00000000..fb6e7b88
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/ARB_vertex_array_bgra.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+public interface ARB_vertex_array_bgra {
+
+ /**
+ * Accepted by the <size> parameter of ColorPointer,
+ * SecondaryColorPointer, and VertexAttribPointer:
+ */
+ int GL_BGRA = 0x80E1;
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/EXT_separate_shader_objects.java b/src/templates/org/lwjgl/opengl/EXT_separate_shader_objects.java
new file mode 100644
index 00000000..723b1b60
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/EXT_separate_shader_objects.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+import org.lwjgl.util.generator.*;
+
+import java.nio.ByteBuffer;
+
+public interface EXT_separate_shader_objects {
+
+ /** Accepted by <type> parameter to GetIntegerv and GetFloatv: */
+ int GL_ACTIVE_PROGRAM_EXT = 0x8B8D;
+
+ void glUseShaderProgramEXT(@GLenum int type, @GLuint int program);
+
+ void glActiveProgramEXT(@GLuint int program);
+
+ @GLuint int glCreateShaderProgramEXT(@GLenum int type, @NullTerminated @Const @GLchar ByteBuffer string);
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/EXT_texture_snorm.java b/src/templates/org/lwjgl/opengl/EXT_texture_snorm.java
new file mode 100644
index 00000000..7782cc04
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/EXT_texture_snorm.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+public interface EXT_texture_snorm {
+
+ /**
+ * Accepted by the <internalFormat> parameter of TexImage1D,
+ * TexImage2D, and TexImage3D:
+ */
+ int GL_RED_SNORM = 0x8F90;
+ int GL_RG_SNORM = 0x8F91;
+ int GL_RGB_SNORM = 0x8F92;
+ int GL_RGBA_SNORM = 0x8F93;
+ int GL_ALPHA_SNORM = 0x9010;
+ int GL_LUMINANCE_SNORM = 0x9011;
+ int GL_LUMINANCE_ALPHA_SNORM = 0x9012;
+ int GL_INTENSITY_SNORM = 0x9013;
+
+ int GL_R8_SNORM = 0x8F94;
+ int GL_RG8_SNORM = 0x8F95;
+ int GL_RGB8_SNORM = 0x8F96;
+ int GL_RGBA8_SNORM = 0x8F97;
+ int GL_ALPHA8_SNORM = 0x9014;
+ int GL_LUMINANCE8_SNORM = 0x9015;
+ int GL_LUMINANCE8_ALPHA8_SNORM = 0x9016;
+ int GL_INTENSITY8_SNORM = 0x9017;
+
+ int GL_R16_SNORM = 0x8F98;
+ int GL_RG16_SNORM = 0x8F99;
+ int GL_RGB16_SNORM = 0x8F9A;
+ int GL_RGBA16_SNORM = 0x8F9B;
+ int GL_ALPHA16_SNORM = 0x9018;
+ int GL_LUMINANCE16_SNORM = 0x9019;
+ int GL_LUMINANCE16_ALPHA16_SNORM = 0x901A;
+ int GL_INTENSITY16_SNORM = 0x901B;
+
+ /** Returned by GetTexLevelParmeter */
+ int GL_SIGNED_NORMALIZED = 0x8F9C;
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/GL32.java b/src/templates/org/lwjgl/opengl/GL32.java
new file mode 100644
index 00000000..0237e04a
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/GL32.java
@@ -0,0 +1,318 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+import org.lwjgl.util.generator.*;
+
+import java.nio.Buffer;
+import java.nio.FloatBuffer;
+import java.nio.LongBuffer;
+import java.nio.IntBuffer;
+
+public interface GL32 {
+
+ // ----------------------------------------------------------
+ // ----------------------[ OpenGL 3.2 ]----------------------
+ // ----------------------------------------------------------
+
+ int GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
+ int GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123;
+ int GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124;
+ int GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
+
+ // ---------------------------------------------------------------------
+ // ----------------------[ ARB_vertex_array_bgra ]----------------------
+ // ---------------------------------------------------------------------
+
+ int GL_BGRA = 0x80E1;
+
+ // -----------------------------------------------------------------------------
+ // ----------------------[ ARB_draw_elements_base_vertex ]----------------------
+ // -----------------------------------------------------------------------------
+
+ void glDrawElementsBaseVertex(@GLenum int mode, @AutoSize("indices") @GLsizei int count, @AutoType("indices") @GLenum int type,
+ @BufferObject(BufferKind.ElementVBO)
+ @Const
+ @GLubyte
+ @GLushort
+ @GLuint Buffer indices, int basevertex);
+
+ void glDrawRangeElementsBaseVertex(@GLenum int mode, @GLuint int start, @GLuint int end, @AutoSize("indices") @GLsizei int count, @AutoType("indices") @GLenum int type,
+ @BufferObject(BufferKind.ElementVBO)
+ @Const
+ @GLubyte
+ @GLushort
+ @GLuint Buffer indices, int basevertex);
+
+ void glDrawElementsInstancedBaseVertex(@GLenum int mode, @AutoSize("indices") @GLsizei int count, @AutoType("indices") @GLenum int type,
+ @BufferObject(BufferKind.ElementVBO)
+ @Const
+ @GLubyte
+ @GLushort
+ @GLuint Buffer indices, @GLsizei int primcount, int basevertex);
+
+ //void glMultiDrawElementsBaseVertex(@GLenum int mode, @GLsizei*count, @GLenum int type, void**indices, @GLsizei int primcount, int*basevertex)
+
+ // --------------------------------------------------------------------
+ // ----------------------[ ARB_provoking_vertex ]----------------------
+ // --------------------------------------------------------------------
+
+ /** Accepted by the <mode> parameter of ProvokingVertex: */
+ int GL_FIRST_VERTEX_CONVENTION = 0x8E4D;
+ int GL_LAST_VERTEX_CONVENTION = 0x8E4E;
+
+ /**
+ * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
+ * GetFloatv, and GetDoublev:
+ */
+ int GL_PROVOKING_VERTEX = 0x8E4F;
+ int GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C;
+
+ void glProvokingVertex(@GLenum int mode);
+
+ // ---------------------------------------------------------------------
+ // ----------------------[ ARB_seamless_cube_map ]----------------------
+ // ---------------------------------------------------------------------
+
+ /**
+ * Accepted by the <cap> parameter of Enable, Disable and IsEnabled,
+ * and by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv
+ * and GetDoublev:
+ */
+ int GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F;
+
+ // -----------------------------------------------------------------------
+ // ----------------------[ ARB_texture_multisample ]----------------------
+ // -----------------------------------------------------------------------
+
+ /** Accepted by the <pname> parameter of GetMultisamplefv: */
+ int GL_SAMPLE_POSITION = 0x8E50;
+
+ /**
+ * Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, and by
+ * the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and
+ * GetDoublev:
+ */
+ int GL_SAMPLE_MASK = 0x8E51;
+
+ /**
+ * Accepted by the <target> parameter of GetBooleani_v and
+ * GetIntegeri_v:
+ */
+ int GL_SAMPLE_MASK_VALUE = 0x8E52;
+
+ /**
+ * Accepted by the <target> parameter of BindTexture and
+ * TexImage2DMultisample:
+ */
+ int GL_TEXTURE_2D_MULTISAMPLE = 0x9100;
+
+ /** Accepted by the <target> parameter of TexImage2DMultisample: */
+ int GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101;
+
+ /**
+ * Accepted by the <target> parameter of BindTexture and
+ * TexImage3DMultisample:
+ */
+ int GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102;
+
+ /** Accepted by the <target> parameter of TexImage3DMultisample: */
+ int GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103;
+
+ /**
+ * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv,
+ * and GetFloatv:
+ */
+ int GL_MAX_SAMPLE_MASK_WORDS = 0x8E59;
+ int GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E;
+ int GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F;
+ int GL_MAX_INTEGER_SAMPLES = 0x9110;
+ int GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104;
+ int GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105;
+
+ /** Accepted by the <pname> parameter of GetTexLevelParameter */
+ int GL_TEXTURE_SAMPLES = 0x9106;
+ int GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107;
+
+ /** Returned by the <type> parameter of GetActiveUniform: */
+ int GL_SAMPLER_2D_MULTISAMPLE = 0x9108;
+ int GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109;
+ int GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A;
+ int GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B;
+ int GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C;
+ int GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D;
+
+ void glTexImage2DMultisample(@GLenum int target, @GLsizei int samples, int internalformat,
+ @GLsizei int width, @GLsizei int height,
+ boolean fixedsamplelocations);
+
+ void glTexImage3DMultisample(@GLenum int target, @GLsizei int samples, int internalformat,
+ @GLsizei int width, @GLsizei int height, @GLsizei int depth,
+ boolean fixedsamplelocations);
+
+ @StripPostfix("val")
+ void glGetMultisamplefv(@GLenum int pname, @GLuint int index, @OutParameter @Check("2") FloatBuffer val);
+
+ void glSampleMaski(@GLuint int index, @GLbitfield int mask);
+
+ // ---------------------------------------------------------------
+ // ----------------------[ ARB_depth_clamp ]----------------------
+ // ---------------------------------------------------------------
+
+ /**
+ * Accepted by the <cap> parameter of Enable, Disable, and IsEnabled,
+ * and by the <pname> parameter of GetBooleanv, GetIntegerv,
+ * GetFloatv, and GetDoublev:
+ */
+ int GL_DEPTH_CLAMP = 0x864F;
+
+ // --------------------------------------------------------------------
+ // ----------------------[ ARB_geometry_shader4 ]----------------------
+ // --------------------------------------------------------------------
+
+ /**
+ * Accepted by the <type> parameter of CreateShader and returned by the
+ * <params> parameter of GetShaderiv:
+ */
+ int GL_GEOMETRY_SHADER = 0x8DD9;
+
+ /**
+ * Accepted by the <pname> parameter of ProgramParameteriEXT and
+ * GetProgramiv:
+ */
+ int GL_GEOMETRY_VERTICES_OUT = 0x8DDA;
+ int GL_GEOMETRY_INPUT_TYPE = 0x8DDB;
+ int GL_GEOMETRY_OUTPUT_TYPE = 0x8DDC;
+
+ /**
+ * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
+ * GetFloatv, and GetDoublev:
+ */
+ int GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29;
+ //int GL_MAX_GEOMETRY_VARYING_COMPONENTS = 0x8DDD; -- Missing from 3.2 spec
+ //int GL_MAX_VERTEX_VARYING_COMPONENTS = 0x8DDE; -- Missing from 3.2 spec
+ int GL_MAX_VARYING_COMPONENTS = 0x8B4B;
+ int GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF;
+ int GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0;
+ int GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1;
+
+ /**
+ * Accepted by the <mode> parameter of Begin, DrawArrays,
+ * MultiDrawArrays, DrawElements, MultiDrawElements, and
+ * DrawRangeElements:
+ */
+ int GL_LINES_ADJACENCY = 0xA;
+ int GL_LINE_STRIP_ADJACENCY = 0xB;
+ int GL_TRIANGLES_ADJACENCY = 0xC;
+ int GL_TRIANGLE_STRIP_ADJACENCY = 0xD;
+
+ /** Returned by CheckFramebufferStatusEXT: */
+ int GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8;
+ int GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT = 0x8DA9;
+
+ /**
+ * Accepted by the <pname> parameter of GetFramebufferAttachment-
+ * ParameterivEXT:
+ */
+ int GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7;
+ int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4;
+
+ /**
+ * Accepted by the <cap> parameter of Enable, Disable, and IsEnabled,
+ * and by the <pname> parameter of GetIntegerv, GetFloatv, GetDoublev,
+ * and GetBooleanv:
+ */
+ int GL_PROGRAM_POINT_SIZE = 0x8642;
+
+ void glProgramParameteri(@GLuint int program, @GLenum int pname, int value);
+
+ void glFramebufferTexture(@GLenum int target, @GLenum int attachment, @GLuint int texture, int level);
+
+ void glFramebufferTextureLayer(@GLenum int target, @GLenum int attachment, @GLuint int texture, int level, int layer);
+
+ void glFramebufferTextureFace(@GLenum int target, @GLenum int attachment, @GLuint int texture, int level, @GLenum int face);
+
+ // --------------------------------------------------------
+ // ----------------------[ ARB_sync ]----------------------
+ // --------------------------------------------------------
+
+ /** Accepted as the <pname> parameter of GetInteger64v: */
+ int GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111;
+
+ /** Accepted as the <pname> parameter of GetSynciv: */
+ int GL_OBJECT_TYPE = 0x9112;
+ int GL_SYNC_CONDITION = 0x9113;
+ int GL_SYNC_STATUS = 0x9114;
+ int GL_SYNC_FLAGS = 0x9115;
+
+ /** Returned in <values> for GetSynciv <pname> OBJECT_TYPE: */
+ int GL_SYNC_FENCE = 0x9116;
+
+ /** Returned in <values> for GetSynciv <pname> SYNC_CONDITION: */
+ int GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117;
+
+ /** Returned in <values> for GetSynciv <pname> SYNC_STATUS: */
+ int GL_UNSIGNALED = 0x9118;
+ int GL_SIGNALED = 0x9119;
+
+ /** Accepted in the <flags> parameter of ClientWaitSync: */
+ int GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001;
+
+ /** Accepted in the <timeout> parameter of WaitSync: */
+ long GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFFl;
+
+ /** Returned by ClientWaitSync: */
+ int GL_ALREADY_SIGNALED = 0x911A;
+ int GL_TIMEOUT_EXPIRED = 0x911B;
+ int GL_CONDITION_SATISFIED = 0x911C;
+ int GL_WAIT_FAILED = 0x911D;
+
+ /*
+ @GLsync long glFenceSync(@GLenum int condition, @GLbitfield int flags);
+
+ boolean glIsSync(@GLsync long sync);
+
+ void glDeleteSync(@GLsync long sync);
+
+ @GLenum int glClientWaitSync(@GLsync long sync, @GLbitfield int flags, @GLuint64 long timeout);
+
+ void glWaitSync(@GLsync long sync, @GLbitfield int flags, @GLuint64 long timeout);
+
+ @StripPostfix("params")
+ void glGetInteger64v(@GLenum int pname, @OutParameter @Check("1") @GLint64 LongBuffer params);
+
+ void glGetSynciv(@GLsync long sync, @GLenum int pname,
+ @AutoSize("values") @GLsizei int bufSize,
+ @OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length,
+ @OutParameter IntBuffer values);
+ */
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/NV_copy_image.java b/src/templates/org/lwjgl/opengl/NV_copy_image.java
new file mode 100644
index 00000000..c70f47b5
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/NV_copy_image.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+import org.lwjgl.util.generator.GLenum;
+import org.lwjgl.util.generator.GLsizei;
+import org.lwjgl.util.generator.GLuint;
+
+public interface NV_copy_image {
+
+ void glCopyImageSubDataNV(
+ @GLuint int srcName, @GLenum int srcTarget, int srcLevel,
+ int srcX, int srcY, int srcZ,
+ @GLuint int dstName, @GLenum int dstTarget, int dstLevel,
+ int dstX, int dstY, int dstZ,
+ @GLsizei int width, @GLsizei int height, @GLsizei int depth);
+
+ // TODO: Implement WGL and GLX cross-context copying.
+
+}
\ No newline at end of file
diff --git a/src/templates/org/lwjgl/opengl/NV_parameter_buffer_object2.java b/src/templates/org/lwjgl/opengl/NV_parameter_buffer_object2.java
new file mode 100644
index 00000000..9f37f48e
--- /dev/null
+++ b/src/templates/org/lwjgl/opengl/NV_parameter_buffer_object2.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2002-2008 LWJGL Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'LWJGL' nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.lwjgl.opengl;
+
+public interface NV_parameter_buffer_object2 {
+
+}
\ No newline at end of file