All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lwjgl.opengles.GLES20 Maven / Gradle / Ivy

There is a newer version: 2.9.3
Show newest version
/* MACHINE GENERATED FILE, DO NOT EDIT */

package org.lwjgl.opengles;

import org.lwjgl.*;
import java.nio.*;

public final class GLES20 {

	/**
	 * ClearBufferMask 
	 */
	public static final int GL_DEPTH_BUFFER_BIT = 0x100,
		GL_STENCIL_BUFFER_BIT = 0x400,
		GL_COLOR_BUFFER_BIT = 0x4000;

	/**
	 * Boolean 
	 */
	public static final int GL_FALSE = 0x0,
		GL_TRUE = 0x1;

	/**
	 * BeginMode 
	 */
	public static final int GL_POINTS = 0x0,
		GL_LINES = 0x1,
		GL_LINE_LOOP = 0x2,
		GL_LINE_STRIP = 0x3,
		GL_TRIANGLES = 0x4,
		GL_TRIANGLE_STRIP = 0x5,
		GL_TRIANGLE_FAN = 0x6;

	/**
	 * BlendingFactorDest 
	 */
	public static final int GL_ZERO = 0x0,
		GL_ONE = 0x1,
		GL_SRC_COLOR = 0x300,
		GL_ONE_MINUS_SRC_COLOR = 0x301,
		GL_SRC_ALPHA = 0x302,
		GL_ONE_MINUS_SRC_ALPHA = 0x303,
		GL_DST_ALPHA = 0x304,
		GL_ONE_MINUS_DST_ALPHA = 0x305;

	/**
	 * BlendingFactorSrc 
	 */
	public static final int GL_DST_COLOR = 0x306,
		GL_ONE_MINUS_DST_COLOR = 0x307,
		GL_SRC_ALPHA_SATURATE = 0x308;

	/**
	 * BlendEquationSeparate 
	 */
	public static final int GL_FUNC_ADD = 0x8006,
		GL_BLEND_EQUATION = 0x8009,
		GL_BLEND_EQUATION_RGB = 0x8009,
		GL_BLEND_EQUATION_ALPHA = 0x883D;

	/**
	 * BlendSubtract 
	 */
	public static final int GL_FUNC_SUBTRACT = 0x800A,
		GL_FUNC_REVERSE_SUBTRACT = 0x800B;

	/**
	 * Separate Blend Functions 
	 */
	public static final int GL_BLEND_DST_RGB = 0x80C8,
		GL_BLEND_SRC_RGB = 0x80C9,
		GL_BLEND_DST_ALPHA = 0x80CA,
		GL_BLEND_SRC_ALPHA = 0x80CB,
		GL_CONSTANT_COLOR = 0x8001,
		GL_ONE_MINUS_CONSTANT_COLOR = 0x8002,
		GL_CONSTANT_ALPHA = 0x8003,
		GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004,
		GL_BLEND_COLOR = 0x8005;

	/**
	 * Buffer Objects 
	 */
	public static final int GL_ARRAY_BUFFER = 0x8892,
		GL_ELEMENT_ARRAY_BUFFER = 0x8893,
		GL_ARRAY_BUFFER_BINDING = 0x8894,
		GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895,
		GL_STREAM_DRAW = 0x88E0,
		GL_STATIC_DRAW = 0x88E4,
		GL_DYNAMIC_DRAW = 0x88E8,
		GL_BUFFER_SIZE = 0x8764,
		GL_BUFFER_USAGE = 0x8765,
		GL_CURRENT_VERTEX_ATTRIB = 0x8626;

	/**
	 * CullFaceMode 
	 */
	public static final int GL_FRONT = 0x404,
		GL_BACK = 0x405,
		GL_FRONT_AND_BACK = 0x408;

	/**
	 * EnableCap 
	 */
	public static final int GL_TEXTURE_2D = 0xDE1,
		GL_CULL_FACE = 0xB44,
		GL_BLEND = 0xBE2,
		GL_DITHER = 0xBD0,
		GL_STENCIL_TEST = 0xB90,
		GL_DEPTH_TEST = 0xB71,
		GL_SCISSOR_TEST = 0xC11,
		GL_POLYGON_OFFSET_FILL = 0x8037,
		GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E,
		GL_SAMPLE_COVERAGE = 0x80A0;

	/**
	 * ErrorCode 
	 */
	public static final int GL_NO_ERROR = 0x0,
		GL_INVALID_ENUM = 0x500,
		GL_INVALID_VALUE = 0x501,
		GL_INVALID_OPERATION = 0x502,
		GL_OUT_OF_MEMORY = 0x505;

	/**
	 * FrontFaceDirection 
	 */
	public static final int GL_CW = 0x900,
		GL_CCW = 0x901;

	/**
	 * GetPName 
	 */
	public static final int GL_LINE_WIDTH = 0xB21,
		GL_ALIASED_POINT_SIZE_RANGE = 0x846D,
		GL_ALIASED_LINE_WIDTH_RANGE = 0x846E,
		GL_CULL_FACE_MODE = 0xB45,
		GL_FRONT_FACE = 0xB46,
		GL_DEPTH_RANGE = 0xB70,
		GL_DEPTH_WRITEMASK = 0xB72,
		GL_DEPTH_CLEAR_VALUE = 0xB73,
		GL_DEPTH_FUNC = 0xB74,
		GL_STENCIL_CLEAR_VALUE = 0xB91,
		GL_STENCIL_FUNC = 0xB92,
		GL_STENCIL_FAIL = 0xB94,
		GL_STENCIL_PASS_DEPTH_FAIL = 0xB95,
		GL_STENCIL_PASS_DEPTH_PASS = 0xB96,
		GL_STENCIL_REF = 0xB97,
		GL_STENCIL_VALUE_MASK = 0xB93,
		GL_STENCIL_WRITEMASK = 0xB98,
		GL_STENCIL_BACK_FUNC = 0x8800,
		GL_STENCIL_BACK_FAIL = 0x8801,
		GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802,
		GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803,
		GL_STENCIL_BACK_REF = 0x8CA3,
		GL_STENCIL_BACK_VALUE_MASK = 0x8CA4,
		GL_STENCIL_BACK_WRITEMASK = 0x8CA5,
		GL_VIEWPORT = 0xBA2,
		GL_SCISSOR_BOX = 0xC10,
		GL_COLOR_CLEAR_VALUE = 0xC22,
		GL_COLOR_WRITEMASK = 0xC23,
		GL_UNPACK_ALIGNMENT = 0xCF5,
		GL_PACK_ALIGNMENT = 0xD05,
		GL_MAX_TEXTURE_SIZE = 0xD33,
		GL_MAX_VIEWPORT_DIMS = 0xD3A,
		GL_SUBPIXEL_BITS = 0xD50,
		GL_RED_BITS = 0xD52,
		GL_GREEN_BITS = 0xD53,
		GL_BLUE_BITS = 0xD54,
		GL_ALPHA_BITS = 0xD55,
		GL_DEPTH_BITS = 0xD56,
		GL_STENCIL_BITS = 0xD57,
		GL_POLYGON_OFFSET_UNITS = 0x2A00,
		GL_POLYGON_OFFSET_FACTOR = 0x8038,
		GL_TEXTURE_BINDING_2D = 0x8069,
		GL_SAMPLE_BUFFERS = 0x80A8,
		GL_SAMPLES = 0x80A9,
		GL_SAMPLE_COVERAGE_VALUE = 0x80AA,
		GL_SAMPLE_COVERAGE_INVERT = 0x80AB;

	/**
	 * GetTextureParameter 
	 */
	public static final int GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2,
		GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3;

	/**
	 * HintMode 
	 */
	public static final int GL_DONT_CARE = 0x1100,
		GL_FASTEST = 0x1101,
		GL_NICEST = 0x1102;

	/**
	 * HintTarget 
	 */
	public static final int GL_GENERATE_MIPMAP_HINT = 0x8192;

	/**
	 * DataType 
	 */
	public static final int GL_BYTE = 0x1400,
		GL_UNSIGNED_BYTE = 0x1401,
		GL_SHORT = 0x1402,
		GL_UNSIGNED_SHORT = 0x1403,
		GL_INT = 0x1404,
		GL_UNSIGNED_INT = 0x1405,
		GL_FLOAT = 0x1406,
		GL_FIXED = 0x140C;

