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); }