diff --git a/src/java/org/lwjgl/BufferChecks.java b/src/java/org/lwjgl/BufferChecks.java index c5bb1bdf..33a22956 100644 --- a/src/java/org/lwjgl/BufferChecks.java +++ b/src/java/org/lwjgl/BufferChecks.java @@ -85,6 +85,13 @@ public class BufferChecks { throw new IllegalArgumentException("Missing null termination"); } + /** Helper methods to ensure an IntBuffer is null-terminated */ + public static void checkNullTerminated(IntBuffer buf) { + if ( buf.get(buf.limit() - 1) != 0 ) { + throw new IllegalArgumentException("Missing null termination"); + } + } + public static void checkNotNull(Object o) { if (o == null) throw new IllegalArgumentException("Null argument"); diff --git a/src/java/org/lwjgl/opengl/BaseReferences.java b/src/java/org/lwjgl/opengl/BaseReferences.java index 584246ad..343b2c91 100644 --- a/src/java/org/lwjgl/opengl/BaseReferences.java +++ b/src/java/org/lwjgl/opengl/BaseReferences.java @@ -46,6 +46,8 @@ class BaseReferences { int pixelPackBuffer; int pixelUnpackBuffer; + int indirectBuffer; + BaseReferences(ContextCapabilities caps) { IntBuffer temp = caps.scratch_int_buffer; @@ -78,6 +80,8 @@ class BaseReferences { this.pixelPackBuffer = 0; this.pixelUnpackBuffer = 0; + + this.indirectBuffer = 0; } void copy(BaseReferences references, int mask) { @@ -87,6 +91,8 @@ class BaseReferences { this.glClientActiveTexture = references.glClientActiveTexture; System.arraycopy(references.glVertexAttribPointer_buffer, 0, glVertexAttribPointer_buffer, 0, glVertexAttribPointer_buffer.length); System.arraycopy(references.glTexCoordPointer_buffer, 0, glTexCoordPointer_buffer, 0, glTexCoordPointer_buffer.length); + + this.indirectBuffer = references.indirectBuffer; } if ( (mask & GL11.GL_CLIENT_PIXEL_STORE_BIT) != 0 ) { diff --git a/src/java/org/lwjgl/opengl/GLChecks.java b/src/java/org/lwjgl/opengl/GLChecks.java index 3a912700..3d903aff 100644 --- a/src/java/org/lwjgl/opengl/GLChecks.java +++ b/src/java/org/lwjgl/opengl/GLChecks.java @@ -114,6 +114,18 @@ class GLChecks { throw new OpenGLException("Cannot use offsets when Element Array Buffer Object is disabled"); } + /** Helper method to ensure that array buffer objects are disabled. If they are enabled, we'll throw an OpenGLException */ + static void ensureIndirectBOdisabled(ContextCapabilities caps) { + if ( StateTracker.getReferencesStack(caps).getReferences().indirectBuffer != 0 ) + throw new OpenGLException("Cannot use Buffers when Draw Indirect Object is enabled"); + } + + /** Helper method to ensure that array buffer objects are enabled. If they are disabled, we'll throw an OpenGLException */ + static void ensureIndirectBOenabled(ContextCapabilities caps) { + if ( StateTracker.getReferencesStack(caps).getReferences().indirectBuffer == 0 ) + throw new OpenGLException("Cannot use offsets when Draw Indirect Object is disabled"); + } + /** Helper method to ensure that pixel pack buffer objects are disabled. If they are enabled, we'll throw an OpenGLException */ static void ensurePackPBOdisabled(ContextCapabilities caps) { if ( StateTracker.getReferencesStack(caps).getReferences().pixelPackBuffer != 0 ) diff --git a/src/java/org/lwjgl/opengl/GLContext.java b/src/java/org/lwjgl/opengl/GLContext.java index ff984b1c..2d98fee9 100644 --- a/src/java/org/lwjgl/opengl/GLContext.java +++ b/src/java/org/lwjgl/opengl/GLContext.java @@ -199,7 +199,13 @@ public final class GLContext { LWJGLUtil.log("The major and/or minor OpenGL version is malformed: " + e.getMessage()); } + // ----------------------[ 4.X ]---------------------- + if ( 4 <= majorVersion ) + supported_extensions.add("OpenGL40"); + // ----------------------[ 3.X ]---------------------- + if ( 3 < majorVersion || (3 == majorVersion && 3 <= minorVersion) ) + supported_extensions.add("OpenGL33"); if ( 3 < majorVersion || (3 == majorVersion && 2 <= minorVersion) ) supported_extensions.add("OpenGL32"); if ( 3 < majorVersion || (3 == majorVersion && 1 <= minorVersion) ) diff --git a/src/java/org/lwjgl/opengl/StateTracker.java b/src/java/org/lwjgl/opengl/StateTracker.java index 59adb4fa..928546d0 100644 --- a/src/java/org/lwjgl/opengl/StateTracker.java +++ b/src/java/org/lwjgl/opengl/StateTracker.java @@ -76,6 +76,9 @@ final class StateTracker { case GL21.GL_PIXEL_UNPACK_BUFFER: references_stack.getReferences().pixelUnpackBuffer = buffer; break; + case GL40.GL_DRAW_INDIRECT_BUFFER: + references_stack.getReferences().indirectBuffer = buffer; + break; } } diff --git a/src/java/org/lwjgl/util/generator/Alternate.java b/src/java/org/lwjgl/util/generator/Alternate.java new file mode 100644 index 00000000..e9fccbf3 --- /dev/null +++ b/src/java/org/lwjgl/util/generator/Alternate.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.util.generator; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; + +/** + * When a method is annonated with @Alternate, no native stub will be created and the Java method will be renamed to value(). + * This can be useful when we want to provide an alternate GL call with different arguments (created by different annotations) + * + * @author spasi + */ +@Target({ ElementType.METHOD }) +public @interface Alternate { + /** This must match an existing GL method name. */ + String value(); +} \ No newline at end of file diff --git a/src/java/org/lwjgl/util/generator/BufferKind.java b/src/java/org/lwjgl/util/generator/BufferKind.java index c8030921..cc96e72a 100644 --- a/src/java/org/lwjgl/util/generator/BufferKind.java +++ b/src/java/org/lwjgl/util/generator/BufferKind.java @@ -42,5 +42,6 @@ public enum BufferKind { UnpackPBO, PackPBO, ElementVBO, - ArrayVBO + ArrayVBO, + IndirectBO } diff --git a/src/java/org/lwjgl/util/generator/GLTypeMap.java b/src/java/org/lwjgl/util/generator/GLTypeMap.java index d4abb178..29f375d8 100644 --- a/src/java/org/lwjgl/util/generator/GLTypeMap.java +++ b/src/java/org/lwjgl/util/generator/GLTypeMap.java @@ -188,7 +188,7 @@ public class GLTypeMap implements TypeMap { private static Class[] getValidBufferTypes(Class type) { if ( type.equals(IntBuffer.class) ) return new Class[] { GLbitfield.class, GLenum.class, GLhandleARB.class, GLint.class, - GLsizei.class, GLuint.class }; + GLsizei.class, GLuint.class, GLvoid.class }; else if ( type.equals(FloatBuffer.class) ) return new Class[] { GLclampf.class, GLfloat.class }; else if ( type.equals(ByteBuffer.class) ) diff --git a/src/java/org/lwjgl/util/generator/GLvoid.java b/src/java/org/lwjgl/util/generator/GLvoid.java index 4746efdb..cb4f5dba 100644 --- a/src/java/org/lwjgl/util/generator/GLvoid.java +++ b/src/java/org/lwjgl/util/generator/GLvoid.java @@ -41,7 +41,10 @@ package org.lwjgl.util.generator; import java.lang.annotation.Target; import java.lang.annotation.ElementType; +import com.sun.mirror.type.PrimitiveType; + @NativeType @Target({ElementType.PARAMETER, ElementType.METHOD}) public @interface GLvoid { + PrimitiveType.Kind value() default PrimitiveType.Kind.BYTE; } diff --git a/src/java/org/lwjgl/util/generator/GeneratorVisitor.java b/src/java/org/lwjgl/util/generator/GeneratorVisitor.java index 6c51d8b3..041b0c04 100644 --- a/src/java/org/lwjgl/util/generator/GeneratorVisitor.java +++ b/src/java/org/lwjgl/util/generator/GeneratorVisitor.java @@ -138,7 +138,7 @@ public class GeneratorVisitor extends SimpleDeclarationVisitor { break; } } - if (!found_auto_size_param && param.getAnnotation(Result.class) == null) + if (!found_auto_size_param && param.getAnnotation(Result.class) == null && param.getAnnotation(Constant.class) == null) throw new RuntimeException(param + " has no Check, Result nor Constant annotation and no other parameters has" + " an @AutoSize annotation on it in method " + method); } @@ -146,8 +146,8 @@ public class GeneratorVisitor extends SimpleDeclarationVisitor { throw new RuntimeException(param + " can't be annotated with both CachedReference and Result"); if (param.getAnnotation(BufferObject.class) != null && param.getAnnotation(Result.class) != null) throw new RuntimeException(param + " can't be annotated with both BufferObject and Result"); - if (param.getAnnotation(Constant.class) != null) - throw new RuntimeException("Buffer parameter " + param + " cannot be Constant"); + //if (param.getAnnotation(Constant.class) != null) + //throw new RuntimeException("Buffer parameter " + param + " cannot be Constant"); } else { if (param.getAnnotation(BufferObject.class) != null) throw new RuntimeException(param + " type is not a buffer, but annotated as a BufferObject"); diff --git a/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java b/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java index f05f3d24..9deb5ed5 100644 --- a/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java +++ b/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java @@ -71,10 +71,12 @@ public class JavaMethodsGenerator { if ( method.getAnnotation(CachedResult.class) != null && !method.getAnnotation(CachedResult.class).isRange() ) { printMethodWithMultiType(env, type_map, writer, interface_decl, method, TypeInfo.getDefaultTypeInfoMap(method), Mode.CACHEDRESULT, generate_error_checks, context_specific); } - printJavaNativeStub(writer, method, Mode.NORMAL, generate_error_checks, context_specific); - if (Utils.hasMethodBufferObjectParameter(method)) { - printMethodWithMultiType(env, type_map, writer, interface_decl, method, TypeInfo.getDefaultTypeInfoMap(method), Mode.BUFFEROBJECT, generate_error_checks, context_specific); - printJavaNativeStub(writer, method, Mode.BUFFEROBJECT, generate_error_checks, context_specific); + if ( method.getAnnotation(Alternate.class) == null ) { + printJavaNativeStub(writer, method, Mode.NORMAL, generate_error_checks, context_specific); + if (Utils.hasMethodBufferObjectParameter(method)) { + printMethodWithMultiType(env, type_map, writer, interface_decl, method, TypeInfo.getDefaultTypeInfoMap(method), Mode.BUFFEROBJECT, generate_error_checks, context_specific); + printJavaNativeStub(writer, method, Mode.BUFFEROBJECT, generate_error_checks, context_specific); + } } } @@ -194,7 +196,9 @@ public class JavaMethodsGenerator { writer.print("\tpublic static "); printResultType(writer, method, false); StripPostfix strip_annotation = method.getAnnotation(StripPostfix.class); - String method_name = method.getSimpleName(); + String method_name; + Alternate alt_annotation = method.getAnnotation(Alternate.class); + method_name = alt_annotation == null ? method.getSimpleName() : alt_annotation.value(); if (strip_annotation != null && mode == Mode.NORMAL) method_name = getPostfixStrippedName(type_map, interface_decl, method); writer.print(" " + method_name + "("); @@ -298,7 +302,10 @@ public class JavaMethodsGenerator { postfix_parameter.getType().accept(translator); postfix = translator.getSignature(); } - String method_name = method.getSimpleName(); + String method_name; + Alternate alt_annotation = method.getAnnotation(Alternate.class); + method_name = alt_annotation == null ? method.getSimpleName() : alt_annotation.value(); + String extension_postfix = "NULL".equals(strip_annotation.extension()) ? getExtensionPostfix(interface_decl) : strip_annotation.extension(); String result; @@ -491,7 +498,7 @@ public class JavaMethodsGenerator { can_be_null = check_annotation.canBeNull(); } NullTerminated null_terminated = param.getAnnotation(NullTerminated.class); - if (Buffer.class.isAssignableFrom(java_type)) { + if (Buffer.class.isAssignableFrom(java_type) && param.getAnnotation(Constant.class) == null) { boolean indirect_buffer_allowed = false && param.getAnnotation(CachedReference.class) == null; // DISABLED: indirect buffer support boolean out_parameter = param.getAnnotation(OutParameter.class) != null; TypeInfo typeinfo = typeinfos.get(param); diff --git a/src/java/org/lwjgl/util/generator/TypeInfo.java b/src/java/org/lwjgl/util/generator/TypeInfo.java index 808b4acb..21093e11 100644 --- a/src/java/org/lwjgl/util/generator/TypeInfo.java +++ b/src/java/org/lwjgl/util/generator/TypeInfo.java @@ -168,7 +168,9 @@ public class TypeInfo { } } Class type; - PrimitiveType.Kind kind = type_map.getPrimitiveTypeFromNativeType(annotation_type); + PrimitiveType.Kind kind; + GLvoid void_annotation = param.getAnnotation(GLvoid.class); + kind = void_annotation == null ? type_map.getPrimitiveTypeFromNativeType(annotation_type) : void_annotation.value(); if (Utils.getNIOBufferType(decl_type) != null) type = getBufferTypeFromPrimitiveKind(kind); else diff --git a/src/java/org/lwjgl/util/generator/Utils.java b/src/java/org/lwjgl/util/generator/Utils.java index 268d1eaa..f4dc9114 100644 --- a/src/java/org/lwjgl/util/generator/Utils.java +++ b/src/java/org/lwjgl/util/generator/Utils.java @@ -253,7 +253,9 @@ public class Utils { } public static String getSimpleNativeMethodName(MethodDeclaration method, boolean generate_error_checks, boolean context_specific) { - String method_name = method.getSimpleName(); + String method_name; + Alternate alt_annotation = method.getAnnotation(Alternate.class); + method_name = alt_annotation == null ? method.getSimpleName() : alt_annotation.value(); if (isMethodIndirect(generate_error_checks, context_specific, method)) method_name = OVERLOADED_METHOD_PREFIX + method_name; return method_name; diff --git a/src/templates/org/lwjgl/opengl/ARB_blend_func_extended.java b/src/templates/org/lwjgl/opengl/ARB_blend_func_extended.java new file mode 100644 index 00000000..9ac91efb --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_blend_func_extended.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.Const; +import org.lwjgl.util.generator.GLchar; +import org.lwjgl.util.generator.GLuint; +import org.lwjgl.util.generator.NullTerminated; + +import java.nio.ByteBuffer; + +public interface ARB_blend_func_extended { + + /** + * Accepted by the <src> and <dst> parameters of BlendFunc and + * BlendFunci, and by the <srcRGB>, <dstRGB>, <srcAlpha> and <dstAlpha> + * parameters of BlendFuncSeparate and BlendFuncSeparatei: + */ + int GL_SRC1_COLOR = 0x88F9; + int GL_SRC1_ALPHA = GL15.GL_SRC1_ALPHA; + int GL_ONE_MINUS_SRC1_COLOR = 0x88FA; + int GL_ONE_MINUS_SRC1_ALPHA = 0x88FB; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv + * and GetDoublev: + */ + int GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC; + + void glBindFragDataLocationIndexed(@GLuint int program, @GLuint int colorNumber, @GLuint int index, @NullTerminated @Const @GLchar ByteBuffer name); + + int glGetFragDataIndex(@GLuint int program, @NullTerminated @Const @GLchar ByteBuffer name); + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_draw_indirect.java b/src/templates/org/lwjgl/opengl/ARB_draw_indirect.java new file mode 100644 index 00000000..86cd3db8 --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_draw_indirect.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.IntBuffer; + +import com.sun.mirror.type.PrimitiveType; + +public interface ARB_draw_indirect { + + /** + * Accepted by the <target> parameters of BindBuffer, BufferData, + * BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, + * GetBufferPointerv, MapBufferRange, FlushMappedBufferRange, + * GetBufferParameteriv, BindBufferRange, BindBufferBase, and + * CopyBufferSubData: + */ + int GL_DRAW_INDIRECT_BUFFER = 0x8F3F; + + /** + * Accepted by the <value> parameter of GetIntegerv, GetBooleanv, GetFloatv, + * and GetDoublev: + */ + int GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43; + + void glDrawArraysIndirect(@GLenum int mode, @BufferObject(BufferKind.IndirectBO) @Check("4") @NullTerminated @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect); + + void glDrawElementsIndirect(@GLenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check("5") @NullTerminated @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect); + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_explicit_attrib_location.java b/src/templates/org/lwjgl/opengl/ARB_explicit_attrib_location.java new file mode 100644 index 00000000..07617dff --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_explicit_attrib_location.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +public interface ARB_explicit_attrib_location { +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_gpu_shader5.java b/src/templates/org/lwjgl/opengl/ARB_gpu_shader5.java new file mode 100644 index 00000000..7f2a031c --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_gpu_shader5.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +public interface ARB_gpu_shader5 { + + /** Accepted by the <pname> parameter of GetProgramiv: */ + int GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, + * GetDoublev, and GetInteger64v: + */ + int GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A; + int GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B; + int GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C; + int GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D; + int GL_MAX_VERTEX_STREAMS = 0x8E71; + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_gpu_shader_fp64.java b/src/templates/org/lwjgl/opengl/ARB_gpu_shader_fp64.java new file mode 100644 index 00000000..10557d40 --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_gpu_shader_fp64.java @@ -0,0 +1,176 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.*; + +@Dependent +@Extension(postfix = "") +public interface ARB_gpu_shader_fp64 { + + /** + * Returned in the <type> parameter of GetActiveUniform, and + * GetTransformFeedbackVarying: + */ + int GL_DOUBLE = GL11.GL_DOUBLE; + int GL_DOUBLE_VEC2 = 0x8FFC; + int GL_DOUBLE_VEC3 = 0x8FFD; + int GL_DOUBLE_VEC4 = 0x8FFE; + int GL_DOUBLE_MAT2 = 0x8F46; + int GL_DOUBLE_MAT3 = 0x8F47; + int GL_DOUBLE_MAT4 = 0x8F48; + int GL_DOUBLE_MAT2x3 = 0x8F49; + int GL_DOUBLE_MAT2x4 = 0x8F4A; + int GL_DOUBLE_MAT3x2 = 0x8F4B; + int GL_DOUBLE_MAT3x4 = 0x8F4C; + int GL_DOUBLE_MAT4x2 = 0x8F4D; + int GL_DOUBLE_MAT4x3 = 0x8F4E; + + void glUniform1d(int location, double x); + + void glUniform2d(int location, double x, double y); + + void glUniform3d(int location, double x, double y, double z); + + void glUniform4d(int location, double x, double y, double z, double w); + + @StripPostfix("value") + void glUniform1dv(int location, @AutoSize("value") @GLsizei int count, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniform2dv(int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniform3dv(int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniform4dv(int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix2dv(int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix3dv(int location, @AutoSize(value = "value", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix4dv(int location, @AutoSize(value = "value", expression = " >> 4") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix2x3dv(int location, @AutoSize(value = "value", expression = " / (2 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix2x4dv(int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix3x2dv(int location, @AutoSize(value = "value", expression = " / (3 * 2)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix3x4dv(int location, @AutoSize(value = "value", expression = " / (3 * 4)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix4x2dv(int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix4x3dv(int location, @AutoSize(value = "value", expression = " / (4 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("params") + void glGetUniformdv(@GLuint int program, int location, @OutParameter @Check DoubleBuffer params); + + // ---- + + @Dependent("GL_EXT_direct_state_access") + void glProgramUniform1dEXT(@GLuint int program, int location, double x); + + @Dependent("GL_EXT_direct_state_access") + void glProgramUniform2dEXT(@GLuint int program, int location, double x, double y); + + @Dependent("GL_EXT_direct_state_access") + void glProgramUniform3dEXT(@GLuint int program, int location, double x, double y, double z); + + @Dependent("GL_EXT_direct_state_access") + void glProgramUniform4dEXT(@GLuint int program, int location, double x, double y, double z, double w); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value="value", extension="EXT") + void glProgramUniform1dvEXT(@GLuint int program, int location, @AutoSize(value = "value") @GLsizei int count, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniform2dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniform3dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniform4dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniformMatrix2dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniformMatrix3dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniformMatrix4dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 4") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniformMatrix2x3dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (2 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniformMatrix2x4dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniformMatrix3x2dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (3 * 2)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniformMatrix3x4dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (3 * 4)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniformMatrix4x2dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @Dependent("GL_EXT_direct_state_access") + @StripPostfix(value = "value", extension = "EXT") + void glProgramUniformMatrix4x3dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (4 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_occlusion_query2.java b/src/templates/org/lwjgl/opengl/ARB_occlusion_query2.java new file mode 100644 index 00000000..fb53b5c8 --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_occlusion_query2.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +public interface ARB_occlusion_query2 { + + /** + * Accepted by the <target> parameter of BeginQuery, EndQuery, + * and GetQueryiv: + */ + int GL_ANY_SAMPLES_PASSED = 0x8C2F; + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_sampler_objects.java b/src/templates/org/lwjgl/opengl/ARB_sampler_objects.java new file mode 100644 index 00000000..bf37601e --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_sampler_objects.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.FloatBuffer; +import java.nio.IntBuffer; + +@Extension(postfix = "") +public interface ARB_sampler_objects { + + /** + * Accepted by the <value> parameter of the GetBooleanv, GetIntegerv, + * GetInteger64v, GetFloatv and GetDoublev functions: + */ + int GL_SAMPLER_BINDING = 0x8919; + + void glGenSamplers(@AutoSize("samplers") @GLsizei int count, @OutParameter @GLuint IntBuffer samplers); + + void glDeleteSamplers(@AutoSize("samplers") @GLsizei int count, @Const @GLuint IntBuffer samplers); + + boolean glIsSampler(@GLuint int sampler); + + void glBindSampler(@GLenum int unit, @GLuint int sampler); + + void glSamplerParameteri(@GLuint int sampler, @GLenum int pname, int param); + + void glSamplerParameterf(@GLuint int sampler, @GLenum int pname, float param); + + @StripPostfix("params") + void glSamplerParameteriv(@GLuint int sampler, @GLenum int pname, @Check("4") @Const IntBuffer params); + + @StripPostfix("params") + void glSamplerParameterfv(@GLuint int sampler, @GLenum int pname, @Check("4") @Const FloatBuffer params); + + @StripPostfix("params") + void glSamplerParameterIiv(@GLuint int sampler, @GLenum int pname, @Check("4") @Const IntBuffer params); + + @StripPostfix("params") + void glSamplerParameterIuiv(@GLuint int sampler, @GLenum int pname, @Check("4") @Const @GLuint IntBuffer params); + + @StripPostfix("params") + void glGetSamplerParameteriv(@GLuint int sampler, @GLenum int pname, @Check("4") @OutParameter IntBuffer params); + + @StripPostfix("params") + void glGetSamplerParameterfv(@GLuint int sampler, @GLenum int pname, @Check("4") @OutParameter FloatBuffer params); + + @StripPostfix("params") + void glGetSamplerParameterIiv(@GLuint int sampler, @GLenum int pname, @Check("4") @OutParameter IntBuffer params); + + @StripPostfix("params") + void glGetSamplerParameterIfv(@GLuint int sampler, @GLenum int pname, @Check("4") @OutParameter FloatBuffer params); + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_shader_bit_encoding.java b/src/templates/org/lwjgl/opengl/ARB_shader_bit_encoding.java new file mode 100644 index 00000000..0c7a5617 --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_shader_bit_encoding.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +public interface ARB_shader_bit_encoding { +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_shader_objects.java b/src/templates/org/lwjgl/opengl/ARB_shader_objects.java index aec5bceb..159f491a 100644 --- a/src/templates/org/lwjgl/opengl/ARB_shader_objects.java +++ b/src/templates/org/lwjgl/opengl/ARB_shader_objects.java @@ -144,37 +144,37 @@ public interface ARB_shader_objects { void glUniform4iARB(int location, int v0, int v1, int v2, int v3); @StripPostfix("values") - void glUniform1fvARB(int location, @AutoSize("values") @GLsizei int count, FloatBuffer values); + void glUniform1fvARB(int location, @AutoSize("values") @GLsizei int count, @Const FloatBuffer values); @StripPostfix("values") - void glUniform2fvARB(int location, @AutoSize(value = "values", expression = " >> 1") @GLsizei int count, FloatBuffer values); + void glUniform2fvARB(int location, @AutoSize(value = "values", expression = " >> 1") @GLsizei int count, @Const FloatBuffer values); @StripPostfix("values") - void glUniform3fvARB(int location, @AutoSize(value = "values", expression = " / 3") @GLsizei int count, FloatBuffer values); + void glUniform3fvARB(int location, @AutoSize(value = "values", expression = " / 3") @GLsizei int count, @Const FloatBuffer values); @StripPostfix("values") - void glUniform4fvARB(int location, @AutoSize(value = "values", expression = " >> 2") @GLsizei int count, FloatBuffer values); + void glUniform4fvARB(int location, @AutoSize(value = "values", expression = " >> 2") @GLsizei int count, @Const FloatBuffer values); @StripPostfix("values") - void glUniform1ivARB(int location, @AutoSize(value = "values") @GLsizei int count, IntBuffer values); + void glUniform1ivARB(int location, @AutoSize(value = "values") @GLsizei int count, @Const IntBuffer values); @StripPostfix("values") - void glUniform2ivARB(int location, @AutoSize(value = "values", expression = " >> 1") @GLsizei int count, IntBuffer values); + void glUniform2ivARB(int location, @AutoSize(value = "values", expression = " >> 1") @GLsizei int count, @Const IntBuffer values); @StripPostfix("values") - void glUniform3ivARB(int location, @AutoSize(value = "values", expression = " / 3") @GLsizei int count, IntBuffer values); + void glUniform3ivARB(int location, @AutoSize(value = "values", expression = " / 3") @GLsizei int count, @Const IntBuffer values); @StripPostfix("values") - void glUniform4ivARB(int location, @AutoSize(value = "values", expression = " >> 2") @GLsizei int count, IntBuffer values); + void glUniform4ivARB(int location, @AutoSize(value = "values", expression = " >> 2") @GLsizei int count, @Const IntBuffer values); @StripPostfix("matrices") - void glUniformMatrix2fvARB(int location, @AutoSize(value = "matrices", expression = " >> 2") @GLsizei int count, boolean transpose, FloatBuffer matrices); + void glUniformMatrix2fvARB(int location, @AutoSize(value = "matrices", expression = " >> 2") @GLsizei int count, boolean transpose, @Const FloatBuffer matrices); @StripPostfix("matrices") - void glUniformMatrix3fvARB(int location, @AutoSize(value = "matrices", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, FloatBuffer matrices); + void glUniformMatrix3fvARB(int location, @AutoSize(value = "matrices", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, @Const FloatBuffer matrices); @StripPostfix("matrices") - void glUniformMatrix4fvARB(int location, @AutoSize(value = "matrices", expression = " >> 4") @GLsizei int count, boolean transpose, FloatBuffer matrices); + void glUniformMatrix4fvARB(int location, @AutoSize(value = "matrices", expression = " >> 4") @GLsizei int count, boolean transpose, @Const FloatBuffer matrices); @StripPostfix("params") void glGetObjectParameterfvARB(@GLhandleARB int obj, @GLenum int pname, @OutParameter @Check FloatBuffer params); diff --git a/src/templates/org/lwjgl/opengl/ARB_shader_subroutine.java b/src/templates/org/lwjgl/opengl/ARB_shader_subroutine.java new file mode 100644 index 00000000..71c937b6 --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_shader_subroutine.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.ByteBuffer; +import java.nio.IntBuffer; + +@Extension(postfix = "") +public interface ARB_shader_subroutine { + + /** Accepted by the <pname> parameter of GetProgramStageiv: */ + int GL_ACTIVE_SUBROUTINES = 0x8DE5; + int GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6; + int GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47; + int GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48; + int GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, + * GetFloatv, GetDoublev, and GetInteger64v: + */ + int GL_MAX_SUBROUTINES = 0x8DE7; + int GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8; + + /** Accepted by the <pname> parameter of GetActiveSubroutineUniformiv: */ + int GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A; + int GL_COMPATIBLE_SUBROUTINES = 0x8E4B; + int GL_UNIFORM_SIZE = GL31.GL_UNIFORM_SIZE; + int GL_UNIFORM_NAME_LENGTH = GL31.GL_UNIFORM_NAME_LENGTH; + + int glGetSubroutineUniformLocation(@GLuint int program, @GLenum int shadertype, @Const @NullTerminated ByteBuffer name); + + @GLuint + int glGetSubroutineIndex(@GLuint int program, @GLenum int shadertype, @Const @NullTerminated ByteBuffer name); + + @StripPostfix("values") + void glGetActiveSubroutineUniformiv(@GLuint int program, @GLenum int shadertype, @GLuint int index, @GLenum int pname, + @Check("1") @OutParameter IntBuffer values); + + void glGetActiveSubroutineUniformName(@GLuint int program, @GLenum int shadertype, @GLuint int index, + @AutoSize("name") @GLsizei int bufsize, + @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, + @OutParameter ByteBuffer name); + + void glGetActiveSubroutineName(@GLuint int program, @GLenum int shadertype, @GLuint int index, + @AutoSize("name") @GLsizei int bufsize, + @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, + @OutParameter ByteBuffer name); + + @StripPostfix("indices") + void glUniformSubroutinesuiv(@GLenum int shadertype, @AutoSize("indices") @GLsizei int count, @Const @GLuint IntBuffer indices); + + @StripPostfix("params") + void glGetUniformSubroutineuiv(@GLenum int shadertype, int location, @Check("1") @OutParameter @GLuint IntBuffer params); + + @StripPostfix("values") + void glGetProgramStageiv(@GLuint int program, @GLenum int shadertype, @GLenum int pname, @Check("1") @OutParameter IntBuffer values); + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_shading_language_include.java b/src/templates/org/lwjgl/opengl/ARB_shading_language_include.java new file mode 100644 index 00000000..db57f94c --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_shading_language_include.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.ByteBuffer; +import java.nio.IntBuffer; + +public interface ARB_shading_language_include { + + /** Accepted by the <type> parameter of NamedStringARB: */ + int GL_SHADER_INCLUDE_ARB = 0x8DAE; + + /** Accepted by the <pname> parameter of GetNamedStringivARB: */ + int GL_NAMED_STRING_LENGTH_ARB = 0x8DE9; + int GL_NAMED_STRING_TYPE_ARB = 0x8DEA; + + void glNamedStringARB(@GLenum int type, @AutoSize("name") int namelen, @Const ByteBuffer name, @AutoSize("string") int stringlen, @Const ByteBuffer string); + + void glDeleteNamedStringARB(@AutoSize("name") int namelen, @Const ByteBuffer name); + + void glCompileShaderIncludeARB(@GLuint int shader, @GLsizei int count, + @Const @NullTerminated("count") @StringList("count") @GLchar ByteBuffer path, + @Constant("null, 0") @Const IntBuffer length); + + /* TODO: Implement @Check + @Alternate("glCompileShaderIncludeARB") + void glCompileShaderIncludeARB2(@GLuint int shader, @AutoSize("length") @GLsizei int count, + @Const @Check("...") @StringList("count") @GLchar ByteBuffer path, + @Const IntBuffer length); + */ + + boolean glIsNamedStringARB(@AutoSize("name") int namelen, @Const ByteBuffer name); + + void glGetNamedStringARB(@AutoSize("name") int namelen, @Const ByteBuffer name, + @AutoSize("string") @GLsizei int bufSize, + @OutParameter @Check(value = "1", canBeNull = true) IntBuffer stringlen, + @OutParameter ByteBuffer string); + + @StripPostfix("params") + void glGetNamedStringivARB(@AutoSize("name") int namelen, @Const ByteBuffer name, @GLenum int pname, @Check("1") @OutParameter IntBuffer params); + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_tessellation_shader.java b/src/templates/org/lwjgl/opengl/ARB_tessellation_shader.java new file mode 100644 index 00000000..c599c2ba --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_tessellation_shader.java @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.FloatBuffer; + +@Extension(postfix = "") +public interface ARB_tessellation_shader { + + /** + * Accepted by the <mode> parameter of Begin and all vertex array functions + * that implicitly call Begin: + */ + int GL_PATCHES = 0xE; + + /** + * Accepted by the <pname> parameter of PatchParameteri, GetBooleanv, + * GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v: + */ + int GL_PATCH_VERTICES = 0x8E72; + + /** + * Accepted by the <pname> parameter of PatchParameterfv, GetBooleanv, + * GetDoublev, GetFloatv, and GetIntegerv, and GetInteger64v: + */ + int GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73; + int GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74; + + /** Accepted by the <pname> parameter of GetProgramiv: */ + int GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75; + int GL_TESS_GEN_MODE = 0x8E76; + int GL_TESS_GEN_SPACING = 0x8E77; + int GL_TESS_GEN_VERTEX_ORDER = 0x8E78; + int GL_TESS_GEN_POINT_MODE = 0x8E79; + + /** Returned by GetProgramiv when <pname> is TESS_GEN_MODE: */ + int GL_TRIANGLES = GL11.GL_TRIANGLES; + int GL_QUADS = GL11.GL_QUADS; + int GL_ISOLINES = 0x8E7A; + + /** Returned by GetProgramiv when <pname> is TESS_GEN_SPACING: */ + int GL_EQUAL = GL11.GL_EQUAL; + int GL_FRACTIONAL_ODD = 0x8E7B; + int GL_FRACTIONAL_EVEN = 0x8E7C; + + /** Returned by GetProgramiv when <pname> is TESS_GEN_VERTEX_ORDER: */ + int GL_CCW = GL11.GL_CCW; + int GL_CW = GL11.GL_CW; + + /** Returned by GetProgramiv when <pname> is TESS_GEN_POINT_MODE: */ + int GL_FALSE = GL11.GL_FALSE; + int GL_TRUE = GL11.GL_TRUE; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetFloatv, + * GetIntegerv, and GetInteger64v: + */ + int GL_MAX_PATCH_VERTICES = 0x8E7D; + int GL_MAX_TESS_GEN_LEVEL = 0x8E7E; + int GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F; + int GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80; + int GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81; + int GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82; + int GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83; + int GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84; + int GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85; + int GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86; + int GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89; + int GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A; + int GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C; + int GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D; + int GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E; + int GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F; + + /** Accepted by the <pname> parameter of GetActiveUniformBlockiv: */ + int GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0; + int GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1; + + /** + * Accepted by the <type> parameter of CreateShader and returned by the + * <params> parameter of GetShaderiv: + */ + int GL_TESS_EVALUATION_SHADER = 0x8E87; + int GL_TESS_CONTROL_SHADER = 0x8E88; + + void glPatchParameteri(@GLenum int pname, int value); + + @StripPostfix("values") + void glPatchParameterfv(@GLenum int pname, @Check("4") @Const FloatBuffer values); + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_texture_buffer_object_rgb32.java b/src/templates/org/lwjgl/opengl/ARB_texture_buffer_object_rgb32.java new file mode 100644 index 00000000..45ed2f3e --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_texture_buffer_object_rgb32.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +public interface ARB_texture_buffer_object_rgb32 { +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_texture_compression_bptc.java b/src/templates/org/lwjgl/opengl/ARB_texture_compression_bptc.java new file mode 100644 index 00000000..9ea5ab76 --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_texture_compression_bptc.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.Extension; + +@Extension(postfix = "ARB", className = "ARBTextureCompressionBPTC") +public interface ARB_texture_compression_bptc { + + /** + * Accepted by the <internalformat> parameter of TexImage2D, TexImage3D, + * CopyTexImage2D, CopyTexImage3D, CompressedTexImage2DARB, and + * CompressedTexImage3DARB and the <format> parameter of + * CompressedTexSubImage2DARB and CompressedTexSubImage3DARB: + */ + int GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C; + int GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D; + int GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E; + int GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F; + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_texture_rgb10_a2ui.java b/src/templates/org/lwjgl/opengl/ARB_texture_rgb10_a2ui.java new file mode 100644 index 00000000..abea10ea --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_texture_rgb10_a2ui.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.Extension; + +@Extension(postfix = "ARB", className = "ARBTextureRGB10_A2UI") +public interface ARB_texture_rgb10_a2ui { + + /** + * Accepted by the <internalFormat> parameter of TexImage1D, TexImage2D, + * TexImage3D, CopyTexImage1D, CopyTexImage2D, RenderbufferStorage and + * RenderbufferStorageMultisample: + */ + int GL_RGB10_A2UI = 0x906F; + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_texture_swizzle.java b/src/templates/org/lwjgl/opengl/ARB_texture_swizzle.java new file mode 100644 index 00000000..7cf6530f --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_texture_swizzle.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +public interface ARB_texture_swizzle { + + /** + * Accepted by the <pname> parameters of TexParameteri, + * TexParameterf, TexParameteriv, TexParameterfv, + * GetTexParameterfv, and GetTexParameteriv: + */ + int GL_TEXTURE_SWIZZLE_R = 0x8E42; + int GL_TEXTURE_SWIZZLE_G = 0x8E43; + int GL_TEXTURE_SWIZZLE_B = 0x8E44; + int GL_TEXTURE_SWIZZLE_A = 0x8E45; + + /** + * Accepted by the <pname> parameters of TexParameteriv, + * TexParameterfv, GetTexParameterfv, and GetTexParameteriv: + */ + int GL_TEXTURE_SWIZZLE_RGBA = 0x8E46; + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_timer_query.java b/src/templates/org/lwjgl/opengl/ARB_timer_query.java new file mode 100644 index 00000000..59265d75 --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_timer_query.java @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.LongBuffer; + +@Extension(postfix = "") +public interface ARB_timer_query { + + /** + * Accepted by the <target> parameter of BeginQuery, EndQuery, and + * GetQueryiv: + */ + int GL_TIME_ELAPSED = 0x88BF; + + /** + * Accepted by the <target> parameter of GetQueryiv and QueryCounter. + * Accepted by the <value> parameter of GetBooleanv, GetIntegerv, + * GetInteger64v, GetFloatv, and GetDoublev: + */ + int GL_TIMESTAMP = 0x8E28; + + void glQueryCounter(@GLuint int id, @GLenum int target); + + @StripPostfix("params") + void glGetQueryObjecti64v(@GLuint int id, @GLenum int pname, @OutParameter @Check("1") @GLint64 LongBuffer params); + + @StripPostfix("params") + void glGetQueryObjectui64v(@GLuint int id, @GLenum int pname, @OutParameter @Check("1") @GLuint64 LongBuffer params); + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_transform_feedback2.java b/src/templates/org/lwjgl/opengl/ARB_transform_feedback2.java new file mode 100644 index 00000000..52875d4f --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_transform_feedback2.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.IntBuffer; + +public interface ARB_transform_feedback2 { + + /** Accepted by the <target> parameter of BindTransformFeedback: */ + int GL_TRANSFORM_FEEDBACK = 0x8E22; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv, + * and GetFloatv: + */ + int GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23; + int GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24; + int GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25; + + void glBindTransformFeedback(@GLenum int target, @GLuint int id); + + void glDeleteTransformFeedbacks(@AutoSize("ids") @GLsizei int n, @Const @GLuint IntBuffer ids); + + void glGenTransformFeedbacks(@AutoSize("ids") @GLsizei int n, @GLuint IntBuffer ids); + + boolean glIsTransformFeedback(@GLuint int id); + + void glPauseTransformFeedback(); + + void glResumeTransformFeedback(); + + void glDrawTransformFeedback(@GLenum int mode, @GLuint int id); + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/ARB_transform_feedback3.java b/src/templates/org/lwjgl/opengl/ARB_transform_feedback3.java new file mode 100644 index 00000000..e7302a41 --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_transform_feedback3.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.IntBuffer; + +@Extension(postfix = "") +public interface ARB_transform_feedback3 { + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv, + * and GetFloatv: + */ + int GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70; + int GL_MAX_VERTEX_STREAMS = 0x8E71; + + void glDrawTransformFeedbackStream(@GLenum int mode, @GLuint int id, @GLuint int stream); + + void glBeginQueryIndexed(@GLenum int target, @GLuint int index, @GLuint int id); + + void glEndQueryIndexed(@GLenum int target, @GLuint int index); + + @StripPostfix("params") + void glGetQueryIndexediv(@GLenum int target, @GLuint int index, @GLenum int pname, @OutParameter @Check("1") IntBuffer params); + +} \ No newline at end of file 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 new file mode 100644 index 00000000..22db6e2a --- /dev/null +++ b/src/templates/org/lwjgl/opengl/ARB_vertex_type_2_10_10_10_rev.java @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.IntBuffer; + +@Extension(postfix = "", className = "ARBVertexType2_10_10_10_REV") +public interface ARB_vertex_type_2_10_10_10_rev { + + /** + * Accepted by the <type> parameter of VertexAttribPointer, VertexPointer, + * NormalPointer, ColorPointer, SecondaryColorPointer, TexCoordPointer, + * VertexAttribP{1234}ui, VertexP*, TexCoordP*, MultiTexCoordP*, NormalP3ui, + * ColorP*, SecondaryColorP* and VertexAttribP* + */ + 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; + + void glVertexP2ui(@GLenum int type, @GLuint int value); + + void glVertexP3ui(@GLenum int type, @GLuint int value); + + void glVertexP4ui(@GLenum int type, @GLuint int value); + + @StripPostfix("value") + void glVertexP2uiv(@GLenum int type, @Check("2") @Const @GLuint IntBuffer value); + + @StripPostfix("value") + void glVertexP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer value); + + @StripPostfix("value") + void glVertexP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer value); + + void glTexCoordP1ui(@GLenum int type, @GLuint int coords); + + void glTexCoordP2ui(@GLenum int type, @GLuint int coords); + + void glTexCoordP3ui(@GLenum int type, @GLuint int coords); + + void glTexCoordP4ui(@GLenum int type, @GLuint int coords); + + @StripPostfix("coords") + void glTexCoordP1uiv(@GLenum int type, @Check("1") @Const @GLuint IntBuffer coords); + + @StripPostfix("coords") + void glTexCoordP2uiv(@GLenum int type, @Check("2") @Const @GLuint IntBuffer coords); + + @StripPostfix("coords") + void glTexCoordP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer coords); + + @StripPostfix("coords") + void glTexCoordP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer coords); + + void glMultiTexCoordP1ui(@GLenum int texture, @GLenum int type, @GLuint int coords); + + void glMultiTexCoordP2ui(@GLenum int texture, @GLenum int type, @GLuint int coords); + + void glMultiTexCoordP3ui(@GLenum int texture, @GLenum int type, @GLuint int coords); + + void glMultiTexCoordP4ui(@GLenum int texture, @GLenum int type, @GLuint int coords); + + @StripPostfix("coords") + void glMultiTexCoordP1uiv(@GLenum int texture, @GLenum int type, @Check("1") @Const @GLuint IntBuffer coords); + + @StripPostfix("coords") + void glMultiTexCoordP2uiv(@GLenum int texture, @GLenum int type, @Check("2") @Const @GLuint IntBuffer coords); + + @StripPostfix("coords") + void glMultiTexCoordP3uiv(@GLenum int texture, @GLenum int type, @Check("3") @Const @GLuint IntBuffer coords); + + @StripPostfix("coords") + void glMultiTexCoordP4uiv(@GLenum int texture, @GLenum int type, @Check("4") @Const @GLuint IntBuffer coords); + + void glNormalP3ui(@GLenum int type, @GLuint int coords); + + @StripPostfix("coords") + void glNormalP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer coords); + + void glColorP3ui(@GLenum int type, @GLuint int color); + + void glColorP4ui(@GLenum int type, @GLuint int color); + + @StripPostfix("color") + void glColorP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer color); + + @StripPostfix("color") + void glColorP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer color); + + void glSecondaryColorP3ui(@GLenum int type, @GLuint int color); + + @StripPostfix("color") + void glSecondaryColorP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer color); + + void glVertexAttribP1ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value); + + void glVertexAttribP2ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value); + + void glVertexAttribP3ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value); + + void glVertexAttribP4ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value); + + @StripPostfix("value") + void glVertexAttribP1uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("1") @Const @GLuint IntBuffer value); + + @StripPostfix("value") + void glVertexAttribP2uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("2") @Const @GLuint IntBuffer value); + + @StripPostfix("value") + void glVertexAttribP3uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("3") @Const @GLuint IntBuffer value); + + @StripPostfix("value") + void glVertexAttribP4uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("4") @Const @GLuint IntBuffer value); + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/GL20.java b/src/templates/org/lwjgl/opengl/GL20.java index 0e3069ed..7709843c 100644 --- a/src/templates/org/lwjgl/opengl/GL20.java +++ b/src/templates/org/lwjgl/opengl/GL20.java @@ -157,40 +157,40 @@ public interface GL20 { void glUniform4i(int location, int v0, int v1, int v2, int v3); @StripPostfix("values") - void glUniform1fv(int location, @AutoSize("values") @GLsizei int count, FloatBuffer values); + void glUniform1fv(int location, @AutoSize("values") @GLsizei int count, @Const FloatBuffer values); @StripPostfix("values") - void glUniform2fv(int location, @AutoSize(value = "values", expression = " >> 1") @GLsizei int count, FloatBuffer values); + void glUniform2fv(int location, @AutoSize(value = "values", expression = " >> 1") @GLsizei int count, @Const FloatBuffer values); @StripPostfix("values") - void glUniform3fv(int location, @AutoSize(value = "values", expression = " / 3") @GLsizei int count, FloatBuffer values); + void glUniform3fv(int location, @AutoSize(value = "values", expression = " / 3") @GLsizei int count, @Const FloatBuffer values); @StripPostfix("values") - void glUniform4fv(int location, @AutoSize(value = "values", expression = " >> 2") @GLsizei int count, FloatBuffer values); + void glUniform4fv(int location, @AutoSize(value = "values", expression = " >> 2") @GLsizei int count, @Const FloatBuffer values); @StripPostfix("values") - void glUniform1iv(int location, @AutoSize("values") @GLsizei int count, IntBuffer values); + void glUniform1iv(int location, @AutoSize("values") @GLsizei int count, @Const IntBuffer values); @StripPostfix("values") - void glUniform2iv(int location, @AutoSize(value = "values", expression = " >> 1") @GLsizei int count, IntBuffer values); + void glUniform2iv(int location, @AutoSize(value = "values", expression = " >> 1") @GLsizei int count, @Const IntBuffer values); @StripPostfix("values") - void glUniform3iv(int location, @AutoSize(value = "values", expression = " / 3") @GLsizei int count, IntBuffer values); + void glUniform3iv(int location, @AutoSize(value = "values", expression = " / 3") @GLsizei int count, @Const IntBuffer values); @StripPostfix("values") - void glUniform4iv(int location, @AutoSize(value = "values", expression = " >> 2") @GLsizei int count, IntBuffer values); + void glUniform4iv(int location, @AutoSize(value = "values", expression = " >> 2") @GLsizei int count, @Const IntBuffer values); @StripPostfix("matrices") void glUniformMatrix2fv(int location, @AutoSize(value = "matrices", expression = " >> 2") @GLsizei int count, - boolean transpose, FloatBuffer matrices); + boolean transpose, @Const FloatBuffer matrices); @StripPostfix("matrices") void glUniformMatrix3fv(int location, @AutoSize(value = "matrices", expression = " / (3 * 3)") @GLsizei int count, - boolean transpose, FloatBuffer matrices); + boolean transpose, @Const FloatBuffer matrices); @StripPostfix("matrices") void glUniformMatrix4fv(int location, @AutoSize(value = "matrices", expression = " >> 4") @GLsizei int count, - boolean transpose, FloatBuffer matrices); + boolean transpose, @Const FloatBuffer matrices); @StripPostfix("params") void glGetShaderiv(@GLuint int shader, @GLenum int pname, @OutParameter @Check IntBuffer params); diff --git a/src/templates/org/lwjgl/opengl/GL33.java b/src/templates/org/lwjgl/opengl/GL33.java new file mode 100644 index 00000000..d8247e18 --- /dev/null +++ b/src/templates/org/lwjgl/opengl/GL33.java @@ -0,0 +1,337 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.ByteBuffer; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import java.nio.LongBuffer; + +@DeprecatedGL +public interface GL33 { + + // ----------------------------------------------------------------------- + // ----------------------[ ARB_blend_func_extended ]---------------------- + // ----------------------------------------------------------------------- + + /** + * Accepted by the <src> and <dst> parameters of BlendFunc and + * BlendFunci, and by the <srcRGB>, <dstRGB>, <srcAlpha> and <dstAlpha> + * parameters of BlendFuncSeparate and BlendFuncSeparatei: + */ + int GL_SRC1_COLOR = 0x88F9; + int GL_SRC1_ALPHA = GL15.GL_SRC1_ALPHA; + int GL_ONE_MINUS_SRC1_COLOR = 0x88FA; + int GL_ONE_MINUS_SRC1_ALPHA = 0x88FB; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv + * and GetDoublev: + */ + int GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC; + + void glBindFragDataLocationIndexed(@GLuint int program, @GLuint int colorNumber, @GLuint int index, @NullTerminated @Const @GLchar ByteBuffer name); + + int glGetFragDataIndex(@GLuint int program, @NullTerminated @Const @GLchar ByteBuffer name); + + // -------------------------------------------------------------------- + // ----------------------[ ARB_occlusion_query2 ]---------------------- + // -------------------------------------------------------------------- + + /** + * Accepted by the <target> parameter of BeginQuery, EndQuery, + * and GetQueryiv: + */ + int GL_ANY_SAMPLES_PASSED = 0x8C2F; + + // ------------------------------------------------------------------- + // ----------------------[ ARB_sampler_objects ]---------------------- + // ------------------------------------------------------------------- + + /** + * Accepted by the <value> parameter of the GetBooleanv, GetIntegerv, + * GetInteger64v, GetFloatv and GetDoublev functions: + */ + int GL_SAMPLER_BINDING = 0x8919; + + void glGenSamplers(@AutoSize("samplers") @GLsizei int count, @OutParameter @GLuint IntBuffer samplers); + + void glDeleteSamplers(@AutoSize("samplers") @GLsizei int count, @Const @GLuint IntBuffer samplers); + + boolean glIsSampler(@GLuint int sampler); + + void glBindSampler(@GLenum int unit, @GLuint int sampler); + + void glSamplerParameteri(@GLuint int sampler, @GLenum int pname, int param); + + void glSamplerParameterf(@GLuint int sampler, @GLenum int pname, float param); + + @StripPostfix("params") + void glSamplerParameteriv(@GLuint int sampler, @GLenum int pname, @Check("4") @Const IntBuffer params); + + @StripPostfix("params") + void glSamplerParameterfv(@GLuint int sampler, @GLenum int pname, @Check("4") @Const FloatBuffer params); + + @StripPostfix("params") + void glSamplerParameterIiv(@GLuint int sampler, @GLenum int pname, @Check("4") @Const IntBuffer params); + + @StripPostfix("params") + void glSamplerParameterIuiv(@GLuint int sampler, @GLenum int pname, @Check("4") @Const @GLuint IntBuffer params); + + @StripPostfix("params") + void glGetSamplerParameteriv(@GLuint int sampler, @GLenum int pname, @Check("4") @OutParameter IntBuffer params); + + @StripPostfix("params") + void glGetSamplerParameterfv(@GLuint int sampler, @GLenum int pname, @Check("4") @OutParameter FloatBuffer params); + + @StripPostfix("params") + void glGetSamplerParameterIiv(@GLuint int sampler, @GLenum int pname, @Check("4") @OutParameter IntBuffer params); + + @StripPostfix("params") + void glGetSamplerParameterIfv(@GLuint int sampler, @GLenum int pname, @Check("4") @OutParameter FloatBuffer params); + + // ------------------------------------------------------------------- + // ----------------------[ ARB_texture_rgb10_a2ui ]---------------------- + // ------------------------------------------------------------------- + + /** + * Accepted by the <internalFormat> parameter of TexImage1D, TexImage2D, + * TexImage3D, CopyTexImage1D, CopyTexImage2D, RenderbufferStorage and + * RenderbufferStorageMultisample: + */ + int GL_RGB10_A2UI = 0x906F; + + // ------------------------------------------------------------------- + // ----------------------[ ARB_texture_swizzle ]---------------------- + // ------------------------------------------------------------------- + + /** + * Accepted by the <pname> parameters of TexParameteri, + * TexParameterf, TexParameteriv, TexParameterfv, + * GetTexParameterfv, and GetTexParameteriv: + */ + int GL_TEXTURE_SWIZZLE_R = 0x8E42; + int GL_TEXTURE_SWIZZLE_G = 0x8E43; + int GL_TEXTURE_SWIZZLE_B = 0x8E44; + int GL_TEXTURE_SWIZZLE_A = 0x8E45; + + /** + * Accepted by the <pname> parameters of TexParameteriv, + * TexParameterfv, GetTexParameterfv, and GetTexParameteriv: + */ + int GL_TEXTURE_SWIZZLE_RGBA = 0x8E46; + + // --------------------------------------------------------------- + // ----------------------[ ARB_timer_query ]---------------------- + // --------------------------------------------------------------- + + /** + * Accepted by the <target> parameter of BeginQuery, EndQuery, and + * GetQueryiv: + */ + int GL_TIME_ELAPSED = 0x88BF; + + /** + * Accepted by the <target> parameter of GetQueryiv and QueryCounter. + * Accepted by the <value> parameter of GetBooleanv, GetIntegerv, + * GetInteger64v, GetFloatv, and GetDoublev: + */ + int GL_TIMESTAMP = 0x8E28; + + void glQueryCounter(@GLuint int id, @GLenum int target); + + @StripPostfix("params") + void glGetQueryObjecti64v(@GLuint int id, @GLenum int pname, @OutParameter @Check("1") @GLint64 LongBuffer params); + + @StripPostfix("params") + void glGetQueryObjectui64v(@GLuint int id, @GLenum int pname, @OutParameter @Check("1") @GLuint64 LongBuffer params); + + // -------------------------------------------------------------------- + // ----------------------[ ARB_instanced_arrays ]---------------------- + // -------------------------------------------------------------------- + + /** + * Accepted by the <pname> parameters of GetVertexAttribdv, + * GetVertexAttribfv, and GetVertexAttribiv: + */ + int GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE; + + void glVertexAttribDivisor(@GLuint int index, @GLuint int divisor); + + // ------------------------------------------------------------------------------ + // ----------------------[ ARB_vertex_type_2_10_10_10_rev ]---------------------- + // ------------------------------------------------------------------------------ + + /** + * Accepted by the <type> parameter of VertexAttribPointer, VertexPointer, + * NormalPointer, ColorPointer, SecondaryColorPointer, TexCoordPointer, + * VertexAttribP{1234}ui, VertexP*, TexCoordP*, MultiTexCoordP*, NormalP3ui, + * ColorP*, SecondaryColorP* and VertexAttribP* + */ + int GL_INT_2_10_10_10_REV = 0x8D9F; + + @DeprecatedGL + void glVertexP2ui(@GLenum int type, @GLuint int value); + + @DeprecatedGL + void glVertexP3ui(@GLenum int type, @GLuint int value); + + @DeprecatedGL + void glVertexP4ui(@GLenum int type, @GLuint int value); + + @DeprecatedGL + @StripPostfix("value") + void glVertexP2uiv(@GLenum int type, @Check("2") @Const @GLuint IntBuffer value); + + @DeprecatedGL + @StripPostfix("value") + void glVertexP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer value); + + @DeprecatedGL + @StripPostfix("value") + void glVertexP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer value); + + @DeprecatedGL + void glTexCoordP1ui(@GLenum int type, @GLuint int coords); + + @DeprecatedGL + void glTexCoordP2ui(@GLenum int type, @GLuint int coords); + + @DeprecatedGL + void glTexCoordP3ui(@GLenum int type, @GLuint int coords); + + @DeprecatedGL + void glTexCoordP4ui(@GLenum int type, @GLuint int coords); + + @DeprecatedGL + @StripPostfix("coords") + void glTexCoordP1uiv(@GLenum int type, @Check("1") @Const @GLuint IntBuffer coords); + + @DeprecatedGL + @StripPostfix("coords") + void glTexCoordP2uiv(@GLenum int type, @Check("2") @Const @GLuint IntBuffer coords); + + @DeprecatedGL + @StripPostfix("coords") + void glTexCoordP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer coords); + + @DeprecatedGL + @StripPostfix("coords") + void glTexCoordP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer coords); + + @DeprecatedGL + void glMultiTexCoordP1ui(@GLenum int texture, @GLenum int type, @GLuint int coords); + + @DeprecatedGL + void glMultiTexCoordP2ui(@GLenum int texture, @GLenum int type, @GLuint int coords); + + @DeprecatedGL + void glMultiTexCoordP3ui(@GLenum int texture, @GLenum int type, @GLuint int coords); + + @DeprecatedGL + void glMultiTexCoordP4ui(@GLenum int texture, @GLenum int type, @GLuint int coords); + + @DeprecatedGL + @StripPostfix("coords") + void glMultiTexCoordP1uiv(@GLenum int texture, @GLenum int type, @Check("1") @Const @GLuint IntBuffer coords); + + @DeprecatedGL + @StripPostfix("coords") + void glMultiTexCoordP2uiv(@GLenum int texture, @GLenum int type, @Check("2") @Const @GLuint IntBuffer coords); + + @DeprecatedGL + @StripPostfix("coords") + void glMultiTexCoordP3uiv(@GLenum int texture, @GLenum int type, @Check("3") @Const @GLuint IntBuffer coords); + + @DeprecatedGL + @StripPostfix("coords") + void glMultiTexCoordP4uiv(@GLenum int texture, @GLenum int type, @Check("4") @Const @GLuint IntBuffer coords); + + @DeprecatedGL + void glNormalP3ui(@GLenum int type, @GLuint int coords); + + @DeprecatedGL + @StripPostfix("coords") + void glNormalP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer coords); + + @DeprecatedGL + void glColorP3ui(@GLenum int type, @GLuint int color); + + @DeprecatedGL + void glColorP4ui(@GLenum int type, @GLuint int color); + + @DeprecatedGL + @StripPostfix("color") + void glColorP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer color); + + @DeprecatedGL + @StripPostfix("color") + void glColorP4uiv(@GLenum int type, @Check("4") @Const @GLuint IntBuffer color); + + @DeprecatedGL + void glSecondaryColorP3ui(@GLenum int type, @GLuint int color); + + @DeprecatedGL + @StripPostfix("color") + void glSecondaryColorP3uiv(@GLenum int type, @Check("3") @Const @GLuint IntBuffer color); + + @DeprecatedGL + void glVertexAttribP1ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value); + + @DeprecatedGL + void glVertexAttribP2ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value); + + @DeprecatedGL + void glVertexAttribP3ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value); + + @DeprecatedGL + void glVertexAttribP4ui(@GLuint int index, @GLenum int type, boolean normalized, @GLuint int value); + + @DeprecatedGL + @StripPostfix("value") + void glVertexAttribP1uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("1") @Const @GLuint IntBuffer value); + + @DeprecatedGL + @StripPostfix("value") + void glVertexAttribP2uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("2") @Const @GLuint IntBuffer value); + + @DeprecatedGL + @StripPostfix("value") + void glVertexAttribP3uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("3") @Const @GLuint IntBuffer value); + + @DeprecatedGL + @StripPostfix("value") + void glVertexAttribP4uiv(@GLuint int index, @GLenum int type, boolean normalized, @Check("4") @Const @GLuint IntBuffer value); + +} \ No newline at end of file diff --git a/src/templates/org/lwjgl/opengl/GL40.java b/src/templates/org/lwjgl/opengl/GL40.java new file mode 100644 index 00000000..df9c57be --- /dev/null +++ b/src/templates/org/lwjgl/opengl/GL40.java @@ -0,0 +1,406 @@ +/* + * Copyright (c) 2002-2008 LWJGL Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.lwjgl.opengl; + +import org.lwjgl.util.generator.*; + +import java.nio.ByteBuffer; +import java.nio.DoubleBuffer; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; + +import com.sun.mirror.type.PrimitiveType; + +public interface GL40 { + + // ---------------------------------------------------------------------- + // ----------------------[ ARB_draw_buffers_blend ]---------------------- + // ---------------------------------------------------------------------- + + void glBlendEquationi(@GLuint int buf, @GLenum int mode); + + void glBlendEquationSeparatei(@GLuint int buf, @GLenum int modeRGB, @GLenum int modeAlpha); + + void glBlendFunci(@GLuint int buf, @GLenum int src, @GLenum int dst); + + void glBlendFuncSeparatei(@GLuint int buf, @GLenum int srcRGB, @GLenum int dstRGB, @GLenum int srcAlpha, @GLenum int dstAlpha); + + // ----------------------------------------------------------------- + // ----------------------[ ARB_draw_indirect ]---------------------- + // ----------------------------------------------------------------- + + /** + * Accepted by the <target> parameters of BindBuffer, BufferData, + * BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, + * GetBufferPointerv, MapBufferRange, FlushMappedBufferRange, + * GetBufferParameteriv, BindBufferRange, BindBufferBase, and + * CopyBufferSubData: + */ + int GL_DRAW_INDIRECT_BUFFER = 0x8F3F; + + /** + * Accepted by the <value> parameter of GetIntegerv, GetBooleanv, GetFloatv, + * and GetDoublev: + */ + int GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43; + + void glDrawArraysIndirect(@GLenum int mode, @BufferObject(BufferKind.IndirectBO) @Check("4") @NullTerminated @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect); + + void glDrawElementsIndirect(@GLenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check("5") @NullTerminated @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect); + + // --------------------------------------------------------------- + // ----------------------[ ARB_gpu_shader5 ]---------------------- + // --------------------------------------------------------------- + + /** Accepted by the <pname> parameter of GetProgramiv: */ + int GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, + * GetDoublev, and GetInteger64v: + */ + int GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A; + int GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B; + int GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C; + int GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D; + int GL_MAX_VERTEX_STREAMS = 0x8E71; + + // ------------------------------------------------------------------- + // ----------------------[ ARB_gpu_shader_fp64 ]---------------------- + // ------------------------------------------------------------------- + + /** + * Returned in the <type> parameter of GetActiveUniform, and + * GetTransformFeedbackVarying: + */ + int GL_DOUBLE_VEC2 = 0x8FFC; + int GL_DOUBLE_VEC3 = 0x8FFD; + int GL_DOUBLE_VEC4 = 0x8FFE; + int GL_DOUBLE_MAT2 = 0x8F46; + int GL_DOUBLE_MAT3 = 0x8F47; + int GL_DOUBLE_MAT4 = 0x8F48; + int GL_DOUBLE_MAT2x3 = 0x8F49; + int GL_DOUBLE_MAT2x4 = 0x8F4A; + int GL_DOUBLE_MAT3x2 = 0x8F4B; + int GL_DOUBLE_MAT3x4 = 0x8F4C; + int GL_DOUBLE_MAT4x2 = 0x8F4D; + int GL_DOUBLE_MAT4x3 = 0x8F4E; + + void glUniform1d(int location, double x); + + void glUniform2d(int location, double x, double y); + + void glUniform3d(int location, double x, double y, double z); + + void glUniform4d(int location, double x, double y, double z, double w); + + @StripPostfix("value") + void glUniform1dv(int location, @AutoSize("value") @GLsizei int count, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniform2dv(int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniform3dv(int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniform4dv(int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix2dv(int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix3dv(int location, @AutoSize(value = "value", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix4dv(int location, @AutoSize(value = "value", expression = " >> 4") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix2x3dv(int location, @AutoSize(value = "value", expression = " / (2 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix2x4dv(int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix3x2dv(int location, @AutoSize(value = "value", expression = " / (3 * 2)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix3x4dv(int location, @AutoSize(value = "value", expression = " / (3 * 4)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix4x2dv(int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("value") + void glUniformMatrix4x3dv(int location, @AutoSize(value = "value", expression = " / (4 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); + + @StripPostfix("params") + void glGetUniformdv(@GLuint int program, int location, @OutParameter @Check DoubleBuffer params); + + // ------------------------------------------------------------------ + // ----------------------[ ARB_sample_shading ]---------------------- + // ------------------------------------------------------------------ + + /** + * Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, + * and by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, + * and GetDoublev: + */ + int GL_SAMPLE_SHADING = 0x8C36; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, + * GetIntegerv, and GetFloatv: + */ + int GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37; + + void glMinSampleShading(@GLclampf float value); + + // --------------------------------------------------------------------- + // ----------------------[ ARB_shader_subroutine ]---------------------- + // --------------------------------------------------------------------- + + /** Accepted by the <pname> parameter of GetProgramStageiv: */ + int GL_ACTIVE_SUBROUTINES = 0x8DE5; + int GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6; + int GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47; + int GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48; + int GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, + * GetFloatv, GetDoublev, and GetInteger64v: + */ + int GL_MAX_SUBROUTINES = 0x8DE7; + int GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8; + + /** Accepted by the <pname> parameter of GetActiveSubroutineUniformiv: */ + int GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A; + int GL_COMPATIBLE_SUBROUTINES = 0x8E4B; + int GL_UNIFORM_SIZE = GL31.GL_UNIFORM_SIZE; + int GL_UNIFORM_NAME_LENGTH = GL31.GL_UNIFORM_NAME_LENGTH; + + int glGetSubroutineUniformLocation(@GLuint int program, @GLenum int shadertype, @Const @NullTerminated ByteBuffer name); + + @GLuint + int glGetSubroutineIndex(@GLuint int program, @GLenum int shadertype, @Const @NullTerminated ByteBuffer name); + + @StripPostfix("values") + void glGetActiveSubroutineUniformiv(@GLuint int program, @GLenum int shadertype, @GLuint int index, @GLenum int pname, + @Check("1") @OutParameter IntBuffer values); + + void glGetActiveSubroutineUniformName(@GLuint int program, @GLenum int shadertype, @GLuint int index, + @AutoSize("name") @GLsizei int bufsize, + @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, + @OutParameter ByteBuffer name); + + void glGetActiveSubroutineName(@GLuint int program, @GLenum int shadertype, @GLuint int index, + @AutoSize("name") @GLsizei int bufsize, + @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, + @OutParameter ByteBuffer name); + + @StripPostfix("indices") + void glUniformSubroutinesuiv(@GLenum int shadertype, @AutoSize("indices") @GLsizei int count, @Const @GLuint IntBuffer indices); + + @StripPostfix("params") + void glGetUniformSubroutineuiv(@GLenum int shadertype, int location, @Check("1") @OutParameter @GLuint IntBuffer params); + + @StripPostfix("values") + void glGetProgramStageiv(@GLuint int program, @GLenum int shadertype, @GLenum int pname, @Check("1") @OutParameter IntBuffer values); + + // ----------------------------------------------------------------------- + // ----------------------[ ARB_tessellation_shader ]---------------------- + // ----------------------------------------------------------------------- + + /** + * Accepted by the <mode> parameter of Begin and all vertex array functions + * that implicitly call Begin: + */ + int GL_PATCHES = 0xE; + + /** + * Accepted by the <pname> parameter of PatchParameteri, GetBooleanv, + * GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v: + */ + int GL_PATCH_VERTICES = 0x8E72; + + /** + * Accepted by the <pname> parameter of PatchParameterfv, GetBooleanv, + * GetDoublev, GetFloatv, and GetIntegerv, and GetInteger64v: + */ + int GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73; + int GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74; + + /** Accepted by the <pname> parameter of GetProgramiv: */ + int GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75; + int GL_TESS_GEN_MODE = 0x8E76; + int GL_TESS_GEN_SPACING = 0x8E77; + int GL_TESS_GEN_VERTEX_ORDER = 0x8E78; + int GL_TESS_GEN_POINT_MODE = 0x8E79; + + /** Returned by GetProgramiv when <pname> is TESS_GEN_MODE: */ + int GL_ISOLINES = 0x8E7A; + + /** Returned by GetProgramiv when <pname> is TESS_GEN_SPACING: */ + int GL_FRACTIONAL_ODD = 0x8E7B; + int GL_FRACTIONAL_EVEN = 0x8E7C; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetFloatv, + * GetIntegerv, and GetInteger64v: + */ + int GL_MAX_PATCH_VERTICES = 0x8E7D; + int GL_MAX_TESS_GEN_LEVEL = 0x8E7E; + int GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F; + int GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80; + int GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81; + int GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82; + int GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83; + int GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84; + int GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85; + int GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86; + int GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89; + int GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A; + int GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C; + int GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D; + int GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E; + int GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F; + + /** Accepted by the <pname> parameter of GetActiveUniformBlockiv: */ + int GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0; + int GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1; + + /** + * Accepted by the <type> parameter of CreateShader and returned by the + * <params> parameter of GetShaderiv: + */ + int GL_TESS_EVALUATION_SHADER = 0x8E87; + int GL_TESS_CONTROL_SHADER = 0x8E88; + + void glPatchParameteri(@GLenum int pname, int value); + + @StripPostfix("values") + void glPatchParameterfv(@GLenum int pname, @Check("4") @Const FloatBuffer values); + + // -------------------------------------------------------------------------- + // ----------------------[ ARB_texture_cube_map_array ]---------------------- + // -------------------------------------------------------------------------- + + /** + * Accepted by the <target> parameter of TexParameteri, TexParameteriv, + * TexParameterf, TexParameterfv, BindTexture, and GenerateMipmap: + *

+ * Accepted by the <target> parameter of TexImage3D, TexSubImage3D, + * CompressedTeximage3D, CompressedTexSubImage3D and CopyTexSubImage3D: + *

+ * Accepted by the <tex> parameter of GetTexImage: + */ + int GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, + * GetIntegerv and GetFloatv: + */ + int GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A; + + /** + * Accepted by the <target> parameter of TexImage3D, TexSubImage3D, + * CompressedTeximage3D, CompressedTexSubImage3D and CopyTexSubImage3D: + */ + int GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B; + + /** Returned by the <type> parameter of GetActiveUniform: */ + int GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C; + int GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D; + int GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E; + int GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F; + + // ------------------------------------------------------------------ + // ----------------------[ ARB_texture_gather ]---------------------- + // ------------------------------------------------------------------ + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, + * GetFloatv, and GetDoublev: + */ + int GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E; + int GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F; + int GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F; + + // ----------------------------------------------------------------------- + // ----------------------[ ARB_transform_feedback2 ]---------------------- + // ----------------------------------------------------------------------- + + /** Accepted by the <target> parameter of BindTransformFeedback: */ + int GL_TRANSFORM_FEEDBACK = 0x8E22; + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv, + * and GetFloatv: + */ + int GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23; + int GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24; + int GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25; + + void glBindTransformFeedback(@GLenum int target, @GLuint int id); + + void glDeleteTransformFeedbacks(@AutoSize("ids") @GLsizei int n, @Const @GLuint IntBuffer ids); + + void glGenTransformFeedbacks(@AutoSize("ids") @GLsizei int n, @GLuint IntBuffer ids); + + boolean glIsTransformFeedback(@GLuint int id); + + void glPauseTransformFeedback(); + + void glResumeTransformFeedback(); + + void glDrawTransformFeedback(@GLenum int mode, @GLuint int id); + + // ----------------------------------------------------------------------- + // ----------------------[ ARB_transform_feedback3 ]---------------------- + // ----------------------------------------------------------------------- + + /** + * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv, + * and GetFloatv: + */ + int GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70; + + void glDrawTransformFeedbackStream(@GLenum int mode, @GLuint int id, @GLuint int stream); + + void glBeginQueryIndexed(@GLenum int target, @GLuint int index, @GLuint int id); + + void glEndQueryIndexed(@GLenum int target, @GLuint int index); + + @StripPostfix("params") + void glGetQueryIndexediv(@GLenum int target, @GLuint int index, @GLenum int pname, @OutParameter @Check("1") IntBuffer params); + +} \ No newline at end of file