	/**
	 * PixelFormat 
	 */
	public static final int GL_DEPTH_COMPONENT = 0x1902,
		GL_ALPHA = 0x1906,
		GL_RGB = 0x1907,
		GL_RGBA = 0x1908,
		GL_LUMINANCE = 0x1909,
		GL_LUMINANCE_ALPHA = 0x190A;

	/**
	 * PixelType 
	 */
	public static final int GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033,
		GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034,
		GL_UNSIGNED_SHORT_5_6_5 = 0x8363;

	/**
	 * Shaders 
	 */
	public static final int GL_FRAGMENT_SHADER = 0x8B30,
		GL_VERTEX_SHADER = 0x8B31,
		GL_MAX_VERTEX_ATTRIBS = 0x8869,
		GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB,
		GL_MAX_VARYING_VECTORS = 0x8DFC,
		GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D,
		GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C,
		GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872,
		GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD,
		GL_SHADER_TYPE = 0x8B4F,
		GL_DELETE_STATUS = 0x8B80,
		GL_LINK_STATUS = 0x8B82,
		GL_VALIDATE_STATUS = 0x8B83,
		GL_ATTACHED_SHADERS = 0x8B85,
		GL_ACTIVE_UNIFORMS = 0x8B86,
		GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87,
		GL_ACTIVE_ATTRIBUTES = 0x8B89,
		GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A,
		GL_SHADING_LANGUAGE_VERSION = 0x8B8C,
		GL_CURRENT_PROGRAM = 0x8B8D;

	/**
	 * StencilFunction 
	 */
	public static final int GL_NEVER = 0x200,
		GL_LESS = 0x201,
		GL_EQUAL = 0x202,
		GL_LEQUAL = 0x203,
		GL_GREATER = 0x204,
		GL_NOTEQUAL = 0x205,
		GL_GEQUAL = 0x206,
		GL_ALWAYS = 0x207;

	/**
	 * StencilOp 
	 */
	public static final int GL_KEEP = 0x1E00,
		GL_REPLACE = 0x1E01,
		GL_INCR = 0x1E02,
		GL_DECR = 0x1E03,
		GL_INVERT = 0x150A,
		GL_INCR_WRAP = 0x8507,
		GL_DECR_WRAP = 0x8508;

	/**
	 * StringName 
	 */
	public static final int GL_VENDOR = 0x1F00,
		GL_RENDERER = 0x1F01,
		GL_VERSION = 0x1F02,
		GL_EXTENSIONS = 0x1F03;

	/**
	 * TextureMagFilter 
	 */
	public static final int GL_NEAREST = 0x2600,
		GL_LINEAR = 0x2601;

	/**
	 * TextureMinFilter 
	 */
	public static final int GL_NEAREST_MIPMAP_NEAREST = 0x2700,
		GL_LINEAR_MIPMAP_NEAREST = 0x2701,
		GL_NEAREST_MIPMAP_LINEAR = 0x2702,
		GL_LINEAR_MIPMAP_LINEAR = 0x2703;

	/**
	 * TextureParameterName 
	 */
	public static final int GL_TEXTURE_MAG_FILTER = 0x2800,
		GL_TEXTURE_MIN_FILTER = 0x2801,
		GL_TEXTURE_WRAP_S = 0x2802,
		GL_TEXTURE_WRAP_T = 0x2803;

	/**
	 * TextureTarget 
	 */
	public static final int GL_TEXTURE = 0x1702,
		GL_TEXTURE_CUBE_MAP = 0x8513,
		GL_TEXTURE_BINDING_CUBE_MAP = 0x8514,
		GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515,
		GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516,
		GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517,
		GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518,
		GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519,
		GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A,
		GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;

	/**
	 * TextureUnit 
	 */
	public static final int GL_TEXTURE0 = 0x84C0,
		GL_TEXTURE1 = 0x84C1,
		GL_TEXTURE2 = 0x84C2,
		GL_TEXTURE3 = 0x84C3,
		GL_TEXTURE4 = 0x84C4,
		GL_TEXTURE5 = 0x84C5,
		GL_TEXTURE6 = 0x84C6,
		GL_TEXTURE7 = 0x84C7,
		GL_TEXTURE8 = 0x84C8,
		GL_TEXTURE9 = 0x84C9,
		GL_TEXTURE10 = 0x84CA,
		GL_TEXTURE11 = 0x84CB,
		GL_TEXTURE12 = 0x84CC,
		GL_TEXTURE13 = 0x84CD,
		GL_TEXTURE14 = 0x84CE,
		GL_TEXTURE15 = 0x84CF,
		GL_TEXTURE16 = 0x84D0,
		GL_TEXTURE17 = 0x84D1,
		GL_TEXTURE18 = 0x84D2,
		GL_TEXTURE19 = 0x84D3,
		GL_TEXTURE20 = 0x84D4,
		GL_TEXTURE21 = 0x84D5,
		GL_TEXTURE22 = 0x84D6,
		GL_TEXTURE23 = 0x84D7,
		GL_TEXTURE24 = 0x84D8,
		GL_TEXTURE25 = 0x84D9,
		GL_TEXTURE26 = 0x84DA,
		GL_TEXTURE27 = 0x84DB,
		GL_TEXTURE28 = 0x84DC,
		GL_TEXTURE29 = 0x84DD,
		GL_TEXTURE30 = 0x84DE,
		GL_TEXTURE31 = 0x84DF,
		GL_ACTIVE_TEXTURE = 0x84E0;

	/**
	 * TextureWrapMode 
	 */
	public static final int GL_REPEAT = 0x2901,
		GL_CLAMP_TO_EDGE = 0x812F,
		GL_MIRRORED_REPEAT = 0x8370;

	/**
	 * Uniform Types 
	 */
	public static final int GL_FLOAT_VEC2 = 0x8B50,
		GL_FLOAT_VEC3 = 0x8B51,
		GL_FLOAT_VEC4 = 0x8B52,
		GL_INT_VEC2 = 0x8B53,
		GL_INT_VEC3 = 0x8B54,
		GL_INT_VEC4 = 0x8B55,
		GL_BOOL = 0x8B56,
		GL_BOOL_VEC2 = 0x8B57,
		GL_BOOL_VEC3 = 0x8B58,
		GL_BOOL_VEC4 = 0x8B59,
		GL_FLOAT_MAT2 = 0x8B5A,
		GL_FLOAT_MAT3 = 0x8B5B,
		GL_FLOAT_MAT4 = 0x8B5C,
		GL_SAMPLER_2D = 0x8B5E,
		GL_SAMPLER_CUBE = 0x8B60;

	/**
	 * Vertex Arrays 
	 */
	public static final int GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622,
		GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623,
		GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624,
		GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625,
		GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A,
		GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645,
		GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;

	/**
	 * Read Format 
	 */
	public static final int GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A,
		GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;

	/**
	 * Shader Source 
	 */
	public static final int GL_COMPILE_STATUS = 0x8B81,
		GL_INFO_LOG_LENGTH = 0x8B84,
		GL_SHADER_SOURCE_LENGTH = 0x8B88,
		GL_SHADER_COMPILER = 0x8DFA;

	/**
	 * Shader Binary 
	 */
	public static final int GL_SHADER_BINARY_FORMATS = 0x8DF8,
		GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9;

	/**
	 * Shader Precision-Specified Types 
	 */
	public static final int GL_LOW_FLOAT = 0x8DF0,
		GL_MEDIUM_FLOAT = 0x8DF1,
		GL_HIGH_FLOAT = 0x8DF2,
		GL_LOW_INT = 0x8DF3,
		GL_MEDIUM_INT = 0x8DF4,
		GL_HIGH_INT = 0x8DF5;

	/**
	 * Framebuffer Object. 
	 */
	public static final int GL_FRAMEBUFFER = 0x8D40,
		GL_RENDERBUFFER = 0x8D41,
		GL_RGBA4 = 0x8056,
		GL_RGB5_A1 = 0x8057,
		GL_RGB565 = 0x8D62,
		GL_DEPTH_COMPONENT16 = 0x81A5,
		GL_STENCIL_INDEX = 0x1901,
		GL_STENCIL_INDEX8 = 0x8D48,
		GL_RENDERBUFFER_WIDTH = 0x8D42,
		GL_RENDERBUFFER_HEIGHT = 0x8D43,
		GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44,
		GL_RENDERBUFFER_RED_SIZE = 0x8D50,
		GL_RENDERBUFFER_GREEN_SIZE = 0x8D51,
		GL_RENDERBUFFER_BLUE_SIZE = 0x8D52,
		GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53,
		GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54,
		GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55,
		GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0,
		GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1,
		GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2,
		GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3,
		GL_COLOR_ATTACHMENT0 = 0x8CE0,
		GL_DEPTH_ATTACHMENT = 0x8D00,
		GL_STENCIL_ATTACHMENT = 0x8D20,
		GL_NONE = 0x0,
		GL_FRAMEBUFFER_COMPLETE = 0x8CD5,
		GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6,
		GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7,
		GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9,
		GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD,
		GL_FRAMEBUFFER_BINDING = 0x8CA6,
		GL_RENDERBUFFER_BINDING = 0x8CA7,
		GL_MAX_RENDERBUFFER_SIZE = 0x84E8,
		GL_INVALID_FRAMEBUFFER_OPERATION = 0x506;

