diff --git a/platform_build/build-generator.xml b/platform_build/build-generator.xml
index b499a2b2..67bfe176 100644
--- a/platform_build/build-generator.xml
+++ b/platform_build/build-generator.xml
@@ -22,7 +22,7 @@
-
+
@@ -96,7 +96,7 @@
-
+
@@ -110,7 +110,7 @@
-
+
@@ -124,4 +124,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/java/org/lwjgl/opengl/StateTracker.java b/src/java/org/lwjgl/opengl/StateTracker.java
index 928546d0..47a1ed66 100644
--- a/src/java/org/lwjgl/opengl/StateTracker.java
+++ b/src/java/org/lwjgl/opengl/StateTracker.java
@@ -32,14 +32,28 @@
package org.lwjgl.opengl;
final class StateTracker {
- private final ReferencesStack references_stack;
+ private ReferencesStack references_stack;
private final StateStack attrib_stack;
+ private boolean insideBeginEnd;
+
StateTracker() {
- references_stack = new ReferencesStack();
attrib_stack = new StateStack(0);
}
+ /** This is called after getting function addresses. */
+ void init() {
+ references_stack = new ReferencesStack();
+ }
+
+ static void setBeginEnd(ContextCapabilities caps, boolean inside) {
+ caps.tracker.insideBeginEnd = inside;
+ }
+
+ boolean isBeginEnd() {
+ return insideBeginEnd;
+ }
+
static void popAttrib(ContextCapabilities caps) {
caps.tracker.doPopAttrib();
}
diff --git a/src/java/org/lwjgl/opengl/Util.java b/src/java/org/lwjgl/opengl/Util.java
index a7ab0a05..49cc59ba 100644
--- a/src/java/org/lwjgl/opengl/Util.java
+++ b/src/java/org/lwjgl/opengl/Util.java
@@ -49,6 +49,8 @@ public final class Util {
*
*/
public static void checkGLError() throws OpenGLException {
+ if ( ContextCapabilities.DEBUG && GLContext.getCapabilities().tracker.isBeginEnd() ) // Do not call GetError inside a Begin/End pair.
+ return;
int err = GL11.glGetError();
if ( err != GL11.GL_NO_ERROR ) {
throw new OpenGLException(err);
diff --git a/src/java/org/lwjgl/util/generator/ContextCapabilitiesGenerator.java b/src/java/org/lwjgl/util/generator/ContextCapabilitiesGenerator.java
index ab641e25..2449da34 100644
--- a/src/java/org/lwjgl/util/generator/ContextCapabilitiesGenerator.java
+++ b/src/java/org/lwjgl/util/generator/ContextCapabilitiesGenerator.java
@@ -59,9 +59,10 @@ public class ContextCapabilitiesGenerator {
private final static String EXTENSION_PREFIX = "GL_";
private final static String CORE_PREFIX = "Open";
- public static void generateClassPrologue(PrintWriter writer, boolean context_specific) {
+ public static void generateClassPrologue(PrintWriter writer, boolean context_specific, boolean generate_error_checks) {
writer.println("public class " + Utils.CONTEXT_CAPS_CLASS_NAME + " {");
- writer.println("\tfinal StateTracker tracker;");
+ writer.println("\tstatic final boolean DEBUG = " + Boolean.toString(generate_error_checks) + ";");
+ writer.println("\tfinal StateTracker tracker = new StateTracker();");
writer.println("\tfinal IntBuffer scratch_int_buffer = BufferUtils.createIntBuffer(16);");
writer.println();
if ( !context_specific ) {
diff --git a/src/java/org/lwjgl/util/generator/ContextGeneratorProcessorFactory.java b/src/java/org/lwjgl/util/generator/ContextGeneratorProcessorFactory.java
index 8dbd0e38..2ae7936c 100644
--- a/src/java/org/lwjgl/util/generator/ContextGeneratorProcessorFactory.java
+++ b/src/java/org/lwjgl/util/generator/ContextGeneratorProcessorFactory.java
@@ -74,7 +74,7 @@ public class ContextGeneratorProcessorFactory implements AnnotationProcessorFact
}
public Collection supportedOptions() {
- return unmodifiableCollection(Arrays.asList("-Acontextspecific"));
+ return unmodifiableCollection(Arrays.asList("-Acontextspecific", "-Ageneratechecks"));
}
public void roundComplete(RoundCompleteEvent event) {
@@ -99,15 +99,16 @@ public class ContextGeneratorProcessorFactory implements AnnotationProcessorFact
public void process() {
Map options = env.getOptions();
+ boolean generate_error_checks = options.containsKey("-Ageneratechecks");
boolean context_specific = options.containsKey("-Acontextspecific");
try {
- generateContextCapabilitiesSource(context_specific);
+ generateContextCapabilitiesSource(context_specific, generate_error_checks);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
- private void generateContextCapabilitiesSource(boolean context_specific) throws IOException {
+ private void generateContextCapabilitiesSource(boolean context_specific, boolean generate_error_checks) throws IOException {
PrintWriter writer = env.getFiler().createTextFile(Filer.Location.SOURCE_TREE, "org.lwjgl.opengl", new File(Utils.CONTEXT_CAPS_CLASS_NAME + ".java"), null);
writer.println("/* MACHINE GENERATED FILE, DO NOT EDIT */");
writer.println();
@@ -120,7 +121,7 @@ public class ContextGeneratorProcessorFactory implements AnnotationProcessorFact
writer.println("import java.util.HashSet;");
writer.println("import java.nio.IntBuffer;");
writer.println();
- ContextCapabilitiesGenerator.generateClassPrologue(writer, context_specific);
+ ContextCapabilitiesGenerator.generateClassPrologue(writer, context_specific, generate_error_checks);
DeclarationFilter filter = DeclarationFilter.getFilter(InterfaceDeclaration.class);
Collection interface_decls = filter.filter(env.getSpecifiedTypeDeclarations());
for (TypeDeclaration typedecl : interface_decls) {
@@ -179,7 +180,7 @@ public class ContextGeneratorProcessorFactory implements AnnotationProcessorFact
if (Utils.isFinal(interface_decl))
ContextCapabilitiesGenerator.generateInitializer(writer, interface_decl);
}
- writer.println("\t\ttracker = new StateTracker();");
+ writer.println("\t\ttracker.init();");
writer.println("\t}");
writer.println("}");
writer.close();
diff --git a/src/templates/org/lwjgl/opengl/ARB_vertex_program.java b/src/templates/org/lwjgl/opengl/ARB_vertex_program.java
index ce1139c2..bb19fb25 100644
--- a/src/templates/org/lwjgl/opengl/ARB_vertex_program.java
+++ b/src/templates/org/lwjgl/opengl/ARB_vertex_program.java
@@ -79,30 +79,43 @@ public interface ARB_vertex_program extends ARB_program {
*/
int GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869;
+ @NoErrorCheck
void glVertexAttrib1sARB(@GLuint int index, short x);
+ @NoErrorCheck
void glVertexAttrib1fARB(@GLuint int index, float x);
+ @NoErrorCheck
void glVertexAttrib1dARB(@GLuint int index, double x);
+ @NoErrorCheck
void glVertexAttrib2sARB(@GLuint int index, short x, short y);
+ @NoErrorCheck
void glVertexAttrib2fARB(@GLuint int index, float x, float y);
+ @NoErrorCheck
void glVertexAttrib2dARB(@GLuint int index, double x, double y);
+ @NoErrorCheck
void glVertexAttrib3sARB(@GLuint int index, short x, short y, short z);
+ @NoErrorCheck
void glVertexAttrib3fARB(@GLuint int index, float x, float y, float z);
+ @NoErrorCheck
void glVertexAttrib3dARB(@GLuint int index, double x, double y, double z);
+ @NoErrorCheck
void glVertexAttrib4sARB(@GLuint int index, short x, short y, short z, short w);
+ @NoErrorCheck
void glVertexAttrib4fARB(@GLuint int index, float x, float y, float z, float w);
+ @NoErrorCheck
void glVertexAttrib4dARB(@GLuint int index, double x, double y, double z, double w);
+ @NoErrorCheck
void glVertexAttrib4NubARB(@GLuint int index, @GLubyte byte x, @GLubyte byte y, @GLubyte byte z, @GLubyte byte w);
void glVertexAttribPointerARB(@GLuint int index, int size, @AutoType("buffer") @GLenum int type, boolean normalized, @GLsizei int stride,
diff --git a/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java b/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java
index 73e3caf9..4d48f924 100644
--- a/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java
+++ b/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java
@@ -87,30 +87,43 @@ public interface ARB_vertex_shader {
int GL_FLOAT_MAT3_ARB = 0x8B5B;
int GL_FLOAT_MAT4_ARB = 0x8B5C;
+ @NoErrorCheck
void glVertexAttrib1sARB(@GLuint int index, short v0);
+ @NoErrorCheck
void glVertexAttrib1fARB(@GLuint int index, float v0);
+ @NoErrorCheck
void glVertexAttrib1dARB(@GLuint int index, double v0);
+ @NoErrorCheck
void glVertexAttrib2sARB(@GLuint int index, short v0, short v1);
+ @NoErrorCheck
void glVertexAttrib2fARB(@GLuint int index, float v0, float v1);
+ @NoErrorCheck
void glVertexAttrib2dARB(@GLuint int index, double v0, double v1);
+ @NoErrorCheck
void glVertexAttrib3sARB(@GLuint int index, short v0, short v1, short v2);
+ @NoErrorCheck
void glVertexAttrib3fARB(@GLuint int index, float v0, float v1, float v2);
+ @NoErrorCheck
void glVertexAttrib3dARB(@GLuint int index, double v0, double v1, double v2);
+ @NoErrorCheck
void glVertexAttrib4sARB(@GLuint int index, short v0, short v1, short v2, short v3);
+ @NoErrorCheck
void glVertexAttrib4fARB(@GLuint int index, float v0, float v1, float v2, float v3);
+ @NoErrorCheck
void glVertexAttrib4dARB(@GLuint int index, double v0, double v1, double v2, double v3);
+ @NoErrorCheck
void glVertexAttrib4NubARB(@GLuint int index, @GLubyte byte x, @GLubyte byte y, @GLubyte byte z, @GLubyte byte w);
void glVertexAttribPointerARB(@GLuint int index, int size, @AutoType("buffer") @GLenum int type, boolean normalized, @GLsizei int stride,
diff --git a/src/templates/org/lwjgl/opengl/ARB_vertex_type_2_10_10_10_rev.java b/src/templates/org/lwjgl/opengl/ARB_vertex_type_2_10_10_10_rev.java
index 22db6e2a..9912e8d0 100644
--- a/src/templates/org/lwjgl/opengl/ARB_vertex_type_2_10_10_10_rev.java
+++ b/src/templates/org/lwjgl/opengl/ARB_vertex_type_2_10_10_10_rev.java
@@ -47,98 +47,136 @@ public interface ARB_vertex_type_2_10_10_10_rev {
int GL_UNSIGNED_INT_2_10_10_10_REV = GL12.GL_UNSIGNED_INT_2_10_10_10_REV;
int GL_INT_2_10_10_10_REV = 0x8D9F;
+ @NoErrorCheck
void glVertexP2ui(@GLenum int type, @GLuint int value);
+ @NoErrorCheck
void glVertexP3ui(@GLenum int type, @GLuint int value);
+ @NoErrorCheck
void glVertexP4ui(@GLenum int type, @GLuint int value);
+ @NoErrorCheck
@StripPostfix("value")
void glVertexP2uiv(@GLenum int type, @Check("2") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
@StripPostfix("value")
void glVertexP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
@StripPostfix("value")
void glVertexP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
void glTexCoordP1ui(@GLenum int type, @GLuint int coords);
+ @NoErrorCheck
void glTexCoordP2ui(@GLenum int type, @GLuint int coords);
+ @NoErrorCheck
void glTexCoordP3ui(@GLenum int type, @GLuint int coords);
+ @NoErrorCheck
void glTexCoordP4ui(@GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@StripPostfix("coords")
void glTexCoordP1uiv(@GLenum int type, @Check("1") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@StripPostfix("coords")
void glTexCoordP2uiv(@GLenum int type, @Check("2") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@StripPostfix("coords")
void glTexCoordP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@StripPostfix("coords")
void glTexCoordP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
void glMultiTexCoordP1ui(@GLenum int texture, @GLenum int type, @GLuint int coords);
+ @NoErrorCheck
void glMultiTexCoordP2ui(@GLenum int texture, @GLenum int type, @GLuint int coords);
+ @NoErrorCheck
void glMultiTexCoordP3ui(@GLenum int texture, @GLenum int type, @GLuint int coords);
+ @NoErrorCheck
void glMultiTexCoordP4ui(@GLenum int texture, @GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@StripPostfix("coords")
void glMultiTexCoordP1uiv(@GLenum int texture, @GLenum int type, @Check("1") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@StripPostfix("coords")
void glMultiTexCoordP2uiv(@GLenum int texture, @GLenum int type, @Check("2") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@StripPostfix("coords")
void glMultiTexCoordP3uiv(@GLenum int texture, @GLenum int type, @Check("3") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@StripPostfix("coords")
void glMultiTexCoordP4uiv(@GLenum int texture, @GLenum int type, @Check("4") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
void glNormalP3ui(@GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@StripPostfix("coords")
void glNormalP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
void glColorP3ui(@GLenum int type, @GLuint int color);
+ @NoErrorCheck
void glColorP4ui(@GLenum int type, @GLuint int color);
+ @NoErrorCheck
@StripPostfix("color")
void glColorP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer color);
+ @NoErrorCheck
@StripPostfix("color")
void glColorP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer color);
+ @NoErrorCheck
void glSecondaryColorP3ui(@GLenum int type, @GLuint int color);
+ @NoErrorCheck
@StripPostfix("color")
void glSecondaryColorP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer color);
+ @NoErrorCheck
void glVertexAttribP1ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value);
+ @NoErrorCheck
void glVertexAttribP2ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value);
+ @NoErrorCheck
void glVertexAttribP3ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value);
+ @NoErrorCheck
void glVertexAttribP4ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value);
+ @NoErrorCheck
@StripPostfix("value")
void glVertexAttribP1uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("1") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
@StripPostfix("value")
void glVertexAttribP2uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("2") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
@StripPostfix("value")
void glVertexAttribP3uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("3") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
@StripPostfix("value")
void glVertexAttribP4uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("4") @Const @GLuint IntBuffer value);
diff --git a/src/templates/org/lwjgl/opengl/ATI_vertex_streams.java b/src/templates/org/lwjgl/opengl/ATI_vertex_streams.java
index 4e8adc20..cb585d17 100644
--- a/src/templates/org/lwjgl/opengl/ATI_vertex_streams.java
+++ b/src/templates/org/lwjgl/opengl/ATI_vertex_streams.java
@@ -45,38 +45,55 @@ public interface ATI_vertex_streams {
int GL_VERTEX_STREAM6_ATI = 0x8773;
int GL_VERTEX_STREAM7_ATI = 0x8774;
+ @NoErrorCheck
void glVertexStream2fATI(@GLenum int stream, float x, float y);
+ @NoErrorCheck
void glVertexStream2dATI(@GLenum int stream, double x, double y);
+ @NoErrorCheck
void glVertexStream2iATI(@GLenum int stream, int x, int y);
+ @NoErrorCheck
void glVertexStream2sATI(@GLenum int stream, short x, short y);
+ @NoErrorCheck
void glVertexStream3fATI(@GLenum int stream, float x, float y, float z);
+ @NoErrorCheck
void glVertexStream3dATI(@GLenum int stream, double x, double y, double z);
+ @NoErrorCheck
void glVertexStream3iATI(@GLenum int stream, int x, int y, int z);
+ @NoErrorCheck
void glVertexStream3sATI(@GLenum int stream, short x, short y, short z);
+ @NoErrorCheck
void glVertexStream4fATI(@GLenum int stream, float x, float y, float z, float w);
+ @NoErrorCheck
void glVertexStream4dATI(@GLenum int stream, double x, double y, double z, double w);
+ @NoErrorCheck
void glVertexStream4iATI(@GLenum int stream, int x, int y, int z, int w);
+ @NoErrorCheck
void glVertexStream4sATI(@GLenum int stream, short x, short y, short z, short w);
+ @NoErrorCheck
void glNormalStream3bATI(@GLenum int stream, byte x, byte y, byte z);
+ @NoErrorCheck
void glNormalStream3fATI(@GLenum int stream, float x, float y, float z);
+ @NoErrorCheck
void glNormalStream3dATI(@GLenum int stream, double x, double y, double z);
+ @NoErrorCheck
void glNormalStream3iATI(@GLenum int stream, int x, int y, int z);
+ @NoErrorCheck
void glNormalStream3sATI(@GLenum int stream, short x, short y, short z);
void glClientActiveVertexStreamATI(@GLenum int stream);
diff --git a/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java b/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java
index 939579c3..945b6a15 100644
--- a/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java
+++ b/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java
@@ -83,55 +83,75 @@ public interface EXT_gpu_shader4 {
int GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = 0x8904;
int GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = 0x8905;
+ @NoErrorCheck
void glVertexAttribI1iEXT(@GLuint int index, int x);
+ @NoErrorCheck
void glVertexAttribI2iEXT(@GLuint int index, int x, int y);
+ @NoErrorCheck
void glVertexAttribI3iEXT(@GLuint int index, int x, int y, int z);
+ @NoErrorCheck
void glVertexAttribI4iEXT(@GLuint int index, int x, int y, int z, int w);
+ @NoErrorCheck
void glVertexAttribI1uiEXT(@GLuint int index, @GLuint int x);
+ @NoErrorCheck
void glVertexAttribI2uiEXT(@GLuint int index, @GLuint int x, @GLuint int y);
+ @NoErrorCheck
void glVertexAttribI3uiEXT(@GLuint int index, @GLuint int x, @GLuint int y, @GLuint int z);
+ @NoErrorCheck
void glVertexAttribI4uiEXT(@GLuint int index, @GLuint int x, @GLuint int y, @GLuint int z, @GLuint int w);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI1ivEXT(@GLuint int index, @Check("1") @Const IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI2ivEXT(@GLuint int index, @Check("2") @Const IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI3ivEXT(@GLuint int index, @Check("3") @Const IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4ivEXT(@GLuint int index, @Check("4") @Const IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI1uivEXT(@GLuint int index, @Check("1") @Const @GLuint IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI2uivEXT(@GLuint int index, @Check("2") @Const @GLuint IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI3uivEXT(@GLuint int index, @Check("3") @Const @GLuint IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4uivEXT(@GLuint int index, @Check("4") @Const @GLuint IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4bvEXT(@GLuint int index, @Check("4") @Const ByteBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4svEXT(@GLuint int index, @Check("4") @Const ShortBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4ubvEXT(@GLuint int index, @Check("4") @Const @GLubyte ByteBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4usvEXT(@GLuint int index, @Check("4") @Const @GLushort ShortBuffer v);
diff --git a/src/templates/org/lwjgl/opengl/EXT_vertex_weighting.java b/src/templates/org/lwjgl/opengl/EXT_vertex_weighting.java
index 952fcfa5..3788e78f 100644
--- a/src/templates/org/lwjgl/opengl/EXT_vertex_weighting.java
+++ b/src/templates/org/lwjgl/opengl/EXT_vertex_weighting.java
@@ -50,6 +50,7 @@ public interface EXT_vertex_weighting {
int GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F;
int GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510;
+ @NoErrorCheck
void glVertexWeightfEXT(float weight);
void glVertexWeightPointerEXT(@GLsizei int size, @AutoType("pPointer") @GLenum int type, @GLsizei int stride,
diff --git a/src/templates/org/lwjgl/opengl/GL11.java b/src/templates/org/lwjgl/opengl/GL11.java
index af889099..59515365 100644
--- a/src/templates/org/lwjgl/opengl/GL11.java
+++ b/src/templates/org/lwjgl/opengl/GL11.java
@@ -764,9 +764,11 @@ public interface GL11 {
@NoErrorCheck
@DeprecatedGL
+ @Code("\t\tif ( ContextCapabilities.DEBUG ) StateTracker.setBeginEnd(caps, true);")
void glBegin(@GLenum int mode);
@DeprecatedGL
+ @Code("\t\tif ( ContextCapabilities.DEBUG ) StateTracker.setBeginEnd(caps, false);")
void glEnd();
@NoErrorCheck
diff --git a/src/templates/org/lwjgl/opengl/GL20.java b/src/templates/org/lwjgl/opengl/GL20.java
index 1b324227..f94129c9 100644
--- a/src/templates/org/lwjgl/opengl/GL20.java
+++ b/src/templates/org/lwjgl/opengl/GL20.java
@@ -296,30 +296,43 @@ public interface GL20 {
// ----------------------[ ARB_vertex_program ]----------------------
// ------------------------------------------------------------------
+ @NoErrorCheck
void glVertexAttrib1s(@GLuint int index, short x);
+ @NoErrorCheck
void glVertexAttrib1f(@GLuint int index, float x);
+ @NoErrorCheck
void glVertexAttrib1d(@GLuint int index, double x);
+ @NoErrorCheck
void glVertexAttrib2s(@GLuint int index, short x, short y);
+ @NoErrorCheck
void glVertexAttrib2f(@GLuint int index, float x, float y);
+ @NoErrorCheck
void glVertexAttrib2d(@GLuint int index, double x, double y);
+ @NoErrorCheck
void glVertexAttrib3s(@GLuint int index, short x, short y, short z);
+ @NoErrorCheck
void glVertexAttrib3f(@GLuint int index, float x, float y, float z);
+ @NoErrorCheck
void glVertexAttrib3d(@GLuint int index, double x, double y, double z);
+ @NoErrorCheck
void glVertexAttrib4s(@GLuint int index, short x, short y, short z, short w);
+ @NoErrorCheck
void glVertexAttrib4f(@GLuint int index, float x, float y, float z, float w);
+ @NoErrorCheck
void glVertexAttrib4d(@GLuint int index, double x, double y, double z, double w);
+ @NoErrorCheck
void glVertexAttrib4Nub(@GLuint int index, @GLubyte byte x, @GLubyte byte y, @GLubyte byte z, @GLubyte byte w);
void glVertexAttribPointer(@GLuint int index, int size, @AutoType("buffer") @GLenum int type, boolean normalized, @GLsizei int stride,
diff --git a/src/templates/org/lwjgl/opengl/GL30.java b/src/templates/org/lwjgl/opengl/GL30.java
index 8baedac9..2835b308 100644
--- a/src/templates/org/lwjgl/opengl/GL30.java
+++ b/src/templates/org/lwjgl/opengl/GL30.java
@@ -129,55 +129,75 @@ public interface GL30 {
int GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904;
int GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905;
+ @NoErrorCheck
void glVertexAttribI1i(@GLuint int index, int x);
+ @NoErrorCheck
void glVertexAttribI2i(@GLuint int index, int x, int y);
+ @NoErrorCheck
void glVertexAttribI3i(@GLuint int index, int x, int y, int z);
+ @NoErrorCheck
void glVertexAttribI4i(@GLuint int index, int x, int y, int z, int w);
+ @NoErrorCheck
void glVertexAttribI1ui(@GLuint int index, @GLuint int x);
+ @NoErrorCheck
void glVertexAttribI2ui(@GLuint int index, @GLuint int x, @GLuint int y);
+ @NoErrorCheck
void glVertexAttribI3ui(@GLuint int index, @GLuint int x, @GLuint int y, @GLuint int z);
+ @NoErrorCheck
void glVertexAttribI4ui(@GLuint int index, @GLuint int x, @GLuint int y, @GLuint int z, @GLuint int w);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI1iv(@GLuint int index, @Check("1") @Const IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI2iv(@GLuint int index, @Check("2") @Const IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI3iv(@GLuint int index, @Check("3") @Const IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4iv(@GLuint int index, @Check("4") @Const IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI1uiv(@GLuint int index, @Check("1") @Const @GLuint IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI2uiv(@GLuint int index, @Check("2") @Const @GLuint IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI3uiv(@GLuint int index, @Check("3") @Const @GLuint IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4uiv(@GLuint int index, @Check("4") @Const @GLuint IntBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4bv(@GLuint int index, @Check("4") @Const ByteBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4sv(@GLuint int index, @Check("4") @Const ShortBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4ubv(@GLuint int index, @Check("4") @Const @GLubyte ByteBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4usv(@GLuint int index, @Check("4") @Const @GLushort ShortBuffer v);
diff --git a/src/templates/org/lwjgl/opengl/GL33.java b/src/templates/org/lwjgl/opengl/GL33.java
index 2ce4580a..0a6330fb 100644
--- a/src/templates/org/lwjgl/opengl/GL33.java
+++ b/src/templates/org/lwjgl/opengl/GL33.java
@@ -244,135 +244,173 @@ public interface GL33 {
*/
int GL_INT_2_10_10_10_REV = 0x8D9F;
+ @NoErrorCheck
@DeprecatedGL
void glVertexP2ui(@GLenum int type, @GLuint int value);
+ @NoErrorCheck
@DeprecatedGL
void glVertexP3ui(@GLenum int type, @GLuint int value);
+ @NoErrorCheck
@DeprecatedGL
void glVertexP4ui(@GLenum int type, @GLuint int value);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("value")
void glVertexP2uiv(@GLenum int type, @Check("2") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("value")
void glVertexP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("value")
void glVertexP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
@DeprecatedGL
void glTexCoordP1ui(@GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@DeprecatedGL
void glTexCoordP2ui(@GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@DeprecatedGL
void glTexCoordP3ui(@GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@DeprecatedGL
void glTexCoordP4ui(@GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("coords")
void glTexCoordP1uiv(@GLenum int type, @Check("1") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("coords")
void glTexCoordP2uiv(@GLenum int type, @Check("2") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("coords")
void glTexCoordP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("coords")
void glTexCoordP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@DeprecatedGL
void glMultiTexCoordP1ui(@GLenum int texture, @GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@DeprecatedGL
void glMultiTexCoordP2ui(@GLenum int texture, @GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@DeprecatedGL
void glMultiTexCoordP3ui(@GLenum int texture, @GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@DeprecatedGL
void glMultiTexCoordP4ui(@GLenum int texture, @GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("coords")
void glMultiTexCoordP1uiv(@GLenum int texture, @GLenum int type, @Check("1") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("coords")
void glMultiTexCoordP2uiv(@GLenum int texture, @GLenum int type, @Check("2") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("coords")
void glMultiTexCoordP3uiv(@GLenum int texture, @GLenum int type, @Check("3") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("coords")
void glMultiTexCoordP4uiv(@GLenum int texture, @GLenum int type, @Check("4") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@DeprecatedGL
void glNormalP3ui(@GLenum int type, @GLuint int coords);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("coords")
void glNormalP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer coords);
+ @NoErrorCheck
@DeprecatedGL
void glColorP3ui(@GLenum int type, @GLuint int color);
+ @NoErrorCheck
@DeprecatedGL
void glColorP4ui(@GLenum int type, @GLuint int color);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("color")
void glColorP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer color);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("color")
void glColorP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer color);
+ @NoErrorCheck
@DeprecatedGL
void glSecondaryColorP3ui(@GLenum int type, @GLuint int color);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("color")
void glSecondaryColorP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer color);
+ @NoErrorCheck
@DeprecatedGL
void glVertexAttribP1ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value);
+ @NoErrorCheck
@DeprecatedGL
void glVertexAttribP2ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value);
+ @NoErrorCheck
@DeprecatedGL
void glVertexAttribP3ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value);
+ @NoErrorCheck
@DeprecatedGL
void glVertexAttribP4ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("value")
void glVertexAttribP1uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("1") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("value")
void glVertexAttribP2uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("2") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("value")
void glVertexAttribP3uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("3") @Const @GLuint IntBuffer value);
+ @NoErrorCheck
@DeprecatedGL
@StripPostfix("value")
void glVertexAttribP4uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("4") @Const @GLuint IntBuffer value);
diff --git a/src/templates/org/lwjgl/opengl/NV_half_float.java b/src/templates/org/lwjgl/opengl/NV_half_float.java
index 93c18706..134c61bc 100644
--- a/src/templates/org/lwjgl/opengl/NV_half_float.java
+++ b/src/templates/org/lwjgl/opengl/NV_half_float.java
@@ -46,66 +46,91 @@ public interface NV_half_float {
*/
int GL_HALF_FLOAT_NV = 0x140B;
+ @NoErrorCheck
void glVertex2hNV(@GLhalf short x, @GLhalf short y);
+ @NoErrorCheck
void glVertex3hNV(@GLhalf short x, @GLhalf short y, @GLhalf short z);
+ @NoErrorCheck
void glVertex4hNV(@GLhalf short x, @GLhalf short y, @GLhalf short z, @GLhalf short w);
+ @NoErrorCheck
void glNormal3hNV(@GLhalf short nx, @GLhalf short ny, @GLhalf short nz);
+ @NoErrorCheck
void glColor3hNV(@GLhalf short red, @GLhalf short green, @GLhalf short blue);
+ @NoErrorCheck
void glColor4hNV(@GLhalf short red, @GLhalf short green, @GLhalf short blue, @GLhalf short alpha);
+ @NoErrorCheck
void glTexCoord1hNV(@GLhalf short s);
+ @NoErrorCheck
void glTexCoord2hNV(@GLhalf short s, @GLhalf short t);
+ @NoErrorCheck
void glTexCoord3hNV(@GLhalf short s, @GLhalf short t, @GLhalf short r);
+ @NoErrorCheck
void glTexCoord4hNV(@GLhalf short s, @GLhalf short t, @GLhalf short r, @GLhalf short q);
+ @NoErrorCheck
void glMultiTexCoord1hNV(@GLenum int target, @GLhalf short s);
+ @NoErrorCheck
void glMultiTexCoord2hNV(@GLenum int target, @GLhalf short s, @GLhalf short t);
+ @NoErrorCheck
void glMultiTexCoord3hNV(@GLenum int target, @GLhalf short s, @GLhalf short t, @GLhalf short r);
+ @NoErrorCheck
void glMultiTexCoord4hNV(@GLenum int target, @GLhalf short s, @GLhalf short t, @GLhalf short r, @GLhalf short q);
+ @NoErrorCheck
void glFogCoordhNV(@GLhalf short fog);
+ @NoErrorCheck
void glSecondaryColor3hNV(@GLhalf short red, @GLhalf short green, @GLhalf short blue);
@Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @NoErrorCheck
void glVertexWeighthNV(@GLhalf short weight);
@Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @NoErrorCheck
void glVertexAttrib1hNV(@GLuint int index, @GLhalf short x);
@Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @NoErrorCheck
void glVertexAttrib2hNV(@GLuint int index, @GLhalf short x, @GLhalf short y);
@Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @NoErrorCheck
void glVertexAttrib3hNV(@GLuint int index, @GLhalf short x, @GLhalf short y, @GLhalf short z);
@Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @NoErrorCheck
void glVertexAttrib4hNV(@GLuint int index, @GLhalf short x, @GLhalf short y, @GLhalf short z, @GLhalf short w);
@Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @NoErrorCheck
@StripPostfix("attribs")
void glVertexAttribs1hvNV(@GLuint int index, @AutoSize("attribs") @GLsizei int n, @Const @GLhalf ShortBuffer attribs);
@Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @NoErrorCheck
@StripPostfix("attribs")
void glVertexAttribs2hvNV(@GLuint int index, @AutoSize(value = "attribs", expression = " >> 1") @GLsizei int n, @Const @GLhalf ShortBuffer attribs);
@Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @NoErrorCheck
@StripPostfix("attribs")
void glVertexAttribs3hvNV(@GLuint int index, @AutoSize(value = "attribs", expression = " / 3") @GLsizei int n, @Const @GLhalf ShortBuffer attribs);
@Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @NoErrorCheck
@StripPostfix("attribs")
void glVertexAttribs4hvNV(@GLuint int index, @AutoSize(value = "attribs", expression = " >> 2") @GLsizei int n, @Const @GLhalf ShortBuffer attribs);
}
diff --git a/src/templates/org/lwjgl/opengl/NV_vertex_program.java b/src/templates/org/lwjgl/opengl/NV_vertex_program.java
index 3f63ff81..e9606851 100644
--- a/src/templates/org/lwjgl/opengl/NV_vertex_program.java
+++ b/src/templates/org/lwjgl/opengl/NV_vertex_program.java
@@ -241,65 +241,90 @@ public interface NV_vertex_program extends NV_program {
@GLfloat
@GLdouble Buffer buffer);
+ @NoErrorCheck
void glVertexAttrib1sNV(@GLuint int index, short x);
+ @NoErrorCheck
void glVertexAttrib1fNV(@GLuint int index, float x);
+ @NoErrorCheck
void glVertexAttrib1dNV(@GLuint int index, double x);
+ @NoErrorCheck
void glVertexAttrib2sNV(@GLuint int index, short x, short y);
+ @NoErrorCheck
void glVertexAttrib2fNV(@GLuint int index, float x, float y);
+ @NoErrorCheck
void glVertexAttrib2dNV(@GLuint int index, double x, double y);
+ @NoErrorCheck
void glVertexAttrib3sNV(@GLuint int index, short x, short y, short z);
+ @NoErrorCheck
void glVertexAttrib3fNV(@GLuint int index, float x, float y, float z);
+ @NoErrorCheck
void glVertexAttrib3dNV(@GLuint int index, double x, double y, double z);
+ @NoErrorCheck
void glVertexAttrib4sNV(@GLuint int index, short x, short y, short z, short w);
+ @NoErrorCheck
void glVertexAttrib4fNV(@GLuint int index, float x, float y, float z, float w);
+ @NoErrorCheck
void glVertexAttrib4dNV(@GLuint int index, double x, double y, double z, double w);
+ @NoErrorCheck
void glVertexAttrib4ubNV(@GLuint int index, @GLubyte byte x, @GLubyte byte y, @GLubyte byte z, @GLubyte byte w);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs1svNV(@GLuint int index, @AutoSize("v") @GLsizei int n, @Const ShortBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs1fvNV(@GLuint int index, @AutoSize("v") @GLsizei int n, @Const FloatBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs1dvNV(@GLuint int index, @AutoSize("v") @GLsizei int n, @Const DoubleBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs2svNV(@GLuint int index, @AutoSize(value = "v", expression = " >> 1") @GLsizei int n, @Const ShortBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs2fvNV(@GLuint int index, @AutoSize(value = "v", expression = " >> 1") @GLsizei int n, @Const FloatBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs2dvNV(@GLuint int index, @AutoSize(value = "v", expression = " >> 1") @GLsizei int n, @Const DoubleBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs3svNV(@GLuint int index, @AutoSize(value = "v", expression = " / 3") @GLsizei int n, @Const ShortBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs3fvNV(@GLuint int index, @AutoSize(value = "v", expression = " / 3") @GLsizei int n, @Const FloatBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs3dvNV(@GLuint int index, @AutoSize(value = "v", expression = " / 3") @GLsizei int n, @Const DoubleBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs4svNV(@GLuint int index, @AutoSize(value = "v", expression = " >> 2") @GLsizei int n, @Const ShortBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs4fvNV(@GLuint int index, @AutoSize(value = "v", expression = " >> 2") @GLsizei int n, @Const FloatBuffer v);
+ @NoErrorCheck
@StripPostfix("v")
void glVertexAttribs4dvNV(@GLuint int index, @AutoSize(value = "v", expression = " >> 2") @GLsizei int n, @Const DoubleBuffer v);
}