Added support for non-direct in glGet* style functions

This commit is contained in:
Elias Naur 2007-04-23 20:17:42 +00:00
parent 7ee398fe4e
commit b386d2185b
37 changed files with 446 additions and 167 deletions

View File

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

View File

@ -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<ParameterDeclaration, TypeInfo> 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);

View File

@ -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 <elias_naur@users.sourceforge.net>
* @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 {
}

View File

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

View File

@ -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);
/**
* <p>

View File

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

View File

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

View File

@ -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);
}
void glGetQueryObjectuivARB(@GLuint int id, @GLenum int pname, @OutParameter @Check("1") IntBuffer params);
}

View File

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

View File

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

View File

@ -91,6 +91,7 @@ public interface ARB_texture_compression {
ByteBuffer pData);
void glGetCompressedTexImageARB(@GLenum int target, int lod,
@OutParameter
@BufferObject(BufferKind.PackPBO)
@Check
@GLvoid

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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