From d8c16cc20c8768775c2e8b6249834f029f6eda9c Mon Sep 17 00:00:00 2001 From: Ioannis Tsakpinis Date: Tue, 1 Dec 2009 03:37:27 +0000 Subject: [PATCH] Updated EXT_direct_state_access to latest revision. Improved postfix stripping and extension dependency. --- .../ContextCapabilitiesGenerator.java | 12 +- .../util/generator/JavaMethodsGenerator.java | 21 +- .../lwjgl/util/generator/StripPostfix.java | 2 + src/templates/org/lwjgl/opengl/ARB_sync.java | 3 +- .../lwjgl/opengl/EXT_direct_state_access.java | 239 ++++++++++++++---- src/templates/org/lwjgl/opengl/GL30.java | 2 +- src/templates/org/lwjgl/opengl/GL32.java | 8 +- .../lwjgl/opengl/NV_geometry_program4.java | 2 + 8 files changed, 233 insertions(+), 56 deletions(-) diff --git a/src/java/org/lwjgl/util/generator/ContextCapabilitiesGenerator.java b/src/java/org/lwjgl/util/generator/ContextCapabilitiesGenerator.java index f3e4cedb..b8e3307d 100644 --- a/src/java/org/lwjgl/util/generator/ContextCapabilitiesGenerator.java +++ b/src/java/org/lwjgl/util/generator/ContextCapabilitiesGenerator.java @@ -215,8 +215,16 @@ public class ContextCapabilitiesGenerator { writer.print("\t\t\t("); if ( deprecated != null ) writer.print("forwardCompatible || "); - if ( dependent != null ) - writer.print("!supported_extensions.contains(\"" + dependent.value() + "\") || "); + if ( dependent != null ) { + if ( dependent.value().indexOf(',') == -1 ) + writer.print("!supported_extensions.contains(\"" + dependent.value() + "\") || "); + else { + writer.print("!(false"); + for ( String extension : dependent.value().split(",") ) + writer.print(" || supported_extensions.contains(\"" + extension + "\")"); + writer.print(") || "); + } + } if ( deprecated != null || dependent != null ) writer.print('('); writer.print(Utils.getFunctionAddressName(d, method) + " = "); diff --git a/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java b/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java index 67d14fcb..b0ca4bd4 100644 --- a/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java +++ b/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java @@ -283,22 +283,29 @@ public class JavaMethodsGenerator { private static String getPostfixStrippedName(TypeMap type_map, InterfaceDeclaration interface_decl, MethodDeclaration method) { StripPostfix strip_annotation = method.getAnnotation(StripPostfix.class); ParameterDeclaration postfix_parameter = Utils.findParameter(method, strip_annotation.value()); - PostfixTranslator translator = new PostfixTranslator(type_map, postfix_parameter); - postfix_parameter.getType().accept(translator); - String postfix = translator.getSignature(); + String postfix = strip_annotation.postfix(); + if ( "NULL".equals(postfix) ) { + PostfixTranslator translator = new PostfixTranslator(type_map, postfix_parameter); + postfix_parameter.getType().accept(translator); + postfix = translator.getSignature(); + } String method_name = method.getSimpleName(); String extension_postfix = "NULL".equals(strip_annotation.extension()) ? getExtensionPostfix(interface_decl) : strip_annotation.extension(); String result; - if (method_name.endsWith(postfix + "v" + extension_postfix)) + + if ( strip_annotation.hasPostfix() && method_name.endsWith(postfix + "v" + extension_postfix)) result = method_name.substring(0, method_name.length() - (postfix.length() + 1 + extension_postfix.length())); - else if (method_name.endsWith(postfix + extension_postfix)) + else if ( strip_annotation.hasPostfix() && method_name.endsWith(postfix + extension_postfix)) result = method_name.substring(0, method_name.length() - (postfix.length() + extension_postfix.length())); - else if ( method_name.endsWith("_v" + extension_postfix) ) - result = method_name.substring(0, method_name.length() - (2 + extension_postfix.length())); + else if ( strip_annotation.hasPostfix() && method_name.endsWith(postfix + "i_v" + extension_postfix) ) + result = method_name.substring(0, method_name.length() - (postfix.length() + 3 + extension_postfix.length())); + else if ( method_name.endsWith("i_v" + extension_postfix) ) + result = method_name.substring(0, method_name.length() - (3 + extension_postfix.length())); else if (method_name.endsWith("v" + extension_postfix)) result = method_name.substring(0, method_name.length() - (1 + extension_postfix.length())); else throw new RuntimeException(method + " is specified as being postfix stripped on parameter " + postfix_parameter + ", but it's postfix is not '" + postfix + "' nor 'v'"); + return result + extension_postfix; } diff --git a/src/java/org/lwjgl/util/generator/StripPostfix.java b/src/java/org/lwjgl/util/generator/StripPostfix.java index 1dd206f3..f70781ab 100644 --- a/src/java/org/lwjgl/util/generator/StripPostfix.java +++ b/src/java/org/lwjgl/util/generator/StripPostfix.java @@ -48,4 +48,6 @@ import java.lang.annotation.ElementType; public @interface StripPostfix { String value(); // The parameter to deduce the postfix from String extension() default "NULL"; + boolean hasPostfix() default true; + String postfix() default "NULL"; } diff --git a/src/templates/org/lwjgl/opengl/ARB_sync.java b/src/templates/org/lwjgl/opengl/ARB_sync.java index 1aba3ce1..6bc1ff96 100644 --- a/src/templates/org/lwjgl/opengl/ARB_sync.java +++ b/src/templates/org/lwjgl/opengl/ARB_sync.java @@ -82,9 +82,10 @@ public interface ARB_sync { void glWaitSync(@GLpointer("GLsync") GLSync sync, @GLbitfield int flags, @GLuint64 long timeout); - @StripPostfix("params") + @StripPostfix(value = "params", postfix = "64") void glGetInteger64v(@GLenum int pname, @OutParameter @Check("1") @GLint64 LongBuffer params); + @StripPostfix("values") void glGetSynciv(@GLpointer("GLsync") GLSync sync, @GLenum int pname, @AutoSize("values") @GLsizei int bufSize, @OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length, diff --git a/src/templates/org/lwjgl/opengl/EXT_direct_state_access.java b/src/templates/org/lwjgl/opengl/EXT_direct_state_access.java index 10c5c5ec..5477224a 100644 --- a/src/templates/org/lwjgl/opengl/EXT_direct_state_access.java +++ b/src/templates/org/lwjgl/opengl/EXT_direct_state_access.java @@ -39,6 +39,15 @@ import java.nio.*; @DeprecatedGL public interface EXT_direct_state_access { + /** + * Accepted by the <pname> parameter of GetBooleanIndexedvEXT, + * GetIntegerIndexedvEXT, GetFloatIndexedvEXT, GetDoubleIndexedvEXT: + * GetBooleani_v, GetIntegeri_v, GetFloati_vEXT, GetDoublei_vEXT: + */ + int GL_PROGRAM_MATRIX_EXT = 0x8E2D; + int GL_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E; + int GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F; + /* OpenGL 1.1: New client commands */ @@ -183,16 +192,16 @@ public interface EXT_direct_state_access { @GLdouble Buffer pixels); @StripPostfix("params") - void glGetTextureParameterfvEXT(@GLuint int texture, @GLenum int target, @GLenum int pname, @OutParameter @Check("4")FloatBuffer params); + void glGetTextureParameterfvEXT(@GLuint int texture, @GLenum int target, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetTextureParameterivEXT(@GLuint int texture, @GLenum int target, @GLenum int pname, @OutParameter @Check("4")IntBuffer params); + void glGetTextureParameterivEXT(@GLuint int texture, @GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("params") - void glGetTextureLevelParameterfvEXT(@GLuint int texture, @GLenum int target, int level, @GLenum int pname, @OutParameter @Check("4")FloatBuffer params); + void glGetTextureLevelParameterfvEXT(@GLuint int texture, @GLenum int target, int level, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetTextureLevelParameterivEXT(@GLuint int texture, @GLenum int target, int level, @GLenum int pname, @OutParameter @Check("4")IntBuffer params); + void glGetTextureLevelParameterivEXT(@GLuint int texture, @GLenum int target, int level, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); /* OpenGL 1.2: New 3D texture object commands replace "Tex" in name with @@ -459,6 +468,19 @@ public interface EXT_direct_state_access { @DeprecatedGL void glDisableClientStateIndexedEXT(@GLenum int array, @GLuint int index); + /* + OpenGL 3.0: New indexed texture commands and queries append "i" + to name and add "uint index" parameter (to identify the texture + unit index) after state name parameters (if any) and before state + value parameters + */ + + @Dependent("OpenGL30") + void glEnableClientStateiEXT(@GLenum int array, @GLuint int index); + + @Dependent("OpenGL30") + void glDisableClientStateiEXT(@GLenum int array, @GLuint int index); + /* OpenGL 1.2.1: New indexed generic queries (added for indexed texture state) append "Indexed" to name and add "uint index" parameter @@ -468,16 +490,35 @@ public interface EXT_direct_state_access { @Dependent("OpenGL13") @StripPostfix("params") - void glGetFloatIndexedvEXT(@GLenum int pname, @GLuint int index, @OutParameter @Check("16")FloatBuffer params); + void glGetFloatIndexedvEXT(@GLenum int pname, @GLuint int index, @OutParameter @Check("16") FloatBuffer params); @Dependent("OpenGL13") - @StripPostfix("params") - void glGetDoubleIndexedvEXT(@GLenum int pname, @GLuint int index, @OutParameter @Check("16")DoubleBuffer params); + @StripPostfix(value = "params", hasPostfix = false) + void glGetDoubleIndexedvEXT(@GLenum int pname, @GLuint int index, @OutParameter @Check("16") DoubleBuffer params); @Dependent("OpenGL13") @StripPostfix("params") void glGetPointerIndexedvEXT(@GLenum int pname, @GLuint int index, @Result @GLvoid ByteBuffer params); + /* + OpenGL 3.0: New indexed generic queries (added for indexed texture + state) replace "v" for "i_v" to name and add "uint index" parameter + (to identify the texture unit) after state name parameters (if any) + and before state value parameters + */ + + @Dependent("OpenGL30") + @StripPostfix("params") + void glGetFloati_vEXT(@GLenum int pname, @GLuint int index, @OutParameter @Check("16") FloatBuffer params); + + @Dependent("OpenGL30") + @StripPostfix("params") + void glGetDoublei_vEXT(@GLenum int pname, @GLuint int index, @OutParameter @Check("16") DoubleBuffer params); + + @Dependent("OpenGL30") + @StripPostfix(value = "params", hasPostfix = false) + void glGetPointeri_vEXT(@GLenum int pname, @GLuint int index, @Result @GLvoid ByteBuffer params); + /* OpenGL 1.2.1: Extend the functionality of these EXT_draw_buffers2 commands and queries for multitexture @@ -495,7 +536,7 @@ public interface EXT_direct_state_access { @Dependent("GL_EXT_draw_buffers2") @StripPostfix("params") - void glGetIntegerIndexedvEXT(@GLenum int pname, @GLuint int index, @OutParameter @Check("16")IntBuffer params); + void glGetIntegerIndexedvEXT(@GLenum int pname, @GLuint int index, @OutParameter @Check("16") IntBuffer params); @Dependent("GL_EXT_draw_buffers2") @StripPostfix("params") @@ -514,26 +555,26 @@ public interface EXT_direct_state_access { @Dependent("GL_ARB_vertex_program") @StripPostfix("params") - void glNamedProgramLocalParameter4dvEXT(@GLuint int program, @GLenum int target, @GLuint int index, @Const @Check("4")DoubleBuffer params); + void glNamedProgramLocalParameter4dvEXT(@GLuint int program, @GLenum int target, @GLuint int index, @Const @Check("4") DoubleBuffer params); @Dependent("GL_ARB_vertex_program") void glNamedProgramLocalParameter4fEXT(@GLuint int program, @GLenum int target, @GLuint int index, float x, float y, float z, float w); @Dependent("GL_ARB_vertex_program") @StripPostfix("params") - void glNamedProgramLocalParameter4fvEXT(@GLuint int program, @GLenum int target, @GLuint int index, @Const @Check("4")FloatBuffer params); + void glNamedProgramLocalParameter4fvEXT(@GLuint int program, @GLenum int target, @GLuint int index, @Const @Check("4") FloatBuffer params); @Dependent("GL_ARB_vertex_program") @StripPostfix("params") - void glGetNamedProgramLocalParameterdvEXT(@GLuint int program, @GLenum int target, @GLuint int index, @OutParameter @Check("4")DoubleBuffer params); + void glGetNamedProgramLocalParameterdvEXT(@GLuint int program, @GLenum int target, @GLuint int index, @OutParameter @Check("4") DoubleBuffer params); @Dependent("GL_ARB_vertex_program") @StripPostfix("params") - void glGetNamedProgramLocalParameterfvEXT(@GLuint int program, @GLenum int target, @GLuint int index, @OutParameter @Check("4")FloatBuffer params); + void glGetNamedProgramLocalParameterfvEXT(@GLuint int program, @GLenum int target, @GLuint int index, @OutParameter @Check("4") FloatBuffer params); @Dependent("GL_ARB_vertex_program") @StripPostfix("params") - void glGetNamedProgramivEXT(@GLuint int program, @GLenum int target, @GLenum int pname, @OutParameter @Check("4")IntBuffer params); + void glGetNamedProgramivEXT(@GLuint int program, @GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @Dependent("GL_ARB_vertex_program") void glGetNamedProgramStringEXT(@GLuint int program, @GLenum int target, @GLenum int pname, @OutParameter @Check @GLvoid ByteBuffer string); @@ -748,7 +789,7 @@ public interface EXT_direct_state_access { @Dependent("OpenGL15") @StripPostfix("params") - void glGetNamedBufferParameterivEXT(@GLuint int buffer, @GLenum int pname, @OutParameter @Check("4")IntBuffer params); + void glGetNamedBufferParameterivEXT(@GLuint int buffer, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @Dependent("OpenGL15") @StripPostfix("params") @@ -1015,14 +1056,14 @@ public interface EXT_direct_state_access { void glGetNamedProgramLocalParameterIuivEXT(@GLuint int program, @GLenum int target, @GLuint int index, @Check("4") @OutParameter @GLuint IntBuffer params); /* - EXT_framebuffer_object: New renderbuffer commands add "Named" prefix - to name and replace "enum target" with "uint renderbuffer" + OpenGL 3.0: New renderbuffer commands add "Named" prefix to name + and replace "enum target" with "uint renderbuffer" */ - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") void glNamedRenderbufferStorageEXT(@GLuint int renderbuffer, @GLenum int internalformat, @GLsizei int width, @GLsizei int height); - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") @StripPostfix("params") void glGetNamedRenderbufferParameterivEXT(@GLuint int renderbuffer, @GLenum int pname, @Check("4") @OutParameter IntBuffer params); @@ -1031,7 +1072,7 @@ public interface EXT_direct_state_access { prefix to name and replace "enum target" with "uint renderbuffer" */ - @Dependent("GL_EXT_framebuffer_multisample") + @Dependent("OpenGL30,GL_EXT_framebuffer_multisample") void glNamedRenderbufferStorageMultisampleEXT(@GLuint int renderbuffer, @GLsizei int samples, @GLenum int internalformat, @GLsizei int width, @GLsizei int height); /* @@ -1044,80 +1085,87 @@ public interface EXT_direct_state_access { void glNamedRenderbufferStorageMultisampleCoverageEXT(@GLuint int renderbuffer, @GLsizei int coverageSamples, @GLsizei int colorSamples, @GLenum int internalformat, @GLsizei int width, @GLsizei int height); /* - EXT_framebuffer_object: New framebuffer commands add "Named" prefix - to name and replace "enum target" with "uint framebuffer" + OpenGL 3.0: New framebuffer commands add "Named" prefix to name + and replace "enum target" with "uint framebuffer" */ - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") @GLenum int glCheckNamedFramebufferStatusEXT(@GLuint int framebuffer, @GLenum int target); - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") void glNamedFramebufferTexture1DEXT(@GLuint int framebuffer, @GLenum int attachment, @GLenum int textarget, @GLuint int texture, int level); - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") void glNamedFramebufferTexture2DEXT(@GLuint int framebuffer, @GLenum int attachment, @GLenum int textarget, @GLuint int texture, int level); - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") void glNamedFramebufferTexture3DEXT(@GLuint int framebuffer, @GLenum int attachment, @GLenum int textarget, @GLuint int texture, int level, int zoffset); - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") void glNamedFramebufferRenderbufferEXT(@GLuint int framebuffer, @GLenum int attachment, @GLenum int renderbuffertarget, @GLuint int renderbuffer); - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") @StripPostfix("params") void glGetNamedFramebufferAttachmentParameterivEXT(@GLuint int framebuffer, @GLenum int attachment, @GLenum int pname, @Check("4") @OutParameter IntBuffer params); /* - EXT_framebuffer_object: New texture commands add "Texture" within - name and replace "enum target" with "uint texture" + OpenGL 3.0: New texture commands add "Texture" within name and + replace "enum target" with "uint texture" */ - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") void glGenerateTextureMipmapEXT(@GLuint int texture, @GLenum int target); /* - EXT_framebuffer_object: New texture commands add "MultiTex" within - name and replace "enum target" with "enum texunit" + OpenGL 3.0: New texture commands add "MultiTex" within name and + replace "enum target" with "enum texunit" */ - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") void glGenerateMultiTexMipmapEXT(@GLenum int texunit, @GLenum int target); /* - EXT_framebuffer_object: New framebuffer commands + OpenGL 3.0: New framebuffer commands */ - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") void glFramebufferDrawBufferEXT(@GLuint int framebuffer, @GLenum int mode); - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") void glFramebufferDrawBuffersEXT(@GLuint int framebuffer, @AutoSize("bufs") @GLsizei int n, @Const @GLenum IntBuffer bufs); - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") void glFramebufferReadBufferEXT(@GLuint int framebuffer, @GLenum int mode); /* - EXT_framebuffer_object: New framebuffer query + OpenGL 3.0: New framebuffer query */ - @Dependent("GL_EXT_framebuffer_object") + @Dependent("OpenGL30,GL_EXT_framebuffer_object") @StripPostfix("param") void glGetFramebufferParameterivEXT(@GLuint int framebuffer, @GLenum int pname, @Check("4") @OutParameter IntBuffer param); /* - EXT_geometry_shader4 or NV_gpu_program4: New framebuffer commands + OpenGL 3.1: New buffer data copy command + */ + + @Dependent("OpenGL31,GL_ARB_copy_buffer") + void glNamedCopyBufferSubDataEXT(@GLuint int readBuffer, @GLuint int writeBuffer, @GLintptr long readoffset, @GLintptr long writeoffset, @GLsizeiptr long size); + + /* + EXT_geometry_shader4 or NV_geometry_program4: New framebuffer commands add "Named" prefix to name and replace "enum target" with "uint framebuffer" */ - @Dependent("GL_EXT_geometry_shader4") + @Dependent("GL_EXT_geometry_shader4,NV_geometry_program4") void glNamedFramebufferTextureEXT(@GLuint int framebuffer, @GLenum int attachment, @GLuint int texture, int level); - @Dependent("GL_EXT_geometry_shader4") + @Dependent("GL_EXT_geometry_shader4,NV_geometry_program4") void glNamedFramebufferTextureLayerEXT(@GLuint int framebuffer, @GLenum int attachment, @GLuint int texture, int level, int layer); - @Dependent("GL_EXT_geometry_shader4") + @Dependent("GL_EXT_geometry_shader4,NV_geometry_program4") void glNamedFramebufferTextureFaceEXT(@GLuint int framebuffer, @GLenum int attachment, @GLuint int texture, int level, @GLenum int face); /* @@ -1138,4 +1186,109 @@ public interface EXT_direct_state_access { @Dependent("GL_NV_explicit_multisample") void glMultiTexRenderbufferEXT(@GLenum int texunit, @GLenum int target, @GLuint int renderbuffer); + /* + OpenGL 3.0: New vertex array specification commands for vertex + array objects prefix "VertexArray", add initial "uint vaobj" and + "uint buffer" parameters, change "Pointer" suffix to "Offset", + and change the final parameter from "const void *" to "intptr offset" + */ + + @Dependent("OpenGL30") + @DeprecatedGL + void glVertexArrayVertexOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset); + + @Dependent("OpenGL30") + @DeprecatedGL + void glVertexArrayColorOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset); + + @Dependent("OpenGL30") + @DeprecatedGL + void glVertexArrayEdgeFlagOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLsizei int stride, @GLintptr long offset); + + @Dependent("OpenGL30") + void glVertexArrayIndexOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int type, @GLsizei int stride, @GLintptr long offset); + + @Dependent("OpenGL30") + @DeprecatedGL + void glVertexArrayNormalOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int type, @GLsizei int stride, @GLintptr long offset); + + @Dependent("OpenGL30") + @DeprecatedGL + void glVertexArrayTexCoordOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset); + + @Dependent("OpenGL30") + @DeprecatedGL + void glVertexArrayMultiTexCoordOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int texunit, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset); + + @Dependent("OpenGL30") + @DeprecatedGL + void glVertexArrayFogCoordOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int type, @GLsizei int stride, @GLintptr long offset); + + @Dependent("OpenGL30") + @DeprecatedGL + void glVertexArraySecondaryColorOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset); + + @Dependent("OpenGL30") + void glVertexArrayVertexAttribOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLuint int index, int size, @GLenum int type, boolean normalized, @GLsizei int stride, @GLintptr long offset); + + @Dependent("OpenGL30") + void glVertexArrayVertexAttribIOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLuint int index, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset); + + /* + OpenGL 3.0: New vertex array enable commands for vertex array + objects change "ClientState" to "VertexArray" and add an initial + "uint vaobj" parameter + */ + + @Dependent("OpenGL30") + void glEnableVertexArrayEXT(@GLuint int vaobj, @GLenum int array); + + @Dependent("OpenGL30") + void glDisableVertexArrayEXT(@GLuint int vaobj, @GLenum int array); + + /* + OpenGL 3.0: New vertex attrib array enable commands for vertex + array objects change "VertexAttribArray" to "VertexArrayAttrib" + and add an initial "uint vaobj" parameter + */ + + @Dependent("OpenGL30") + void glEnableVertexArrayAttribEXT(@GLuint int vaobj, @GLuint int index); + + @Dependent("OpenGL30") + void glDisableVertexArrayAttribEXT(@GLuint int vaobj, @GLuint int index); + + /* + OpenGL 3.0: New queries for vertex array objects + */ + + @Dependent("OpenGL30") + @StripPostfix("param") + void glGetVertexArrayIntegervEXT(@GLuint int vaobj, @GLenum int pname, @OutParameter @Check("16") IntBuffer param); + + @Dependent("OpenGL30") + @StripPostfix("param") + void glGetVertexArrayPointervEXT(@GLuint int vaobj, @GLenum int pname, @Result @GLvoid ByteBuffer param); + + @Dependent("OpenGL30") + @StripPostfix(value = "param", hasPostfix = false) + void glGetVertexArrayIntegeri_vEXT(@GLuint int vaobj, @GLuint int index, @GLenum int pname, @OutParameter @Check("16") IntBuffer param); + + @Dependent("OpenGL30") + @StripPostfix(value = "param", hasPostfix = false) + void glGetVertexArrayPointeri_vEXT(@GLuint int vaobj, @GLuint int index, @GLenum int pname, @Result @GLvoid ByteBuffer param); + + /* + OpenGL 3.0: New buffer commands replace "Buffer" with "NamedBuffer" + in name and replace "enum target" parameter with "uint buffer" + */ + + @Dependent("OpenGL30") + @CachedResult + @GLvoid + ByteBuffer glMapNamedBufferRangeEXT(@GLuint int buffer, @GLintptr long offset, @GLsizeiptr long length, @GLbitfield int access); + + @Dependent("OpenGL30") + void glFlushMappedNamedBufferRangeEXT(@GLuint int buffer, @GLintptr long offset, @GLsizeiptr long length); + } \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/GL30.java b/src/templates/org/lwjgl/opengl/GL30.java index 50587875..387a9c7a 100644 --- a/src/templates/org/lwjgl/opengl/GL30.java +++ b/src/templates/org/lwjgl/opengl/GL30.java @@ -725,7 +725,7 @@ public interface GL30 { void glColorMaski(@GLuint int buf, boolean r, boolean g, boolean b, boolean a); - @StripPostfix("data") + @StripPostfix(value = "data", hasPostfix = false) void glGetBooleani_v(@GLenum int value, @GLuint int index, @OutParameter @Check("4") @GLboolean ByteBuffer data); @StripPostfix("data") diff --git a/src/templates/org/lwjgl/opengl/GL32.java b/src/templates/org/lwjgl/opengl/GL32.java index 0da6f7d0..75c3311c 100644 --- a/src/templates/org/lwjgl/opengl/GL32.java +++ b/src/templates/org/lwjgl/opengl/GL32.java @@ -304,9 +304,13 @@ public interface GL32 { void glWaitSync(@GLpointer("GLsync") GLSync sync, @GLbitfield int flags, @GLuint64 long timeout); - @StripPostfix("params") - void glGetInteger64v(@GLenum int pname, @OutParameter @Check("1") @GLint64 LongBuffer params); + @StripPostfix(value = "data", postfix = "64") + void glGetInteger64v(@GLenum int pname, @OutParameter @Check("1") @GLint64 LongBuffer data); + @StripPostfix(value = "data", postfix = "64") + void glGetInteger64i_v(@GLenum int value, @GLuint int index, @OutParameter @Check("4") @GLint64 LongBuffer data); + + @StripPostfix("values") void glGetSynciv(@GLpointer("GLsync") GLSync sync, @GLenum int pname, @AutoSize("values") @GLsizei int bufSize, @OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length, diff --git a/src/templates/org/lwjgl/opengl/NV_geometry_program4.java b/src/templates/org/lwjgl/opengl/NV_geometry_program4.java index 177be351..8db5045a 100644 --- a/src/templates/org/lwjgl/opengl/NV_geometry_program4.java +++ b/src/templates/org/lwjgl/opengl/NV_geometry_program4.java @@ -53,4 +53,6 @@ public interface NV_geometry_program4 { void glFramebufferTextureLayerEXT(@GLenum int target, @GLenum int attachment, @GLuint int texture, int level, int layer); + void glFramebufferTextureFaceEXT(@GLenum int target, @GLenum int attachment, @GLuint int texture, int level, @GLenum int face); + } \ No newline at end of file