From b386d2185b1052f9fbdff337fd581ecbb839f451 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Mon, 23 Apr 2007 20:17:42 +0000 Subject: [PATCH] Added support for non-direct in glGet* style functions --- .../org/lwjgl/NondirectBufferWrapper.java | 202 +++++++++++++++++- .../util/generator/JavaMethodsGenerator.java | 40 +++- .../lwjgl/util/generator/OutParameter.java | 48 +++++ src/templates/org/lwjgl/openal/AL10.java | 10 +- src/templates/org/lwjgl/openal/AL11.java | 6 +- .../org/lwjgl/opengl/ARB_buffer_object.java | 3 +- .../org/lwjgl/opengl/ARB_imaging.java | 19 +- .../org/lwjgl/opengl/ARB_occlusion_query.java | 8 +- .../org/lwjgl/opengl/ARB_program.java | 12 +- .../org/lwjgl/opengl/ARB_shader_objects.java | 12 +- .../lwjgl/opengl/ARB_texture_compression.java | 1 + .../org/lwjgl/opengl/ARB_vertex_program.java | 6 +- .../org/lwjgl/opengl/ARB_vertex_shader.java | 10 +- .../org/lwjgl/opengl/ATI_envmap_bumpmap.java | 4 +- .../lwjgl/opengl/ATI_vertex_array_object.java | 12 +- .../ATI_vertex_attrib_array_object.java | 4 +- .../org/lwjgl/opengl/EXT_draw_buffers2.java | 6 +- .../lwjgl/opengl/EXT_framebuffer_object.java | 4 +- .../org/lwjgl/opengl/EXT_gpu_shader4.java | 8 +- .../lwjgl/opengl/EXT_paletted_texture.java | 5 +- .../org/lwjgl/opengl/EXT_texture_integer.java | 9 +- .../org/lwjgl/opengl/EXT_timer_query.java | 6 +- .../org/lwjgl/opengl/EXT_vertex_shader.java | 20 +- src/templates/org/lwjgl/opengl/GL11.java | 51 ++--- src/templates/org/lwjgl/opengl/GL13.java | 1 + src/templates/org/lwjgl/opengl/GL15.java | 11 +- src/templates/org/lwjgl/opengl/GL20.java | 28 +-- .../org/lwjgl/opengl/NV_evaluators.java | 9 +- src/templates/org/lwjgl/opengl/NV_fence.java | 2 +- .../org/lwjgl/opengl/NV_fragment_program.java | 4 +- .../org/lwjgl/opengl/NV_gpu_program4.java | 10 +- .../org/lwjgl/opengl/NV_occlusion_query.java | 4 +- .../org/lwjgl/opengl/NV_program.java | 4 +- .../lwjgl/opengl/NV_register_combiners.java | 12 +- .../lwjgl/opengl/NV_register_combiners2.java | 2 +- .../lwjgl/opengl/NV_transform_feedback.java | 8 +- .../org/lwjgl/opengl/NV_vertex_program.java | 12 +- 37 files changed, 446 insertions(+), 167 deletions(-) create mode 100644 src/java/org/lwjgl/util/generator/OutParameter.java diff --git a/src/java/org/lwjgl/NondirectBufferWrapper.java b/src/java/org/lwjgl/NondirectBufferWrapper.java index 1407943e..7d567093 100644 --- a/src/java/org/lwjgl/NondirectBufferWrapper.java +++ b/src/java/org/lwjgl/NondirectBufferWrapper.java @@ -67,6 +67,36 @@ public final class NondirectBufferWrapper { return buffers; } + public static ByteBuffer wrapNoCopyBuffer(ByteBuffer buf, int size) { + BufferChecks.checkBufferSize(buf, size); + return wrapNoCopyDirect(buf); + } + + public static ShortBuffer wrapNoCopyBuffer(ShortBuffer buf, int size) { + BufferChecks.checkBufferSize(buf, size); + return wrapNoCopyDirect(buf); + } + + public static IntBuffer wrapNoCopyBuffer(IntBuffer buf, int size) { + BufferChecks.checkBufferSize(buf, size); + return wrapNoCopyDirect(buf); + } + + public static LongBuffer wrapNoCopyBuffer(LongBuffer buf, int size) { + BufferChecks.checkBufferSize(buf, size); + return wrapNoCopyDirect(buf); + } + + public static FloatBuffer wrapNoCopyBuffer(FloatBuffer buf, int size) { + BufferChecks.checkBufferSize(buf, size); + return wrapNoCopyDirect(buf); + } + + public static DoubleBuffer wrapNoCopyBuffer(DoubleBuffer buf, int size) { + BufferChecks.checkBufferSize(buf, size); + return wrapNoCopyDirect(buf); + } + public static ByteBuffer wrapBuffer(ByteBuffer buf, int size) { BufferChecks.checkBufferSize(buf, size); return wrapDirect(buf); @@ -133,8 +163,138 @@ public final class NondirectBufferWrapper { return buffer; } + public static ByteBuffer wrapNoCopyDirect(ByteBuffer buffer) { + if (!buffer.isDirect()) + return doNoCopyWrap(buffer); + return buffer; + } + + public static ShortBuffer wrapNoCopyDirect(ShortBuffer buffer) { + if (!buffer.isDirect()) + return doNoCopyWrap(buffer); + return buffer; + } + + public static FloatBuffer wrapNoCopyDirect(FloatBuffer buffer) { + if (!buffer.isDirect()) + return doNoCopyWrap(buffer); + return buffer; + } + + public static IntBuffer wrapNoCopyDirect(IntBuffer buffer) { + if (!buffer.isDirect()) + return doNoCopyWrap(buffer); + return buffer; + } + + public static LongBuffer wrapNoCopyDirect(LongBuffer buffer) { + if (!buffer.isDirect()) + return doNoCopyWrap(buffer); + return buffer; + } + + public static DoubleBuffer wrapNoCopyDirect(DoubleBuffer buffer) { + if (!buffer.isDirect()) + return doNoCopyWrap(buffer); + return buffer; + } + + public static void copy(ByteBuffer src, ByteBuffer dst) { + if (dst != null && !dst.isDirect()) { + int saved_position = dst.position(); + dst.put(src); + dst.position(saved_position); + } + } + + public static void copy(ShortBuffer src, ShortBuffer dst) { + if (dst != null && !dst.isDirect()) { + int saved_position = dst.position(); + dst.put(src); + dst.position(saved_position); + } + } + + public static void copy(IntBuffer src, IntBuffer dst) { + if (dst != null && !dst.isDirect()) { + int saved_position = dst.position(); + dst.put(src); + dst.position(saved_position); + } + } + + public static void copy(FloatBuffer src, FloatBuffer dst) { + if (dst != null && !dst.isDirect()) { + int saved_position = dst.position(); + dst.put(src); + dst.position(saved_position); + } + } + + public static void copy(LongBuffer src, LongBuffer dst) { + if (dst != null && !dst.isDirect()) { + int saved_position = dst.position(); + dst.put(src); + dst.position(saved_position); + } + } + + public static void copy(DoubleBuffer src, DoubleBuffer dst) { + if (dst != null && !dst.isDirect()) { + int saved_position = dst.position(); + dst.put(src); + dst.position(saved_position); + } + } + + private static ByteBuffer doNoCopyWrap(ByteBuffer buffer) { + ByteBuffer direct_buffer = lookupBuffer(buffer); + direct_buffer.limit(buffer.limit()); + direct_buffer.position(buffer.position()); + return direct_buffer; + } + + private static ShortBuffer doNoCopyWrap(ShortBuffer buffer) { + ShortBuffer direct_buffer = lookupBuffer(buffer); + direct_buffer.limit(buffer.limit()); + direct_buffer.position(buffer.position()); + return direct_buffer; + } + + private static IntBuffer doNoCopyWrap(IntBuffer buffer) { + IntBuffer direct_buffer = lookupBuffer(buffer); + direct_buffer.limit(buffer.limit()); + direct_buffer.position(buffer.position()); + return direct_buffer; + } + + private static FloatBuffer doNoCopyWrap(FloatBuffer buffer) { + FloatBuffer direct_buffer = lookupBuffer(buffer); + direct_buffer.limit(buffer.limit()); + direct_buffer.position(buffer.position()); + return direct_buffer; + } + + private static LongBuffer doNoCopyWrap(LongBuffer buffer) { + LongBuffer direct_buffer = lookupBuffer(buffer); + direct_buffer.limit(buffer.limit()); + direct_buffer.position(buffer.position()); + return direct_buffer; + } + + private static DoubleBuffer doNoCopyWrap(DoubleBuffer buffer) { + DoubleBuffer direct_buffer = lookupBuffer(buffer); + direct_buffer.limit(buffer.limit()); + direct_buffer.position(buffer.position()); + return direct_buffer; + } + + private static ByteBuffer lookupBuffer(ByteBuffer buffer) { + return getCachedBuffers(buffer.remaining()).byte_buffer; + } + private static ByteBuffer doWrap(ByteBuffer buffer) { - ByteBuffer direct_buffer = getCachedBuffers(buffer.remaining()).byte_buffer; + ByteBuffer direct_buffer = lookupBuffer(buffer); direct_buffer.clear(); int saved_position = buffer.position(); direct_buffer.put(buffer); @@ -143,9 +303,13 @@ public final class NondirectBufferWrapper { return direct_buffer; } + private static ShortBuffer lookupBuffer(ShortBuffer buffer) { + CachedBuffers buffers = getCachedBuffers(buffer.remaining()*2); + return buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.short_buffer_little : buffers.short_buffer_big; + } + private static ShortBuffer doWrap(ShortBuffer buffer) { - CachedBuffers buffers = getCachedBuffers(buffer.remaining()*2); - ShortBuffer direct_buffer = buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.short_buffer_little : buffers.short_buffer_big; + ShortBuffer direct_buffer = lookupBuffer(buffer); direct_buffer.clear(); int saved_position = buffer.position(); direct_buffer.put(buffer); @@ -154,9 +318,13 @@ public final class NondirectBufferWrapper { return direct_buffer; } + private static FloatBuffer lookupBuffer(FloatBuffer buffer) { + CachedBuffers buffers = getCachedBuffers(buffer.remaining()*4); + return buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.float_buffer_little : buffers.float_buffer_big; + } + private static FloatBuffer doWrap(FloatBuffer buffer) { - CachedBuffers buffers = getCachedBuffers(buffer.remaining()*4); - FloatBuffer direct_buffer = buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.float_buffer_little : buffers.float_buffer_big; + FloatBuffer direct_buffer = lookupBuffer(buffer); direct_buffer.clear(); int saved_position = buffer.position(); direct_buffer.put(buffer); @@ -165,9 +333,13 @@ public final class NondirectBufferWrapper { return direct_buffer; } + private static IntBuffer lookupBuffer(IntBuffer buffer) { + CachedBuffers buffers = getCachedBuffers(buffer.remaining()*4); + return buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.int_buffer_little : buffers.int_buffer_big; + } + private static IntBuffer doWrap(IntBuffer buffer) { - CachedBuffers buffers = getCachedBuffers(buffer.remaining()*4); - IntBuffer direct_buffer = buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.int_buffer_little : buffers.int_buffer_big; + IntBuffer direct_buffer = lookupBuffer(buffer); direct_buffer.clear(); int saved_position = buffer.position(); direct_buffer.put(buffer); @@ -176,9 +348,13 @@ public final class NondirectBufferWrapper { return direct_buffer; } + private static LongBuffer lookupBuffer(LongBuffer buffer) { + CachedBuffers buffers = getCachedBuffers(buffer.remaining()*8); + return buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.long_buffer_little : buffers.long_buffer_big; + } + private static LongBuffer doWrap(LongBuffer buffer) { - CachedBuffers buffers = getCachedBuffers(buffer.remaining()*8); - LongBuffer direct_buffer = buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.long_buffer_little : buffers.long_buffer_big; + LongBuffer direct_buffer = lookupBuffer(buffer); direct_buffer.clear(); int saved_position = buffer.position(); direct_buffer.put(buffer); @@ -187,9 +363,13 @@ public final class NondirectBufferWrapper { return direct_buffer; } - private static DoubleBuffer doWrap(DoubleBuffer buffer) { + private static DoubleBuffer lookupBuffer(DoubleBuffer buffer) { CachedBuffers buffers = getCachedBuffers(buffer.remaining()*8); - DoubleBuffer direct_buffer = buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.double_buffer_little : buffers.double_buffer_big; + return buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.double_buffer_little : buffers.double_buffer_big; + } + + private static DoubleBuffer doWrap(DoubleBuffer buffer) { + DoubleBuffer direct_buffer = lookupBuffer(buffer); direct_buffer.clear(); int saved_position = buffer.position(); direct_buffer.put(buffer); diff --git a/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java b/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java index c64b2d26..76587e67 100644 --- a/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java +++ b/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java @@ -50,6 +50,8 @@ import java.util.*; import java.nio.*; public class JavaMethodsGenerator { + private final static String SAVED_PARAMETER_POSTFIX = "_saved"; + public static void generateMethodsJava(AnnotationProcessorEnvironment env, TypeMap type_map, PrintWriter writer, InterfaceDeclaration interface_decl, boolean generate_error_checks, boolean context_specific) { for (MethodDeclaration method : interface_decl.getMethods()) generateMethodJava(env, type_map, writer, interface_decl, method, generate_error_checks, context_specific); @@ -197,7 +199,7 @@ public class JavaMethodsGenerator { if (code_annotation != null) writer.println(code_annotation.value()); printBufferObjectChecks(writer, method, mode); - printParameterChecks(writer, method, mode); + printParameterChecks(writer, method, typeinfos_instance, mode); printParameterCaching(writer, interface_decl, method, mode); writer.print("\t\t"); boolean has_result = !result_type.equals(env.getTypeUtils().getVoidType()); @@ -218,6 +220,7 @@ public class JavaMethodsGenerator { writer.println(");"); if (generate_error_checks && method.getAnnotation(NoErrorCheck.class) == null) writer.println("\t\t" + type_map.getErrorCheckMethodName() + ";"); + printNondirectParameterCopies(writer, method, mode); if (has_result) writer.println("\t\treturn " + Utils.RESULT_VAR_NAME + ";"); writer.println("\t}"); @@ -409,7 +412,23 @@ public class JavaMethodsGenerator { } } - private static void printParameterChecks(PrintWriter writer, MethodDeclaration method, Mode mode) { + private static void printNondirectParameterCopies(PrintWriter writer, MethodDeclaration method, Mode mode) { + for (ParameterDeclaration param : method.getParameters()) { + Class java_type = Utils.getJavaType(param.getType()); + if (Utils.isAddressableType(java_type) && + (mode != Mode.BUFFEROBJECT || param.getAnnotation(BufferObject.class) == null) && + (mode != Mode.AUTOS || getAutoTypeParameter(method, param) == null) && + param.getAnnotation(Result.class) == null) { + if (Buffer.class.isAssignableFrom(java_type)) { + boolean out_parameter = param.getAnnotation(OutParameter.class) != null; + if (out_parameter) + writer.println("\t\tNondirectBufferWrapper.copy(" + param.getSimpleName() + ", " + param.getSimpleName() + SAVED_PARAMETER_POSTFIX + ");"); + } + } + } + } + + private static void printParameterChecks(PrintWriter writer, MethodDeclaration method, Map typeinfos, Mode mode) { for (ParameterDeclaration param : method.getParameters()) { Class java_type = Utils.getJavaType(param.getType()); if (Utils.isAddressableType(java_type) && @@ -426,7 +445,9 @@ public class JavaMethodsGenerator { boolean null_terminated = param.getAnnotation(NullTerminated.class) != null; if (Buffer.class.isAssignableFrom(java_type)) { boolean indirect_buffer_allowed = param.getAnnotation(CachedReference.class) == null; - printParameterCheck(writer, param.getSimpleName(), check_value, can_be_null, null_terminated, indirect_buffer_allowed); + boolean out_parameter = param.getAnnotation(OutParameter.class) != null; + TypeInfo typeinfo = typeinfos.get(param); + printParameterCheck(writer, param.getSimpleName(), typeinfo.getType().getSimpleName(), check_value, can_be_null, null_terminated, indirect_buffer_allowed, out_parameter); } else if (String.class.equals(java_type)) { if (!can_be_null) writer.println("\t\tBufferChecks.checkNotNull(" + param.getSimpleName() + ");"); @@ -434,17 +455,22 @@ public class JavaMethodsGenerator { } } if (method.getAnnotation(CachedResult.class) != null) - printParameterCheck(writer, Utils.CACHED_BUFFER_NAME, null, true, false, false); + printParameterCheck(writer, Utils.CACHED_BUFFER_NAME, null, null, true, false, false, false); } - private static void printParameterCheck(PrintWriter writer, String name, String check_value, boolean can_be_null, boolean null_terminated, boolean indirect_buffer_allowed) { + private static void printParameterCheck(PrintWriter writer, String name, String type, String check_value, boolean can_be_null, boolean null_terminated, boolean indirect_buffer_allowed, boolean out_parameter) { + if (indirect_buffer_allowed && out_parameter) { + writer.println("\t\t" + type + " " + name + SAVED_PARAMETER_POSTFIX + " = " + name + ";"); + } if (can_be_null) { writer.println("\t\tif (" + name + " != null)"); writer.print("\t"); } - if (indirect_buffer_allowed) + if (indirect_buffer_allowed) { writer.print("\t\t" + name + " = NondirectBufferWrapper.wrap"); - else + if (out_parameter) + writer.print("NoCopy"); + } else writer.print("\t\tBufferChecks.check"); if (check_value != null && !"".equals(check_value) ) { writer.print("Buffer(" + name + ", " + check_value); diff --git a/src/java/org/lwjgl/util/generator/OutParameter.java b/src/java/org/lwjgl/util/generator/OutParameter.java new file mode 100644 index 00000000..5144ef5d --- /dev/null +++ b/src/java/org/lwjgl/util/generator/OutParameter.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2002-2004 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; + +/** + * This annotation indicates that a parameter is written, + * not read. + * + * @author elias_naur + * @version $Revision: 2286 $ + * $Id: Check.java 2286 2006-03-23 19:32:21Z matzon $ + */ + +import java.lang.annotation.Target; +import java.lang.annotation.ElementType; + +@Target(ElementType.PARAMETER) +public @interface OutParameter { +} diff --git a/src/templates/org/lwjgl/openal/AL10.java b/src/templates/org/lwjgl/openal/AL10.java index f956642f..46e22402 100644 --- a/src/templates/org/lwjgl/openal/AL10.java +++ b/src/templates/org/lwjgl/openal/AL10.java @@ -480,7 +480,7 @@ public interface AL10 { */ @StripPostfix("data") @ALvoid - void alGetIntegerv(@ALenum int pname, @Check("1") IntBuffer data); + void alGetIntegerv(@ALenum int pname, @OutParameter @Check("1") IntBuffer data); /** * Like OpenGL, AL uses a simplified interface for querying global state. @@ -498,7 +498,7 @@ public interface AL10 { */ @StripPostfix("data") @ALvoid - void alGetFloatv(@ALenum int pname, @Check("1") FloatBuffer data); + void alGetFloatv(@ALenum int pname, @OutParameter @Check("1") FloatBuffer data); /** * Like OpenGL, AL uses a simplified interface for querying global state. @@ -516,7 +516,7 @@ public interface AL10 { */ @StripPostfix("data") @ALvoid - void alGetDoublev(@ALenum int pname, @Check("1") DoubleBuffer data); + void alGetDoublev(@ALenum int pname, @OutParameter @Check("1") DoubleBuffer data); /** * The application can retrieve state information global to the current AL Context. @@ -711,7 +711,7 @@ public interface AL10 { // TODO: What's the real minimum number of elements? @StripPostfix("floatdata") @ALvoid - void alGetListenerfv(@ALenum int pname, @Check("1") FloatBuffer floatdata); + void alGetListenerfv(@ALenum int pname, @OutParameter @Check("1") FloatBuffer floatdata); /** * The application requests a number of Sources using GenSources. @@ -827,7 +827,7 @@ public interface AL10 { // TODO: What's the correct minimum value? @StripPostfix("floatdata") @ALvoid - void alGetSourcefv(@ALuint int source, @ALenum int pname, @Check("1") FloatBuffer floatdata); + void alGetSourcefv(@ALuint int source, @ALenum int pname, @OutParameter @Check("1") FloatBuffer floatdata); /** * Play() applied to an AL_INITIAL Source will promote the Source to AL_PLAYING, thus diff --git a/src/templates/org/lwjgl/openal/AL11.java b/src/templates/org/lwjgl/openal/AL11.java index eba3e6c1..6c029c68 100644 --- a/src/templates/org/lwjgl/openal/AL11.java +++ b/src/templates/org/lwjgl/openal/AL11.java @@ -100,7 +100,7 @@ public interface AL11 { // TODO: What's the real minimum number of elements? @StripPostfix("intdata") @ALvoid - void alGetListeneriv(@ALenum int pname, @Check("1") FloatBuffer intdata); + void alGetListeneriv(@ALenum int pname, @OutParameter @Check("1") FloatBuffer intdata); /** * Specifies the position and other properties as taken into account during @@ -229,7 +229,7 @@ public interface AL11 { // TODO: What's the correct minimum value? @StripPostfix("values") @ALvoid - void alGetBufferiv(@ALuint int buffer, @ALenum int pname, @Check("1") IntBuffer values); + void alGetBufferiv(@ALuint int buffer, @ALenum int pname, @OutParameter @Check("1") IntBuffer values); /** * This function retrieves a floating point property of a buffer. @@ -254,7 +254,7 @@ public interface AL11 { // TODO: What's the correct minimum value? @StripPostfix("values") @ALvoid - void alGetBufferfv(@ALuint int buffer, @ALenum int pname, @Check("1") FloatBuffer values); + void alGetBufferfv(@ALuint int buffer, @ALenum int pname, @OutParameter @Check("1") FloatBuffer values); /** *

diff --git a/src/templates/org/lwjgl/opengl/ARB_buffer_object.java b/src/templates/org/lwjgl/opengl/ARB_buffer_object.java index 6f3da517..38f24125 100644 --- a/src/templates/org/lwjgl/opengl/ARB_buffer_object.java +++ b/src/templates/org/lwjgl/opengl/ARB_buffer_object.java @@ -94,6 +94,7 @@ public interface ARB_buffer_object { @GLdouble Buffer data); void glGetBufferSubDataARB(@GLenum int target, @GLintptrARB long offset, @AutoSize("data") @GLsizeiptrARB long size, + @OutParameter @Check @GLbyte @GLshort @@ -121,7 +122,7 @@ public interface ARB_buffer_object { boolean glUnmapBufferARB(@GLenum int target); @StripPostfix("params") - void glGetBufferParameterivARB(@GLenum int target, @GLenum int pname, @Check("4") IntBuffer params); + void glGetBufferParameterivARB(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("pointer") @AutoResultSize("GLChecks.getBufferObjectSizeARB(caps, target)") diff --git a/src/templates/org/lwjgl/opengl/ARB_imaging.java b/src/templates/org/lwjgl/opengl/ARB_imaging.java index 433130f3..73fe6db2 100644 --- a/src/templates/org/lwjgl/opengl/ARB_imaging.java +++ b/src/templates/org/lwjgl/opengl/ARB_imaging.java @@ -150,6 +150,7 @@ public interface ARB_imaging { void glCopyColorTable(@GLenum int target, @GLenum int internalformat, int x, int y, @GLsizei int width); void glGetColorTable(@GLenum int target, @GLenum int format, @GLenum int type, + @OutParameter @Check("256") @GLbyte @GLfloat @@ -170,6 +171,7 @@ public interface ARB_imaging { void glResetHistogram(@GLenum int target); void glGetHistogram(@GLenum int target, boolean reset, @GLenum int format, @GLenum int type, + @OutParameter @BufferObject(BufferKind.PackPBO) @Check("256") @GLbyte @@ -179,16 +181,17 @@ public interface ARB_imaging { @GLdouble Buffer values); @StripPostfix("params") - void glGetHistogramParameterfv(@GLenum int target, @GLenum int pname, @Check("256") FloatBuffer params); + void glGetHistogramParameterfv(@GLenum int target, @GLenum int pname, @OutParameter @Check("256") FloatBuffer params); @StripPostfix("params") - void glGetHistogramParameteriv(@GLenum int target, @GLenum int pname, @Check("256") IntBuffer params); + void glGetHistogramParameteriv(@GLenum int target, @GLenum int pname, @OutParameter @Check("256") IntBuffer params); void glMinmax(@GLenum int target, @GLenum int internalformat, boolean sink); void glResetMinmax(@GLenum int target); void glGetMinmax(@GLenum int target, boolean reset, @GLenum int format, @GLenum int types, + @OutParameter @BufferObject(BufferKind.PackPBO) @Check("4") @GLbyte @@ -198,10 +201,10 @@ public interface ARB_imaging { @GLdouble Buffer values); @StripPostfix("params") - void glGetMinmaxParameterfv(@GLenum int target, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetMinmaxParameterfv(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetMinmaxParameteriv(@GLenum int target, @GLenum int pname, @Check("4") IntBuffer params); + void glGetMinmaxParameteriv(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); void glConvolutionFilter1D(@GLenum int target, @GLenum int internalformat, @GLsizei int width, @GLenum int format, @GLenum int type, @BufferObject(BufferKind.UnpackPBO) @@ -237,6 +240,7 @@ public interface ARB_imaging { // TODO: check buffer size valid void glGetConvolutionFilter(@GLenum int target, @GLenum int format, @GLenum int type, + @OutParameter @BufferObject(BufferKind.PackPBO) @Check @GLbyte @@ -246,10 +250,10 @@ public interface ARB_imaging { @GLdouble Buffer image); @StripPostfix("params") - void glGetConvolutionParameterfv(@GLenum int target, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetConvolutionParameterfv(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetConvolutionParameteriv(@GLenum int target, @GLenum int pname, @Check("4") IntBuffer params); + void glGetConvolutionParameteriv(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); // TODO: check buffer size valid void glSeparableFilter2D(@GLenum int target, @GLenum int internalformat, @GLsizei int width, @GLsizei int height, @GLenum int format, @GLenum int type, @@ -272,6 +276,7 @@ public interface ARB_imaging { // TODO: check buffer size valid void glGetSeparableFilter(@GLenum int target, @GLenum int format, @GLenum int type, + @OutParameter @BufferObject(BufferKind.PackPBO) @Check @GLbyte @@ -291,4 +296,4 @@ public interface ARB_imaging { @GLshort @GLint @GLdouble Buffer span); -} \ No newline at end of file +} diff --git a/src/templates/org/lwjgl/opengl/ARB_occlusion_query.java b/src/templates/org/lwjgl/opengl/ARB_occlusion_query.java index 89ba4fac..dd94414f 100644 --- a/src/templates/org/lwjgl/opengl/ARB_occlusion_query.java +++ b/src/templates/org/lwjgl/opengl/ARB_occlusion_query.java @@ -67,11 +67,11 @@ public interface ARB_occlusion_query { void glEndQueryARB(@GLenum int target); @StripPostfix("params") - void glGetQueryivARB(@GLenum int target, @GLenum int pname, @Check("1") IntBuffer params); + void glGetQueryivARB(@GLenum int target, @GLenum int pname, @OutParameter @Check("1") IntBuffer params); @StripPostfix("params") - void glGetQueryObjectivARB(@GLuint int id, @GLenum int pname, @Check("1") IntBuffer params); + void glGetQueryObjectivARB(@GLuint int id, @GLenum int pname, @OutParameter @Check("1") IntBuffer params); @StripPostfix("params") - void glGetQueryObjectuivARB(@GLuint int id, @GLenum int pname, @Check("1") IntBuffer params); -} \ No newline at end of file + void glGetQueryObjectuivARB(@GLuint int id, @GLenum int pname, @OutParameter @Check("1") IntBuffer params); +} diff --git a/src/templates/org/lwjgl/opengl/ARB_program.java b/src/templates/org/lwjgl/opengl/ARB_program.java index c891b29b..06cd4020 100644 --- a/src/templates/org/lwjgl/opengl/ARB_program.java +++ b/src/templates/org/lwjgl/opengl/ARB_program.java @@ -155,21 +155,21 @@ public interface ARB_program { void glProgramLocalParameter4dvARB(@GLenum int target, @GLuint int index, @Check("4") @Const DoubleBuffer params); @StripPostfix("params") - void glGetProgramEnvParameterfvARB(@GLenum int target, @GLuint int index, @Check("4") FloatBuffer params); + void glGetProgramEnvParameterfvARB(@GLenum int target, @GLuint int index, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetProgramEnvParameterdvARB(@GLenum int target, @GLuint int index, @Check("4") DoubleBuffer params); + void glGetProgramEnvParameterdvARB(@GLenum int target, @GLuint int index, @OutParameter @Check("4") DoubleBuffer params); @StripPostfix("params") - void glGetProgramLocalParameterfvARB(@GLenum int target, @GLuint int index, @Check("4") FloatBuffer params); + void glGetProgramLocalParameterfvARB(@GLenum int target, @GLuint int index, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetProgramLocalParameterdvARB(@GLenum int target, @GLuint int index, @Check("4") DoubleBuffer params); + void glGetProgramLocalParameterdvARB(@GLenum int target, @GLuint int index, @OutParameter @Check("4") DoubleBuffer params); @StripPostfix("params") - void glGetProgramivARB(@GLenum int target, @GLenum int parameterName, @Check("4") IntBuffer params); + void glGetProgramivARB(@GLenum int target, @GLenum int parameterName, @OutParameter @Check("4") IntBuffer params); - void glGetProgramStringARB(@GLenum int target, @GLenum int parameterName, @Check @GLbyte Buffer paramString); + void glGetProgramStringARB(@GLenum int target, @GLenum int parameterName, @OutParameter @Check @GLbyte Buffer paramString); boolean glIsProgramARB(@GLuint int program); } diff --git a/src/templates/org/lwjgl/opengl/ARB_shader_objects.java b/src/templates/org/lwjgl/opengl/ARB_shader_objects.java index 28fb72e6..31767f09 100644 --- a/src/templates/org/lwjgl/opengl/ARB_shader_objects.java +++ b/src/templates/org/lwjgl/opengl/ARB_shader_objects.java @@ -177,17 +177,19 @@ public interface ARB_shader_objects { void glUniformMatrix4fvARB(int location, @AutoSize(value = "matrices", expression = " >> 4") @GLsizei int count, boolean transpose, FloatBuffer matrices); @StripPostfix("params") - void glGetObjectParameterfvARB(@GLhandleARB int obj, @GLenum int pname, @Check FloatBuffer params); + void glGetObjectParameterfvARB(@GLhandleARB int obj, @GLenum int pname, @OutParameter @Check FloatBuffer params); @StripPostfix("params") - void glGetObjectParameterivARB(@GLhandleARB int obj, @GLenum int pname, @Check IntBuffer params); + void glGetObjectParameterivARB(@GLhandleARB int obj, @GLenum int pname, @OutParameter @Check IntBuffer params); void glGetInfoLogARB(@GLhandleARB int obj, @AutoSize("infoLog") @GLsizei int maxLength, + @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, @GLcharARB ByteBuffer infoLog); void glGetAttachedObjectsARB(@GLhandleARB int containerObj, @AutoSize("obj") @GLsizei int maxCount, + @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer count, @GLhandleARB IntBuffer obj); @@ -201,6 +203,7 @@ public interface ARB_shader_objects { int glGetUniformLocationARB(@GLhandleARB int programObj, @NullTerminated @Const @GLcharARB ByteBuffer name); void glGetActiveUniformARB(@GLhandleARB int programObj, @GLuint int index, @AutoSize("name") @GLsizei int maxLength, + @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, @Check("1") IntBuffer size, @@ -209,12 +212,13 @@ public interface ARB_shader_objects { @GLcharARB ByteBuffer name); @StripPostfix("params") - void glGetUniformfvARB(@GLhandleARB int programObj, int location, @Check FloatBuffer params); + void glGetUniformfvARB(@GLhandleARB int programObj, int location, @OutParameter @Check FloatBuffer params); @StripPostfix("params") - void glGetUniformivARB(@GLhandleARB int programObj, int location, @Check IntBuffer params); + void glGetUniformivARB(@GLhandleARB int programObj, int location, @OutParameter @Check IntBuffer params); void glGetShaderSourceARB(@GLhandleARB int obj, @AutoSize("source") @GLsizei int maxLength, + @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, @GLcharARB ByteBuffer source); diff --git a/src/templates/org/lwjgl/opengl/ARB_texture_compression.java b/src/templates/org/lwjgl/opengl/ARB_texture_compression.java index b7cb6397..6cb9ad77 100644 --- a/src/templates/org/lwjgl/opengl/ARB_texture_compression.java +++ b/src/templates/org/lwjgl/opengl/ARB_texture_compression.java @@ -91,6 +91,7 @@ public interface ARB_texture_compression { ByteBuffer pData); void glGetCompressedTexImageARB(@GLenum int target, int lod, + @OutParameter @BufferObject(BufferKind.PackPBO) @Check @GLvoid diff --git a/src/templates/org/lwjgl/opengl/ARB_vertex_program.java b/src/templates/org/lwjgl/opengl/ARB_vertex_program.java index b02418b7..af1e07b4 100644 --- a/src/templates/org/lwjgl/opengl/ARB_vertex_program.java +++ b/src/templates/org/lwjgl/opengl/ARB_vertex_program.java @@ -130,13 +130,13 @@ public interface ARB_vertex_program extends ARB_program { void glDisableVertexAttribArrayARB(@GLuint int index); @StripPostfix("params") - void glGetVertexAttribfvARB(@GLuint int index, @GLenum int pname, @Check FloatBuffer params); + void glGetVertexAttribfvARB(@GLuint int index, @GLenum int pname, @OutParameter @Check FloatBuffer params); @StripPostfix("params") - void glGetVertexAttribdvARB(@GLuint int index, @GLenum int pname, @Check DoubleBuffer params); + void glGetVertexAttribdvARB(@GLuint int index, @GLenum int pname, @OutParameter @Check DoubleBuffer params); @StripPostfix("params") - void glGetVertexAttribivARB(@GLuint int index, @GLenum int pname, @Check IntBuffer params); + void glGetVertexAttribivARB(@GLuint int index, @GLenum int pname, @OutParameter @Check IntBuffer params); @StripPostfix("result") void glGetVertexAttribPointervARB(@GLuint int index, @GLenum int pname, @Result @GLvoid ByteBuffer result); diff --git a/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java b/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java index 558d0f89..91504231 100644 --- a/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java +++ b/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java @@ -144,23 +144,27 @@ public interface ARB_vertex_shader { void glGetActiveAttribARB(@GLhandleARB int programObj, @GLuint int index, @AutoSize("name") @GLsizei int maxLength, + @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, + @OutParameter @Check("1") IntBuffer size, + @OutParameter @Check("1") @GLenum IntBuffer type, + @OutParameter @GLcharARB ByteBuffer name); int glGetAttribLocationARB(@GLhandleARB int programObj, @NullTerminated @Const @GLcharARB ByteBuffer name); @StripPostfix("params") - void glGetVertexAttribfvARB(@GLuint int index, @GLenum int pname, @Check FloatBuffer params); + void glGetVertexAttribfvARB(@GLuint int index, @GLenum int pname, @OutParameter @Check FloatBuffer params); @StripPostfix("params") - void glGetVertexAttribdvARB(@GLuint int index, @GLenum int pname, @Check DoubleBuffer params); + void glGetVertexAttribdvARB(@GLuint int index, @GLenum int pname, @OutParameter @Check DoubleBuffer params); @StripPostfix("params") - void glGetVertexAttribivARB(@GLuint int index, @GLenum int pname, @Check IntBuffer params); + void glGetVertexAttribivARB(@GLuint int index, @GLenum int pname, @OutParameter @Check IntBuffer params); @StripPostfix("result") void glGetVertexAttribPointervARB(@GLuint int index, @GLenum int pname, @Result @GLvoid ByteBuffer result); diff --git a/src/templates/org/lwjgl/opengl/ATI_envmap_bumpmap.java b/src/templates/org/lwjgl/opengl/ATI_envmap_bumpmap.java index 35d015d7..2e8b1f64 100644 --- a/src/templates/org/lwjgl/opengl/ATI_envmap_bumpmap.java +++ b/src/templates/org/lwjgl/opengl/ATI_envmap_bumpmap.java @@ -52,8 +52,8 @@ public interface ATI_envmap_bumpmap { void glTexBumpParameterivATI(@GLenum int pname, @Check("4") @Const IntBuffer param); @StripPostfix("param") - void glGetTexBumpParameterfvATI(@GLenum int pname, @Check("4") FloatBuffer param); + void glGetTexBumpParameterfvATI(@GLenum int pname, @OutParameter @Check("4") FloatBuffer param); @StripPostfix("param") - void glGetTexBumpParameterivATI(@GLenum int pname, @Check("4") IntBuffer param); + void glGetTexBumpParameterivATI(@GLenum int pname, @OutParameter @Check("4") IntBuffer param); } diff --git a/src/templates/org/lwjgl/opengl/ATI_vertex_array_object.java b/src/templates/org/lwjgl/opengl/ATI_vertex_array_object.java index 67579d17..80387978 100644 --- a/src/templates/org/lwjgl/opengl/ATI_vertex_array_object.java +++ b/src/templates/org/lwjgl/opengl/ATI_vertex_array_object.java @@ -66,26 +66,26 @@ public interface ATI_vertex_array_object { @GLdouble Buffer pPointer, @GLenum int preserve); @StripPostfix("params") - void glGetObjectBufferfvATI(@GLuint int buffer, @GLenum int pname, @Check FloatBuffer params); + void glGetObjectBufferfvATI(@GLuint int buffer, @GLenum int pname, @OutParameter @Check FloatBuffer params); @StripPostfix("params") - void glGetObjectBufferivATI(@GLuint int buffer, @GLenum int pname, @Check IntBuffer params); + void glGetObjectBufferivATI(@GLuint int buffer, @GLenum int pname, @OutParameter @Check IntBuffer params); void glFreeObjectBufferATI(@GLuint int buffer); void glArrayObjectATI(@GLenum int array, int size, @GLenum int type, @GLsizei int stride, @GLuint int buffer, @GLuint int offset); @StripPostfix("params") - void glGetArrayObjectfvATI(@GLenum int array, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetArrayObjectfvATI(@GLenum int array, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetArrayObjectivATI(@GLenum int array, @GLenum int pname, @Check("4") IntBuffer params); + void glGetArrayObjectivATI(@GLenum int array, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); void glVariantArrayObjectATI(@GLuint int id, @GLenum int type, @GLsizei int stride, @GLuint int buffer, @GLuint int offset); @StripPostfix("params") - void glGetVariantArrayObjectfvATI(@GLuint int id, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetVariantArrayObjectfvATI(@GLuint int id, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetVariantArrayObjectivATI(@GLuint int id, @GLenum int pname, @Check("4") IntBuffer params); + void glGetVariantArrayObjectivATI(@GLuint int id, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); } diff --git a/src/templates/org/lwjgl/opengl/ATI_vertex_attrib_array_object.java b/src/templates/org/lwjgl/opengl/ATI_vertex_attrib_array_object.java index 453ddf02..bcd8e61e 100644 --- a/src/templates/org/lwjgl/opengl/ATI_vertex_attrib_array_object.java +++ b/src/templates/org/lwjgl/opengl/ATI_vertex_attrib_array_object.java @@ -39,8 +39,8 @@ public interface ATI_vertex_attrib_array_object { void glVertexAttribArrayObjectATI(@GLuint int index, int size, @GLenum int type, boolean normalized, @GLsizei int stride, @GLuint int buffer, @GLuint int offset); @StripPostfix("params") - void glGetVertexAttribArrayObjectfvATI(@GLuint int index, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetVertexAttribArrayObjectfvATI(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetVertexAttribArrayObjectivATI(@GLuint int index, @GLenum int pname, @Check("4") IntBuffer params); + void glGetVertexAttribArrayObjectivATI(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); } diff --git a/src/templates/org/lwjgl/opengl/EXT_draw_buffers2.java b/src/templates/org/lwjgl/opengl/EXT_draw_buffers2.java index 8091c1ff..4cb89f99 100644 --- a/src/templates/org/lwjgl/opengl/EXT_draw_buffers2.java +++ b/src/templates/org/lwjgl/opengl/EXT_draw_buffers2.java @@ -41,10 +41,10 @@ public interface EXT_draw_buffers2 { void glColorMaskIndexedEXT(@GLuint int buf, boolean r, boolean g, boolean b, boolean a); @StripPostfix("data") - void glGetBooleanIndexedvEXT(@GLenum int value, @GLuint int index, @Check("4") @GLboolean ByteBuffer data); + void glGetBooleanIndexedvEXT(@GLenum int value, @GLuint int index, @OutParameter @Check("4") @GLboolean ByteBuffer data); @StripPostfix("data") - void glGetIntegerIndexedvEXT(@GLenum int value, @GLuint int index, @Check("4") IntBuffer data); + void glGetIntegerIndexedvEXT(@GLenum int value, @GLuint int index, @OutParameter @Check("4") IntBuffer data); void glEnableIndexedEXT(@GLenum int target, @GLuint int index); @@ -52,4 +52,4 @@ public interface EXT_draw_buffers2 { boolean glIsEnabledIndexedEXT(@GLenum int target, @GLuint int index); -} \ No newline at end of file +} diff --git a/src/templates/org/lwjgl/opengl/EXT_framebuffer_object.java b/src/templates/org/lwjgl/opengl/EXT_framebuffer_object.java index c52aba27..108c4563 100644 --- a/src/templates/org/lwjgl/opengl/EXT_framebuffer_object.java +++ b/src/templates/org/lwjgl/opengl/EXT_framebuffer_object.java @@ -143,7 +143,7 @@ public interface EXT_framebuffer_object { void glRenderbufferStorageEXT(@GLenum int target, @GLenum int internalformat, @GLsizei int width, @GLsizei int height); @StripPostfix("params") - void glGetRenderbufferParameterivEXT(@GLenum int target, @GLenum int pname, @Check("4") IntBuffer params); + void glGetRenderbufferParameterivEXT(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); boolean glIsFramebufferEXT(@GLuint int framebuffer); @@ -165,7 +165,7 @@ public interface EXT_framebuffer_object { void glFramebufferRenderbufferEXT(@GLenum int target, @GLenum int attachment, @GLenum int renderbuffertarget, @GLuint int renderbuffer); @StripPostfix("params") - void glGetFramebufferAttachmentParameterivEXT(@GLenum int target, @GLenum int attachment, @GLenum int pname, @Check("4") IntBuffer params); + void glGetFramebufferAttachmentParameterivEXT(@GLenum int target, @GLenum int attachment, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); void glGenerateMipmapEXT(@GLenum int target); } diff --git a/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java b/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java index fb812ce6..b2abf3bb 100644 --- a/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java +++ b/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java @@ -148,10 +148,10 @@ public interface EXT_gpu_shader4 { @GLuint Buffer buffer); @StripPostfix("params") - void glGetVertexAttribIivEXT(@GLuint int index, @GLenum int pname, @Check("4")IntBuffer params); + void glGetVertexAttribIivEXT(@GLuint int index, @GLenum int pname, @OutParameter @Check("4")IntBuffer params); @StripPostfix("params") - void glGetVertexAttribIuivEXT(@GLuint int index, @GLenum int pname, @Check("4") @GLuint IntBuffer params); + void glGetVertexAttribIuivEXT(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") @GLuint IntBuffer params); void glUniform1uiEXT(int location, @GLuint int v0); @@ -174,10 +174,10 @@ public interface EXT_gpu_shader4 { void glUniform4uivEXT(int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const @GLuint IntBuffer value); @StripPostfix("params") - void glGetUniformuivEXT(@GLuint int program, int location, @Check @GLuint IntBuffer params); + void glGetUniformuivEXT(@GLuint int program, int location, @OutParameter @Check @GLuint IntBuffer params); void glBindFragDataLocationEXT(@GLuint int program, @GLuint int colorNumber, @NullTerminated @Const @GLchar ByteBuffer name); int glGetFragDataLocationEXT(@GLuint int program, @NullTerminated @Const @GLchar ByteBuffer name); -} \ No newline at end of file +} diff --git a/src/templates/org/lwjgl/opengl/EXT_paletted_texture.java b/src/templates/org/lwjgl/opengl/EXT_paletted_texture.java index 4419ef94..70f72a64 100644 --- a/src/templates/org/lwjgl/opengl/EXT_paletted_texture.java +++ b/src/templates/org/lwjgl/opengl/EXT_paletted_texture.java @@ -85,6 +85,7 @@ public interface EXT_paletted_texture { @GLdouble Buffer data); void glGetColorTableEXT(@GLenum int target, @GLenum int format, @GLenum int type, + @OutParameter @Check @GLbyte @GLshort @@ -93,8 +94,8 @@ public interface EXT_paletted_texture { @GLdouble Buffer data); @StripPostfix("params") - void glGetColorTableParameterivEXT(@GLenum int target, @GLenum int pname, @Check("4") IntBuffer params); + void glGetColorTableParameterivEXT(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("params") - void glGetColorTableParameterfvEXT(@GLenum int target, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetColorTableParameterfvEXT(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); } diff --git a/src/templates/org/lwjgl/opengl/EXT_texture_integer.java b/src/templates/org/lwjgl/opengl/EXT_texture_integer.java index e0dc078e..081fc3a2 100644 --- a/src/templates/org/lwjgl/opengl/EXT_texture_integer.java +++ b/src/templates/org/lwjgl/opengl/EXT_texture_integer.java @@ -35,6 +35,7 @@ import org.lwjgl.util.generator.Check; import org.lwjgl.util.generator.GLenum; import org.lwjgl.util.generator.GLuint; import org.lwjgl.util.generator.StripPostfix; +import org.lwjgl.util.generator.OutParameter; import java.nio.IntBuffer; @@ -113,15 +114,15 @@ public interface EXT_texture_integer { void glClearColorIuiEXT(@GLuint int r, @GLuint int g, @GLuint int b, @GLuint int a); @StripPostfix("params") - void glTexParameterIivEXT(@GLenum int target, @GLenum int pname, @Check("4")IntBuffer params); + void glTexParameterIivEXT(@GLenum int target, @GLenum int pname, @Check("4") IntBuffer params); @StripPostfix("params") void glTexParameterIuivEXT(@GLenum int target, @GLenum int pname, @Check("4") @GLuint IntBuffer params); @StripPostfix("params") - void glGetTexParameterIivEXT(@GLenum int target, @GLenum int pname, @Check("4")IntBuffer params); + void glGetTexParameterIivEXT(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("params") - void glGetTexParameterIuivEXT(@GLenum int target, @GLenum int pname, @Check("4") @GLuint IntBuffer params); + void glGetTexParameterIuivEXT(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") @GLuint IntBuffer params); -} \ No newline at end of file +} diff --git a/src/templates/org/lwjgl/opengl/EXT_timer_query.java b/src/templates/org/lwjgl/opengl/EXT_timer_query.java index ee6c842b..9a060986 100644 --- a/src/templates/org/lwjgl/opengl/EXT_timer_query.java +++ b/src/templates/org/lwjgl/opengl/EXT_timer_query.java @@ -44,9 +44,9 @@ public interface EXT_timer_query { int GL_TIME_ELAPSED_EXT = 0x88BF; @StripPostfix("params") - void glGetQueryObjecti64vEXT(@GLuint int id, @GLenum int pname, @Check("1") @GLint64EXT LongBuffer params); + void glGetQueryObjecti64vEXT(@GLuint int id, @GLenum int pname, @OutParameter @Check("1") @GLint64EXT LongBuffer params); @StripPostfix("params") - void glGetQueryObjectui64vEXT(@GLuint int id, @GLenum int pname, @Check("1") @GLuint64EXT LongBuffer params); + void glGetQueryObjectui64vEXT(@GLuint int id, @GLenum int pname, @OutParameter @Check("1") @GLuint64EXT LongBuffer params); -} \ No newline at end of file +} diff --git a/src/templates/org/lwjgl/opengl/EXT_vertex_shader.java b/src/templates/org/lwjgl/opengl/EXT_vertex_shader.java index e519ead1..4015dc6a 100644 --- a/src/templates/org/lwjgl/opengl/EXT_vertex_shader.java +++ b/src/templates/org/lwjgl/opengl/EXT_vertex_shader.java @@ -259,32 +259,32 @@ public interface EXT_vertex_shader { boolean glIsVariantEnabledEXT(@GLuint int id, @GLenum int cap); @StripPostfix("pbData") - void glGetVariantBooleanvEXT(@GLuint int id, @GLenum int value, @Check("4") ByteBuffer pbData); + void glGetVariantBooleanvEXT(@GLuint int id, @GLenum int value, @OutParameter @Check("4") ByteBuffer pbData); @StripPostfix("pbData") - void glGetVariantIntegervEXT(@GLuint int id, @GLenum int value, @Check("4") IntBuffer pbData); + void glGetVariantIntegervEXT(@GLuint int id, @GLenum int value, @OutParameter @Check("4") IntBuffer pbData); @StripPostfix("pbData") - void glGetVariantFloatvEXT(@GLuint int id, @GLenum int value, @Check("4") FloatBuffer pbData); + void glGetVariantFloatvEXT(@GLuint int id, @GLenum int value, @OutParameter @Check("4") FloatBuffer pbData); @StripPostfix("pbData") - void glGetVariantPointervEXT(@GLuint int id, @GLenum int value, @Result @GLvoid ByteBuffer pbData); + void glGetVariantPointervEXT(@GLuint int id, @GLenum int value, @OutParameter @Result @GLvoid ByteBuffer pbData); @StripPostfix("pbData") - void glGetInvariantBooleanvEXT(@GLuint int id, @GLenum int value, @Check("4") ByteBuffer pbData); + void glGetInvariantBooleanvEXT(@GLuint int id, @GLenum int value, @OutParameter @Check("4") ByteBuffer pbData); @StripPostfix("pbData") - void glGetInvariantIntegervEXT(@GLuint int id, @GLenum int value, @Check("4") IntBuffer pbData); + void glGetInvariantIntegervEXT(@GLuint int id, @GLenum int value, @OutParameter @Check("4") IntBuffer pbData); @StripPostfix("pbData") - void glGetInvariantFloatvEXT(@GLuint int id, @GLenum int value, @Check("4") FloatBuffer pbData); + void glGetInvariantFloatvEXT(@GLuint int id, @GLenum int value, @OutParameter @Check("4") FloatBuffer pbData); @StripPostfix("pbData") - void glGetLocalConstantBooleanvEXT(@GLuint int id, @GLenum int value, @Check("4") ByteBuffer pbData); + void glGetLocalConstantBooleanvEXT(@GLuint int id, @GLenum int value, @OutParameter @Check("4") ByteBuffer pbData); @StripPostfix("pbData") - void glGetLocalConstantIntegervEXT(@GLuint int id, @GLenum int value, @Check("4") IntBuffer pbData); + void glGetLocalConstantIntegervEXT(@GLuint int id, @GLenum int value, @OutParameter @Check("4") IntBuffer pbData); @StripPostfix("pbData") - void glGetLocalConstantFloatvEXT(@GLuint int id, @GLenum int value, @Check("4") FloatBuffer pbData); + void glGetLocalConstantFloatvEXT(@GLuint int id, @GLenum int value, @OutParameter @Check("4") FloatBuffer pbData); } diff --git a/src/templates/org/lwjgl/opengl/GL11.java b/src/templates/org/lwjgl/opengl/GL11.java index 16904da1..22fa7255 100644 --- a/src/templates/org/lwjgl/opengl/GL11.java +++ b/src/templates/org/lwjgl/opengl/GL11.java @@ -886,51 +886,51 @@ public interface GL11 { void glFeedbackBuffer(@AutoSize("buffer") @GLsizei int size, @GLenum int type, FloatBuffer buffer); @StripPostfix("values") - void glGetPixelMapfv(@GLenum int map, @Check("256") @BufferObject(BufferKind.PackPBO) FloatBuffer values); + void glGetPixelMapfv(@GLenum int map, @OutParameter @Check("256") @BufferObject(BufferKind.PackPBO) FloatBuffer values); @StripPostfix("values") - void glGetPixelMapuiv(@GLenum int map, @Check("256") @BufferObject(BufferKind.PackPBO) @GLuint IntBuffer values); + void glGetPixelMapuiv(@GLenum int map, @OutParameter @Check("256") @BufferObject(BufferKind.PackPBO) @GLuint IntBuffer values); @StripPostfix("values") - void glGetPixelMapusv(@GLenum int map, @Check("256") @BufferObject(BufferKind.PackPBO) @GLushort ShortBuffer values); + void glGetPixelMapusv(@GLenum int map, @OutParameter @Check("256") @BufferObject(BufferKind.PackPBO) @GLushort ShortBuffer values); @StripPostfix("params") - void glGetMaterialfv(@GLenum int face, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetMaterialfv(@GLenum int face, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetMaterialiv(@GLenum int face, @GLenum int pname, @Check("4") IntBuffer params); + void glGetMaterialiv(@GLenum int face, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("v") - void glGetMapfv(@GLenum int target, @GLenum int query, @Check("256") FloatBuffer v); + void glGetMapfv(@GLenum int target, @GLenum int query, @OutParameter @Check("256") FloatBuffer v); @StripPostfix("v") - void glGetMapdv(@GLenum int target, @GLenum int query, @Check("256") DoubleBuffer v); + void glGetMapdv(@GLenum int target, @GLenum int query, @OutParameter @Check("256") DoubleBuffer v); @StripPostfix("v") - void glGetMapiv(@GLenum int target, @GLenum int query, @Check("256") IntBuffer v); + void glGetMapiv(@GLenum int target, @GLenum int query, @OutParameter @Check("256") IntBuffer v); @StripPostfix("params") - void glGetLightfv(@GLenum int light, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetLightfv(@GLenum int light, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetLightiv(@GLenum int light, @GLenum int pname, @Check("4") IntBuffer params); + void glGetLightiv(@GLenum int light, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @NoErrorCheck int glGetError(); - void glGetClipPlane(@GLenum int plane, @Check("4") DoubleBuffer equation); + void glGetClipPlane(@GLenum int plane, @OutParameter @Check("4") DoubleBuffer equation); @StripPostfix("params") - void glGetBooleanv(@GLenum int pname, @Check("16") @GLboolean ByteBuffer params); + void glGetBooleanv(@GLenum int pname, @OutParameter @Check("16") @GLboolean ByteBuffer params); @StripPostfix("params") - void glGetDoublev(@GLenum int pname, @Check("16") DoubleBuffer params); + void glGetDoublev(@GLenum int pname, @OutParameter @Check("16") DoubleBuffer params); @StripPostfix("params") - void glGetFloatv(@GLenum int pname, @Check("16") FloatBuffer params); + void glGetFloatv(@GLenum int pname, @OutParameter @Check("16") FloatBuffer params); @StripPostfix("params") - void glGetIntegerv(@GLenum int pname, @Check("16") IntBuffer params); + void glGetIntegerv(@GLenum int pname, @OutParameter @Check("16") IntBuffer params); void glGenTextures(@AutoSize("textures") @GLsizei int n, @GLuint IntBuffer textures); @@ -975,18 +975,19 @@ public interface GL11 { void glHint(@GLenum int target, @GLenum int mode); @StripPostfix("params") - void glGetTexParameterfv(@GLenum int target, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetTexParameterfv(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetTexParameteriv(@GLenum int target, @GLenum int pname, @Check("4") IntBuffer params); + void glGetTexParameteriv(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("params") - void glGetTexLevelParameterfv(@GLenum int target, int level, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetTexLevelParameterfv(@GLenum int target, int level, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetTexLevelParameteriv(@GLenum int target, int level, @GLenum int pname, @Check("4") IntBuffer params); + void glGetTexLevelParameteriv(@GLenum int target, int level, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); void glGetTexImage(@GLenum int target, int level, @GLenum int format, @GLenum int type, + @OutParameter @BufferObject(BufferKind.PackPBO) @Check("GLChecks.calculateImageStorage(pixels, format, type, 1, 1, 1)") @GLbyte @@ -996,24 +997,24 @@ public interface GL11 { @GLdouble Buffer pixels); @StripPostfix("params") - void glGetTexGeniv(@GLenum int coord, @GLenum int pname, @Check("4") IntBuffer params); + void glGetTexGeniv(@GLenum int coord, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("params") - void glGetTexGenfv(@GLenum int coord, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetTexGenfv(@GLenum int coord, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetTexGendv(@GLenum int coord, @GLenum int pname, @Check("4") DoubleBuffer params); + void glGetTexGendv(@GLenum int coord, @GLenum int pname, @OutParameter @Check("4") DoubleBuffer params); @StripPostfix("params") - void glGetTexEnviv(@GLenum int coord, @GLenum int pname, @Check("4") IntBuffer params); + void glGetTexEnviv(@GLenum int coord, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("params") - void glGetTexEnvfv(@GLenum int coord, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetTexEnvfv(@GLenum int coord, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @Const String glGetString(int name); - void glGetPolygonStipple(@BufferObject(BufferKind.PackPBO) @Check("1024") @GLubyte ByteBuffer mask); + void glGetPolygonStipple(@OutParameter @BufferObject(BufferKind.PackPBO) @Check("1024") @GLubyte ByteBuffer mask); boolean glIsList(@GLuint int list); diff --git a/src/templates/org/lwjgl/opengl/GL13.java b/src/templates/org/lwjgl/opengl/GL13.java index 0120d69c..02551e4e 100644 --- a/src/templates/org/lwjgl/opengl/GL13.java +++ b/src/templates/org/lwjgl/opengl/GL13.java @@ -194,6 +194,7 @@ public interface GL13 { // TODO: check buffer size valid void glGetCompressedTexImage(@GLenum int target, int lod, + @OutParameter @BufferObject(BufferKind.PackPBO) @Check @GLbyte diff --git a/src/templates/org/lwjgl/opengl/GL15.java b/src/templates/org/lwjgl/opengl/GL15.java index 87a7fbc3..edcaa54f 100644 --- a/src/templates/org/lwjgl/opengl/GL15.java +++ b/src/templates/org/lwjgl/opengl/GL15.java @@ -99,6 +99,7 @@ public interface GL15 { @GLdouble Buffer data); void glGetBufferSubData(@GLenum int target, @GLintptr long offset, @AutoSize("data") @GLsizeiptr long size, + @OutParameter @Check @GLbyte @GLshort @@ -128,11 +129,11 @@ public interface GL15 { boolean glUnmapBuffer(@GLenum int target); @StripPostfix("params") - void glGetBufferParameteriv(@GLenum int target, @GLenum int pname, @Check("4") IntBuffer params); + void glGetBufferParameteriv(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("pointer") @AutoResultSize("GLChecks.getBufferObjectSize(caps, target)") - void glGetBufferPointerv(@GLenum int target, @GLenum int pname, @Result @GLvoid ByteBuffer pointer); + void glGetBufferPointerv(@GLenum int target, @GLenum int pname, @OutParameter @Result @GLvoid ByteBuffer pointer); // ----------------------------------------------------------------- // ---------------------- ARB_occlusion_query ---------------------- @@ -168,11 +169,11 @@ public interface GL15 { void glEndQuery(@GLenum int target); @StripPostfix("params") - void glGetQueryiv(@GLenum int target, @GLenum int pname, @Check("1") IntBuffer params); + void glGetQueryiv(@GLenum int target, @GLenum int pname, @OutParameter @Check("1") IntBuffer params); @StripPostfix("params") - void glGetQueryObjectiv(@GLenum int id, @GLenum int pname, @Check("1") @GLint IntBuffer params); + void glGetQueryObjectiv(@GLenum int id, @GLenum int pname, @OutParameter @Check("1") @GLint IntBuffer params); @StripPostfix("params") - void glGetQueryObjectuiv(@GLenum int id, @GLenum int pname, @Check("1") @GLuint IntBuffer params); + void glGetQueryObjectuiv(@GLenum int id, @GLenum int pname, @OutParameter @Check("1") @GLuint IntBuffer params); } diff --git a/src/templates/org/lwjgl/opengl/GL20.java b/src/templates/org/lwjgl/opengl/GL20.java index 8d0c9e8c..bce7e6b3 100644 --- a/src/templates/org/lwjgl/opengl/GL20.java +++ b/src/templates/org/lwjgl/opengl/GL20.java @@ -193,22 +193,25 @@ public interface GL20 { boolean transpose, FloatBuffer matrices); @StripPostfix("params") - void glGetShaderiv(@GLuint int shader, @GLenum int pname, @Check IntBuffer params); + void glGetShaderiv(@GLuint int shader, @GLenum int pname, @OutParameter @Check IntBuffer params); @StripPostfix("params") - void glGetProgramiv(@GLuint int program, @GLenum int pname, @Check IntBuffer params); + void glGetProgramiv(@GLuint int program, @GLenum int pname, @OutParameter @Check IntBuffer params); void glGetShaderInfoLog(@GLuint int shader, @AutoSize("infoLog") @GLsizei int maxLength, + @OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length, @GLchar ByteBuffer infoLog); void glGetProgramInfoLog(@GLuint int program, @AutoSize("infoLog") @GLsizei int maxLength, + @OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length, @GLchar ByteBuffer infoLog); void glGetAttachedShaders(@GLuint int program, @AutoSize("shaders") @GLsizei int maxCount, + @OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer count, @GLuint IntBuffer shaders); @@ -226,20 +229,20 @@ public interface GL20 { void glGetActiveUniform(@GLuint int program, @GLuint int index, @AutoSize("name") @GLsizei int maxLength, @Check(value = "1", canBeNull = true) - @GLsizei IntBuffer length, + @OutParameter @GLsizei IntBuffer length, @Check - @GLsizei IntBuffer size, + @OutParameter @GLsizei IntBuffer size, @Check - @GLenum IntBuffer type, - @GLchar ByteBuffer name); + @OutParameter @GLenum IntBuffer type, + @OutParameter @GLchar ByteBuffer name); @StripPostfix("params") - void glGetUniformfv(@GLuint int program, int location, @Check FloatBuffer params); + void glGetUniformfv(@GLuint int program, int location, @OutParameter @Check FloatBuffer params); @StripPostfix("params") - void glGetUniformiv(@GLuint int program, int location, @Check IntBuffer params); + void glGetUniformiv(@GLuint int program, int location, @OutParameter @Check IntBuffer params); - void glGetShaderSource(@GLuint int shader, @AutoSize("source") @GLsizei int maxLength, + void glGetShaderSource(@GLuint int shader, @OutParameter @AutoSize("source") @GLsizei int maxLength, @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, @GLchar ByteBuffer source); @@ -293,13 +296,13 @@ public interface GL20 { void glDisableVertexAttribArray(@GLuint int index); @StripPostfix("params") - void glGetVertexAttribfv(@GLuint int index, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetVertexAttribfv(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetVertexAttribdv(@GLuint int index, @GLenum int pname, @Check("4") DoubleBuffer params); + void glGetVertexAttribdv(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") DoubleBuffer params); @StripPostfix("params") - void glGetVertexAttribiv(@GLuint int index, @GLenum int pname, @Check("4") IntBuffer params); + void glGetVertexAttribiv(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("pointer") void glGetVertexAttribPointerv(@GLuint int index, @GLenum int pname, @Result @GLvoid ByteBuffer pointer); @@ -352,6 +355,7 @@ public interface GL20 { void glBindAttribLocation(@GLuint int program, @GLuint int index, @NullTerminated @Const @GLchar ByteBuffer name); void glGetActiveAttrib(@GLuint int program, @GLuint int index, @AutoSize("name") @GLsizei int maxLength, + @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, @Check("1") IntBuffer size, diff --git a/src/templates/org/lwjgl/opengl/NV_evaluators.java b/src/templates/org/lwjgl/opengl/NV_evaluators.java index 9592dafa..4e4e12d0 100644 --- a/src/templates/org/lwjgl/opengl/NV_evaluators.java +++ b/src/templates/org/lwjgl/opengl/NV_evaluators.java @@ -62,6 +62,7 @@ public interface NV_evaluators { int GL_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7; void glGetMapControlPointsNV(@GLenum int target, @GLuint int index, @GLenum int type, @GLsizei int ustride, @GLsizei int vstride, boolean packed, + @OutParameter @Check @Const @GLfloat Buffer pPoints); @@ -75,16 +76,16 @@ public interface NV_evaluators { void glMapParameterivNV(@GLenum int target, @GLenum int pname, @Check("4") @Const IntBuffer params); @StripPostfix("params") - void glGetMapParameterfvNV(@GLenum int target, @GLenum int pname, @Check("4") @Const FloatBuffer params); + void glGetMapParameterfvNV(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") @Const FloatBuffer params); @StripPostfix("params") - void glGetMapParameterivNV(@GLenum int target, @GLenum int pname, @Check("4") @Const IntBuffer params); + void glGetMapParameterivNV(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") @Const IntBuffer params); @StripPostfix("params") - void glGetMapAttribParameterfvNV(@GLenum int target, @GLuint int index, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetMapAttribParameterfvNV(@GLenum int target, @GLuint int index, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetMapAttribParameterivNV(@GLenum int target, @GLuint int index, @GLenum int pname, @Check("4") IntBuffer params); + void glGetMapAttribParameterivNV(@GLenum int target, @GLuint int index, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); void glEvalMapsNV(@GLenum int target, @GLenum int mode); } diff --git a/src/templates/org/lwjgl/opengl/NV_fence.java b/src/templates/org/lwjgl/opengl/NV_fence.java index 7825984f..eb048295 100644 --- a/src/templates/org/lwjgl/opengl/NV_fence.java +++ b/src/templates/org/lwjgl/opengl/NV_fence.java @@ -52,5 +52,5 @@ public interface NV_fence { boolean glIsFenceNV(@GLuint int fence); - void glGetFenceivNV(@GLuint int fence, @GLenum int pname, @Check("4") IntBuffer piParams); + void glGetFenceivNV(@GLuint int fence, @GLenum int pname, @OutParameter @Check("4") IntBuffer piParams); } diff --git a/src/templates/org/lwjgl/opengl/NV_fragment_program.java b/src/templates/org/lwjgl/opengl/NV_fragment_program.java index 30644a49..54c94c45 100644 --- a/src/templates/org/lwjgl/opengl/NV_fragment_program.java +++ b/src/templates/org/lwjgl/opengl/NV_fragment_program.java @@ -61,9 +61,9 @@ public interface NV_fragment_program extends NV_program { void glProgramNamedParameter4dNV(@GLuint int id, @AutoSize("name") @GLsizei int length, @Const @GLubyte ByteBuffer name, double x, double y, double z, double w); @StripPostfix("params") - void glGetProgramNamedParameterfvNV(@GLuint int id, @AutoSize("name") @GLsizei int length, @Const @GLubyte ByteBuffer name, @Check("4") FloatBuffer params); + void glGetProgramNamedParameterfvNV(@GLuint int id, @AutoSize("name") @GLsizei int length, @Const @GLubyte ByteBuffer name, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetProgramNamedParameterdvNV(@GLuint int id, @AutoSize("name") @GLsizei int length, @Const @GLubyte ByteBuffer name, @Check("4") DoubleBuffer params); + void glGetProgramNamedParameterdvNV(@GLuint int id, @AutoSize("name") @GLsizei int length, @Const @GLubyte ByteBuffer name, @OutParameter @Check("4") DoubleBuffer params); } diff --git a/src/templates/org/lwjgl/opengl/NV_gpu_program4.java b/src/templates/org/lwjgl/opengl/NV_gpu_program4.java index 04aafa49..6061bb81 100644 --- a/src/templates/org/lwjgl/opengl/NV_gpu_program4.java +++ b/src/templates/org/lwjgl/opengl/NV_gpu_program4.java @@ -92,17 +92,17 @@ public interface NV_gpu_program4 { // --- @StripPostfix("params") - void glGetProgramLocalParameterIivNV(@GLenum int target, @GLuint int index, @Check("4") IntBuffer params); + void glGetProgramLocalParameterIivNV(@GLenum int target, @GLuint int index, @OutParameter @Check("4") IntBuffer params); @StripPostfix("params") - void glGetProgramLocalParameterIuivNV(@GLenum int target, @GLuint int index, @Check("4") @GLuint IntBuffer params); + void glGetProgramLocalParameterIuivNV(@GLenum int target, @GLuint int index, @OutParameter @Check("4") @GLuint IntBuffer params); // --- @StripPostfix("params") - void glGetProgramEnvParameterIivNV(@GLenum int target, @GLuint int index, @Check("4")IntBuffer params); + void glGetProgramEnvParameterIivNV(@GLenum int target, @GLuint int index, @OutParameter @Check("4")IntBuffer params); @StripPostfix("params") - void glGetProgramEnvParameterIuivNV(@GLenum int target, @GLuint int index, @Check("4") @GLuint IntBuffer params); + void glGetProgramEnvParameterIuivNV(@GLenum int target, @GLuint int index, @OutParameter @Check("4") @GLuint IntBuffer params); -} \ No newline at end of file +} diff --git a/src/templates/org/lwjgl/opengl/NV_occlusion_query.java b/src/templates/org/lwjgl/opengl/NV_occlusion_query.java index fd4f82f4..a78fc037 100644 --- a/src/templates/org/lwjgl/opengl/NV_occlusion_query.java +++ b/src/templates/org/lwjgl/opengl/NV_occlusion_query.java @@ -55,8 +55,8 @@ public interface NV_occlusion_query { void glEndOcclusionQueryNV(); @StripPostfix("params") - void glGetOcclusionQueryuivNV(@GLuint int id, @GLenum int pname, @Check("1") @GLuint IntBuffer params); + void glGetOcclusionQueryuivNV(@GLuint int id, @GLenum int pname, @OutParameter @Check("1") @GLuint IntBuffer params); @StripPostfix("params") - void glGetOcclusionQueryivNV(@GLuint int id, @GLenum int pname, @Check("1") IntBuffer params); + void glGetOcclusionQueryivNV(@GLuint int id, @GLenum int pname, @OutParameter @Check("1") IntBuffer params); } diff --git a/src/templates/org/lwjgl/opengl/NV_program.java b/src/templates/org/lwjgl/opengl/NV_program.java index ea2e67b9..92979f38 100644 --- a/src/templates/org/lwjgl/opengl/NV_program.java +++ b/src/templates/org/lwjgl/opengl/NV_program.java @@ -70,9 +70,9 @@ public interface NV_program { void glGenProgramsNV(@AutoSize("programs") @GLsizei int n, @GLuint IntBuffer programs); @StripPostfix("params") - void glGetProgramivNV(@GLuint int programID, @GLenum int parameterName, @Check @GLint IntBuffer params); + void glGetProgramivNV(@GLuint int programID, @GLenum int parameterName, @OutParameter @Check @GLint IntBuffer params); - void glGetProgramStringNV(@GLuint int programID, @GLenum int parameterName, @Check @GLubyte Buffer paramString); + void glGetProgramStringNV(@GLuint int programID, @GLenum int parameterName, @OutParameter @Check @GLubyte Buffer paramString); boolean glIsProgramNV(@GLuint int programID); diff --git a/src/templates/org/lwjgl/opengl/NV_register_combiners.java b/src/templates/org/lwjgl/opengl/NV_register_combiners.java index 745bfa79..0c7eb47f 100644 --- a/src/templates/org/lwjgl/opengl/NV_register_combiners.java +++ b/src/templates/org/lwjgl/opengl/NV_register_combiners.java @@ -105,20 +105,20 @@ public interface NV_register_combiners { void glFinalCombinerInputNV(@GLenum int variable, @GLenum int input, @GLenum int mapping, @GLenum int componentUsage); @StripPostfix("params") - void glGetCombinerInputParameterfvNV(@GLenum int stage, @GLenum int portion, @GLenum int variable, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetCombinerInputParameterfvNV(@GLenum int stage, @GLenum int portion, @GLenum int variable, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetCombinerInputParameterivNV(@GLenum int stage, @GLenum int portion, @GLenum int variable, @GLenum int pname, @Check("4") IntBuffer params); + void glGetCombinerInputParameterivNV(@GLenum int stage, @GLenum int portion, @GLenum int variable, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("params") - void glGetCombinerOutputParameterfvNV(@GLenum int stage, @GLenum int portion, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetCombinerOutputParameterfvNV(@GLenum int stage, @GLenum int portion, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetCombinerOutputParameterivNV(@GLenum int stage, @GLenum int portion, @GLenum int pname, @Check("4") IntBuffer params); + void glGetCombinerOutputParameterivNV(@GLenum int stage, @GLenum int portion, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); @StripPostfix("params") - void glGetFinalCombinerInputParameterfvNV(@GLenum int variable, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetFinalCombinerInputParameterfvNV(@GLenum int variable, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetFinalCombinerInputParameterivNV(@GLenum int variable, @GLenum int pname, @Check("4") IntBuffer params); + void glGetFinalCombinerInputParameterivNV(@GLenum int variable, @GLenum int pname, @OutParameter @Check("4") IntBuffer params); } diff --git a/src/templates/org/lwjgl/opengl/NV_register_combiners2.java b/src/templates/org/lwjgl/opengl/NV_register_combiners2.java index 744b1a78..dcd22da9 100644 --- a/src/templates/org/lwjgl/opengl/NV_register_combiners2.java +++ b/src/templates/org/lwjgl/opengl/NV_register_combiners2.java @@ -42,5 +42,5 @@ public interface NV_register_combiners2 { void glCombinerStageParameterfvNV(@GLenum int stage, @GLenum int pname, @Const @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetCombinerStageParameterfvNV(@GLenum int stage, @GLenum int pname, @Check("4") FloatBuffer params); + void glGetCombinerStageParameterfvNV(@GLenum int stage, @GLenum int pname, @OutParameter @Check("4") FloatBuffer params); } diff --git a/src/templates/org/lwjgl/opengl/NV_transform_feedback.java b/src/templates/org/lwjgl/opengl/NV_transform_feedback.java index 8112e59f..82be210b 100644 --- a/src/templates/org/lwjgl/opengl/NV_transform_feedback.java +++ b/src/templates/org/lwjgl/opengl/NV_transform_feedback.java @@ -128,12 +128,12 @@ public interface NV_transform_feedback { int glGetVaryingLocationNV(@GLuint int program, @NullTerminated @Const @GLchar ByteBuffer name); void glGetActiveVaryingNV(@GLuint int program, @GLuint int index, @AutoSize("name") @GLsizei int bufSize, - @Check("1") @GLsizei IntBuffer length, - @Check("1") @GLsizei IntBuffer size, - @Check("1") @GLenum IntBuffer type, @GLchar ByteBuffer name); + @OutParameter @Check("1") @GLsizei IntBuffer length, + @OutParameter @Check("1") @GLsizei IntBuffer size, + @OutParameter @Check("1") @GLenum IntBuffer type, @GLchar ByteBuffer name); void glActiveVaryingNV(@GLuint int program, @NullTerminated @Const @GLchar ByteBuffer name); - void glGetTransformFeedbackVaryingNV(@GLuint int program, @GLuint int index, @Check("1") IntBuffer location); + void glGetTransformFeedbackVaryingNV(@GLuint int program, @GLuint int index, @OutParameter @Check("1") IntBuffer location); } diff --git a/src/templates/org/lwjgl/opengl/NV_vertex_program.java b/src/templates/org/lwjgl/opengl/NV_vertex_program.java index 3a728380..4c253770 100644 --- a/src/templates/org/lwjgl/opengl/NV_vertex_program.java +++ b/src/templates/org/lwjgl/opengl/NV_vertex_program.java @@ -193,22 +193,22 @@ public interface NV_vertex_program extends NV_program { void glExecuteProgramNV(@GLenum int target, @GLuint int id, @Check("4") @Const FloatBuffer params); @StripPostfix("params") - void glGetProgramParameterfvNV(@GLenum int target, @GLuint int index, @GLenum int parameterName, @Check("4") FloatBuffer params); + void glGetProgramParameterfvNV(@GLenum int target, @GLuint int index, @GLenum int parameterName, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetProgramParameterdvNV(@GLenum int target, @GLuint int index, @GLenum int parameterName, @Check("4") DoubleBuffer params); + void glGetProgramParameterdvNV(@GLenum int target, @GLuint int index, @GLenum int parameterName, @OutParameter @Check("4") DoubleBuffer params); @StripPostfix("params") - void glGetTrackMatrixivNV(@GLenum int target, @GLuint int address, @GLenum int parameterName, @Check("4") IntBuffer params); + void glGetTrackMatrixivNV(@GLenum int target, @GLuint int address, @GLenum int parameterName, @OutParameter @Check("4") IntBuffer params); @StripPostfix("params") - void glGetVertexAttribfvNV(@GLuint int index, @GLenum int parameterName, @Check("4") FloatBuffer params); + void glGetVertexAttribfvNV(@GLuint int index, @GLenum int parameterName, @OutParameter @Check("4") FloatBuffer params); @StripPostfix("params") - void glGetVertexAttribdvNV(@GLuint int index, @GLenum int parameterName, @Check("4") DoubleBuffer params); + void glGetVertexAttribdvNV(@GLuint int index, @GLenum int parameterName, @OutParameter @Check("4") DoubleBuffer params); @StripPostfix("params") - void glGetVertexAttribivNV(@GLuint int index, @GLenum int parameterName, @Check("4") IntBuffer params); + void glGetVertexAttribivNV(@GLuint int index, @GLenum int parameterName, @OutParameter @Check("4") IntBuffer params); @StripPostfix("pointer") void glGetVertexAttribPointervNV(@GLuint int index, @GLenum int parameterName, @Result @GLvoid ByteBuffer pointer);