From: <eli...@us...> - 2007-04-23 20:17:47
|
Revision: 2797 http://svn.sourceforge.net/java-game-lib/?rev=2797&view=rev Author: elias_naur Date: 2007-04-23 13:17:42 -0700 (Mon, 23 Apr 2007) Log Message: ----------- Added support for non-direct in glGet* style functions Modified Paths: -------------- trunk/LWJGL/src/java/org/lwjgl/NondirectBufferWrapper.java trunk/LWJGL/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java trunk/LWJGL/src/templates/org/lwjgl/openal/AL10.java trunk/LWJGL/src/templates/org/lwjgl/openal/AL11.java trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_buffer_object.java trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_imaging.java trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_occlusion_query.java trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_program.java trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_shader_objects.java trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_texture_compression.java trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_vertex_program.java trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_envmap_bumpmap.java trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_vertex_array_object.java trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_vertex_attrib_array_object.java trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_draw_buffers2.java trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_framebuffer_object.java trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_paletted_texture.java trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_texture_integer.java trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_timer_query.java trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_vertex_shader.java trunk/LWJGL/src/templates/org/lwjgl/opengl/GL11.java trunk/LWJGL/src/templates/org/lwjgl/opengl/GL13.java trunk/LWJGL/src/templates/org/lwjgl/opengl/GL15.java trunk/LWJGL/src/templates/org/lwjgl/opengl/GL20.java trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_evaluators.java trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_fence.java trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_fragment_program.java trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_gpu_program4.java trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_occlusion_query.java trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_program.java trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_register_combiners.java trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_register_combiners2.java trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_transform_feedback.java trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_vertex_program.java Added Paths: ----------- trunk/LWJGL/src/java/org/lwjgl/util/generator/OutParameter.java Modified: trunk/LWJGL/src/java/org/lwjgl/NondirectBufferWrapper.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/NondirectBufferWrapper.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/java/org/lwjgl/NondirectBufferWrapper.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -67,6 +67,36 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ return direct_buffer; } + private static DoubleBuffer lookupBuffer(DoubleBuffer buffer) { + CachedBuffers buffers = getCachedBuffers(buffer.remaining()*8); + return buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.double_buffer_little : buffers.double_buffer_big; + } + private static DoubleBuffer doWrap(DoubleBuffer buffer) { - CachedBuffers buffers = getCachedBuffers(buffer.remaining()*8); - DoubleBuffer direct_buffer = buffer.order() == ByteOrder.LITTLE_ENDIAN ? buffers.double_buffer_little : buffers.double_buffer_big; + DoubleBuffer direct_buffer = lookupBuffer(buffer); direct_buffer.clear(); int saved_position = buffer.position(); direct_buffer.put(buffer); Modified: trunk/LWJGL/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -50,6 +50,8 @@ 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 @@ 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 @@ 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,13 +412,29 @@ } } - 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<ParameterDeclaration, TypeInfo> typeinfos, 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) { String check_value = null; boolean can_be_null = false; Check check_annotation = param.getAnnotation(Check.class); @@ -426,7 +445,9 @@ 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 @@ } } 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); Added: trunk/LWJGL/src/java/org/lwjgl/util/generator/OutParameter.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/util/generator/OutParameter.java (rev 0) +++ trunk/LWJGL/src/java/org/lwjgl/util/generator/OutParameter.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -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 <eli...@us...> + * @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 { +} Modified: trunk/LWJGL/src/templates/org/lwjgl/openal/AL10.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/openal/AL10.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/openal/AL10.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -480,7 +480,7 @@ */ @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 @@ */ @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 @@ */ @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 @@ // 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 @@ // 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 Modified: trunk/LWJGL/src/templates/org/lwjgl/openal/AL11.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/openal/AL11.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/openal/AL11.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -100,7 +100,7 @@ // 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 @@ // 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 @@ // 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); /** * <p> Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_buffer_object.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_buffer_object.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_buffer_object.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -94,6 +94,7 @@ @GLdouble Buffer data); void glGetBufferSubDataARB(@GLenum int target, @GLintptrARB long offset, @AutoSize("data") @GLsizeiptrARB long size, + @OutParameter @Check @GLbyte @GLshort @@ -121,7 +122,7 @@ 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)") Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_imaging.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_imaging.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_imaging.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -150,6 +150,7 @@ 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 @@ 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 @@ @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 @@ @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 @@ // 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 @@ @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 @@ // 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 @@ @GLshort @GLint @GLdouble Buffer span); -} \ No newline at end of file +} Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_occlusion_query.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_occlusion_query.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_occlusion_query.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -67,11 +67,11 @@ 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); +} Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_program.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_program.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_program.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -155,21 +155,21 @@ 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); } Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_shader_objects.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_shader_objects.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_shader_objects.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -177,17 +177,19 @@ 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 @@ 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 @@ @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); Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_texture_compression.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_texture_compression.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_texture_compression.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -91,6 +91,7 @@ ByteBuffer pData); void glGetCompressedTexImageARB(@GLenum int target, int lod, + @OutParameter @BufferObject(BufferKind.PackPBO) @Check @GLvoid Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_vertex_program.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_vertex_program.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_vertex_program.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -130,13 +130,13 @@ 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); Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/ARB_vertex_shader.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -144,23 +144,27 @@ 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); Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_envmap_bumpmap.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_envmap_bumpmap.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_envmap_bumpmap.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -52,8 +52,8 @@ 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); } Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_vertex_array_object.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_vertex_array_object.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_vertex_array_object.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -66,26 +66,26 @@ @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); } Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_vertex_attrib_array_object.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_vertex_attrib_array_object.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/ATI_vertex_attrib_array_object.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -39,8 +39,8 @@ 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); } Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_draw_buffers2.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_draw_buffers2.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_draw_buffers2.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -41,10 +41,10 @@ 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 @@ boolean glIsEnabledIndexedEXT(@GLenum int target, @GLuint int index); -} \ No newline at end of file +} Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_framebuffer_object.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_framebuffer_object.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_framebuffer_object.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -143,7 +143,7 @@ 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 @@ 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); } Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_gpu_shader4.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -148,10 +148,10 @@ @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 @@ 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 +} Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_paletted_texture.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_paletted_texture.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_paletted_texture.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -85,6 +85,7 @@ @GLdouble Buffer data); void glGetColorTableEXT(@GLenum int target, @GLenum int format, @GLenum int type, + @OutParameter @Check @GLbyte @GLshort @@ -93,8 +94,8 @@ @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); } Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_texture_integer.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_texture_integer.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_texture_integer.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -35,6 +35,7 @@ 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 @@ 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 +} Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_timer_query.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_timer_query.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_timer_query.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -44,9 +44,9 @@ 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 +} Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_vertex_shader.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_vertex_shader.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_vertex_shader.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -259,32 +259,32 @@ 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); } Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/GL11.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/GL11.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/GL11.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -886,51 +886,51 @@ 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 @@ 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 @@ @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); Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/GL13.java =================================================================== --- trunk/LWJGL/src/templates/org/lwjgl/opengl/GL13.java 2007-04-23 16:47:25 UTC (rev 2796) +++ trunk/LWJGL/src/templates/org/lwjgl/opengl/GL13.java 2007-04-23 20:17:42 UTC (rev 2797) @@ -194,6 +194,7 @@ // TODO: check buffer size valid void glGetCompressedTexImage(@GLenum int target, int lod, + ... [truncated message content] |