Added @NoErrorCheck on vertex data methods.

The debug build will now track Begin/End pairs and never call GetError inside them.
This commit is contained in:
Ioannis Tsakpinis 2010-04-09 23:57:40 +00:00
parent 72c3da7aeb
commit 4eb94622ca
17 changed files with 271 additions and 12 deletions

View File

@ -22,7 +22,7 @@
<!-- Proxy target to generate it all -->
<target name="generate-all" depends="generate-openal, generate-opengl, generate-opengl-capabilities, generate-opengl-references" description="Generates java and native source"/>
<target name="generate-debug" depends="generate-openal-debug, generate-opengl-debug, generate-opengl-capabilities, generate-opengl-references" description="Generates java and native source"/>
<target name="generate-debug" depends="generate-openal-debug, generate-opengl-debug, generate-opengl-capabilities-debug, generate-opengl-references" description="Generates java and native source"/>
<!-- Generate OpenAL -->
<target name="generate-openal" depends="generators" description="Generates java and native source for AL">
@ -96,7 +96,7 @@
</apply>
</target>
<!-- Generate context capabilities -->
<!-- Generate references -->
<target name="generate-opengl-references" depends="generators" description="Generates java and native source for GL">
<apply executable="apt" parallel="true">
<arg value="-nocompile"/>
@ -110,7 +110,7 @@
</apply>
</target>
<!-- Generate context capabilities -->
<!-- Generate context capabilities -->
<target name="generate-opengl-capabilities" depends="generators" description="Generates java and native source for GL">
<apply executable="apt" parallel="true">
<arg value="-nocompile"/>
@ -124,4 +124,20 @@
<fileset dir="${lwjgl.src.templates}" includes="${opengl-template-pattern}"/>
</apply>
</target>
<!-- Generate context capabilities [DEBUG] -->
<target name="generate-opengl-capabilities-debug" depends="generators" description="Generates java and native source for GL">
<apply executable="apt" parallel="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.ContextGeneratorProcessorFactory"/>
<arg value="-cp"/>
<arg path="${lwjgl.src}/java:${lwjgl.src.templates}:${lwjgl.bin}:${java.class.path}"/>
<arg value="-s"/>
<arg path="${lwjgl.src}/generated"/>
<arg value="-Ageneratechecks"/>
<arg value="-Acontextspecific"/>
<fileset dir="${lwjgl.src.templates}" includes="${opengl-template-pattern}"/>
</apply>
</target>
</project>

View File

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

View File

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

View File

@ -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 ) {

View File

@ -74,7 +74,7 @@ public class ContextGeneratorProcessorFactory implements AnnotationProcessorFact
}
public Collection<String> 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<String, String> 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<TypeDeclaration> 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();

View File

@ -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,

View File

@ -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,

View File

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

View File

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

View File

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

View File

@ -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,

View File

@ -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

View File

@ -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,

View File

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

View File

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

View File

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

View File

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