	private GLES20() {}

	static native void initNativeStubs() throws LWJGLException;

	public static void glActiveTexture(int texture) {
		nglActiveTexture(texture);
	}
	static native void nglActiveTexture(int texture);

	public static void glAttachShader(int program, int shader) {
		nglAttachShader(program, shader);
	}
	static native void nglAttachShader(int program, int shader);

	public static void glBindAttribLocation(int program, int index, ByteBuffer name) {
		BufferChecks.checkDirect(name);
		BufferChecks.checkNullTerminated(name);
		nglBindAttribLocation(program, index, MemoryUtil.getAddress(name));
	}
	static native void nglBindAttribLocation(int program, int index, long name);

	/** Overloads glBindAttribLocation. */
	public static void glBindAttribLocation(int program, int index, CharSequence name) {
		nglBindAttribLocation(program, index, APIUtil.getBufferNT(name));
	}

	public static void glBindBuffer(int target, int buffer) {
		StateTracker.bindBuffer(target, buffer);
		nglBindBuffer(target, buffer);
	}
	static native void nglBindBuffer(int target, int buffer);

	public static void glBindFramebuffer(int target, int framebuffer) {
		nglBindFramebuffer(target, framebuffer);
	}
	static native void nglBindFramebuffer(int target, int framebuffer);

	public static void glBindRenderbuffer(int target, int renderbuffer) {
		nglBindRenderbuffer(target, renderbuffer);
	}
	static native void nglBindRenderbuffer(int target, int renderbuffer);

	public static void glBindTexture(int target, int texture) {
		nglBindTexture(target, texture);
	}
	static native void nglBindTexture(int target, int texture);

	public static void glBlendColor(float red, float green, float blue, float alpha) {
		nglBlendColor(red, green, blue, alpha);
	}
	static native void nglBlendColor(float red, float green, float blue, float alpha);

	public static void glBlendEquation(int mode) {
		nglBlendEquation(mode);
	}
	static native void nglBlendEquation(int mode);

	public static void glBlendEquationSeparate(int modeRGB, int modeAlpha) {
		nglBlendEquationSeparate(modeRGB, modeAlpha);
	}
	static native void nglBlendEquationSeparate(int modeRGB, int modeAlpha);

	public static void glBlendFunc(int sfactor, int dfactor) {
		nglBlendFunc(sfactor, dfactor);
	}
	static native void nglBlendFunc(int sfactor, int dfactor);

