From e6f4e08365e1c9c94ac41cc43bb7cefc36f8f36f Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Wed, 16 Mar 2005 11:47:24 +0000 Subject: [PATCH] Sync generated source files --- .../org/lwjgl/opengl/ContextCapabilities.java | 4 - src/java/org/lwjgl/opengl/GL20.java | 1032 ++++++++--------- src/native/common/org_lwjgl_opengl_GL20.c | 744 ++++++------ 3 files changed, 888 insertions(+), 892 deletions(-) diff --git a/src/java/org/lwjgl/opengl/ContextCapabilities.java b/src/java/org/lwjgl/opengl/ContextCapabilities.java index d9d74006..d7229221 100644 --- a/src/java/org/lwjgl/opengl/ContextCapabilities.java +++ b/src/java/org/lwjgl/opengl/ContextCapabilities.java @@ -734,9 +734,7 @@ public class ContextCapabilities { long GL20_glGetProgramInfoLog_pointer; long GL20_glGetShaderInfoLog_pointer; long GL20_glGetProgramiv_pointer; - long GL20_glGetProgramfv_pointer; long GL20_glGetShaderiv_pointer; - long GL20_glGetShaderfv_pointer; long GL20_glUniformMatrix4fv_pointer; long GL20_glUniformMatrix3fv_pointer; long GL20_glUniformMatrix2fv_pointer; @@ -1665,9 +1663,7 @@ public class ContextCapabilities { (GL20_glGetProgramInfoLog_pointer = GLContext.getFunctionAddress("glGetProgramInfoLog")) != 0 && (GL20_glGetShaderInfoLog_pointer = GLContext.getFunctionAddress("glGetShaderInfoLog")) != 0 && (GL20_glGetProgramiv_pointer = GLContext.getFunctionAddress("glGetProgramiv")) != 0 && - (GL20_glGetProgramfv_pointer = GLContext.getFunctionAddress("glGetProgramfv")) != 0 && (GL20_glGetShaderiv_pointer = GLContext.getFunctionAddress("glGetShaderiv")) != 0 && - (GL20_glGetShaderfv_pointer = GLContext.getFunctionAddress("glGetShaderfv")) != 0 && (GL20_glUniformMatrix4fv_pointer = GLContext.getFunctionAddress("glUniformMatrix4fv")) != 0 && (GL20_glUniformMatrix3fv_pointer = GLContext.getFunctionAddress("glUniformMatrix3fv")) != 0 && (GL20_glUniformMatrix2fv_pointer = GLContext.getFunctionAddress("glUniformMatrix2fv")) != 0 && diff --git a/src/java/org/lwjgl/opengl/GL20.java b/src/java/org/lwjgl/opengl/GL20.java index 4d987e74..0e799f06 100644 --- a/src/java/org/lwjgl/opengl/GL20.java +++ b/src/java/org/lwjgl/opengl/GL20.java @@ -7,507 +7,201 @@ import org.lwjgl.BufferChecks; import java.nio.*; public final class GL20 { - public static final int GL_SHADING_LANGUAGE_VERSION = 0x8b8c; - public static final int GL_CURRENT_PROGRAM = 0x8b8d; - public static final int GL_SHADER_TYPE = 0x8b4f; - public static final int GL_DELETE_STATUS = 0x8b80; - public static final int GL_COMPILE_STATUS = 0x8b81; - public static final int GL_LINK_STATUS = 0x8b82; - public static final int GL_VALIDATE_STATUS = 0x8b83; - public static final int GL_INFO_LOG_LENGTH = 0x8b84; - public static final int GL_ATTACHED_SHADERS = 0x8b85; - public static final int GL_ACTIVE_UNIFORMS = 0x8b86; - public static final int GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8b87; - public static final int GL_ACTIVE_ATTRIBUTES = 0x8b89; - public static final int GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8b8a; - public static final int GL_SHADER_SOURCE_LENGTH = 0x8b88; - public static final int GL_SHADER_OBJECT = 0x8b48; - public static final int GL_FLOAT_VEC2 = 0x8b50; - public static final int GL_FLOAT_VEC3 = 0x8b51; - public static final int GL_FLOAT_VEC4 = 0x8b52; - public static final int GL_INT_VEC2 = 0x8b53; - public static final int GL_INT_VEC3 = 0x8b54; - public static final int GL_INT_VEC4 = 0x8b55; - public static final int GL_BOOL = 0x8b56; - public static final int GL_BOOL_VEC2 = 0x8b57; - public static final int GL_BOOL_VEC3 = 0x8b58; - public static final int GL_BOOL_VEC4 = 0x8b59; - public static final int GL_FLOAT_MAT2 = 0x8b5a; - public static final int GL_FLOAT_MAT3 = 0x8b5b; - public static final int GL_FLOAT_MAT4 = 0x8b5c; - public static final int GL_SAMPLER_1D = 0x8b5d; - public static final int GL_SAMPLER_2D = 0x8b5e; - public static final int GL_SAMPLER_3D = 0x8b5f; - public static final int GL_SAMPLER_CUBE = 0x8b60; - public static final int GL_SAMPLER_1D_SHADOW = 0x8b61; - public static final int GL_SAMPLER_2D_SHADOW = 0x8b62; - public static final int GL_VERTEX_SHADER = 0x8b31; - public static final int GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8b4a; - public static final int GL_MAX_VARYING_FLOATS = 0x8b4b; - public static final int GL_MAX_VERTEX_ATTRIBS = 0x8869; - public static final int GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872; - public static final int GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8b4c; - public static final int GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8b4d; - public static final int GL_MAX_TEXTURE_COORDS = 0x8871; - public static final int GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642; - public static final int GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643; - public static final int GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622; - public static final int GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623; - public static final int GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624; - public static final int GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625; - public static final int GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886a; - public static final int GL_CURRENT_VERTEX_ATTRIB = 0x8626; - public static final int GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645; - public static final int GL_FRAGMENT_SHADER = 0x8b30; - public static final int GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8b49; - public static final int GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8b8b; - public static final int GL_MAX_DRAW_BUFFERS = 0x8824; - public static final int GL_DRAW_BUFFER0 = 0x8825; - public static final int GL_DRAW_BUFFER1 = 0x8826; - public static final int GL_DRAW_BUFFER2 = 0x8827; - public static final int GL_DRAW_BUFFER3 = 0x8828; - public static final int GL_DRAW_BUFFER4 = 0x8829; - public static final int GL_DRAW_BUFFER5 = 0x882a; - public static final int GL_DRAW_BUFFER6 = 0x882b; - public static final int GL_DRAW_BUFFER7 = 0x882c; - public static final int GL_DRAW_BUFFER8 = 0x882d; - public static final int GL_DRAW_BUFFER9 = 0x882e; - public static final int GL_DRAW_BUFFER10 = 0x882f; - public static final int GL_DRAW_BUFFER11 = 0x8830; - public static final int GL_DRAW_BUFFER12 = 0x8831; - public static final int GL_DRAW_BUFFER13 = 0x8832; - public static final int GL_DRAW_BUFFER14 = 0x8833; - public static final int GL_DRAW_BUFFER15 = 0x8834; - public static final int GL_POINT_SPRITE = 0x8861; - public static final int GL_COORD_REPLACE = 0x8862; - public static final int GL_POINT_SPRITE_COORD_ORIGIN = 0x8ca0; - public static final int GL_LOWER_LEFT = 0x8ca1; - public static final int GL_UPPER_LEFT = 0x8ca2; - public static final int GL_STENCIL_BACK_FUNC = 0x8800; - public static final int GL_STENCIL_BACK_FAIL = 0x8801; - public static final int GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802; - public static final int GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803; - public static final int GL_STENCIL_BACK_REF = 0x8ca3; - public static final int GL_STENCIL_BACK_VALUE_MASK = 0x8ca4; - public static final int GL_STENCIL_BACK_WRITEMASK = 0x8ca5; - public static final int GL_BLEND_EQUATION_RGB = 0x8009; public static final int GL_BLEND_EQUATION_ALPHA = 0x883d; + public static final int GL_BLEND_EQUATION_RGB = 0x8009; + public static final int GL_STENCIL_BACK_WRITEMASK = 0x8ca5; + public static final int GL_STENCIL_BACK_VALUE_MASK = 0x8ca4; + public static final int GL_STENCIL_BACK_REF = 0x8ca3; + public static final int GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803; + public static final int GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802; + public static final int GL_STENCIL_BACK_FAIL = 0x8801; + public static final int GL_STENCIL_BACK_FUNC = 0x8800; + public static final int GL_UPPER_LEFT = 0x8ca2; + public static final int GL_LOWER_LEFT = 0x8ca1; + public static final int GL_POINT_SPRITE_COORD_ORIGIN = 0x8ca0; + public static final int GL_COORD_REPLACE = 0x8862; + public static final int GL_POINT_SPRITE = 0x8861; + public static final int GL_DRAW_BUFFER15 = 0x8834; + public static final int GL_DRAW_BUFFER14 = 0x8833; + public static final int GL_DRAW_BUFFER13 = 0x8832; + public static final int GL_DRAW_BUFFER12 = 0x8831; + public static final int GL_DRAW_BUFFER11 = 0x8830; + public static final int GL_DRAW_BUFFER10 = 0x882f; + public static final int GL_DRAW_BUFFER9 = 0x882e; + public static final int GL_DRAW_BUFFER8 = 0x882d; + public static final int GL_DRAW_BUFFER7 = 0x882c; + public static final int GL_DRAW_BUFFER6 = 0x882b; + public static final int GL_DRAW_BUFFER5 = 0x882a; + public static final int GL_DRAW_BUFFER4 = 0x8829; + public static final int GL_DRAW_BUFFER3 = 0x8828; + public static final int GL_DRAW_BUFFER2 = 0x8827; + public static final int GL_DRAW_BUFFER1 = 0x8826; + public static final int GL_DRAW_BUFFER0 = 0x8825; + public static final int GL_MAX_DRAW_BUFFERS = 0x8824; + public static final int GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8b8b; + public static final int GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8b49; + public static final int GL_FRAGMENT_SHADER = 0x8b30; + public static final int GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645; + public static final int GL_CURRENT_VERTEX_ATTRIB = 0x8626; + public static final int GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886a; + public static final int GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625; + public static final int GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624; + public static final int GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623; + public static final int GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622; + public static final int GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643; + public static final int GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642; + public static final int GL_MAX_TEXTURE_COORDS = 0x8871; + public static final int GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8b4d; + public static final int GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8b4c; + public static final int GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872; + public static final int GL_MAX_VERTEX_ATTRIBS = 0x8869; + public static final int GL_MAX_VARYING_FLOATS = 0x8b4b; + public static final int GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8b4a; + public static final int GL_VERTEX_SHADER = 0x8b31; + public static final int GL_SAMPLER_2D_SHADOW = 0x8b62; + public static final int GL_SAMPLER_1D_SHADOW = 0x8b61; + public static final int GL_SAMPLER_CUBE = 0x8b60; + public static final int GL_SAMPLER_3D = 0x8b5f; + public static final int GL_SAMPLER_2D = 0x8b5e; + public static final int GL_SAMPLER_1D = 0x8b5d; + public static final int GL_FLOAT_MAT4 = 0x8b5c; + public static final int GL_FLOAT_MAT3 = 0x8b5b; + public static final int GL_FLOAT_MAT2 = 0x8b5a; + public static final int GL_BOOL_VEC4 = 0x8b59; + public static final int GL_BOOL_VEC3 = 0x8b58; + public static final int GL_BOOL_VEC2 = 0x8b57; + public static final int GL_BOOL = 0x8b56; + public static final int GL_INT_VEC4 = 0x8b55; + public static final int GL_INT_VEC3 = 0x8b54; + public static final int GL_INT_VEC2 = 0x8b53; + public static final int GL_FLOAT_VEC4 = 0x8b52; + public static final int GL_FLOAT_VEC3 = 0x8b51; + public static final int GL_FLOAT_VEC2 = 0x8b50; + public static final int GL_SHADER_OBJECT = 0x8b48; + public static final int GL_SHADER_SOURCE_LENGTH = 0x8b88; + public static final int GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8b8a; + public static final int GL_ACTIVE_ATTRIBUTES = 0x8b89; + public static final int GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8b87; + public static final int GL_ACTIVE_UNIFORMS = 0x8b86; + public static final int GL_ATTACHED_SHADERS = 0x8b85; + public static final int GL_INFO_LOG_LENGTH = 0x8b84; + public static final int GL_VALIDATE_STATUS = 0x8b83; + public static final int GL_LINK_STATUS = 0x8b82; + public static final int GL_COMPILE_STATUS = 0x8b81; + public static final int GL_DELETE_STATUS = 0x8b80; + public static final int GL_SHADER_TYPE = 0x8b4f; + public static final int GL_CURRENT_PROGRAM = 0x8b8d; + public static final int GL_SHADING_LANGUAGE_VERSION = 0x8b8c; private GL20() { } static native void initNativeStubs() throws LWJGLException; - /** - * The ARB_shader_objects extension allows multiple, optionally null-terminated, source strings to define a shader program. - *

- * This method uses just a single string, that should NOT be null-terminated. - * @param shader - * @param string - */ - public static void glShaderSource(int shader, ByteBuffer string) { - BufferChecks.checkDirect(string); - long function_pointer = GLContext.getCapabilities().GL20_glShaderSource_pointer; + public static void glBlendEquationSeparate(int modeRGB, int modeAlpha) { + long function_pointer = GLContext.getCapabilities().GL20_glBlendEquationSeparate_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglShaderSource(shader, 1, string, string.position(), (string.remaining()), function_pointer); + nglBlendEquationSeparate(modeRGB, modeAlpha, function_pointer); } - private static native void nglShaderSource(int shader, int count, ByteBuffer string, int string_position, int length, long function_pointer); + private static native void nglBlendEquationSeparate(int modeRGB, int modeAlpha, long function_pointer); - public static int glCreateShader(int type) { - long function_pointer = GLContext.getCapabilities().GL20_glCreateShader_pointer; + public static void glStencilMaskSeparate(int face, int mask) { + long function_pointer = GLContext.getCapabilities().GL20_glStencilMaskSeparate_pointer; BufferChecks.checkFunctionAddress(function_pointer); - int __result = nglCreateShader(type, function_pointer); - return __result; + nglStencilMaskSeparate(face, mask, function_pointer); } - private static native int nglCreateShader(int type, long function_pointer); + private static native void nglStencilMaskSeparate(int face, int mask, long function_pointer); - public static boolean glIsShader(int shader) { - long function_pointer = GLContext.getCapabilities().GL20_glIsShader_pointer; + public static void glStencilFuncSeparate(int face, int func, int ref, int mask) { + long function_pointer = GLContext.getCapabilities().GL20_glStencilFuncSeparate_pointer; BufferChecks.checkFunctionAddress(function_pointer); - boolean __result = nglIsShader(shader, function_pointer); - return __result; + nglStencilFuncSeparate(face, func, ref, mask, function_pointer); } - private static native boolean nglIsShader(int shader, long function_pointer); + private static native void nglStencilFuncSeparate(int face, int func, int ref, int mask, long function_pointer); - public static void glCompileShader(int shader) { - long function_pointer = GLContext.getCapabilities().GL20_glCompileShader_pointer; + public static void glStencilOpSeparate(int face, int sfail, int dpfail, int dppass) { + long function_pointer = GLContext.getCapabilities().GL20_glStencilOpSeparate_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglCompileShader(shader, function_pointer); + nglStencilOpSeparate(face, sfail, dpfail, dppass, function_pointer); } - private static native void nglCompileShader(int shader, long function_pointer); + private static native void nglStencilOpSeparate(int face, int sfail, int dpfail, int dppass, long function_pointer); - public static void glDeleteShader(int shader) { - long function_pointer = GLContext.getCapabilities().GL20_glDeleteShader_pointer; + public static void glDrawBuffers(IntBuffer buffers) { + BufferChecks.checkDirect(buffers); + long function_pointer = GLContext.getCapabilities().GL20_glDrawBuffers_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglDeleteShader(shader, function_pointer); + nglDrawBuffers((buffers.remaining()), buffers, buffers.position(), function_pointer); } - private static native void nglDeleteShader(int shader, long function_pointer); + private static native void nglDrawBuffers(int size, IntBuffer buffers, int buffers_position, long function_pointer); - public static int glCreateProgram() { - long function_pointer = GLContext.getCapabilities().GL20_glCreateProgram_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - int __result = nglCreateProgram(function_pointer); - return __result; - } - private static native int nglCreateProgram(long function_pointer); - - public static boolean glIsProgram(int program) { - long function_pointer = GLContext.getCapabilities().GL20_glIsProgram_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - boolean __result = nglIsProgram(program, function_pointer); - return __result; - } - private static native boolean nglIsProgram(int program, long function_pointer); - - public static void glAttachShader(int program, int shader) { - long function_pointer = GLContext.getCapabilities().GL20_glAttachShader_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglAttachShader(program, shader, function_pointer); - } - private static native void nglAttachShader(int program, int shader, long function_pointer); - - public static void glDetachShader(int program, int shader) { - long function_pointer = GLContext.getCapabilities().GL20_glDetachShader_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglDetachShader(program, shader, function_pointer); - } - private static native void nglDetachShader(int program, int shader, long function_pointer); - - public static void glLinkProgram(int program) { - long function_pointer = GLContext.getCapabilities().GL20_glLinkProgram_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglLinkProgram(program, function_pointer); - } - private static native void nglLinkProgram(int program, long function_pointer); - - public static void glUseProgram(int program) { - long function_pointer = GLContext.getCapabilities().GL20_glUseProgram_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUseProgram(program, function_pointer); - } - private static native void nglUseProgram(int program, long function_pointer); - - public static void glValidateProgram(int program) { - long function_pointer = GLContext.getCapabilities().GL20_glValidateProgram_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglValidateProgram(program, function_pointer); - } - private static native void nglValidateProgram(int program, long function_pointer); - - public static void glDeleteProgram(int program) { - long function_pointer = GLContext.getCapabilities().GL20_glDeleteProgram_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglDeleteProgram(program, function_pointer); - } - private static native void nglDeleteProgram(int program, long function_pointer); - - public static void glUniform1f(int location, float v0) { - long function_pointer = GLContext.getCapabilities().GL20_glUniform1f_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform1f(location, v0, function_pointer); - } - private static native void nglUniform1f(int location, float v0, long function_pointer); - - public static void glUniform2f(int location, float v0, float v1) { - long function_pointer = GLContext.getCapabilities().GL20_glUniform2f_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform2f(location, v0, v1, function_pointer); - } - private static native void nglUniform2f(int location, float v0, float v1, long function_pointer); - - public static void glUniform3f(int location, float v0, float v1, float v2) { - long function_pointer = GLContext.getCapabilities().GL20_glUniform3f_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform3f(location, v0, v1, v2, function_pointer); - } - private static native void nglUniform3f(int location, float v0, float v1, float v2, long function_pointer); - - public static void glUniform4f(int location, float v0, float v1, float v2, float v3) { - long function_pointer = GLContext.getCapabilities().GL20_glUniform4f_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform4f(location, v0, v1, v2, v3, function_pointer); - } - private static native void nglUniform4f(int location, float v0, float v1, float v2, float v3, long function_pointer); - - public static void glUniform1i(int location, int v0) { - long function_pointer = GLContext.getCapabilities().GL20_glUniform1i_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform1i(location, v0, function_pointer); - } - private static native void nglUniform1i(int location, int v0, long function_pointer); - - public static void glUniform2i(int location, int v0, int v1) { - long function_pointer = GLContext.getCapabilities().GL20_glUniform2i_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform2i(location, v0, v1, function_pointer); - } - private static native void nglUniform2i(int location, int v0, int v1, long function_pointer); - - public static void glUniform3i(int location, int v0, int v1, int v2) { - long function_pointer = GLContext.getCapabilities().GL20_glUniform3i_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform3i(location, v0, v1, v2, function_pointer); - } - private static native void nglUniform3i(int location, int v0, int v1, int v2, long function_pointer); - - public static void glUniform4i(int location, int v0, int v1, int v2, int v3) { - long function_pointer = GLContext.getCapabilities().GL20_glUniform4i_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform4i(location, v0, v1, v2, v3, function_pointer); - } - private static native void nglUniform4i(int location, int v0, int v1, int v2, int v3, long function_pointer); - - public static void glUniform1(int location, FloatBuffer values) { - BufferChecks.checkDirect(values); - long function_pointer = GLContext.getCapabilities().GL20_glUniform1fv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform1fv(location, (values.remaining()), values, values.position(), function_pointer); - } - private static native void nglUniform1fv(int location, int count, FloatBuffer values, int values_position, long function_pointer); - - public static void glUniform2(int location, FloatBuffer values) { - BufferChecks.checkDirect(values); - long function_pointer = GLContext.getCapabilities().GL20_glUniform2fv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform2fv(location, (values.remaining()) >> 1, values, values.position(), function_pointer); - } - private static native void nglUniform2fv(int location, int count, FloatBuffer values, int values_position, long function_pointer); - - public static void glUniform3(int location, FloatBuffer values) { - BufferChecks.checkDirect(values); - long function_pointer = GLContext.getCapabilities().GL20_glUniform3fv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform3fv(location, (values.remaining()) / 3, values, values.position(), function_pointer); - } - private static native void nglUniform3fv(int location, int count, FloatBuffer values, int values_position, long function_pointer); - - public static void glUniform4(int location, FloatBuffer values) { - BufferChecks.checkDirect(values); - long function_pointer = GLContext.getCapabilities().GL20_glUniform4fv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform4fv(location, (values.remaining()) >> 2, values, values.position(), function_pointer); - } - private static native void nglUniform4fv(int location, int count, FloatBuffer values, int values_position, long function_pointer); - - public static void glUniform1(int location, IntBuffer values) { - BufferChecks.checkDirect(values); - long function_pointer = GLContext.getCapabilities().GL20_glUniform1iv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform1iv(location, (values.remaining()), values, values.position(), function_pointer); - } - private static native void nglUniform1iv(int location, int count, IntBuffer values, int values_position, long function_pointer); - - public static void glUniform2(int location, IntBuffer values) { - BufferChecks.checkDirect(values); - long function_pointer = GLContext.getCapabilities().GL20_glUniform2iv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform2iv(location, (values.remaining()) >> 1, values, values.position(), function_pointer); - } - private static native void nglUniform2iv(int location, int count, IntBuffer values, int values_position, long function_pointer); - - public static void glUniform3(int location, IntBuffer values) { - BufferChecks.checkDirect(values); - long function_pointer = GLContext.getCapabilities().GL20_glUniform3iv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform3iv(location, (values.remaining()) / 3, values, values.position(), function_pointer); - } - private static native void nglUniform3iv(int location, int count, IntBuffer values, int values_position, long function_pointer); - - public static void glUniform4(int location, IntBuffer values) { - BufferChecks.checkDirect(values); - long function_pointer = GLContext.getCapabilities().GL20_glUniform4iv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniform4iv(location, (values.remaining()) >> 2, values, values.position(), function_pointer); - } - private static native void nglUniform4iv(int location, int count, IntBuffer values, int values_position, long function_pointer); - - public static void glUniformMatrix2(int location, boolean transpose, FloatBuffer matrices) { - BufferChecks.checkDirect(matrices); - long function_pointer = GLContext.getCapabilities().GL20_glUniformMatrix2fv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniformMatrix2fv(location, (matrices.remaining()) >> 2, transpose, matrices, matrices.position(), function_pointer); - } - private static native void nglUniformMatrix2fv(int location, int count, boolean transpose, FloatBuffer matrices, int matrices_position, long function_pointer); - - public static void glUniformMatrix3(int location, boolean transpose, FloatBuffer matrices) { - BufferChecks.checkDirect(matrices); - long function_pointer = GLContext.getCapabilities().GL20_glUniformMatrix3fv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniformMatrix3fv(location, (matrices.remaining()) / (3 * 3), transpose, matrices, matrices.position(), function_pointer); - } - private static native void nglUniformMatrix3fv(int location, int count, boolean transpose, FloatBuffer matrices, int matrices_position, long function_pointer); - - public static void glUniformMatrix4(int location, boolean transpose, FloatBuffer matrices) { - BufferChecks.checkDirect(matrices); - long function_pointer = GLContext.getCapabilities().GL20_glUniformMatrix4fv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglUniformMatrix4fv(location, (matrices.remaining()) >> 4, transpose, matrices, matrices.position(), function_pointer); - } - private static native void nglUniformMatrix4fv(int location, int count, boolean transpose, FloatBuffer matrices, int matrices_position, long function_pointer); - - public static void glGetShader(int shader, int pname, IntBuffer params) { - BufferChecks.checkDirect(params); - long function_pointer = GLContext.getCapabilities().GL20_glGetShaderiv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglGetShaderiv(shader, pname, params, params.position(), function_pointer); - } - private static native void nglGetShaderiv(int shader, int pname, IntBuffer params, int params_position, long function_pointer); - - public static void glGetProgram(int program, int pname, IntBuffer params) { - BufferChecks.checkDirect(params); - long function_pointer = GLContext.getCapabilities().GL20_glGetProgramiv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglGetProgramiv(program, pname, params, params.position(), function_pointer); - } - private static native void nglGetProgramiv(int program, int pname, IntBuffer params, int params_position, long function_pointer); - - public static void glGetShaderInfoLog(int shader, IntBuffer length, ByteBuffer infoLog) { - if (length != null) - BufferChecks.checkBuffer(length, 1); - BufferChecks.checkDirect(infoLog); - long function_pointer = GLContext.getCapabilities().GL20_glGetShaderInfoLog_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglGetShaderInfoLog(shader, (infoLog.remaining()), length, length != null ? length.position() : 0, infoLog, infoLog.position(), function_pointer); - } - private static native void nglGetShaderInfoLog(int shader, int maxLength, IntBuffer length, int length_position, ByteBuffer infoLog, int infoLog_position, long function_pointer); - - public static void glGetProgramInfoLog(int program, IntBuffer length, ByteBuffer infoLog) { - if (length != null) - BufferChecks.checkBuffer(length, 1); - BufferChecks.checkDirect(infoLog); - long function_pointer = GLContext.getCapabilities().GL20_glGetProgramInfoLog_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglGetProgramInfoLog(program, (infoLog.remaining()), length, length != null ? length.position() : 0, infoLog, infoLog.position(), function_pointer); - } - private static native void nglGetProgramInfoLog(int program, int maxLength, IntBuffer length, int length_position, ByteBuffer infoLog, int infoLog_position, long function_pointer); - - public static void glGetAttachedShaders(int program, IntBuffer count, IntBuffer shaders) { - if (count != null) - BufferChecks.checkBuffer(count, 1); - BufferChecks.checkDirect(shaders); - long function_pointer = GLContext.getCapabilities().GL20_glGetAttachedShaders_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglGetAttachedShaders(program, (shaders.remaining()), count, count != null ? count.position() : 0, shaders, shaders.position(), function_pointer); - } - private static native void nglGetAttachedShaders(int program, int maxCount, IntBuffer count, int count_position, IntBuffer shaders, int shaders_position, long function_pointer); - - /** - * Returns the location of the uniform with the specified name. The ByteBuffer should contain the uniform name as a - * null-terminated string. - * @param program - * @param name - * @return - */ - public static int glGetUniformLocation(int program, ByteBuffer name) { - BufferChecks.checkBuffer(name, 1); - BufferChecks.checkNullTerminated(name); - long function_pointer = GLContext.getCapabilities().GL20_glGetUniformLocation_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - int __result = nglGetUniformLocation(program, name, name.position(), function_pointer); - return __result; - } - private static native int nglGetUniformLocation(int program, ByteBuffer name, int name_position, long function_pointer); - - public static void glGetActiveUniform(int program, int index, IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name) { - if (length != null) - BufferChecks.checkBuffer(length, 1); - BufferChecks.checkDirect(size); - BufferChecks.checkDirect(type); + public static int glGetAttribLocation(int program, ByteBuffer name) { BufferChecks.checkDirect(name); - long function_pointer = GLContext.getCapabilities().GL20_glGetActiveUniform_pointer; + BufferChecks.checkNullTerminated(name); + long function_pointer = GLContext.getCapabilities().GL20_glGetAttribLocation_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglGetActiveUniform(program, index, (name.remaining()), length, length != null ? length.position() : 0, size, size.position(), type, type.position(), name, name.position(), function_pointer); + int __result = nglGetAttribLocation(program, name, name.position(), function_pointer); + return __result; } - private static native void nglGetActiveUniform(int program, int index, int maxLength, IntBuffer length, int length_position, IntBuffer size, int size_position, IntBuffer type, int type_position, ByteBuffer name, int name_position, long function_pointer); + private static native int nglGetAttribLocation(int program, ByteBuffer name, int name_position, long function_pointer); - public static void glGetUniform(int program, int location, FloatBuffer params) { - BufferChecks.checkDirect(params); - long function_pointer = GLContext.getCapabilities().GL20_glGetUniformfv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglGetUniformfv(program, location, params, params.position(), function_pointer); - } - private static native void nglGetUniformfv(int program, int location, FloatBuffer params, int params_position, long function_pointer); - - public static void glGetUniform(int program, int location, IntBuffer params) { - BufferChecks.checkDirect(params); - long function_pointer = GLContext.getCapabilities().GL20_glGetUniformiv_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglGetUniformiv(program, location, params, params.position(), function_pointer); - } - private static native void nglGetUniformiv(int program, int location, IntBuffer params, int params_position, long function_pointer); - - public static void glGetShaderSource(int shader, IntBuffer length, ByteBuffer source) { + public static void glGetActiveAttrib(int program, int index, IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name) { if (length != null) BufferChecks.checkBuffer(length, 1); - BufferChecks.checkDirect(source); - long function_pointer = GLContext.getCapabilities().GL20_glGetShaderSource_pointer; + BufferChecks.checkBuffer(size, 1); + BufferChecks.checkBuffer(type, 1); + BufferChecks.checkDirect(name); + long function_pointer = GLContext.getCapabilities().GL20_glGetActiveAttrib_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglGetShaderSource(shader, (source.remaining()), length, length != null ? length.position() : 0, source, source.position(), function_pointer); + nglGetActiveAttrib(program, index, (name.remaining()), length, length != null ? length.position() : 0, size, size.position(), type, type.position(), name, name.position(), function_pointer); } - private static native void nglGetShaderSource(int shader, int maxLength, IntBuffer length, int length_position, ByteBuffer source, int source_position, long function_pointer); + private static native void nglGetActiveAttrib(int program, int index, int maxLength, IntBuffer length, int length_position, IntBuffer size, int size_position, IntBuffer type, int type_position, ByteBuffer name, int name_position, long function_pointer); - public static void glVertexAttrib1s(int index, short x) { - long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib1s_pointer; + public static void glBindAttribLocation(int program, int index, ByteBuffer name) { + BufferChecks.checkDirect(name); + BufferChecks.checkNullTerminated(name); + long function_pointer = GLContext.getCapabilities().GL20_glBindAttribLocation_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglVertexAttrib1s(index, x, function_pointer); + nglBindAttribLocation(program, index, name, name.position(), function_pointer); } - private static native void nglVertexAttrib1s(int index, short x, long function_pointer); + private static native void nglBindAttribLocation(int program, int index, ByteBuffer name, int name_position, long function_pointer); - public static void glVertexAttrib1f(int index, float x) { - long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib1f_pointer; + public static java.nio.ByteBuffer glGetVertexAttribPointer(int index, int pname, int result_size) { + long function_pointer = GLContext.getCapabilities().GL20_glGetVertexAttribPointerv_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglVertexAttrib1f(index, x, function_pointer); + java.nio.ByteBuffer __result = nglGetVertexAttribPointerv(index, pname, result_size, function_pointer); + return __result; } - private static native void nglVertexAttrib1f(int index, float x, long function_pointer); + private static native java.nio.ByteBuffer nglGetVertexAttribPointerv(int index, int pname, int result_size, long function_pointer); - public static void glVertexAttrib2s(int index, short x, short y) { - long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib2s_pointer; + public static void glGetVertexAttrib(int index, int pname, IntBuffer params) { + BufferChecks.checkBuffer(params, 4); + long function_pointer = GLContext.getCapabilities().GL20_glGetVertexAttribiv_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglVertexAttrib2s(index, x, y, function_pointer); + nglGetVertexAttribiv(index, pname, params, params.position(), function_pointer); } - private static native void nglVertexAttrib2s(int index, short x, short y, long function_pointer); + private static native void nglGetVertexAttribiv(int index, int pname, IntBuffer params, int params_position, long function_pointer); - public static void glVertexAttrib2f(int index, float x, float y) { - long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib2f_pointer; + public static void glGetVertexAttrib(int index, int pname, FloatBuffer params) { + BufferChecks.checkBuffer(params, 4); + long function_pointer = GLContext.getCapabilities().GL20_glGetVertexAttribfv_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglVertexAttrib2f(index, x, y, function_pointer); + nglGetVertexAttribfv(index, pname, params, params.position(), function_pointer); } - private static native void nglVertexAttrib2f(int index, float x, float y, long function_pointer); + private static native void nglGetVertexAttribfv(int index, int pname, FloatBuffer params, int params_position, long function_pointer); - public static void glVertexAttrib3s(int index, short x, short y, short z) { - long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib3s_pointer; + public static void glDisableVertexAttribArray(int index) { + long function_pointer = GLContext.getCapabilities().GL20_glDisableVertexAttribArray_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglVertexAttrib3s(index, x, y, z, function_pointer); + nglDisableVertexAttribArray(index, function_pointer); } - private static native void nglVertexAttrib3s(int index, short x, short y, short z, long function_pointer); + private static native void nglDisableVertexAttribArray(int index, long function_pointer); - public static void glVertexAttrib3f(int index, float x, float y, float z) { - long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib3f_pointer; + public static void glEnableVertexAttribArray(int index) { + long function_pointer = GLContext.getCapabilities().GL20_glEnableVertexAttribArray_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglVertexAttrib3f(index, x, y, z, function_pointer); + nglEnableVertexAttribArray(index, function_pointer); } - private static native void nglVertexAttrib3f(int index, float x, float y, float z, long function_pointer); - - public static void glVertexAttrib4s(int index, short x, short y, short z, short w) { - long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib4s_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglVertexAttrib4s(index, x, y, z, w, function_pointer); - } - private static native void nglVertexAttrib4s(int index, short x, short y, short z, short w, long function_pointer); - - public static void glVertexAttrib4f(int index, float x, float y, float z, float w) { - long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib4f_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglVertexAttrib4f(index, x, y, z, w, function_pointer); - } - private static native void nglVertexAttrib4f(int index, float x, float y, float z, float w, long function_pointer); - - public static void glVertexAttrib4Nub(int index, byte x, byte y, byte z, byte w) { - long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib4Nub_pointer; - BufferChecks.checkFunctionAddress(function_pointer); - nglVertexAttrib4Nub(index, x, y, z, w, function_pointer); - } - private static native void nglVertexAttrib4Nub(int index, byte x, byte y, byte z, byte w, long function_pointer); + private static native void nglEnableVertexAttribArray(int index, long function_pointer); public static void glVertexAttribPointer(int index, int size, boolean normalized, int stride, FloatBuffer buffer) { GLBufferChecks.ensureArrayVBOdisabled(); @@ -546,108 +240,414 @@ public final class GL20 { } private static native void nglVertexAttribPointerBO(int index, int size, int type, boolean normalized, int stride, int buffer_buffer_offset, long function_pointer); - public static void glEnableVertexAttribArray(int index) { - long function_pointer = GLContext.getCapabilities().GL20_glEnableVertexAttribArray_pointer; + public static void glVertexAttrib4Nub(int index, byte x, byte y, byte z, byte w) { + long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib4Nub_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglEnableVertexAttribArray(index, function_pointer); + nglVertexAttrib4Nub(index, x, y, z, w, function_pointer); } - private static native void nglEnableVertexAttribArray(int index, long function_pointer); + private static native void nglVertexAttrib4Nub(int index, byte x, byte y, byte z, byte w, long function_pointer); - public static void glDisableVertexAttribArray(int index) { - long function_pointer = GLContext.getCapabilities().GL20_glDisableVertexAttribArray_pointer; + public static void glVertexAttrib4f(int index, float x, float y, float z, float w) { + long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib4f_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglDisableVertexAttribArray(index, function_pointer); + nglVertexAttrib4f(index, x, y, z, w, function_pointer); } - private static native void nglDisableVertexAttribArray(int index, long function_pointer); + private static native void nglVertexAttrib4f(int index, float x, float y, float z, float w, long function_pointer); - public static void glGetVertexAttrib(int index, int pname, FloatBuffer params) { - BufferChecks.checkBuffer(params, 4); - long function_pointer = GLContext.getCapabilities().GL20_glGetVertexAttribfv_pointer; + public static void glVertexAttrib4s(int index, short x, short y, short z, short w) { + long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib4s_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglGetVertexAttribfv(index, pname, params, params.position(), function_pointer); + nglVertexAttrib4s(index, x, y, z, w, function_pointer); } - private static native void nglGetVertexAttribfv(int index, int pname, FloatBuffer params, int params_position, long function_pointer); + private static native void nglVertexAttrib4s(int index, short x, short y, short z, short w, long function_pointer); - public static void glGetVertexAttrib(int index, int pname, IntBuffer params) { - BufferChecks.checkBuffer(params, 4); - long function_pointer = GLContext.getCapabilities().GL20_glGetVertexAttribiv_pointer; + public static void glVertexAttrib3f(int index, float x, float y, float z) { + long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib3f_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglGetVertexAttribiv(index, pname, params, params.position(), function_pointer); + nglVertexAttrib3f(index, x, y, z, function_pointer); } - private static native void nglGetVertexAttribiv(int index, int pname, IntBuffer params, int params_position, long function_pointer); + private static native void nglVertexAttrib3f(int index, float x, float y, float z, long function_pointer); - public static java.nio.ByteBuffer glGetVertexAttribPointer(int index, int pname, int result_size) { - long function_pointer = GLContext.getCapabilities().GL20_glGetVertexAttribPointerv_pointer; + public static void glVertexAttrib3s(int index, short x, short y, short z) { + long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib3s_pointer; BufferChecks.checkFunctionAddress(function_pointer); - java.nio.ByteBuffer __result = nglGetVertexAttribPointerv(index, pname, result_size, function_pointer); - return __result; + nglVertexAttrib3s(index, x, y, z, function_pointer); } - private static native java.nio.ByteBuffer nglGetVertexAttribPointerv(int index, int pname, int result_size, long function_pointer); + private static native void nglVertexAttrib3s(int index, short x, short y, short z, long function_pointer); - public static void glBindAttribLocation(int program, int index, ByteBuffer name) { - BufferChecks.checkDirect(name); - BufferChecks.checkNullTerminated(name); - long function_pointer = GLContext.getCapabilities().GL20_glBindAttribLocation_pointer; + public static void glVertexAttrib2f(int index, float x, float y) { + long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib2f_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglBindAttribLocation(program, index, name, name.position(), function_pointer); + nglVertexAttrib2f(index, x, y, function_pointer); } - private static native void nglBindAttribLocation(int program, int index, ByteBuffer name, int name_position, long function_pointer); + private static native void nglVertexAttrib2f(int index, float x, float y, long function_pointer); - public static void glGetActiveAttrib(int program, int index, IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name) { + public static void glVertexAttrib2s(int index, short x, short y) { + long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib2s_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglVertexAttrib2s(index, x, y, function_pointer); + } + private static native void nglVertexAttrib2s(int index, short x, short y, long function_pointer); + + public static void glVertexAttrib1f(int index, float x) { + long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib1f_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglVertexAttrib1f(index, x, function_pointer); + } + private static native void nglVertexAttrib1f(int index, float x, long function_pointer); + + public static void glVertexAttrib1s(int index, short x) { + long function_pointer = GLContext.getCapabilities().GL20_glVertexAttrib1s_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglVertexAttrib1s(index, x, function_pointer); + } + private static native void nglVertexAttrib1s(int index, short x, long function_pointer); + + public static void glGetShaderSource(int shader, IntBuffer length, ByteBuffer source) { if (length != null) BufferChecks.checkBuffer(length, 1); - BufferChecks.checkBuffer(size, 1); - BufferChecks.checkBuffer(type, 1); - BufferChecks.checkDirect(name); - long function_pointer = GLContext.getCapabilities().GL20_glGetActiveAttrib_pointer; + BufferChecks.checkDirect(source); + long function_pointer = GLContext.getCapabilities().GL20_glGetShaderSource_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglGetActiveAttrib(program, index, (name.remaining()), length, length != null ? length.position() : 0, size, size.position(), type, type.position(), name, name.position(), function_pointer); + nglGetShaderSource(shader, (source.remaining()), length, length != null ? length.position() : 0, source, source.position(), function_pointer); } - private static native void nglGetActiveAttrib(int program, int index, int maxLength, IntBuffer length, int length_position, IntBuffer size, int size_position, IntBuffer type, int type_position, ByteBuffer name, int name_position, long function_pointer); + private static native void nglGetShaderSource(int shader, int maxLength, IntBuffer length, int length_position, ByteBuffer source, int source_position, long function_pointer); - public static int glGetAttribLocation(int program, ByteBuffer name) { - BufferChecks.checkDirect(name); - BufferChecks.checkNullTerminated(name); - long function_pointer = GLContext.getCapabilities().GL20_glGetAttribLocation_pointer; + public static void glGetUniform(int program, int location, IntBuffer params) { + BufferChecks.checkDirect(params); + long function_pointer = GLContext.getCapabilities().GL20_glGetUniformiv_pointer; BufferChecks.checkFunctionAddress(function_pointer); - int __result = nglGetAttribLocation(program, name, name.position(), function_pointer); + nglGetUniformiv(program, location, params, params.position(), function_pointer); + } + private static native void nglGetUniformiv(int program, int location, IntBuffer params, int params_position, long function_pointer); + + public static void glGetUniform(int program, int location, FloatBuffer params) { + BufferChecks.checkDirect(params); + long function_pointer = GLContext.getCapabilities().GL20_glGetUniformfv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglGetUniformfv(program, location, params, params.position(), function_pointer); + } + private static native void nglGetUniformfv(int program, int location, FloatBuffer params, int params_position, long function_pointer); + + public static void glGetActiveUniform(int program, int index, IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name) { + if (length != null) + BufferChecks.checkBuffer(length, 1); + BufferChecks.checkDirect(size); + BufferChecks.checkDirect(type); + BufferChecks.checkDirect(name); + long function_pointer = GLContext.getCapabilities().GL20_glGetActiveUniform_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglGetActiveUniform(program, index, (name.remaining()), length, length != null ? length.position() : 0, size, size.position(), type, type.position(), name, name.position(), function_pointer); + } + private static native void nglGetActiveUniform(int program, int index, int maxLength, IntBuffer length, int length_position, IntBuffer size, int size_position, IntBuffer type, int type_position, ByteBuffer name, int name_position, long function_pointer); + + /** + * Returns the location of the uniform with the specified name. The ByteBuffer should contain the uniform name as a + * null-terminated string. + * @param program + * @param name + * @return + */ + public static int glGetUniformLocation(int program, ByteBuffer name) { + BufferChecks.checkBuffer(name, 1); + BufferChecks.checkNullTerminated(name); + long function_pointer = GLContext.getCapabilities().GL20_glGetUniformLocation_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + int __result = nglGetUniformLocation(program, name, name.position(), function_pointer); return __result; } - private static native int nglGetAttribLocation(int program, ByteBuffer name, int name_position, long function_pointer); + private static native int nglGetUniformLocation(int program, ByteBuffer name, int name_position, long function_pointer); - public static void glDrawBuffers(IntBuffer buffers) { - BufferChecks.checkDirect(buffers); - long function_pointer = GLContext.getCapabilities().GL20_glDrawBuffers_pointer; + public static void glGetAttachedShaders(int program, IntBuffer count, IntBuffer shaders) { + if (count != null) + BufferChecks.checkBuffer(count, 1); + BufferChecks.checkDirect(shaders); + long function_pointer = GLContext.getCapabilities().GL20_glGetAttachedShaders_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglDrawBuffers((buffers.remaining()), buffers, buffers.position(), function_pointer); + nglGetAttachedShaders(program, (shaders.remaining()), count, count != null ? count.position() : 0, shaders, shaders.position(), function_pointer); } - private static native void nglDrawBuffers(int size, IntBuffer buffers, int buffers_position, long function_pointer); + private static native void nglGetAttachedShaders(int program, int maxCount, IntBuffer count, int count_position, IntBuffer shaders, int shaders_position, long function_pointer); - public static void glStencilOpSeparate(int face, int sfail, int dpfail, int dppass) { - long function_pointer = GLContext.getCapabilities().GL20_glStencilOpSeparate_pointer; + public static void glGetProgramInfoLog(int program, IntBuffer length, ByteBuffer infoLog) { + if (length != null) + BufferChecks.checkBuffer(length, 1); + BufferChecks.checkDirect(infoLog); + long function_pointer = GLContext.getCapabilities().GL20_glGetProgramInfoLog_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglStencilOpSeparate(face, sfail, dpfail, dppass, function_pointer); + nglGetProgramInfoLog(program, (infoLog.remaining()), length, length != null ? length.position() : 0, infoLog, infoLog.position(), function_pointer); } - private static native void nglStencilOpSeparate(int face, int sfail, int dpfail, int dppass, long function_pointer); + private static native void nglGetProgramInfoLog(int program, int maxLength, IntBuffer length, int length_position, ByteBuffer infoLog, int infoLog_position, long function_pointer); - public static void glStencilFuncSeparate(int face, int func, int ref, int mask) { - long function_pointer = GLContext.getCapabilities().GL20_glStencilFuncSeparate_pointer; + public static void glGetShaderInfoLog(int shader, IntBuffer length, ByteBuffer infoLog) { + if (length != null) + BufferChecks.checkBuffer(length, 1); + BufferChecks.checkDirect(infoLog); + long function_pointer = GLContext.getCapabilities().GL20_glGetShaderInfoLog_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglStencilFuncSeparate(face, func, ref, mask, function_pointer); + nglGetShaderInfoLog(shader, (infoLog.remaining()), length, length != null ? length.position() : 0, infoLog, infoLog.position(), function_pointer); } - private static native void nglStencilFuncSeparate(int face, int func, int ref, int mask, long function_pointer); + private static native void nglGetShaderInfoLog(int shader, int maxLength, IntBuffer length, int length_position, ByteBuffer infoLog, int infoLog_position, long function_pointer); - public static void glStencilMaskSeparate(int face, int mask) { - long function_pointer = GLContext.getCapabilities().GL20_glStencilMaskSeparate_pointer; + public static void glGetProgram(int program, int pname, IntBuffer params) { + BufferChecks.checkDirect(params); + long function_pointer = GLContext.getCapabilities().GL20_glGetProgramiv_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglStencilMaskSeparate(face, mask, function_pointer); + nglGetProgramiv(program, pname, params, params.position(), function_pointer); } - private static native void nglStencilMaskSeparate(int face, int mask, long function_pointer); + private static native void nglGetProgramiv(int program, int pname, IntBuffer params, int params_position, long function_pointer); - public static void glBlendEquationSeparate(int modeRGB, int modeAlpha) { - long function_pointer = GLContext.getCapabilities().GL20_glBlendEquationSeparate_pointer; + public static void glGetShader(int shader, int pname, IntBuffer params) { + BufferChecks.checkDirect(params); + long function_pointer = GLContext.getCapabilities().GL20_glGetShaderiv_pointer; BufferChecks.checkFunctionAddress(function_pointer); - nglBlendEquationSeparate(modeRGB, modeAlpha, function_pointer); + nglGetShaderiv(shader, pname, params, params.position(), function_pointer); } - private static native void nglBlendEquationSeparate(int modeRGB, int modeAlpha, long function_pointer); + private static native void nglGetShaderiv(int shader, int pname, IntBuffer params, int params_position, long function_pointer); + + public static void glUniformMatrix4(int location, boolean transpose, FloatBuffer matrices) { + BufferChecks.checkDirect(matrices); + long function_pointer = GLContext.getCapabilities().GL20_glUniformMatrix4fv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniformMatrix4fv(location, (matrices.remaining()) >> 4, transpose, matrices, matrices.position(), function_pointer); + } + private static native void nglUniformMatrix4fv(int location, int count, boolean transpose, FloatBuffer matrices, int matrices_position, long function_pointer); + + public static void glUniformMatrix3(int location, boolean transpose, FloatBuffer matrices) { + BufferChecks.checkDirect(matrices); + long function_pointer = GLContext.getCapabilities().GL20_glUniformMatrix3fv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniformMatrix3fv(location, (matrices.remaining()) / (3 * 3), transpose, matrices, matrices.position(), function_pointer); + } + private static native void nglUniformMatrix3fv(int location, int count, boolean transpose, FloatBuffer matrices, int matrices_position, long function_pointer); + + public static void glUniformMatrix2(int location, boolean transpose, FloatBuffer matrices) { + BufferChecks.checkDirect(matrices); + long function_pointer = GLContext.getCapabilities().GL20_glUniformMatrix2fv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniformMatrix2fv(location, (matrices.remaining()) >> 2, transpose, matrices, matrices.position(), function_pointer); + } + private static native void nglUniformMatrix2fv(int location, int count, boolean transpose, FloatBuffer matrices, int matrices_position, long function_pointer); + + public static void glUniform4(int location, IntBuffer values) { + BufferChecks.checkDirect(values); + long function_pointer = GLContext.getCapabilities().GL20_glUniform4iv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform4iv(location, (values.remaining()) >> 2, values, values.position(), function_pointer); + } + private static native void nglUniform4iv(int location, int count, IntBuffer values, int values_position, long function_pointer); + + public static void glUniform3(int location, IntBuffer values) { + BufferChecks.checkDirect(values); + long function_pointer = GLContext.getCapabilities().GL20_glUniform3iv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform3iv(location, (values.remaining()) / 3, values, values.position(), function_pointer); + } + private static native void nglUniform3iv(int location, int count, IntBuffer values, int values_position, long function_pointer); + + public static void glUniform2(int location, IntBuffer values) { + BufferChecks.checkDirect(values); + long function_pointer = GLContext.getCapabilities().GL20_glUniform2iv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform2iv(location, (values.remaining()) >> 1, values, values.position(), function_pointer); + } + private static native void nglUniform2iv(int location, int count, IntBuffer values, int values_position, long function_pointer); + + public static void glUniform1(int location, IntBuffer values) { + BufferChecks.checkDirect(values); + long function_pointer = GLContext.getCapabilities().GL20_glUniform1iv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform1iv(location, (values.remaining()), values, values.position(), function_pointer); + } + private static native void nglUniform1iv(int location, int count, IntBuffer values, int values_position, long function_pointer); + + public static void glUniform4(int location, FloatBuffer values) { + BufferChecks.checkDirect(values); + long function_pointer = GLContext.getCapabilities().GL20_glUniform4fv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform4fv(location, (values.remaining()) >> 2, values, values.position(), function_pointer); + } + private static native void nglUniform4fv(int location, int count, FloatBuffer values, int values_position, long function_pointer); + + public static void glUniform3(int location, FloatBuffer values) { + BufferChecks.checkDirect(values); + long function_pointer = GLContext.getCapabilities().GL20_glUniform3fv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform3fv(location, (values.remaining()) / 3, values, values.position(), function_pointer); + } + private static native void nglUniform3fv(int location, int count, FloatBuffer values, int values_position, long function_pointer); + + public static void glUniform2(int location, FloatBuffer values) { + BufferChecks.checkDirect(values); + long function_pointer = GLContext.getCapabilities().GL20_glUniform2fv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform2fv(location, (values.remaining()) >> 1, values, values.position(), function_pointer); + } + private static native void nglUniform2fv(int location, int count, FloatBuffer values, int values_position, long function_pointer); + + public static void glUniform1(int location, FloatBuffer values) { + BufferChecks.checkDirect(values); + long function_pointer = GLContext.getCapabilities().GL20_glUniform1fv_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform1fv(location, (values.remaining()), values, values.position(), function_pointer); + } + private static native void nglUniform1fv(int location, int count, FloatBuffer values, int values_position, long function_pointer); + + public static void glUniform4i(int location, int v0, int v1, int v2, int v3) { + long function_pointer = GLContext.getCapabilities().GL20_glUniform4i_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform4i(location, v0, v1, v2, v3, function_pointer); + } + private static native void nglUniform4i(int location, int v0, int v1, int v2, int v3, long function_pointer); + + public static void glUniform3i(int location, int v0, int v1, int v2) { + long function_pointer = GLContext.getCapabilities().GL20_glUniform3i_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform3i(location, v0, v1, v2, function_pointer); + } + private static native void nglUniform3i(int location, int v0, int v1, int v2, long function_pointer); + + public static void glUniform2i(int location, int v0, int v1) { + long function_pointer = GLContext.getCapabilities().GL20_glUniform2i_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform2i(location, v0, v1, function_pointer); + } + private static native void nglUniform2i(int location, int v0, int v1, long function_pointer); + + public static void glUniform1i(int location, int v0) { + long function_pointer = GLContext.getCapabilities().GL20_glUniform1i_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform1i(location, v0, function_pointer); + } + private static native void nglUniform1i(int location, int v0, long function_pointer); + + public static void glUniform4f(int location, float v0, float v1, float v2, float v3) { + long function_pointer = GLContext.getCapabilities().GL20_glUniform4f_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform4f(location, v0, v1, v2, v3, function_pointer); + } + private static native void nglUniform4f(int location, float v0, float v1, float v2, float v3, long function_pointer); + + public static void glUniform3f(int location, float v0, float v1, float v2) { + long function_pointer = GLContext.getCapabilities().GL20_glUniform3f_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform3f(location, v0, v1, v2, function_pointer); + } + private static native void nglUniform3f(int location, float v0, float v1, float v2, long function_pointer); + + public static void glUniform2f(int location, float v0, float v1) { + long function_pointer = GLContext.getCapabilities().GL20_glUniform2f_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform2f(location, v0, v1, function_pointer); + } + private static native void nglUniform2f(int location, float v0, float v1, long function_pointer); + + public static void glUniform1f(int location, float v0) { + long function_pointer = GLContext.getCapabilities().GL20_glUniform1f_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUniform1f(location, v0, function_pointer); + } + private static native void nglUniform1f(int location, float v0, long function_pointer); + + public static void glDeleteProgram(int program) { + long function_pointer = GLContext.getCapabilities().GL20_glDeleteProgram_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglDeleteProgram(program, function_pointer); + } + private static native void nglDeleteProgram(int program, long function_pointer); + + public static void glValidateProgram(int program) { + long function_pointer = GLContext.getCapabilities().GL20_glValidateProgram_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglValidateProgram(program, function_pointer); + } + private static native void nglValidateProgram(int program, long function_pointer); + + public static void glUseProgram(int program) { + long function_pointer = GLContext.getCapabilities().GL20_glUseProgram_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglUseProgram(program, function_pointer); + } + private static native void nglUseProgram(int program, long function_pointer); + + public static void glLinkProgram(int program) { + long function_pointer = GLContext.getCapabilities().GL20_glLinkProgram_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglLinkProgram(program, function_pointer); + } + private static native void nglLinkProgram(int program, long function_pointer); + + public static void glDetachShader(int program, int shader) { + long function_pointer = GLContext.getCapabilities().GL20_glDetachShader_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglDetachShader(program, shader, function_pointer); + } + private static native void nglDetachShader(int program, int shader, long function_pointer); + + public static void glAttachShader(int program, int shader) { + long function_pointer = GLContext.getCapabilities().GL20_glAttachShader_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglAttachShader(program, shader, function_pointer); + } + private static native void nglAttachShader(int program, int shader, long function_pointer); + + public static boolean glIsProgram(int program) { + long function_pointer = GLContext.getCapabilities().GL20_glIsProgram_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + boolean __result = nglIsProgram(program, function_pointer); + return __result; + } + private static native boolean nglIsProgram(int program, long function_pointer); + + public static int glCreateProgram() { + long function_pointer = GLContext.getCapabilities().GL20_glCreateProgram_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + int __result = nglCreateProgram(function_pointer); + return __result; + } + private static native int nglCreateProgram(long function_pointer); + + public static void glDeleteShader(int shader) { + long function_pointer = GLContext.getCapabilities().GL20_glDeleteShader_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglDeleteShader(shader, function_pointer); + } + private static native void nglDeleteShader(int shader, long function_pointer); + + public static void glCompileShader(int shader) { + long function_pointer = GLContext.getCapabilities().GL20_glCompileShader_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglCompileShader(shader, function_pointer); + } + private static native void nglCompileShader(int shader, long function_pointer); + + public static boolean glIsShader(int shader) { + long function_pointer = GLContext.getCapabilities().GL20_glIsShader_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + boolean __result = nglIsShader(shader, function_pointer); + return __result; + } + private static native boolean nglIsShader(int shader, long function_pointer); + + public static int glCreateShader(int type) { + long function_pointer = GLContext.getCapabilities().GL20_glCreateShader_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + int __result = nglCreateShader(type, function_pointer); + return __result; + } + private static native int nglCreateShader(int type, long function_pointer); + + /** + * The ARB_shader_objects extension allows multiple, optionally null-terminated, source strings to define a shader program. + *

+ * This method uses just a single string, that should NOT be null-terminated. + * @param shader + * @param string + */ + public static void glShaderSource(int shader, ByteBuffer string) { + BufferChecks.checkDirect(string); + long function_pointer = GLContext.getCapabilities().GL20_glShaderSource_pointer; + BufferChecks.checkFunctionAddress(function_pointer); + nglShaderSource(shader, 1, string, string.position(), (string.remaining()), function_pointer); + } + private static native void nglShaderSource(int shader, int count, ByteBuffer string, int string_position, int length, long function_pointer); } diff --git a/src/native/common/org_lwjgl_opengl_GL20.c b/src/native/common/org_lwjgl_opengl_GL20.c index 32d34a9b..c0d546d3 100644 --- a/src/native/common/org_lwjgl_opengl_GL20.c +++ b/src/native/common/org_lwjgl_opengl_GL20.c @@ -3,359 +3,147 @@ #include #include "extgl.h" -typedef void (APIENTRY *glShaderSourcePROC) (GLuint shader, GLsizei count, const GLchar ** string, const GLint* length); -typedef GLint (APIENTRY *glCreateShaderPROC) (GLuint type); -typedef GLboolean (APIENTRY *glIsShaderPROC) (GLuint shader); -typedef void (APIENTRY *glCompileShaderPROC) (GLuint shader); -typedef void (APIENTRY *glDeleteShaderPROC) (GLuint shader); -typedef GLint (APIENTRY *glCreateProgramPROC) (); -typedef GLboolean (APIENTRY *glIsProgramPROC) (GLint program); -typedef void (APIENTRY *glAttachShaderPROC) (GLuint program, GLuint shader); -typedef void (APIENTRY *glDetachShaderPROC) (GLuint program, GLuint shader); -typedef void (APIENTRY *glLinkProgramPROC) (GLuint program); -typedef void (APIENTRY *glUseProgramPROC) (GLuint program); -typedef void (APIENTRY *glValidateProgramPROC) (GLuint program); -typedef void (APIENTRY *glDeleteProgramPROC) (GLuint program); -typedef void (APIENTRY *glUniform1fPROC) (GLint location, GLfloat v0); -typedef void (APIENTRY *glUniform2fPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRY *glUniform3fPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRY *glUniform4fPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRY *glUniform1iPROC) (GLint location, GLint v0); -typedef void (APIENTRY *glUniform2iPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRY *glUniform3iPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRY *glUniform4iPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRY *glUniform1fvPROC) (GLint location, GLsizei count, GLfloat * values); -typedef void (APIENTRY *glUniform2fvPROC) (GLint location, GLsizei count, GLfloat * values); -typedef void (APIENTRY *glUniform3fvPROC) (GLint location, GLsizei count, GLfloat * values); -typedef void (APIENTRY *glUniform4fvPROC) (GLint location, GLsizei count, GLfloat * values); -typedef void (APIENTRY *glUniform1ivPROC) (GLint location, GLsizei count, GLint * values); -typedef void (APIENTRY *glUniform2ivPROC) (GLint location, GLsizei count, GLint * values); -typedef void (APIENTRY *glUniform3ivPROC) (GLint location, GLsizei count, GLint * values); -typedef void (APIENTRY *glUniform4ivPROC) (GLint location, GLsizei count, GLint * values); -typedef void (APIENTRY *glUniformMatrix2fvPROC) (GLint location, GLsizei count, GLboolean transpose, GLfloat * matrices); -typedef void (APIENTRY *glUniformMatrix3fvPROC) (GLint location, GLsizei count, GLboolean transpose, GLfloat * matrices); -typedef void (APIENTRY *glUniformMatrix4fvPROC) (GLint location, GLsizei count, GLboolean transpose, GLfloat * matrices); -typedef void (APIENTRY *glGetShaderivPROC) (GLuint shader, GLenum pname, GLint * params); -typedef void (APIENTRY *glGetProgramivPROC) (GLuint program, GLenum pname, GLint * params); -typedef void (APIENTRY *glGetShaderInfoLogPROC) (GLuint shader, GLsizei maxLength, GLsizei * length, GLchar * infoLog); -typedef void (APIENTRY *glGetProgramInfoLogPROC) (GLuint program, GLsizei maxLength, GLsizei * length, GLchar * infoLog); -typedef void (APIENTRY *glGetAttachedShadersPROC) (GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders); -typedef GLint (APIENTRY *glGetUniformLocationPROC) (GLuint program, const GLchar * name); -typedef void (APIENTRY *glGetActiveUniformPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name); -typedef void (APIENTRY *glGetUniformfvPROC) (GLuint program, GLint location, GLfloat * params); -typedef void (APIENTRY *glGetUniformivPROC) (GLuint program, GLint location, GLint * params); -typedef void (APIENTRY *glGetShaderSourcePROC) (GLuint shader, GLsizei maxLength, GLsizei * length, GLchar * source); -typedef void (APIENTRY *glVertexAttrib1sPROC) (GLuint index, GLshort x); -typedef void (APIENTRY *glVertexAttrib1fPROC) (GLuint index, GLfloat x); -typedef void (APIENTRY *glVertexAttrib2sPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRY *glVertexAttrib2fPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRY *glVertexAttrib3sPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRY *glVertexAttrib3fPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY *glVertexAttrib4sPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRY *glVertexAttrib4fPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRY *glVertexAttrib4NubPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRY *glVertexAttribPointerPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * buffer); -typedef void (APIENTRY *glEnableVertexAttribArrayPROC) (GLuint index); -typedef void (APIENTRY *glDisableVertexAttribArrayPROC) (GLuint index); -typedef void (APIENTRY *glGetVertexAttribfvPROC) (GLuint index, GLenum pname, GLfloat * params); -typedef void (APIENTRY *glGetVertexAttribivPROC) (GLuint index, GLenum pname, GLint * params); -typedef void (APIENTRY *glGetVertexAttribPointervPROC) (GLuint index, GLenum pname, GLvoid ** pointer); -typedef void (APIENTRY *glBindAttribLocationPROC) (GLuint program, GLuint index, const GLchar * name); -typedef void (APIENTRY *glGetActiveAttribPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, const GLchar * name); -typedef GLint (APIENTRY *glGetAttribLocationPROC) (GLuint program, const GLchar * name); -typedef void (APIENTRY *glDrawBuffersPROC) (GLsizei size, const GLenum * buffers); -typedef void (APIENTRY *glStencilOpSeparatePROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRY *glStencilFuncSeparatePROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (APIENTRY *glStencilMaskSeparatePROC) (GLenum face, GLuint mask); typedef void (APIENTRY *glBlendEquationSeparatePROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRY *glStencilMaskSeparatePROC) (GLenum face, GLuint mask); +typedef void (APIENTRY *glStencilFuncSeparatePROC) (GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRY *glStencilOpSeparatePROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRY *glDrawBuffersPROC) (GLsizei size, const GLenum * buffers); +typedef GLint (APIENTRY *glGetAttribLocationPROC) (GLuint program, const GLchar * name); +typedef void (APIENTRY *glGetActiveAttribPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, const GLchar * name); +typedef void (APIENTRY *glBindAttribLocationPROC) (GLuint program, GLuint index, const GLchar * name); +typedef void (APIENTRY *glGetVertexAttribPointervPROC) (GLuint index, GLenum pname, GLvoid ** pointer); +typedef void (APIENTRY *glGetVertexAttribivPROC) (GLuint index, GLenum pname, GLint * params); +typedef void (APIENTRY *glGetVertexAttribfvPROC) (GLuint index, GLenum pname, GLfloat * params); +typedef void (APIENTRY *glDisableVertexAttribArrayPROC) (GLuint index); +typedef void (APIENTRY *glEnableVertexAttribArrayPROC) (GLuint index); +typedef void (APIENTRY *glVertexAttribPointerPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * buffer); +typedef void (APIENTRY *glVertexAttrib4NubPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRY *glVertexAttrib4fPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRY *glVertexAttrib4sPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRY *glVertexAttrib3fPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY *glVertexAttrib3sPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRY *glVertexAttrib2fPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRY *glVertexAttrib2sPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRY *glVertexAttrib1fPROC) (GLuint index, GLfloat x); +typedef void (APIENTRY *glVertexAttrib1sPROC) (GLuint index, GLshort x); +typedef void (APIENTRY *glGetShaderSourcePROC) (GLuint shader, GLsizei maxLength, GLsizei * length, GLchar * source); +typedef void (APIENTRY *glGetUniformivPROC) (GLuint program, GLint location, GLint * params); +typedef void (APIENTRY *glGetUniformfvPROC) (GLuint program, GLint location, GLfloat * params); +typedef void (APIENTRY *glGetActiveUniformPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name); +typedef GLint (APIENTRY *glGetUniformLocationPROC) (GLuint program, const GLchar * name); +typedef void (APIENTRY *glGetAttachedShadersPROC) (GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders); +typedef void (APIENTRY *glGetProgramInfoLogPROC) (GLuint program, GLsizei maxLength, GLsizei * length, GLchar * infoLog); +typedef void (APIENTRY *glGetShaderInfoLogPROC) (GLuint shader, GLsizei maxLength, GLsizei * length, GLchar * infoLog); +typedef void (APIENTRY *glGetProgramivPROC) (GLuint program, GLenum pname, GLint * params); +typedef void (APIENTRY *glGetShaderivPROC) (GLuint shader, GLenum pname, GLint * params); +typedef void (APIENTRY *glUniformMatrix4fvPROC) (GLint location, GLsizei count, GLboolean transpose, GLfloat * matrices); +typedef void (APIENTRY *glUniformMatrix3fvPROC) (GLint location, GLsizei count, GLboolean transpose, GLfloat * matrices); +typedef void (APIENTRY *glUniformMatrix2fvPROC) (GLint location, GLsizei count, GLboolean transpose, GLfloat * matrices); +typedef void (APIENTRY *glUniform4ivPROC) (GLint location, GLsizei count, GLint * values); +typedef void (APIENTRY *glUniform3ivPROC) (GLint location, GLsizei count, GLint * values); +typedef void (APIENTRY *glUniform2ivPROC) (GLint location, GLsizei count, GLint * values); +typedef void (APIENTRY *glUniform1ivPROC) (GLint location, GLsizei count, GLint * values); +typedef void (APIENTRY *glUniform4fvPROC) (GLint location, GLsizei count, GLfloat * values); +typedef void (APIENTRY *glUniform3fvPROC) (GLint location, GLsizei count, GLfloat * values); +typedef void (APIENTRY *glUniform2fvPROC) (GLint location, GLsizei count, GLfloat * values); +typedef void (APIENTRY *glUniform1fvPROC) (GLint location, GLsizei count, GLfloat * values); +typedef void (APIENTRY *glUniform4iPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRY *glUniform3iPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRY *glUniform2iPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRY *glUniform1iPROC) (GLint location, GLint v0); +typedef void (APIENTRY *glUniform4fPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRY *glUniform3fPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRY *glUniform2fPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRY *glUniform1fPROC) (GLint location, GLfloat v0); +typedef void (APIENTRY *glDeleteProgramPROC) (GLuint program); +typedef void (APIENTRY *glValidateProgramPROC) (GLuint program); +typedef void (APIENTRY *glUseProgramPROC) (GLuint program); +typedef void (APIENTRY *glLinkProgramPROC) (GLuint program); +typedef void (APIENTRY *glDetachShaderPROC) (GLuint program, GLuint shader); +typedef void (APIENTRY *glAttachShaderPROC) (GLuint program, GLuint shader); +typedef GLboolean (APIENTRY *glIsProgramPROC) (GLint program); +typedef GLint (APIENTRY *glCreateProgramPROC) (); +typedef void (APIENTRY *glDeleteShaderPROC) (GLuint shader); +typedef void (APIENTRY *glCompileShaderPROC) (GLuint shader); +typedef GLboolean (APIENTRY *glIsShaderPROC) (GLuint shader); +typedef GLint (APIENTRY *glCreateShaderPROC) (GLuint type); +typedef void (APIENTRY *glShaderSourcePROC) (GLuint shader, GLsizei count, const GLchar ** string, const GLint* length); -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglShaderSource(JNIEnv *env, jclass clazz, jint shader, jint count, jobject string, jint string_position, jint length, jlong function_pointer) { - const GLchar *string_address = ((const GLchar *)(*env)->GetDirectBufferAddress(env, string)) + string_position; - glShaderSourcePROC glShaderSource = (glShaderSourcePROC)((intptr_t)function_pointer); - glShaderSource(shader, count, &string_address, &length); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglBlendEquationSeparate(JNIEnv *env, jclass clazz, jint modeRGB, jint modeAlpha, jlong function_pointer) { + glBlendEquationSeparatePROC glBlendEquationSeparate = (glBlendEquationSeparatePROC)((intptr_t)function_pointer); + glBlendEquationSeparate(modeRGB, modeAlpha); } -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_GL20_nglCreateShader(JNIEnv *env, jclass clazz, jint type, jlong function_pointer) { - glCreateShaderPROC glCreateShader = (glCreateShaderPROC)((intptr_t)function_pointer); - GLint __result = glCreateShader(type); - return __result; +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglStencilMaskSeparate(JNIEnv *env, jclass clazz, jint face, jint mask, jlong function_pointer) { + glStencilMaskSeparatePROC glStencilMaskSeparate = (glStencilMaskSeparatePROC)((intptr_t)function_pointer); + glStencilMaskSeparate(face, mask); } -JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_GL20_nglIsShader(JNIEnv *env, jclass clazz, jint shader, jlong function_pointer) { - glIsShaderPROC glIsShader = (glIsShaderPROC)((intptr_t)function_pointer); - GLboolean __result = glIsShader(shader); - return __result; +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglStencilFuncSeparate(JNIEnv *env, jclass clazz, jint face, jint func, jint ref, jint mask, jlong function_pointer) { + glStencilFuncSeparatePROC glStencilFuncSeparate = (glStencilFuncSeparatePROC)((intptr_t)function_pointer); + glStencilFuncSeparate(face, func, ref, mask); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglCompileShader(JNIEnv *env, jclass clazz, jint shader, jlong function_pointer) { - glCompileShaderPROC glCompileShader = (glCompileShaderPROC)((intptr_t)function_pointer); - glCompileShader(shader); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglStencilOpSeparate(JNIEnv *env, jclass clazz, jint face, jint sfail, jint dpfail, jint dppass, jlong function_pointer) { + glStencilOpSeparatePROC glStencilOpSeparate = (glStencilOpSeparatePROC)((intptr_t)function_pointer); + glStencilOpSeparate(face, sfail, dpfail, dppass); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglDeleteShader(JNIEnv *env, jclass clazz, jint shader, jlong function_pointer) { - glDeleteShaderPROC glDeleteShader = (glDeleteShaderPROC)((intptr_t)function_pointer); - glDeleteShader(shader); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglDrawBuffers(JNIEnv *env, jclass clazz, jint size, jobject buffers, jint buffers_position, jlong function_pointer) { + const GLenum *buffers_address = ((const GLenum *)(*env)->GetDirectBufferAddress(env, buffers)) + buffers_position; + glDrawBuffersPROC glDrawBuffers = (glDrawBuffersPROC)((intptr_t)function_pointer); + glDrawBuffers(size, buffers_address); } -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_GL20_nglCreateProgram(JNIEnv *env, jclass clazz, jlong function_pointer) { - glCreateProgramPROC glCreateProgram = (glCreateProgramPROC)((intptr_t)function_pointer); - GLint __result = glCreateProgram(); - return __result; -} - -JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_GL20_nglIsProgram(JNIEnv *env, jclass clazz, jint program, jlong function_pointer) { - glIsProgramPROC glIsProgram = (glIsProgramPROC)((intptr_t)function_pointer); - GLboolean __result = glIsProgram(program); - return __result; -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglAttachShader(JNIEnv *env, jclass clazz, jint program, jint shader, jlong function_pointer) { - glAttachShaderPROC glAttachShader = (glAttachShaderPROC)((intptr_t)function_pointer); - glAttachShader(program, shader); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglDetachShader(JNIEnv *env, jclass clazz, jint program, jint shader, jlong function_pointer) { - glDetachShaderPROC glDetachShader = (glDetachShaderPROC)((intptr_t)function_pointer); - glDetachShader(program, shader); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglLinkProgram(JNIEnv *env, jclass clazz, jint program, jlong function_pointer) { - glLinkProgramPROC glLinkProgram = (glLinkProgramPROC)((intptr_t)function_pointer); - glLinkProgram(program); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUseProgram(JNIEnv *env, jclass clazz, jint program, jlong function_pointer) { - glUseProgramPROC glUseProgram = (glUseProgramPROC)((intptr_t)function_pointer); - glUseProgram(program); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglValidateProgram(JNIEnv *env, jclass clazz, jint program, jlong function_pointer) { - glValidateProgramPROC glValidateProgram = (glValidateProgramPROC)((intptr_t)function_pointer); - glValidateProgram(program); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglDeleteProgram(JNIEnv *env, jclass clazz, jint program, jlong function_pointer) { - glDeleteProgramPROC glDeleteProgram = (glDeleteProgramPROC)((intptr_t)function_pointer); - glDeleteProgram(program); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform1f(JNIEnv *env, jclass clazz, jint location, jfloat v0, jlong function_pointer) { - glUniform1fPROC glUniform1f = (glUniform1fPROC)((intptr_t)function_pointer); - glUniform1f(location, v0); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform2f(JNIEnv *env, jclass clazz, jint location, jfloat v0, jfloat v1, jlong function_pointer) { - glUniform2fPROC glUniform2f = (glUniform2fPROC)((intptr_t)function_pointer); - glUniform2f(location, v0, v1); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform3f(JNIEnv *env, jclass clazz, jint location, jfloat v0, jfloat v1, jfloat v2, jlong function_pointer) { - glUniform3fPROC glUniform3f = (glUniform3fPROC)((intptr_t)function_pointer); - glUniform3f(location, v0, v1, v2); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform4f(JNIEnv *env, jclass clazz, jint location, jfloat v0, jfloat v1, jfloat v2, jfloat v3, jlong function_pointer) { - glUniform4fPROC glUniform4f = (glUniform4fPROC)((intptr_t)function_pointer); - glUniform4f(location, v0, v1, v2, v3); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform1i(JNIEnv *env, jclass clazz, jint location, jint v0, jlong function_pointer) { - glUniform1iPROC glUniform1i = (glUniform1iPROC)((intptr_t)function_pointer); - glUniform1i(location, v0); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform2i(JNIEnv *env, jclass clazz, jint location, jint v0, jint v1, jlong function_pointer) { - glUniform2iPROC glUniform2i = (glUniform2iPROC)((intptr_t)function_pointer); - glUniform2i(location, v0, v1); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform3i(JNIEnv *env, jclass clazz, jint location, jint v0, jint v1, jint v2, jlong function_pointer) { - glUniform3iPROC glUniform3i = (glUniform3iPROC)((intptr_t)function_pointer); - glUniform3i(location, v0, v1, v2); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform4i(JNIEnv *env, jclass clazz, jint location, jint v0, jint v1, jint v2, jint v3, jlong function_pointer) { - glUniform4iPROC glUniform4i = (glUniform4iPROC)((intptr_t)function_pointer); - glUniform4i(location, v0, v1, v2, v3); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform1fv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { - GLfloat *values_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, values)) + values_position; - glUniform1fvPROC glUniform1fv = (glUniform1fvPROC)((intptr_t)function_pointer); - glUniform1fv(location, count, values_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform2fv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { - GLfloat *values_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, values)) + values_position; - glUniform2fvPROC glUniform2fv = (glUniform2fvPROC)((intptr_t)function_pointer); - glUniform2fv(location, count, values_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform3fv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { - GLfloat *values_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, values)) + values_position; - glUniform3fvPROC glUniform3fv = (glUniform3fvPROC)((intptr_t)function_pointer); - glUniform3fv(location, count, values_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform4fv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { - GLfloat *values_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, values)) + values_position; - glUniform4fvPROC glUniform4fv = (glUniform4fvPROC)((intptr_t)function_pointer); - glUniform4fv(location, count, values_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform1iv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { - GLint *values_address = ((GLint *)(*env)->GetDirectBufferAddress(env, values)) + values_position; - glUniform1ivPROC glUniform1iv = (glUniform1ivPROC)((intptr_t)function_pointer); - glUniform1iv(location, count, values_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform2iv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { - GLint *values_address = ((GLint *)(*env)->GetDirectBufferAddress(env, values)) + values_position; - glUniform2ivPROC glUniform2iv = (glUniform2ivPROC)((intptr_t)function_pointer); - glUniform2iv(location, count, values_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform3iv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { - GLint *values_address = ((GLint *)(*env)->GetDirectBufferAddress(env, values)) + values_position; - glUniform3ivPROC glUniform3iv = (glUniform3ivPROC)((intptr_t)function_pointer); - glUniform3iv(location, count, values_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform4iv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { - GLint *values_address = ((GLint *)(*env)->GetDirectBufferAddress(env, values)) + values_position; - glUniform4ivPROC glUniform4iv = (glUniform4ivPROC)((intptr_t)function_pointer); - glUniform4iv(location, count, values_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniformMatrix2fv(JNIEnv *env, jclass clazz, jint location, jint count, jboolean transpose, jobject matrices, jint matrices_position, jlong function_pointer) { - GLfloat *matrices_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, matrices)) + matrices_position; - glUniformMatrix2fvPROC glUniformMatrix2fv = (glUniformMatrix2fvPROC)((intptr_t)function_pointer); - glUniformMatrix2fv(location, count, transpose, matrices_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniformMatrix3fv(JNIEnv *env, jclass clazz, jint location, jint count, jboolean transpose, jobject matrices, jint matrices_position, jlong function_pointer) { - GLfloat *matrices_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, matrices)) + matrices_position; - glUniformMatrix3fvPROC glUniformMatrix3fv = (glUniformMatrix3fvPROC)((intptr_t)function_pointer); - glUniformMatrix3fv(location, count, transpose, matrices_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniformMatrix4fv(JNIEnv *env, jclass clazz, jint location, jint count, jboolean transpose, jobject matrices, jint matrices_position, jlong function_pointer) { - GLfloat *matrices_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, matrices)) + matrices_position; - glUniformMatrix4fvPROC glUniformMatrix4fv = (glUniformMatrix4fvPROC)((intptr_t)function_pointer); - glUniformMatrix4fv(location, count, transpose, matrices_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetShaderiv(JNIEnv *env, jclass clazz, jint shader, jint pname, jobject params, jint params_position, jlong function_pointer) { - GLint *params_address = ((GLint *)(*env)->GetDirectBufferAddress(env, params)) + params_position; - glGetShaderivPROC glGetShaderiv = (glGetShaderivPROC)((intptr_t)function_pointer); - glGetShaderiv(shader, pname, params_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetProgramiv(JNIEnv *env, jclass clazz, jint program, jint pname, jobject params, jint params_position, jlong function_pointer) { - GLint *params_address = ((GLint *)(*env)->GetDirectBufferAddress(env, params)) + params_position; - glGetProgramivPROC glGetProgramiv = (glGetProgramivPROC)((intptr_t)function_pointer); - glGetProgramiv(program, pname, params_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetShaderInfoLog(JNIEnv *env, jclass clazz, jint shader, jint maxLength, jobject length, jint length_position, jobject infoLog, jint infoLog_position, jlong function_pointer) { - GLsizei *length_address = ((GLsizei *)safeGetBufferAddress(env, length)) + length_position; - GLchar *infoLog_address = ((GLchar *)(*env)->GetDirectBufferAddress(env, infoLog)) + infoLog_position; - glGetShaderInfoLogPROC glGetShaderInfoLog = (glGetShaderInfoLogPROC)((intptr_t)function_pointer); - glGetShaderInfoLog(shader, maxLength, length_address, infoLog_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetProgramInfoLog(JNIEnv *env, jclass clazz, jint program, jint maxLength, jobject length, jint length_position, jobject infoLog, jint infoLog_position, jlong function_pointer) { - GLsizei *length_address = ((GLsizei *)safeGetBufferAddress(env, length)) + length_position; - GLchar *infoLog_address = ((GLchar *)(*env)->GetDirectBufferAddress(env, infoLog)) + infoLog_position; - glGetProgramInfoLogPROC glGetProgramInfoLog = (glGetProgramInfoLogPROC)((intptr_t)function_pointer); - glGetProgramInfoLog(program, maxLength, length_address, infoLog_address); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetAttachedShaders(JNIEnv *env, jclass clazz, jint program, jint maxCount, jobject count, jint count_position, jobject shaders, jint shaders_position, jlong function_pointer) { - GLsizei *count_address = ((GLsizei *)safeGetBufferAddress(env, count)) + count_position; - GLuint *shaders_address = ((GLuint *)(*env)->GetDirectBufferAddress(env, shaders)) + shaders_position; - glGetAttachedShadersPROC glGetAttachedShaders = (glGetAttachedShadersPROC)((intptr_t)function_pointer); - glGetAttachedShaders(program, maxCount, count_address, shaders_address); -} - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_GL20_nglGetUniformLocation(JNIEnv *env, jclass clazz, jint program, jobject name, jint name_position, jlong function_pointer) { +JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_GL20_nglGetAttribLocation(JNIEnv *env, jclass clazz, jint program, jobject name, jint name_position, jlong function_pointer) { const GLchar *name_address = ((const GLchar *)(*env)->GetDirectBufferAddress(env, name)) + name_position; - glGetUniformLocationPROC glGetUniformLocation = (glGetUniformLocationPROC)((intptr_t)function_pointer); - GLint __result = glGetUniformLocation(program, name_address); + glGetAttribLocationPROC glGetAttribLocation = (glGetAttribLocationPROC)((intptr_t)function_pointer); + GLint __result = glGetAttribLocation(program, name_address); return __result; } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetActiveUniform(JNIEnv *env, jclass clazz, jint program, jint index, jint maxLength, jobject length, jint length_position, jobject size, jint size_position, jobject type, jint type_position, jobject name, jint name_position, jlong function_pointer) { +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetActiveAttrib(JNIEnv *env, jclass clazz, jint program, jint index, jint maxLength, jobject length, jint length_position, jobject size, jint size_position, jobject type, jint type_position, jobject name, jint name_position, jlong function_pointer) { GLsizei *length_address = ((GLsizei *)safeGetBufferAddress(env, length)) + length_position; - GLsizei *size_address = ((GLsizei *)(*env)->GetDirectBufferAddress(env, size)) + size_position; + GLint *size_address = ((GLint *)(*env)->GetDirectBufferAddress(env, size)) + size_position; GLenum *type_address = ((GLenum *)(*env)->GetDirectBufferAddress(env, type)) + type_position; - GLchar *name_address = ((GLchar *)(*env)->GetDirectBufferAddress(env, name)) + name_position; - glGetActiveUniformPROC glGetActiveUniform = (glGetActiveUniformPROC)((intptr_t)function_pointer); - glGetActiveUniform(program, index, maxLength, length_address, size_address, type_address, name_address); + const GLchar *name_address = ((const GLchar *)(*env)->GetDirectBufferAddress(env, name)) + name_position; + glGetActiveAttribPROC glGetActiveAttrib = (glGetActiveAttribPROC)((intptr_t)function_pointer); + glGetActiveAttrib(program, index, maxLength, length_address, size_address, type_address, name_address); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetUniformfv(JNIEnv *env, jclass clazz, jint program, jint location, jobject params, jint params_position, jlong function_pointer) { - GLfloat *params_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, params)) + params_position; - glGetUniformfvPROC glGetUniformfv = (glGetUniformfvPROC)((intptr_t)function_pointer); - glGetUniformfv(program, location, params_address); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglBindAttribLocation(JNIEnv *env, jclass clazz, jint program, jint index, jobject name, jint name_position, jlong function_pointer) { + const GLchar *name_address = ((const GLchar *)(*env)->GetDirectBufferAddress(env, name)) + name_position; + glBindAttribLocationPROC glBindAttribLocation = (glBindAttribLocationPROC)((intptr_t)function_pointer); + glBindAttribLocation(program, index, name_address); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetUniformiv(JNIEnv *env, jclass clazz, jint program, jint location, jobject params, jint params_position, jlong function_pointer) { +JNIEXPORT jobject JNICALL Java_org_lwjgl_opengl_GL20_nglGetVertexAttribPointerv(JNIEnv *env, jclass clazz, jint index, jint pname, jint result_size, jlong function_pointer) { + glGetVertexAttribPointervPROC glGetVertexAttribPointerv = (glGetVertexAttribPointervPROC)((intptr_t)function_pointer); + GLvoid * __result; + glGetVertexAttribPointerv(index, pname, &__result); + return safeNewBuffer(env, __result, result_size); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetVertexAttribiv(JNIEnv *env, jclass clazz, jint index, jint pname, jobject params, jint params_position, jlong function_pointer) { GLint *params_address = ((GLint *)(*env)->GetDirectBufferAddress(env, params)) + params_position; - glGetUniformivPROC glGetUniformiv = (glGetUniformivPROC)((intptr_t)function_pointer); - glGetUniformiv(program, location, params_address); + glGetVertexAttribivPROC glGetVertexAttribiv = (glGetVertexAttribivPROC)((intptr_t)function_pointer); + glGetVertexAttribiv(index, pname, params_address); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetShaderSource(JNIEnv *env, jclass clazz, jint shader, jint maxLength, jobject length, jint length_position, jobject source, jint source_position, jlong function_pointer) { - GLsizei *length_address = ((GLsizei *)safeGetBufferAddress(env, length)) + length_position; - GLchar *source_address = ((GLchar *)(*env)->GetDirectBufferAddress(env, source)) + source_position; - glGetShaderSourcePROC glGetShaderSource = (glGetShaderSourcePROC)((intptr_t)function_pointer); - glGetShaderSource(shader, maxLength, length_address, source_address); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetVertexAttribfv(JNIEnv *env, jclass clazz, jint index, jint pname, jobject params, jint params_position, jlong function_pointer) { + GLfloat *params_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, params)) + params_position; + glGetVertexAttribfvPROC glGetVertexAttribfv = (glGetVertexAttribfvPROC)((intptr_t)function_pointer); + glGetVertexAttribfv(index, pname, params_address); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib1s(JNIEnv *env, jclass clazz, jint index, jshort x, jlong function_pointer) { - glVertexAttrib1sPROC glVertexAttrib1s = (glVertexAttrib1sPROC)((intptr_t)function_pointer); - glVertexAttrib1s(index, x); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglDisableVertexAttribArray(JNIEnv *env, jclass clazz, jint index, jlong function_pointer) { + glDisableVertexAttribArrayPROC glDisableVertexAttribArray = (glDisableVertexAttribArrayPROC)((intptr_t)function_pointer); + glDisableVertexAttribArray(index); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib1f(JNIEnv *env, jclass clazz, jint index, jfloat x, jlong function_pointer) { - glVertexAttrib1fPROC glVertexAttrib1f = (glVertexAttrib1fPROC)((intptr_t)function_pointer); - glVertexAttrib1f(index, x); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib2s(JNIEnv *env, jclass clazz, jint index, jshort x, jshort y, jlong function_pointer) { - glVertexAttrib2sPROC glVertexAttrib2s = (glVertexAttrib2sPROC)((intptr_t)function_pointer); - glVertexAttrib2s(index, x, y); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib2f(JNIEnv *env, jclass clazz, jint index, jfloat x, jfloat y, jlong function_pointer) { - glVertexAttrib2fPROC glVertexAttrib2f = (glVertexAttrib2fPROC)((intptr_t)function_pointer); - glVertexAttrib2f(index, x, y); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib3s(JNIEnv *env, jclass clazz, jint index, jshort x, jshort y, jshort z, jlong function_pointer) { - glVertexAttrib3sPROC glVertexAttrib3s = (glVertexAttrib3sPROC)((intptr_t)function_pointer); - glVertexAttrib3s(index, x, y, z); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib3f(JNIEnv *env, jclass clazz, jint index, jfloat x, jfloat y, jfloat z, jlong function_pointer) { - glVertexAttrib3fPROC glVertexAttrib3f = (glVertexAttrib3fPROC)((intptr_t)function_pointer); - glVertexAttrib3f(index, x, y, z); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib4s(JNIEnv *env, jclass clazz, jint index, jshort x, jshort y, jshort z, jshort w, jlong function_pointer) { - glVertexAttrib4sPROC glVertexAttrib4s = (glVertexAttrib4sPROC)((intptr_t)function_pointer); - glVertexAttrib4s(index, x, y, z, w); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib4f(JNIEnv *env, jclass clazz, jint index, jfloat x, jfloat y, jfloat z, jfloat w, jlong function_pointer) { - glVertexAttrib4fPROC glVertexAttrib4f = (glVertexAttrib4fPROC)((intptr_t)function_pointer); - glVertexAttrib4f(index, x, y, z, w); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib4Nub(JNIEnv *env, jclass clazz, jint index, jbyte x, jbyte y, jbyte z, jbyte w, jlong function_pointer) { - glVertexAttrib4NubPROC glVertexAttrib4Nub = (glVertexAttrib4NubPROC)((intptr_t)function_pointer); - glVertexAttrib4Nub(index, x, y, z, w); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglEnableVertexAttribArray(JNIEnv *env, jclass clazz, jint index, jlong function_pointer) { + glEnableVertexAttribArrayPROC glEnableVertexAttribArray = (glEnableVertexAttribArrayPROC)((intptr_t)function_pointer); + glEnableVertexAttribArray(index); } JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttribPointer(JNIEnv *env, jclass clazz, jint index, jint size, jint type, jboolean normalized, jint stride, jobject buffer, jint buffer_position, jlong function_pointer) { @@ -370,80 +158,292 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttribPointerBO(JNIEn glVertexAttribPointer(index, size, type, normalized, stride, buffer_address); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglEnableVertexAttribArray(JNIEnv *env, jclass clazz, jint index, jlong function_pointer) { - glEnableVertexAttribArrayPROC glEnableVertexAttribArray = (glEnableVertexAttribArrayPROC)((intptr_t)function_pointer); - glEnableVertexAttribArray(index); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib4Nub(JNIEnv *env, jclass clazz, jint index, jbyte x, jbyte y, jbyte z, jbyte w, jlong function_pointer) { + glVertexAttrib4NubPROC glVertexAttrib4Nub = (glVertexAttrib4NubPROC)((intptr_t)function_pointer); + glVertexAttrib4Nub(index, x, y, z, w); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglDisableVertexAttribArray(JNIEnv *env, jclass clazz, jint index, jlong function_pointer) { - glDisableVertexAttribArrayPROC glDisableVertexAttribArray = (glDisableVertexAttribArrayPROC)((intptr_t)function_pointer); - glDisableVertexAttribArray(index); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib4f(JNIEnv *env, jclass clazz, jint index, jfloat x, jfloat y, jfloat z, jfloat w, jlong function_pointer) { + glVertexAttrib4fPROC glVertexAttrib4f = (glVertexAttrib4fPROC)((intptr_t)function_pointer); + glVertexAttrib4f(index, x, y, z, w); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetVertexAttribfv(JNIEnv *env, jclass clazz, jint index, jint pname, jobject params, jint params_position, jlong function_pointer) { - GLfloat *params_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, params)) + params_position; - glGetVertexAttribfvPROC glGetVertexAttribfv = (glGetVertexAttribfvPROC)((intptr_t)function_pointer); - glGetVertexAttribfv(index, pname, params_address); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib4s(JNIEnv *env, jclass clazz, jint index, jshort x, jshort y, jshort z, jshort w, jlong function_pointer) { + glVertexAttrib4sPROC glVertexAttrib4s = (glVertexAttrib4sPROC)((intptr_t)function_pointer); + glVertexAttrib4s(index, x, y, z, w); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetVertexAttribiv(JNIEnv *env, jclass clazz, jint index, jint pname, jobject params, jint params_position, jlong function_pointer) { - GLint *params_address = ((GLint *)(*env)->GetDirectBufferAddress(env, params)) + params_position; - glGetVertexAttribivPROC glGetVertexAttribiv = (glGetVertexAttribivPROC)((intptr_t)function_pointer); - glGetVertexAttribiv(index, pname, params_address); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib3f(JNIEnv *env, jclass clazz, jint index, jfloat x, jfloat y, jfloat z, jlong function_pointer) { + glVertexAttrib3fPROC glVertexAttrib3f = (glVertexAttrib3fPROC)((intptr_t)function_pointer); + glVertexAttrib3f(index, x, y, z); } -JNIEXPORT jobject JNICALL Java_org_lwjgl_opengl_GL20_nglGetVertexAttribPointerv(JNIEnv *env, jclass clazz, jint index, jint pname, jint result_size, jlong function_pointer) { - glGetVertexAttribPointervPROC glGetVertexAttribPointerv = (glGetVertexAttribPointervPROC)((intptr_t)function_pointer); - GLvoid * __result; - glGetVertexAttribPointerv(index, pname, &__result); - return safeNewBuffer(env, __result, result_size); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib3s(JNIEnv *env, jclass clazz, jint index, jshort x, jshort y, jshort z, jlong function_pointer) { + glVertexAttrib3sPROC glVertexAttrib3s = (glVertexAttrib3sPROC)((intptr_t)function_pointer); + glVertexAttrib3s(index, x, y, z); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglBindAttribLocation(JNIEnv *env, jclass clazz, jint program, jint index, jobject name, jint name_position, jlong function_pointer) { - const GLchar *name_address = ((const GLchar *)(*env)->GetDirectBufferAddress(env, name)) + name_position; - glBindAttribLocationPROC glBindAttribLocation = (glBindAttribLocationPROC)((intptr_t)function_pointer); - glBindAttribLocation(program, index, name_address); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib2f(JNIEnv *env, jclass clazz, jint index, jfloat x, jfloat y, jlong function_pointer) { + glVertexAttrib2fPROC glVertexAttrib2f = (glVertexAttrib2fPROC)((intptr_t)function_pointer); + glVertexAttrib2f(index, x, y); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetActiveAttrib(JNIEnv *env, jclass clazz, jint program, jint index, jint maxLength, jobject length, jint length_position, jobject size, jint size_position, jobject type, jint type_position, jobject name, jint name_position, jlong function_pointer) { +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib2s(JNIEnv *env, jclass clazz, jint index, jshort x, jshort y, jlong function_pointer) { + glVertexAttrib2sPROC glVertexAttrib2s = (glVertexAttrib2sPROC)((intptr_t)function_pointer); + glVertexAttrib2s(index, x, y); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib1f(JNIEnv *env, jclass clazz, jint index, jfloat x, jlong function_pointer) { + glVertexAttrib1fPROC glVertexAttrib1f = (glVertexAttrib1fPROC)((intptr_t)function_pointer); + glVertexAttrib1f(index, x); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglVertexAttrib1s(JNIEnv *env, jclass clazz, jint index, jshort x, jlong function_pointer) { + glVertexAttrib1sPROC glVertexAttrib1s = (glVertexAttrib1sPROC)((intptr_t)function_pointer); + glVertexAttrib1s(index, x); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetShaderSource(JNIEnv *env, jclass clazz, jint shader, jint maxLength, jobject length, jint length_position, jobject source, jint source_position, jlong function_pointer) { GLsizei *length_address = ((GLsizei *)safeGetBufferAddress(env, length)) + length_position; - GLint *size_address = ((GLint *)(*env)->GetDirectBufferAddress(env, size)) + size_position; - GLenum *type_address = ((GLenum *)(*env)->GetDirectBufferAddress(env, type)) + type_position; - const GLchar *name_address = ((const GLchar *)(*env)->GetDirectBufferAddress(env, name)) + name_position; - glGetActiveAttribPROC glGetActiveAttrib = (glGetActiveAttribPROC)((intptr_t)function_pointer); - glGetActiveAttrib(program, index, maxLength, length_address, size_address, type_address, name_address); + GLchar *source_address = ((GLchar *)(*env)->GetDirectBufferAddress(env, source)) + source_position; + glGetShaderSourcePROC glGetShaderSource = (glGetShaderSourcePROC)((intptr_t)function_pointer); + glGetShaderSource(shader, maxLength, length_address, source_address); } -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_GL20_nglGetAttribLocation(JNIEnv *env, jclass clazz, jint program, jobject name, jint name_position, jlong function_pointer) { +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetUniformiv(JNIEnv *env, jclass clazz, jint program, jint location, jobject params, jint params_position, jlong function_pointer) { + GLint *params_address = ((GLint *)(*env)->GetDirectBufferAddress(env, params)) + params_position; + glGetUniformivPROC glGetUniformiv = (glGetUniformivPROC)((intptr_t)function_pointer); + glGetUniformiv(program, location, params_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetUniformfv(JNIEnv *env, jclass clazz, jint program, jint location, jobject params, jint params_position, jlong function_pointer) { + GLfloat *params_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, params)) + params_position; + glGetUniformfvPROC glGetUniformfv = (glGetUniformfvPROC)((intptr_t)function_pointer); + glGetUniformfv(program, location, params_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetActiveUniform(JNIEnv *env, jclass clazz, jint program, jint index, jint maxLength, jobject length, jint length_position, jobject size, jint size_position, jobject type, jint type_position, jobject name, jint name_position, jlong function_pointer) { + GLsizei *length_address = ((GLsizei *)safeGetBufferAddress(env, length)) + length_position; + GLsizei *size_address = ((GLsizei *)(*env)->GetDirectBufferAddress(env, size)) + size_position; + GLenum *type_address = ((GLenum *)(*env)->GetDirectBufferAddress(env, type)) + type_position; + GLchar *name_address = ((GLchar *)(*env)->GetDirectBufferAddress(env, name)) + name_position; + glGetActiveUniformPROC glGetActiveUniform = (glGetActiveUniformPROC)((intptr_t)function_pointer); + glGetActiveUniform(program, index, maxLength, length_address, size_address, type_address, name_address); +} + +JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_GL20_nglGetUniformLocation(JNIEnv *env, jclass clazz, jint program, jobject name, jint name_position, jlong function_pointer) { const GLchar *name_address = ((const GLchar *)(*env)->GetDirectBufferAddress(env, name)) + name_position; - glGetAttribLocationPROC glGetAttribLocation = (glGetAttribLocationPROC)((intptr_t)function_pointer); - GLint __result = glGetAttribLocation(program, name_address); + glGetUniformLocationPROC glGetUniformLocation = (glGetUniformLocationPROC)((intptr_t)function_pointer); + GLint __result = glGetUniformLocation(program, name_address); return __result; } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglDrawBuffers(JNIEnv *env, jclass clazz, jint size, jobject buffers, jint buffers_position, jlong function_pointer) { - const GLenum *buffers_address = ((const GLenum *)(*env)->GetDirectBufferAddress(env, buffers)) + buffers_position; - glDrawBuffersPROC glDrawBuffers = (glDrawBuffersPROC)((intptr_t)function_pointer); - glDrawBuffers(size, buffers_address); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetAttachedShaders(JNIEnv *env, jclass clazz, jint program, jint maxCount, jobject count, jint count_position, jobject shaders, jint shaders_position, jlong function_pointer) { + GLsizei *count_address = ((GLsizei *)safeGetBufferAddress(env, count)) + count_position; + GLuint *shaders_address = ((GLuint *)(*env)->GetDirectBufferAddress(env, shaders)) + shaders_position; + glGetAttachedShadersPROC glGetAttachedShaders = (glGetAttachedShadersPROC)((intptr_t)function_pointer); + glGetAttachedShaders(program, maxCount, count_address, shaders_address); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglStencilOpSeparate(JNIEnv *env, jclass clazz, jint face, jint sfail, jint dpfail, jint dppass, jlong function_pointer) { - glStencilOpSeparatePROC glStencilOpSeparate = (glStencilOpSeparatePROC)((intptr_t)function_pointer); - glStencilOpSeparate(face, sfail, dpfail, dppass); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetProgramInfoLog(JNIEnv *env, jclass clazz, jint program, jint maxLength, jobject length, jint length_position, jobject infoLog, jint infoLog_position, jlong function_pointer) { + GLsizei *length_address = ((GLsizei *)safeGetBufferAddress(env, length)) + length_position; + GLchar *infoLog_address = ((GLchar *)(*env)->GetDirectBufferAddress(env, infoLog)) + infoLog_position; + glGetProgramInfoLogPROC glGetProgramInfoLog = (glGetProgramInfoLogPROC)((intptr_t)function_pointer); + glGetProgramInfoLog(program, maxLength, length_address, infoLog_address); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglStencilFuncSeparate(JNIEnv *env, jclass clazz, jint face, jint func, jint ref, jint mask, jlong function_pointer) { - glStencilFuncSeparatePROC glStencilFuncSeparate = (glStencilFuncSeparatePROC)((intptr_t)function_pointer); - glStencilFuncSeparate(face, func, ref, mask); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetShaderInfoLog(JNIEnv *env, jclass clazz, jint shader, jint maxLength, jobject length, jint length_position, jobject infoLog, jint infoLog_position, jlong function_pointer) { + GLsizei *length_address = ((GLsizei *)safeGetBufferAddress(env, length)) + length_position; + GLchar *infoLog_address = ((GLchar *)(*env)->GetDirectBufferAddress(env, infoLog)) + infoLog_position; + glGetShaderInfoLogPROC glGetShaderInfoLog = (glGetShaderInfoLogPROC)((intptr_t)function_pointer); + glGetShaderInfoLog(shader, maxLength, length_address, infoLog_address); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglStencilMaskSeparate(JNIEnv *env, jclass clazz, jint face, jint mask, jlong function_pointer) { - glStencilMaskSeparatePROC glStencilMaskSeparate = (glStencilMaskSeparatePROC)((intptr_t)function_pointer); - glStencilMaskSeparate(face, mask); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetProgramiv(JNIEnv *env, jclass clazz, jint program, jint pname, jobject params, jint params_position, jlong function_pointer) { + GLint *params_address = ((GLint *)(*env)->GetDirectBufferAddress(env, params)) + params_position; + glGetProgramivPROC glGetProgramiv = (glGetProgramivPROC)((intptr_t)function_pointer); + glGetProgramiv(program, pname, params_address); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglBlendEquationSeparate(JNIEnv *env, jclass clazz, jint modeRGB, jint modeAlpha, jlong function_pointer) { - glBlendEquationSeparatePROC glBlendEquationSeparate = (glBlendEquationSeparatePROC)((intptr_t)function_pointer); - glBlendEquationSeparate(modeRGB, modeAlpha); +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglGetShaderiv(JNIEnv *env, jclass clazz, jint shader, jint pname, jobject params, jint params_position, jlong function_pointer) { + GLint *params_address = ((GLint *)(*env)->GetDirectBufferAddress(env, params)) + params_position; + glGetShaderivPROC glGetShaderiv = (glGetShaderivPROC)((intptr_t)function_pointer); + glGetShaderiv(shader, pname, params_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniformMatrix4fv(JNIEnv *env, jclass clazz, jint location, jint count, jboolean transpose, jobject matrices, jint matrices_position, jlong function_pointer) { + GLfloat *matrices_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, matrices)) + matrices_position; + glUniformMatrix4fvPROC glUniformMatrix4fv = (glUniformMatrix4fvPROC)((intptr_t)function_pointer); + glUniformMatrix4fv(location, count, transpose, matrices_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniformMatrix3fv(JNIEnv *env, jclass clazz, jint location, jint count, jboolean transpose, jobject matrices, jint matrices_position, jlong function_pointer) { + GLfloat *matrices_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, matrices)) + matrices_position; + glUniformMatrix3fvPROC glUniformMatrix3fv = (glUniformMatrix3fvPROC)((intptr_t)function_pointer); + glUniformMatrix3fv(location, count, transpose, matrices_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniformMatrix2fv(JNIEnv *env, jclass clazz, jint location, jint count, jboolean transpose, jobject matrices, jint matrices_position, jlong function_pointer) { + GLfloat *matrices_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, matrices)) + matrices_position; + glUniformMatrix2fvPROC glUniformMatrix2fv = (glUniformMatrix2fvPROC)((intptr_t)function_pointer); + glUniformMatrix2fv(location, count, transpose, matrices_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform4iv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { + GLint *values_address = ((GLint *)(*env)->GetDirectBufferAddress(env, values)) + values_position; + glUniform4ivPROC glUniform4iv = (glUniform4ivPROC)((intptr_t)function_pointer); + glUniform4iv(location, count, values_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform3iv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { + GLint *values_address = ((GLint *)(*env)->GetDirectBufferAddress(env, values)) + values_position; + glUniform3ivPROC glUniform3iv = (glUniform3ivPROC)((intptr_t)function_pointer); + glUniform3iv(location, count, values_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform2iv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { + GLint *values_address = ((GLint *)(*env)->GetDirectBufferAddress(env, values)) + values_position; + glUniform2ivPROC glUniform2iv = (glUniform2ivPROC)((intptr_t)function_pointer); + glUniform2iv(location, count, values_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform1iv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { + GLint *values_address = ((GLint *)(*env)->GetDirectBufferAddress(env, values)) + values_position; + glUniform1ivPROC glUniform1iv = (glUniform1ivPROC)((intptr_t)function_pointer); + glUniform1iv(location, count, values_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform4fv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { + GLfloat *values_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, values)) + values_position; + glUniform4fvPROC glUniform4fv = (glUniform4fvPROC)((intptr_t)function_pointer); + glUniform4fv(location, count, values_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform3fv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { + GLfloat *values_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, values)) + values_position; + glUniform3fvPROC glUniform3fv = (glUniform3fvPROC)((intptr_t)function_pointer); + glUniform3fv(location, count, values_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform2fv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { + GLfloat *values_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, values)) + values_position; + glUniform2fvPROC glUniform2fv = (glUniform2fvPROC)((intptr_t)function_pointer); + glUniform2fv(location, count, values_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform1fv(JNIEnv *env, jclass clazz, jint location, jint count, jobject values, jint values_position, jlong function_pointer) { + GLfloat *values_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, values)) + values_position; + glUniform1fvPROC glUniform1fv = (glUniform1fvPROC)((intptr_t)function_pointer); + glUniform1fv(location, count, values_address); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform4i(JNIEnv *env, jclass clazz, jint location, jint v0, jint v1, jint v2, jint v3, jlong function_pointer) { + glUniform4iPROC glUniform4i = (glUniform4iPROC)((intptr_t)function_pointer); + glUniform4i(location, v0, v1, v2, v3); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform3i(JNIEnv *env, jclass clazz, jint location, jint v0, jint v1, jint v2, jlong function_pointer) { + glUniform3iPROC glUniform3i = (glUniform3iPROC)((intptr_t)function_pointer); + glUniform3i(location, v0, v1, v2); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform2i(JNIEnv *env, jclass clazz, jint location, jint v0, jint v1, jlong function_pointer) { + glUniform2iPROC glUniform2i = (glUniform2iPROC)((intptr_t)function_pointer); + glUniform2i(location, v0, v1); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform1i(JNIEnv *env, jclass clazz, jint location, jint v0, jlong function_pointer) { + glUniform1iPROC glUniform1i = (glUniform1iPROC)((intptr_t)function_pointer); + glUniform1i(location, v0); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform4f(JNIEnv *env, jclass clazz, jint location, jfloat v0, jfloat v1, jfloat v2, jfloat v3, jlong function_pointer) { + glUniform4fPROC glUniform4f = (glUniform4fPROC)((intptr_t)function_pointer); + glUniform4f(location, v0, v1, v2, v3); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform3f(JNIEnv *env, jclass clazz, jint location, jfloat v0, jfloat v1, jfloat v2, jlong function_pointer) { + glUniform3fPROC glUniform3f = (glUniform3fPROC)((intptr_t)function_pointer); + glUniform3f(location, v0, v1, v2); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform2f(JNIEnv *env, jclass clazz, jint location, jfloat v0, jfloat v1, jlong function_pointer) { + glUniform2fPROC glUniform2f = (glUniform2fPROC)((intptr_t)function_pointer); + glUniform2f(location, v0, v1); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUniform1f(JNIEnv *env, jclass clazz, jint location, jfloat v0, jlong function_pointer) { + glUniform1fPROC glUniform1f = (glUniform1fPROC)((intptr_t)function_pointer); + glUniform1f(location, v0); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglDeleteProgram(JNIEnv *env, jclass clazz, jint program, jlong function_pointer) { + glDeleteProgramPROC glDeleteProgram = (glDeleteProgramPROC)((intptr_t)function_pointer); + glDeleteProgram(program); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglValidateProgram(JNIEnv *env, jclass clazz, jint program, jlong function_pointer) { + glValidateProgramPROC glValidateProgram = (glValidateProgramPROC)((intptr_t)function_pointer); + glValidateProgram(program); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglUseProgram(JNIEnv *env, jclass clazz, jint program, jlong function_pointer) { + glUseProgramPROC glUseProgram = (glUseProgramPROC)((intptr_t)function_pointer); + glUseProgram(program); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglLinkProgram(JNIEnv *env, jclass clazz, jint program, jlong function_pointer) { + glLinkProgramPROC glLinkProgram = (glLinkProgramPROC)((intptr_t)function_pointer); + glLinkProgram(program); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglDetachShader(JNIEnv *env, jclass clazz, jint program, jint shader, jlong function_pointer) { + glDetachShaderPROC glDetachShader = (glDetachShaderPROC)((intptr_t)function_pointer); + glDetachShader(program, shader); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglAttachShader(JNIEnv *env, jclass clazz, jint program, jint shader, jlong function_pointer) { + glAttachShaderPROC glAttachShader = (glAttachShaderPROC)((intptr_t)function_pointer); + glAttachShader(program, shader); +} + +JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_GL20_nglIsProgram(JNIEnv *env, jclass clazz, jint program, jlong function_pointer) { + glIsProgramPROC glIsProgram = (glIsProgramPROC)((intptr_t)function_pointer); + GLboolean __result = glIsProgram(program); + return __result; +} + +JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_GL20_nglCreateProgram(JNIEnv *env, jclass clazz, jlong function_pointer) { + glCreateProgramPROC glCreateProgram = (glCreateProgramPROC)((intptr_t)function_pointer); + GLint __result = glCreateProgram(); + return __result; +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglDeleteShader(JNIEnv *env, jclass clazz, jint shader, jlong function_pointer) { + glDeleteShaderPROC glDeleteShader = (glDeleteShaderPROC)((intptr_t)function_pointer); + glDeleteShader(shader); +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglCompileShader(JNIEnv *env, jclass clazz, jint shader, jlong function_pointer) { + glCompileShaderPROC glCompileShader = (glCompileShaderPROC)((intptr_t)function_pointer); + glCompileShader(shader); +} + +JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_GL20_nglIsShader(JNIEnv *env, jclass clazz, jint shader, jlong function_pointer) { + glIsShaderPROC glIsShader = (glIsShaderPROC)((intptr_t)function_pointer); + GLboolean __result = glIsShader(shader); + return __result; +} + +JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_GL20_nglCreateShader(JNIEnv *env, jclass clazz, jint type, jlong function_pointer) { + glCreateShaderPROC glCreateShader = (glCreateShaderPROC)((intptr_t)function_pointer); + GLint __result = glCreateShader(type); + return __result; +} + +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglShaderSource(JNIEnv *env, jclass clazz, jint shader, jint count, jobject string, jint string_position, jint length, jlong function_pointer) { + const GLchar *string_address = ((const GLchar *)(*env)->GetDirectBufferAddress(env, string)) + string_position; + glShaderSourcePROC glShaderSource = (glShaderSourcePROC)((intptr_t)function_pointer); + glShaderSource(shader, count, &string_address, &length); }