	public static void glBlendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha) {
		nglBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
	}
	static native void nglBlendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha);

	public static void glBufferData(int target, long data_size, int usage) {
		nglBufferData(target, data_size, 0L, usage);
	}
	public static void glBufferData(int target, ByteBuffer data, int usage) {
		BufferChecks.checkDirect(data);
		nglBufferData(target, data.remaining(), MemoryUtil.getAddress(data), usage);
	}
	public static void glBufferData(int target, FloatBuffer data, int usage) {
		BufferChecks.checkDirect(data);
		nglBufferData(target, (data.remaining() << 2), MemoryUtil.getAddress(data), usage);
	}
	public static void glBufferData(int target, IntBuffer data, int usage) {
		BufferChecks.checkDirect(data);
		nglBufferData(target, (data.remaining() << 2), MemoryUtil.getAddress(data), usage);
	}
	public static void glBufferData(int target, ShortBuffer data, int usage) {
		BufferChecks.checkDirect(data);
		nglBufferData(target, (data.remaining() << 1), MemoryUtil.getAddress(data), usage);
	}
	static native void nglBufferData(int target, long data_size, long data, int usage);

	public static void glBufferSubData(int target, long offset, ByteBuffer data) {
		BufferChecks.checkDirect(data);
		nglBufferSubData(target, offset, data.remaining(), MemoryUtil.getAddress(data));
	}
	public static void glBufferSubData(int target, long offset, FloatBuffer data) {
		BufferChecks.checkDirect(data);
		nglBufferSubData(target, offset, (data.remaining() << 2), MemoryUtil.getAddress(data));
	}
	public static void glBufferSubData(int target, long offset, IntBuffer data) {
		BufferChecks.checkDirect(data);
		nglBufferSubData(target, offset, (data.remaining() << 2), MemoryUtil.getAddress(data));
	}
	public static void glBufferSubData(int target, long offset, ShortBuffer data) {
		BufferChecks.checkDirect(data);
		nglBufferSubData(target, offset, (data.remaining() << 1), MemoryUtil.getAddress(data));
	}
	static native void nglBufferSubData(int target, long offset, long data_size, long data);

	public static int glCheckFramebufferStatus(int target) {
		int __result = nglCheckFramebufferStatus(target);
		return __result;
	}
	static native int nglCheckFramebufferStatus(int target);

	public static void glClear(int mask) {
		nglClear(mask);
	}
	static native void nglClear(int mask);

	public static void glClearColor(float red, float green, float blue, float alpha) {
		nglClearColor(red, green, blue, alpha);
	}
	static native void nglClearColor(float red, float green, float blue, float alpha);

	public static void glClearDepthf(float depth) {
		nglClearDepthf(depth);
	}
	static native void nglClearDepthf(float depth);

	public static void glClearStencil(int s) {
		nglClearStencil(s);
	}
	static native void nglClearStencil(int s);

	public static void glColorMask(boolean red, boolean green, boolean blue, boolean alpha) {
		nglColorMask(red, green, blue, alpha);
	}
	static native void nglColorMask(boolean red, boolean green, boolean blue, boolean alpha);

	public static void glCompileShader(int shader) {
		nglCompileShader(shader);
	}
	static native void nglCompileShader(int shader);

	public static void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, ByteBuffer data) {
		BufferChecks.checkDirect(data);
		nglCompressedTexImage2D(target, level, internalformat, width, height, border, data.remaining(), MemoryUtil.getAddress(data));
	}
	static native void nglCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int data_imageSize, long data);

	public static void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, ByteBuffer data) {
		BufferChecks.checkDirect(data);
		nglCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, data.remaining(), MemoryUtil.getAddress(data));
	}
	static native void nglCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int data_imageSize, long data);

	public static void glCopyTexImage2D(int target, int level, int internalformat, int x, int y, int width, int height, int border) {
		nglCopyTexImage2D(target, level, internalformat, x, y, width, height, border);
	}
	static native void nglCopyTexImage2D(int target, int level, int internalformat, int x, int y, int width, int height, int border);

	public static void glCopyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x, int y, int width, int height) {
		nglCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
	}
	static native void nglCopyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x, int y, int width, int height);

	public static int glCreateProgram() {
		int __result = nglCreateProgram();
		return __result;
	}
	static native int nglCreateProgram();

	public static int glCreateShader(int type) {
		int __result = nglCreateShader(type);
		return __result;
	}
	static native int nglCreateShader(int type);

	public static void glCullFace(int mode) {
		nglCullFace(mode);
	}
	static native void nglCullFace(int mode);

	public static void glDeleteBuffers(IntBuffer buffers) {
		BufferChecks.checkDirect(buffers);
		nglDeleteBuffers(buffers.remaining(), MemoryUtil.getAddress(buffers));
	}
	static native void nglDeleteBuffers(int buffers_n, long buffers);

	/** Overloads glDeleteBuffers. */
	public static void glDeleteBuffers(int buffer) {
		nglDeleteBuffers(1, APIUtil.getInt(buffer));
	}

	public static void glDeleteFramebuffers(IntBuffer framebuffers) {
		BufferChecks.checkDirect(framebuffers);
		nglDeleteFramebuffers(framebuffers.remaining(), MemoryUtil.getAddress(framebuffers));
	}
	static native void nglDeleteFramebuffers(int framebuffers_n, long framebuffers);

	/** Overloads glDeleteFramebuffers. */
	public static void glDeleteFramebuffers(int framebuffer) {
		nglDeleteFramebuffers(1, APIUtil.getInt(framebuffer));
	}

	public static void glDeleteProgram(int program) {
		nglDeleteProgram(program);
	}
	static native void nglDeleteProgram(int program);

	public static void glDeleteRenderbuffers(IntBuffer renderbuffers) {
		BufferChecks.checkDirect(renderbuffers);
		nglDeleteRenderbuffers(renderbuffers.remaining(), MemoryUtil.getAddress(renderbuffers));
	}
	static native void nglDeleteRenderbuffers(int renderbuffers_n, long renderbuffers);

	/** Overloads glDeleteRenderbuffers. */
	public static void glDeleteRenderbuffers(int renderbuffer) {
		nglDeleteRenderbuffers(1, APIUtil.getInt(renderbuffer));
	}

	public static void glDeleteShader(int shader) {
		nglDeleteShader(shader);
	}
	static native void nglDeleteShader(int shader);

	public static void glDeleteTextures(IntBuffer textures) {
		BufferChecks.checkDirect(textures);
		nglDeleteTextures(textures.remaining(), MemoryUtil.getAddress(textures));
	}
	static native void nglDeleteTextures(int textures_n, long textures);

	/** Overloads glDeleteTextures. */
	public static void glDeleteTextures(int texture) {
		nglDeleteTextures(1, APIUtil.getInt(texture));
	}

	public static void glDepthFunc(int func) {
		nglDepthFunc(func);
	}
	static native void nglDepthFunc(int func);

	public static void glDepthMask(boolean flag) {
		nglDepthMask(flag);
	}
	static native void nglDepthMask(boolean flag);

	public static void glDepthRangef(float zNear, float zFar) {
		nglDepthRangef(zNear, zFar);
	}
	static native void nglDepthRangef(float zNear, float zFar);

	public static void glDetachShader(int program, int shader) {
		nglDetachShader(program, shader);
	}
	static native void nglDetachShader(int program, int shader);

	public static void glDisable(int cap) {
		nglDisable(cap);
	}
	static native void nglDisable(int cap);

	public static void glDisableVertexAttribArray(int index) {
		nglDisableVertexAttribArray(index);
	}
	static native void nglDisableVertexAttribArray(int index);

	public static void glDrawArrays(int mode, int first, int count) {
		nglDrawArrays(mode, first, count);
	}
	static native void nglDrawArrays(int mode, int first, int count);

	public static void glDrawElements(int mode, ByteBuffer indices) {
		GLChecks.ensureElementVBOdisabled();
		BufferChecks.checkDirect(indices);
		nglDrawElements(mode, indices.remaining(), GLES20.GL_UNSIGNED_BYTE, MemoryUtil.getAddress(indices));
	}
	public static void glDrawElements(int mode, IntBuffer indices) {
		GLChecks.ensureElementVBOdisabled();
		BufferChecks.checkDirect(indices);
		nglDrawElements(mode, indices.remaining(), GLES20.GL_UNSIGNED_INT, MemoryUtil.getAddress(indices));
	}
	public static void glDrawElements(int mode, ShortBuffer indices) {
		GLChecks.ensureElementVBOdisabled();
		BufferChecks.checkDirect(indices);
		nglDrawElements(mode, indices.remaining(), GLES20.GL_UNSIGNED_SHORT, MemoryUtil.getAddress(indices));
	}
	static native void nglDrawElements(int mode, int indices_count, int type, long indices);
	public static void glDrawElements(int mode, int indices_count, int type, long indices_buffer_offset) {
		GLChecks.ensureElementVBOenabled();
		nglDrawElementsBO(mode, indices_count, type, indices_buffer_offset);
	}
	static native void nglDrawElementsBO(int mode, int indices_count, int type, long indices_buffer_offset);

	public static void glEnable(int cap) {
		nglEnable(cap);
	}
	static native void nglEnable(int cap);

	public static void glEnableVertexAttribArray(int index) {
		nglEnableVertexAttribArray(index);
	}
	static native void nglEnableVertexAttribArray(int index);

	public static void glFinish() {
		nglFinish();
	}
	static native void nglFinish();

	public static void glFlush() {
		nglFlush();
	}
	static native void nglFlush();

	public static void glFramebufferRenderbuffer(int target, int attachment, int renderbuffertarget, int renderbuffer) {
		nglFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
	}
	static native void nglFramebufferRenderbuffer(int target, int attachment, int renderbuffertarget, int renderbuffer);

	public static void glFramebufferTexture2D(int target, int attachment, int textarget, int texture, int level) {
		nglFramebufferTexture2D(target, attachment, textarget, texture, level);
	}
	static native void nglFramebufferTexture2D(int target, int attachment, int textarget, int texture, int level);

	public static void glFrontFace(int mode) {
		nglFrontFace(mode);
	}
	static native void nglFrontFace(int mode);

	public static void glGenBuffers(IntBuffer buffers) {
		BufferChecks.checkDirect(buffers);
		nglGenBuffers(buffers.remaining(), MemoryUtil.getAddress(buffers));
	}
	static native void nglGenBuffers(int buffers_n, long buffers);

	/** Overloads glGenBuffers. */
	public static int glGenBuffers() {
		IntBuffer buffers = APIUtil.getBufferInt();
		nglGenBuffers(1, MemoryUtil.getAddress(buffers));
		return buffers.get(0);
	}

	public static void glGenerateMipmap(int target) {
		nglGenerateMipmap(target);
	}
	static native void nglGenerateMipmap(int target);

	public static void glGenFramebuffers(IntBuffer framebuffers) {
		BufferChecks.checkDirect(framebuffers);
		nglGenFramebuffers(framebuffers.remaining(), MemoryUtil.getAddress(framebuffers));
	}
	static native void nglGenFramebuffers(int framebuffers_n, long framebuffers);

	/** Overloads glGenFramebuffers. */
	public static int glGenFramebuffers() {
		IntBuffer framebuffers = APIUtil.getBufferInt();
		nglGenFramebuffers(1, MemoryUtil.getAddress(framebuffers));
		return framebuffers.get(0);
	}

	public static void glGenRenderbuffers(IntBuffer renderbuffers) {
		BufferChecks.checkDirect(renderbuffers);
		nglGenRenderbuffers(renderbuffers.remaining(), MemoryUtil.getAddress(renderbuffers));
	}
	static native void nglGenRenderbuffers(int renderbuffers_n, long renderbuffers);

	/** Overloads glGenRenderbuffers. */
	public static int glGenRenderbuffers() {
		IntBuffer renderbuffers = APIUtil.getBufferInt();
		nglGenRenderbuffers(1, MemoryUtil.getAddress(renderbuffers));
		return renderbuffers.get(0);
	}

	public static void glGenTextures(IntBuffer textures) {
		BufferChecks.checkDirect(textures);
		nglGenTextures(textures.remaining(), MemoryUtil.getAddress(textures));
	}
	static native void nglGenTextures(int textures_n, long textures);

	/** Overloads glGenTextures. */
	public static int glGenTextures() {
		IntBuffer textures = APIUtil.getBufferInt();
		nglGenTextures(1, MemoryUtil.getAddress(textures));
		return textures.get(0);
	}

	public static void glGetActiveAttrib(int program, int index, IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name) {
		if (length != null)
			BufferChecks.checkBuffer(length, 1);
		BufferChecks.checkBuffer(size, 1);
		BufferChecks.checkBuffer(type, 1);
		BufferChecks.checkDirect(name);
		nglGetActiveAttrib(program, index, name.remaining(), MemoryUtil.getAddressSafe(length), MemoryUtil.getAddress(size), MemoryUtil.getAddress(type), MemoryUtil.getAddress(name));
	}
	static native void nglGetActiveAttrib(int program, int index, int name_bufsize, long length, long size, long type, long name);

	/**
	 * Overloads glGetActiveAttrib.
	 * 

* Overloads glGetActiveAttrib. This version returns both size and type in the sizeType buffer (at .position() and .position() + 1). */ public static String glGetActiveAttrib(int program, int index, int bufsize, IntBuffer sizeType) { BufferChecks.checkBuffer(sizeType, 2); IntBuffer name_length = APIUtil.getLengths(); ByteBuffer name = APIUtil.getBufferByte(bufsize); nglGetActiveAttrib(program, index, bufsize, MemoryUtil.getAddress0(name_length), MemoryUtil.getAddress(sizeType), MemoryUtil.getAddress(sizeType, sizeType.position() + 1), MemoryUtil.getAddress(name)); name.limit(name_length.get(0)); return APIUtil.getString(name); } /** * Overloads glGetActiveAttrib. *

* Overloads glGetActiveAttrib. This version returns only the attrib name. */ public static String glGetActiveAttrib(int program, int index, int bufsize) { IntBuffer name_length = APIUtil.getLengths(); ByteBuffer name = APIUtil.getBufferByte(bufsize); nglGetActiveAttrib(program, index, bufsize, MemoryUtil.getAddress0(name_length), MemoryUtil.getAddress0(APIUtil.getBufferInt()), MemoryUtil.getAddress(APIUtil.getBufferInt(), 1), MemoryUtil.getAddress(name)); name.limit(name_length.get(0)); return APIUtil.getString(name); } /** * Overloads glGetActiveAttrib. *

* Overloads glGetActiveAttrib. This version returns only the attrib size. */ public static int glGetActiveAttribSize(int program, int index) { IntBuffer size = APIUtil.getBufferInt(); nglGetActiveAttrib(program, index, 0, 0L, MemoryUtil.getAddress(size), MemoryUtil.getAddress(size, 1), APIUtil.getBufferByte0()); return size.get(0); } /** * Overloads glGetActiveAttrib. *

* Overloads glGetActiveAttrib. This version returns only the attrib type. */ public static int glGetActiveAttribType(int program, int index) { IntBuffer type = APIUtil.getBufferInt(); nglGetActiveAttrib(program, index, 0, 0L, MemoryUtil.getAddress(type, 1), MemoryUtil.getAddress(type), APIUtil.getBufferByte0()); return type.get(0); } public static void glGetActiveUniform(int program, int index, IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name) { if (length != null) BufferChecks.checkBuffer(length, 1); BufferChecks.checkBuffer(size, 1); BufferChecks.checkBuffer(type, 1); BufferChecks.checkDirect(name); nglGetActiveUniform(program, index, name.remaining(), MemoryUtil.getAddressSafe(length), MemoryUtil.getAddress(size), MemoryUtil.getAddress(type), MemoryUtil.getAddress(name)); } static native void nglGetActiveUniform(int program, int index, int name_bufsize, long length, long size, long type, long name); /** * Overloads glGetActiveUniform. *

* Overloads glGetActiveUniform. This version returns both size and type in the sizeType buffer (at .position() and .position() + 1). */ public static String glGetActiveUniform(int program, int index, int bufsize, IntBuffer sizeType) { BufferChecks.checkBuffer(sizeType, 2); IntBuffer name_length = APIUtil.getLengths(); ByteBuffer name = APIUtil.getBufferByte(bufsize); nglGetActiveUniform(program, index, bufsize, MemoryUtil.getAddress0(name_length), MemoryUtil.getAddress(sizeType), MemoryUtil.getAddress(sizeType, sizeType.position() + 1), MemoryUtil.getAddress(name)); name.limit(name_length.get(0)); return APIUtil.getString(name); } /** * Overloads glGetActiveUniform. *

* Overloads glGetActiveUniformARB. This version returns only the uniform name. */ public static String glGetActiveUniform(int program, int index, int bufsize) { IntBuffer name_length = APIUtil.getLengths(); ByteBuffer name = APIUtil.getBufferByte(bufsize); nglGetActiveUniform(program, index, bufsize, MemoryUtil.getAddress0(name_length), MemoryUtil.getAddress0(APIUtil.getBufferInt()), MemoryUtil.getAddress(APIUtil.getBufferInt(), 1), MemoryUtil.getAddress(name)); name.limit(name_length.get(0)); return APIUtil.getString(name); } /** * Overloads glGetActiveUniform. *

* Overloads glGetActiveUniform. This version returns only the uniform size. */ public static int glGetActiveUniformSize(int program, int index) { IntBuffer size = APIUtil.getBufferInt(); nglGetActiveUniform(program, index, 0, 0L, MemoryUtil.getAddress(size), MemoryUtil.getAddress(size, 1), APIUtil.getBufferByte0()); return size.get(0); } /** * Overloads glGetActiveUniform. *

* Overloads glGetActiveUniform. This version returns only the uniform type. */ public static int glGetActiveUniformType(int program, int index) { IntBuffer type = APIUtil.getBufferInt(); nglGetActiveUniform(program, index, 0, 0L, MemoryUtil.getAddress(type, 1), MemoryUtil.getAddress(type), APIUtil.getBufferByte0()); return type.get(0); } public static void glGetAttachedShaders(int program, IntBuffer count, IntBuffer shaders) { if (count != null) BufferChecks.checkBuffer(count, 1); BufferChecks.checkDirect(shaders); nglGetAttachedShaders(program, shaders.remaining(), MemoryUtil.getAddressSafe(count), MemoryUtil.getAddress(shaders)); } static native void nglGetAttachedShaders(int program, int shaders_maxCount, long count, long shaders); public static int glGetAttribLocation(int program, ByteBuffer name) { BufferChecks.checkDirect(name); BufferChecks.checkNullTerminated(name); int __result = nglGetAttribLocation(program, MemoryUtil.getAddress(name)); return __result; } static native int nglGetAttribLocation(int program, long name); /** Overloads glGetAttribLocation. */ public static int glGetAttribLocation(int program, CharSequence name) { int __result = nglGetAttribLocation(program, APIUtil.getBufferNT(name)); return __result; } public static void glGetBoolean(int pname, ByteBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetBooleanv(pname, MemoryUtil.getAddress(params)); } static native void nglGetBooleanv(int pname, long params); /** Overloads glGetBooleanv. */ public static boolean glGetBoolean(int pname) { ByteBuffer params = APIUtil.getBufferByte(1); nglGetBooleanv(pname, MemoryUtil.getAddress(params)); return params.get(0) == 1; } public static void glGetBufferParameter(int target, int pname, IntBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetBufferParameteriv(target, pname, MemoryUtil.getAddress(params)); } static native void nglGetBufferParameteriv(int target, int pname, long params); /** * Overloads glGetBufferParameteriv. *

* @deprecated Will be removed in 3.0. Use {@link #glGetBufferParameteri} instead. */ @Deprecated public static int glGetBufferParameter(int target, int pname) { return GLES20.glGetBufferParameteri(target, pname); } /** Overloads glGetBufferParameteriv. */ public static int glGetBufferParameteri(int target, int pname) { IntBuffer params = APIUtil.getBufferInt(); nglGetBufferParameteriv(target, pname, MemoryUtil.getAddress(params)); return params.get(0); } public static int glGetError() { int __result = nglGetError(); return __result; } static native int nglGetError(); public static void glGetFloat(int pname, FloatBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetFloatv(pname, MemoryUtil.getAddress(params)); } static native void nglGetFloatv(int pname, long params); /** Overloads glGetFloatv. */ public static float glGetFloat(int pname) { FloatBuffer params = APIUtil.getBufferFloat(); nglGetFloatv(pname, MemoryUtil.getAddress(params)); return params.get(0); } public static void glGetFramebufferAttachmentParameter(int target, int attachment, int pname, IntBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetFramebufferAttachmentParameteriv(target, attachment, pname, MemoryUtil.getAddress(params)); } static native void nglGetFramebufferAttachmentParameteriv(int target, int attachment, int pname, long params); /** * Overloads glGetFramebufferAttachmentParameteriv. *

* @deprecated Will be removed in 3.0. Use {@link #glGetFramebufferAttachmentParameteri} instead. */ @Deprecated public static int glGetFramebufferAttachmentParameter(int target, int attachment, int pname) { return GLES20.glGetFramebufferAttachmentParameteri(target, attachment, pname); } /** Overloads glGetFramebufferAttachmentParameteriv. */ public static int glGetFramebufferAttachmentParameteri(int target, int attachment, int pname) { IntBuffer params = APIUtil.getBufferInt(); nglGetFramebufferAttachmentParameteriv(target, attachment, pname, MemoryUtil.getAddress(params)); return params.get(0); } public static void glGetInteger(int pname, IntBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetIntegerv(pname, MemoryUtil.getAddress(params)); } static native void nglGetIntegerv(int pname, long params); /** Overloads glGetIntegerv. */ public static int glGetInteger(int pname) { IntBuffer params = APIUtil.getBufferInt(); nglGetIntegerv(pname, MemoryUtil.getAddress(params)); return params.get(0); } public static void glGetProgram(int program, int pname, IntBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetProgramiv(program, pname, MemoryUtil.getAddress(params)); } static native void nglGetProgramiv(int program, int pname, long params); /** * Overloads glGetProgramiv. *

* @deprecated Will be removed in 3.0. Use {@link #glGetProgrami} instead. */ @Deprecated public static int glGetProgram(int program, int pname) { return GLES20.glGetProgrami(program, pname); } /** Overloads glGetProgramiv. */ public static int glGetProgrami(int program, int pname) { IntBuffer params = APIUtil.getBufferInt(); nglGetProgramiv(program, pname, MemoryUtil.getAddress(params)); return params.get(0); } public static void glGetProgramInfoLog(int program, IntBuffer length, ByteBuffer infoLog) { if (length != null) BufferChecks.checkBuffer(length, 1); BufferChecks.checkDirect(infoLog); nglGetProgramInfoLog(program, infoLog.remaining(), MemoryUtil.getAddressSafe(length), MemoryUtil.getAddress(infoLog)); } static native void nglGetProgramInfoLog(int program, int infoLog_bufsize, long length, long infoLog); /** Overloads glGetProgramInfoLog. */ public static String glGetProgramInfoLog(int program, int bufsize) { IntBuffer infoLog_length = APIUtil.getLengths(); ByteBuffer infoLog = APIUtil.getBufferByte(bufsize); nglGetProgramInfoLog(program, bufsize, MemoryUtil.getAddress0(infoLog_length), MemoryUtil.getAddress(infoLog)); infoLog.limit(infoLog_length.get(0)); return APIUtil.getString(infoLog); } public static void glGetRenderbufferParameter(int target, int pname, IntBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetRenderbufferParameteriv(target, pname, MemoryUtil.getAddress(params)); } static native void nglGetRenderbufferParameteriv(int target, int pname, long params); /** * Overloads glGetRenderbufferParameteriv. *

* @deprecated Will be removed in 3.0. Use {@link #glGetRenderbufferParameteri} instead. */ @Deprecated public static int glGetRenderbufferParameter(int target, int pname) { return GLES20.glGetRenderbufferParameteri(target, pname); } /** Overloads glGetRenderbufferParameteriv. */ public static int glGetRenderbufferParameteri(int target, int pname) { IntBuffer params = APIUtil.getBufferInt(); nglGetRenderbufferParameteriv(target, pname, MemoryUtil.getAddress(params)); return params.get(0); } public static void glGetShader(int shader, int pname, IntBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetShaderiv(shader, pname, MemoryUtil.getAddress(params)); } static native void nglGetShaderiv(int shader, int pname, long params); /** * Overloads glGetShaderiv. *

* @deprecated Will be removed in 3.0. Use {@link #glGetShaderi} instead. */ @Deprecated public static int glGetShader(int shader, int pname) { return GLES20.glGetShaderi(shader, pname); } /** Overloads glGetShaderiv. */ public static int glGetShaderi(int shader, int pname) { IntBuffer params = APIUtil.getBufferInt(); nglGetShaderiv(shader, pname, MemoryUtil.getAddress(params)); return params.get(0); } public static void glGetShaderInfoLog(int shader, IntBuffer length, ByteBuffer infoLog) { if (length != null) BufferChecks.checkBuffer(length, 1); BufferChecks.checkDirect(infoLog); nglGetShaderInfoLog(shader, infoLog.remaining(), MemoryUtil.getAddressSafe(length), MemoryUtil.getAddress(infoLog)); } static native void nglGetShaderInfoLog(int shader, int infoLog_bufsize, long length, long infoLog); /** Overloads glGetShaderInfoLog. */ public static String glGetShaderInfoLog(int shader, int bufsize) { IntBuffer infoLog_length = APIUtil.getLengths(); ByteBuffer infoLog = APIUtil.getBufferByte(bufsize); nglGetShaderInfoLog(shader, bufsize, MemoryUtil.getAddress0(infoLog_length), MemoryUtil.getAddress(infoLog)); infoLog.limit(infoLog_length.get(0)); return APIUtil.getString(infoLog); } public static void glGetShaderPrecisionFormat(int shadertype, int precisiontype, IntBuffer range, IntBuffer precision) { BufferChecks.checkBuffer(range, 2); BufferChecks.checkBuffer(precision, 1); nglGetShaderPrecisionFormat(shadertype, precisiontype, MemoryUtil.getAddress(range), MemoryUtil.getAddress(precision)); } static native void nglGetShaderPrecisionFormat(int shadertype, int precisiontype, long range, long precision); public static void glGetShaderSource(int shader, IntBuffer length, ByteBuffer source) { if (length != null) BufferChecks.checkBuffer(length, 1); BufferChecks.checkDirect(source); nglGetShaderSource(shader, source.remaining(), MemoryUtil.getAddressSafe(length), MemoryUtil.getAddress(source)); } static native void nglGetShaderSource(int shader, int source_bufsize, long length, long source); /** Overloads glGetShaderSource. */ public static String glGetShaderSource(int shader, int bufsize) { IntBuffer source_length = APIUtil.getLengths(); ByteBuffer source = APIUtil.getBufferByte(bufsize); nglGetShaderSource(shader, bufsize, MemoryUtil.getAddress0(source_length), MemoryUtil.getAddress(source)); source.limit(source_length.get(0)); return APIUtil.getString(source); } public static String glGetString(int name) { String __result = nglGetString(name); return __result; } static native String nglGetString(int name); public static void glGetTexParameter(int target, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetTexParameterfv(target, pname, MemoryUtil.getAddress(params)); } static native void nglGetTexParameterfv(int target, int pname, long params); /** Overloads glGetTexParameterfv. */ public static float glGetTexParameterf(int target, int pname) { FloatBuffer params = APIUtil.getBufferFloat(); nglGetTexParameterfv(target, pname, MemoryUtil.getAddress(params)); return params.get(0); } public static void glGetTexParameter(int target, int pname, IntBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetTexParameteriv(target, pname, MemoryUtil.getAddress(params)); } static native void nglGetTexParameteriv(int target, int pname, long params); /** Overloads glGetTexParameteriv. */ public static int glGetTexParameteri(int target, int pname) { IntBuffer params = APIUtil.getBufferInt(); nglGetTexParameteriv(target, pname, MemoryUtil.getAddress(params)); return params.get(0); } public static void glGetUniform(int program, int location, FloatBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetUniformfv(program, location, MemoryUtil.getAddress(params)); } static native void nglGetUniformfv(int program, int location, long params); public static void glGetUniform(int program, int location, IntBuffer params) { BufferChecks.checkBuffer(params, 1); nglGetUniformiv(program, location, MemoryUtil.getAddress(params)); } static native void nglGetUniformiv(int program, int location, long params); /** * 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 */ public static int glGetUniformLocation(int program, ByteBuffer name) { BufferChecks.checkBuffer(name, 1); BufferChecks.checkNullTerminated(name); int __result = nglGetUniformLocation(program, MemoryUtil.getAddress(name)); return __result; } static native int nglGetUniformLocation(int program, long name); /** Overloads glGetUniformLocation. */ public static int glGetUniformLocation(int program, CharSequence name) { int __result = nglGetUniformLocation(program, APIUtil.getBufferNT(name)); return __result; } public static void glGetVertexAttrib(int index, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params, 4); nglGetVertexAttribfv(index, pname, MemoryUtil.getAddress(params)); } static native void nglGetVertexAttribfv(int index, int pname, long params); public static void glGetVertexAttrib(int index, int pname, IntBuffer params) { BufferChecks.checkBuffer(params, 4); nglGetVertexAttribiv(index, pname, MemoryUtil.getAddress(params)); } static native void nglGetVertexAttribiv(int index, int pname, long params); public static ByteBuffer glGetVertexAttribPointer(int index, int pname, long result_size) { ByteBuffer __result = nglGetVertexAttribPointerv(index, pname, result_size); return LWJGLUtil.CHECKS && __result == null ? null : __result.order(ByteOrder.nativeOrder()); } static native ByteBuffer nglGetVertexAttribPointerv(int index, int pname, long result_size); public static void glHint(int target, int mode) { nglHint(target, mode); } static native void nglHint(int target, int mode); public static boolean glIsBuffer(int buffer) { boolean __result = nglIsBuffer(buffer); return __result; } static native boolean nglIsBuffer(int buffer); public static boolean glIsEnabled(int cap) { boolean __result = nglIsEnabled(cap); return __result; } static native boolean nglIsEnabled(int cap); public static boolean glIsFramebuffer(int framebuffer) { boolean __result = nglIsFramebuffer(framebuffer); return __result; } static native boolean nglIsFramebuffer(int framebuffer); public static boolean glIsProgram(int program) { boolean __result = nglIsProgram(program); return __result; } static native boolean nglIsProgram(int program); public static boolean glIsRenderbuffer(int renderbuffer) { boolean __result = nglIsRenderbuffer(renderbuffer); return __result; } static native boolean nglIsRenderbuffer(int renderbuffer); public static boolean glIsShader(int shader) { boolean __result = nglIsShader(shader); return __result; } static native boolean nglIsShader(int shader); public static boolean glIsTexture(int texture) { boolean __result = nglIsTexture(texture); return __result; } static native boolean nglIsTexture(int texture); public static void glLineWidth(float width) { nglLineWidth(width); } static native void nglLineWidth(float width); public static void glLinkProgram(int program) { nglLinkProgram(program); } static native void nglLinkProgram(int program); public static void glPixelStorei(int pname, int param) { nglPixelStorei(pname, param); } static native void nglPixelStorei(int pname, int param); public static void glPolygonOffset(float factor, float units) { nglPolygonOffset(factor, units); } static native void nglPolygonOffset(float factor, float units); public static void glReadPixels(int x, int y, int width, int height, int format, int type, ByteBuffer pixels) { BufferChecks.checkBuffer(pixels, GLChecks.calculateImageStorage(pixels, format, type, width, height, 1)); nglReadPixels(x, y, width, height, format, type, MemoryUtil.getAddress(pixels)); } public static void glReadPixels(int x, int y, int width, int height, int format, int type, FloatBuffer pixels) { BufferChecks.checkBuffer(pixels, GLChecks.calculateImageStorage(pixels, format, type, width, height, 1)); nglReadPixels(x, y, width, height, format, type, MemoryUtil.getAddress(pixels)); } public static void glReadPixels(int x, int y, int width, int height, int format, int type, IntBuffer pixels) { BufferChecks.checkBuffer(pixels, GLChecks.calculateImageStorage(pixels, format, type, width, height, 1)); nglReadPixels(x, y, width, height, format, type, MemoryUtil.getAddress(pixels)); } public static void glReadPixels(int x, int y, int width, int height, int format, int type, ShortBuffer pixels) { BufferChecks.checkBuffer(pixels, GLChecks.calculateImageStorage(pixels, format, type, width, height, 1)); nglReadPixels(x, y, width, height, format, type, MemoryUtil.getAddress(pixels)); } static native void nglReadPixels(int x, int y, int width, int height, int format, int type, long pixels); public static void glReleaseShaderCompiler() { nglReleaseShaderCompiler(); } static native void nglReleaseShaderCompiler(); public static void glRenderbufferStorage(int target, int internalformat, int width, int height) { nglRenderbufferStorage(target, internalformat, width, height); } static native void nglRenderbufferStorage(int target, int internalformat, int width, int height); public static void glSampleCoverage(float value, boolean invert) { nglSampleCoverage(value, invert); } static native void nglSampleCoverage(float value, boolean invert); public static void glScissor(int x, int y, int width, int height) { nglScissor(x, y, width, height); } static native void nglScissor(int x, int y, int width, int height); public static void glShaderBinary(IntBuffer shaders, int binaryformat, ByteBuffer binary) { BufferChecks.checkDirect(shaders); BufferChecks.checkDirect(binary); nglShaderBinary(shaders.remaining(), MemoryUtil.getAddress(shaders), binaryformat, MemoryUtil.getAddress(binary), binary.remaining()); } static native void nglShaderBinary(int shaders_n, long shaders, int binaryformat, long binary, int binary_length); /** * glShaderSource 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); nglShaderSource(shader, 1, MemoryUtil.getAddress(string), string.remaining()); } static native void nglShaderSource(int shader, int count, long string, int string_length); /** Overloads glShaderSource. */ public static void glShaderSource(int shader, CharSequence string) { nglShaderSource(shader, 1, APIUtil.getBuffer(string), string.length()); } /** Overloads glShaderSource. */ public static void glShaderSource(int shader, CharSequence[] strings) { BufferChecks.checkArray(strings); nglShaderSource3(shader, strings.length, APIUtil.getBuffer(strings), APIUtil.getLengths(strings)); } static native void nglShaderSource3(int shader, int count, long strings, long length); public static void glStencilFunc(int func, int ref, int mask) { nglStencilFunc(func, ref, mask); } static native void nglStencilFunc(int func, int ref, int mask); public static void glStencilFuncSeparate(int face, int func, int ref, int mask) { nglStencilFuncSeparate(face, func, ref, mask); } static native void nglStencilFuncSeparate(int face, int func, int ref, int mask); public static void glStencilMask(int mask) { nglStencilMask(mask); } static native void nglStencilMask(int mask); public static void glStencilMaskSeparate(int face, int mask) { nglStencilMaskSeparate(face, mask); } static native void nglStencilMaskSeparate(int face, int mask); public static void glStencilOp(int fail, int zfail, int zpass) { nglStencilOp(fail, zfail, zpass); } static native void nglStencilOp(int fail, int zfail, int zpass); public static void glStencilOpSeparate(int face, int fail, int zfail, int zpass) { nglStencilOpSeparate(face, fail, zfail, zpass); } static native void nglStencilOpSeparate(int face, int fail, int zfail, int zpass); public static void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, ByteBuffer pixels) { if (pixels != null) BufferChecks.checkBuffer(pixels, GLChecks.calculateTexImage2DStorage(pixels, format, type, width, height)); nglTexImage2D(target, level, internalformat, width, height, border, format, type, MemoryUtil.getAddressSafe(pixels)); } public static void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, FloatBuffer pixels) { if (pixels != null) BufferChecks.checkBuffer(pixels, GLChecks.calculateTexImage2DStorage(pixels, format, type, width, height)); nglTexImage2D(target, level, internalformat, width, height, border, format, type, MemoryUtil.getAddressSafe(pixels)); } public static void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, IntBuffer pixels) { if (pixels != null) BufferChecks.checkBuffer(pixels, GLChecks.calculateTexImage2DStorage(pixels, format, type, width, height)); nglTexImage2D(target, level, internalformat, width, height, border, format, type, MemoryUtil.getAddressSafe(pixels)); } public static void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, ShortBuffer pixels) { if (pixels != null) BufferChecks.checkBuffer(pixels, GLChecks.calculateTexImage2DStorage(pixels, format, type, width, height)); nglTexImage2D(target, level, internalformat, width, height, border, format, type, MemoryUtil.getAddressSafe(pixels)); } static native void nglTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, long pixels); public static void glTexParameterf(int target, int pname, float param) { nglTexParameterf(target, pname, param); } static native void nglTexParameterf(int target, int pname, float param); public static void glTexParameter(int target, int pname, FloatBuffer param) { BufferChecks.checkBuffer(param, 4); nglTexParameterfv(target, pname, MemoryUtil.getAddress(param)); } static native void nglTexParameterfv(int target, int pname, long param); public static void glTexParameteri(int target, int pname, int param) { nglTexParameteri(target, pname, param); } static native void nglTexParameteri(int target, int pname, int param); public static void glTexParameter(int target, int pname, IntBuffer param) { BufferChecks.checkBuffer(param, 4); nglTexParameteriv(target, pname, MemoryUtil.getAddress(param)); } static native void nglTexParameteriv(int target, int pname, long param); public static void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, ByteBuffer pixels) { BufferChecks.checkBuffer(pixels, GLChecks.calculateImageStorage(pixels, format, type, width, height, 1)); nglTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, MemoryUtil.getAddress(pixels)); } public static void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, FloatBuffer pixels) { BufferChecks.checkBuffer(pixels, GLChecks.calculateImageStorage(pixels, format, type, width, height, 1)); nglTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, MemoryUtil.getAddress(pixels)); } public static void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, IntBuffer pixels) { BufferChecks.checkBuffer(pixels, GLChecks.calculateImageStorage(pixels, format, type, width, height, 1)); nglTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, MemoryUtil.getAddress(pixels)); } public static void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, ShortBuffer pixels) { BufferChecks.checkBuffer(pixels, GLChecks.calculateImageStorage(pixels, format, type, width, height, 1)); nglTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, MemoryUtil.getAddress(pixels)); } static native void nglTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, long pixels); public static void glUniform1f(int location, float x) { nglUniform1f(location, x); } static native void nglUniform1f(int location, float x); public static void glUniform1(int location, FloatBuffer v) { BufferChecks.checkDirect(v); nglUniform1fv(location, v.remaining(), MemoryUtil.getAddress(v)); } static native void nglUniform1fv(int location, int v_count, long v); public static void glUniform1i(int location, int x) { nglUniform1i(location, x); } static native void nglUniform1i(int location, int x); public static void glUniform1(int location, IntBuffer v) { BufferChecks.checkDirect(v); nglUniform1iv(location, v.remaining(), MemoryUtil.getAddress(v)); } static native void nglUniform1iv(int location, int v_count, long v); public static void glUniform2f(int location, float x, float y) { nglUniform2f(location, x, y); } static native void nglUniform2f(int location, float x, float y); public static void glUniform2(int location, FloatBuffer v) { BufferChecks.checkDirect(v); nglUniform2fv(location, v.remaining() >> 1, MemoryUtil.getAddress(v)); } static native void nglUniform2fv(int location, int v_count, long v); public static void glUniform2i(int location, int x, int y) { nglUniform2i(location, x, y); } static native void nglUniform2i(int location, int x, int y); public static void glUniform2(int location, IntBuffer v) { BufferChecks.checkDirect(v); nglUniform2iv(location, v.remaining() >> 1, MemoryUtil.getAddress(v)); } static native void nglUniform2iv(int location, int v_count, long v); public static void glUniform3f(int location, float x, float y, float z) { nglUniform3f(location, x, y, z); } static native void nglUniform3f(int location, float x, float y, float z); public static void glUniform3(int location, FloatBuffer v) { BufferChecks.checkDirect(v); nglUniform3fv(location, v.remaining() / 3, MemoryUtil.getAddress(v)); } static native void nglUniform3fv(int location, int v_count, long v); public static void glUniform3i(int location, int x, int y, int z) { nglUniform3i(location, x, y, z); } static native void nglUniform3i(int location, int x, int y, int z); public static void glUniform3(int location, IntBuffer v) { BufferChecks.checkDirect(v); nglUniform3iv(location, v.remaining() / 3, MemoryUtil.getAddress(v)); } static native void nglUniform3iv(int location, int v_count, long v); public static void glUniform4f(int location, float x, float y, float z, float w) { nglUniform4f(location, x, y, z, w); } static native void nglUniform4f(int location, float x, float y, float z, float w); public static void glUniform4(int location, FloatBuffer v) { BufferChecks.checkDirect(v); nglUniform4fv(location, v.remaining() >> 2, MemoryUtil.getAddress(v)); } static native void nglUniform4fv(int location, int v_count, long v); public static void glUniform4i(int location, int x, int y, int z, int w) { nglUniform4i(location, x, y, z, w); } static native void nglUniform4i(int location, int x, int y, int z, int w); public static void glUniform4(int location, IntBuffer v) { BufferChecks.checkDirect(v); nglUniform4iv(location, v.remaining() >> 2, MemoryUtil.getAddress(v)); } static native void nglUniform4iv(int location, int v_count, long v); public static void glUniformMatrix2(int location, boolean transpose, FloatBuffer matrices) { BufferChecks.checkDirect(matrices); nglUniformMatrix2fv(location, matrices.remaining() >> 2, transpose, MemoryUtil.getAddress(matrices)); } static native void nglUniformMatrix2fv(int location, int matrices_count, boolean transpose, long matrices); public static void glUniformMatrix3(int location, boolean transpose, FloatBuffer matrices) { BufferChecks.checkDirect(matrices); nglUniformMatrix3fv(location, matrices.remaining() / (3 * 3), transpose, MemoryUtil.getAddress(matrices)); } static native void nglUniformMatrix3fv(int location, int matrices_count, boolean transpose, long matrices); public static void glUniformMatrix4(int location, boolean transpose, FloatBuffer matrices) { BufferChecks.checkDirect(matrices); nglUniformMatrix4fv(location, matrices.remaining() >> 4, transpose, MemoryUtil.getAddress(matrices)); } static native void nglUniformMatrix4fv(int location, int matrices_count, boolean transpose, long matrices); public static void glUseProgram(int program) { nglUseProgram(program); } static native void nglUseProgram(int program); public static void glValidateProgram(int program) { nglValidateProgram(program); } static native void nglValidateProgram(int program); public static void glVertexAttrib1f(int indx, float x) { nglVertexAttrib1f(indx, x); } static native void nglVertexAttrib1f(int indx, float x); public static void glVertexAttrib1(int indx, FloatBuffer values) { BufferChecks.checkBuffer(values, 1); nglVertexAttrib1fv(indx, MemoryUtil.getAddress(values)); } static native void nglVertexAttrib1fv(int indx, long values); public static void glVertexAttrib2f(int indx, float x, float y) { nglVertexAttrib2f(indx, x, y); } static native void nglVertexAttrib2f(int indx, float x, float y); public static void glVertexAttrib2(int indx, FloatBuffer values) { BufferChecks.checkBuffer(values, 2); nglVertexAttrib2fv(indx, MemoryUtil.getAddress(values)); } static native void nglVertexAttrib2fv(int indx, long values); public static void glVertexAttrib3f(int indx, float x, float y, float z) { nglVertexAttrib3f(indx, x, y, z); } static native void nglVertexAttrib3f(int indx, float x, float y, float z); public static void glVertexAttrib3(int indx, FloatBuffer values) { BufferChecks.checkBuffer(values, 3); nglVertexAttrib3fv(indx, MemoryUtil.getAddress(values)); } static native void nglVertexAttrib3fv(int indx, long values); public static void glVertexAttrib4f(int indx, float x, float y, float z, float w) { nglVertexAttrib4f(indx, x, y, z, w); } static native void nglVertexAttrib4f(int indx, float x, float y, float z, float w); public static void glVertexAttrib4(int indx, FloatBuffer values) { BufferChecks.checkBuffer(values, 4); nglVertexAttrib4fv(indx, MemoryUtil.getAddress(values)); } static native void nglVertexAttrib4fv(int indx, long values); public static void glVertexAttribPointer(int index, int size, boolean normalized, int stride, FloatBuffer buffer) { GLChecks.ensureArrayVBOdisabled(); BufferChecks.checkDirect(buffer); if ( LWJGLUtil.CHECKS ) StateTracker.getTracker().glVertexAttribPointer_buffer[index] = buffer; nglVertexAttribPointer(index, size, GLES20.GL_FLOAT, normalized, stride, MemoryUtil.getAddress(buffer)); } public static void glVertexAttribPointer(int index, int size, boolean unsigned, boolean normalized, int stride, ByteBuffer buffer) { GLChecks.ensureArrayVBOdisabled(); BufferChecks.checkDirect(buffer); if ( LWJGLUtil.CHECKS ) StateTracker.getTracker().glVertexAttribPointer_buffer[index] = buffer; nglVertexAttribPointer(index, size, unsigned ? GLES20.GL_UNSIGNED_BYTE : GLES20.GL_BYTE, normalized, stride, MemoryUtil.getAddress(buffer)); } public static void glVertexAttribPointer(int index, int size, boolean unsigned, boolean normalized, int stride, IntBuffer buffer) { GLChecks.ensureArrayVBOdisabled(); BufferChecks.checkDirect(buffer); if ( LWJGLUtil.CHECKS ) StateTracker.getTracker().glVertexAttribPointer_buffer[index] = buffer; nglVertexAttribPointer(index, size, unsigned ? GLES20.GL_UNSIGNED_INT : GLES20.GL_INT, normalized, stride, MemoryUtil.getAddress(buffer)); } public static void glVertexAttribPointer(int index, int size, boolean unsigned, boolean normalized, int stride, ShortBuffer buffer) { GLChecks.ensureArrayVBOdisabled(); BufferChecks.checkDirect(buffer); if ( LWJGLUtil.CHECKS ) StateTracker.getTracker().glVertexAttribPointer_buffer[index] = buffer; nglVertexAttribPointer(index, size, unsigned ? GLES20.GL_UNSIGNED_SHORT : GLES20.GL_SHORT, normalized, stride, MemoryUtil.getAddress(buffer)); } static native void nglVertexAttribPointer(int index, int size, int type, boolean normalized, int stride, long buffer); public static void glVertexAttribPointer(int index, int size, int type, boolean normalized, int stride, long buffer_buffer_offset) { GLChecks.ensureArrayVBOenabled(); nglVertexAttribPointerBO(index, size, type, normalized, stride, buffer_buffer_offset); } static native void nglVertexAttribPointerBO(int index, int size, int type, boolean normalized, int stride, long buffer_buffer_offset); public static void glViewport(int x, int y, int width, int height) { nglViewport(x, y, width, height); } static native void nglViewport(int x, int y, int width, int height); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy