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

org.lwjgl.opengl.GL40 Maven / Gradle / Ivy

There is a newer version: 3.3.0
Show newest version
/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 * MACHINE GENERATED FILE, DO NOT EDIT
 */
package org.lwjgl.opengl;

import java.nio.*;

import org.lwjgl.system.*;

import static org.lwjgl.system.Checks.*;
import static org.lwjgl.system.JNI.*;
import static org.lwjgl.system.MemoryStack.*;
import static org.lwjgl.system.MemoryUtil.*;

/**
 * The core OpenGL 4.0 functionality. OpenGL 4.0 implementations support revision 4.00 of the OpenGL Shading Language.
 * 
 * 

Extensions promoted to core in this release:

* * */ public class GL40 { /** * Accepted by the {@code target} parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferPointerv, * MapBufferRange, FlushMappedBufferRange, GetBufferParameteriv, and CopyBufferSubData. */ public static final int GL_DRAW_INDIRECT_BUFFER = 0x8F3F; /** Accepted by the {@code value} parameter of GetIntegerv, GetBooleanv, GetFloatv, and GetDoublev. */ public static final int GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43; /** Accepted by the {@code pname} parameter of GetProgramiv. */ public static final int GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F; /** Accepted by the {@code pname} parameter of GetBooleanv, GetIntegerv, GetFloatv, GetDoublev, and GetInteger64v. */ public static final int GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A, GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B, GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C, GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D; /** Returned in the {@code type} parameter of GetActiveUniform, and GetTransformFeedbackVarying. */ public static final int GL_DOUBLE_VEC2 = 0x8FFC, GL_DOUBLE_VEC3 = 0x8FFD, GL_DOUBLE_VEC4 = 0x8FFE, GL_DOUBLE_MAT2 = 0x8F46, GL_DOUBLE_MAT3 = 0x8F47, GL_DOUBLE_MAT4 = 0x8F48, GL_DOUBLE_MAT2x3 = 0x8F49, GL_DOUBLE_MAT2x4 = 0x8F4A, GL_DOUBLE_MAT3x2 = 0x8F4B, GL_DOUBLE_MAT3x4 = 0x8F4C, GL_DOUBLE_MAT4x2 = 0x8F4D, GL_DOUBLE_MAT4x3 = 0x8F4E; /** * Accepted by the {@code cap} parameter of Enable, Disable, and IsEnabled, and by the {@code pname} parameter of GetBooleanv, GetIntegerv, GetFloatv, and * GetDoublev. */ public static final int GL_SAMPLE_SHADING = 0x8C36; /** Accepted by the {@code pname} parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. */ public static final int GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37; /** Accepted by the {@code pname} parameter of GetProgramStageiv. */ public static final int GL_ACTIVE_SUBROUTINES = 0x8DE5, GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6, GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47, GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48, GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49; /** Accepted by the {@code pname} parameter of GetBooleanv, GetIntegerv, GetFloatv, GetDoublev, and GetInteger64v. */ public static final int GL_MAX_SUBROUTINES = 0x8DE7, GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8; /** Accepted by the {@code pname} parameter of GetActiveSubroutineUniformiv. */ public static final int GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A, GL_COMPATIBLE_SUBROUTINES = 0x8E4B; /** Accepted by the {@code mode} parameter of Begin and all vertex array functions that implicitly call Begin. */ public static final int GL_PATCHES = 0xE; /** Accepted by the {@code pname} parameter of PatchParameteri, GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v. */ public static final int GL_PATCH_VERTICES = 0x8E72; /** Accepted by the {@code pname} parameter of PatchParameterfv, GetBooleanv, GetDoublev, GetFloatv, and GetIntegerv, and GetInteger64v. */ public static final int GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73, GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74; /** Accepted by the {@code pname} parameter of GetProgramiv. */ public static final int GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75, GL_TESS_GEN_MODE = 0x8E76, GL_TESS_GEN_SPACING = 0x8E77, GL_TESS_GEN_VERTEX_ORDER = 0x8E78, GL_TESS_GEN_POINT_MODE = 0x8E79; /** Returned by GetProgramiv when {@code pname} is TESS_GEN_MODE. */ public static final int GL_ISOLINES = 0x8E7A; /** Returned by GetProgramiv when {@code pname} is TESS_GEN_SPACING. */ public static final int GL_FRACTIONAL_ODD = 0x8E7B, GL_FRACTIONAL_EVEN = 0x8E7C; /** Accepted by the {@code pname} parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v. */ public static final int GL_MAX_PATCH_VERTICES = 0x8E7D, GL_MAX_TESS_GEN_LEVEL = 0x8E7E, GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F, GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80, GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81, GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82, GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83, GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84, GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85, GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86, GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89, GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A, GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C, GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D, GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E, GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F; /** Accepted by the {@code pname} parameter of GetActiveUniformBlockiv. */ public static final int GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0, GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1; /** Accepted by the {@code type} parameter of CreateShader and returned by the {@code params} parameter of GetShaderiv. */ public static final int GL_TESS_EVALUATION_SHADER = 0x8E87, GL_TESS_CONTROL_SHADER = 0x8E88; /** Accepted by the {@code target} parameter of TexParameteri, TexParameteriv, TexParameterf, TexParameterfv, BindTexture, and GenerateMipmap. */ public static final int GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009; /** Accepted by the {@code pname} parameter of GetBooleanv, GetDoublev, GetIntegerv and GetFloatv. */ public static final int GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A; /** Accepted by the {@code target} parameter of TexImage3D, TexSubImage3D, CompressedTeximage3D, CompressedTexSubImage3D and CopyTexSubImage3D. */ public static final int GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B; /** Returned by the {@code type} parameter of GetActiveUniform. */ public static final int GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C, GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D, GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E, GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F; /** Accepted by the {@code pname} parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev. */ public static final int GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E, GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F; /** Accepted by the {@code target} parameter of BindTransformFeedback. */ public static final int GL_TRANSFORM_FEEDBACK = 0x8E22; /** Accepted by the {@code pname} parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. */ public static final int GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23, GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24, GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25; /** Accepted by the {@code pname} parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. */ public static final int GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70, GL_MAX_VERTEX_STREAMS = 0x8E71; static { GL.initialize(); } protected GL40() { throw new UnsupportedOperationException(); } static boolean isAvailable(GLCapabilities caps) { return checkFunctions( caps.glBlendEquationi, caps.glBlendEquationSeparatei, caps.glBlendFunci, caps.glBlendFuncSeparatei, caps.glDrawArraysIndirect, caps.glDrawElementsIndirect, caps.glUniform1d, caps.glUniform2d, caps.glUniform3d, caps.glUniform4d, caps.glUniform1dv, caps.glUniform2dv, caps.glUniform3dv, caps.glUniform4dv, caps.glUniformMatrix2dv, caps.glUniformMatrix3dv, caps.glUniformMatrix4dv, caps.glUniformMatrix2x3dv, caps.glUniformMatrix2x4dv, caps.glUniformMatrix3x2dv, caps.glUniformMatrix3x4dv, caps.glUniformMatrix4x2dv, caps.glUniformMatrix4x3dv, caps.glGetUniformdv, caps.glMinSampleShading, caps.glGetSubroutineUniformLocation, caps.glGetSubroutineIndex, caps.glGetActiveSubroutineUniformiv, caps.glGetActiveSubroutineUniformName, caps.glGetActiveSubroutineName, caps.glUniformSubroutinesuiv, caps.glGetUniformSubroutineuiv, caps.glGetProgramStageiv, caps.glPatchParameteri, caps.glPatchParameterfv, caps.glBindTransformFeedback, caps.glDeleteTransformFeedbacks, caps.glGenTransformFeedbacks, caps.glIsTransformFeedback, caps.glPauseTransformFeedback, caps.glResumeTransformFeedback, caps.glDrawTransformFeedback, caps.glDrawTransformFeedbackStream, caps.glBeginQueryIndexed, caps.glEndQueryIndexed, caps.glGetQueryIndexediv ); } // --- [ glBlendEquationi ] --- /** *

Reference Page

* * Specifies the equation used for both the RGB blend equation and the Alpha blend equation for the specified draw buffer. * * @param buf the index of the draw buffer for which to set the blend equation * @param mode how source and destination colors are combined. One of:
{@link GL14#GL_FUNC_ADD FUNC_ADD}{@link GL14#GL_FUNC_SUBTRACT FUNC_SUBTRACT}{@link GL14#GL_FUNC_REVERSE_SUBTRACT FUNC_REVERSE_SUBTRACT}{@link GL14#GL_MIN MIN}{@link GL14#GL_MAX MAX}
*/ public static native void glBlendEquationi(int buf, int mode); // --- [ glBlendEquationSeparatei ] --- /** *

Reference Page

* * Sets the RGB blend equation and the alpha blend equation separately for the specified draw buffer. * * @param buf the index of the draw buffer for which to set the blend equations * @param modeRGB the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined. One of:
{@link GL14#GL_FUNC_ADD FUNC_ADD}{@link GL14#GL_FUNC_SUBTRACT FUNC_SUBTRACT}{@link GL14#GL_FUNC_REVERSE_SUBTRACT FUNC_REVERSE_SUBTRACT}{@link GL14#GL_MIN MIN}{@link GL14#GL_MAX MAX}
* @param modeAlpha the alpha blend equation, how the alpha component of the source and destination colors are combined. One of:
{@link GL14#GL_FUNC_ADD FUNC_ADD}{@link GL14#GL_FUNC_SUBTRACT FUNC_SUBTRACT}{@link GL14#GL_FUNC_REVERSE_SUBTRACT FUNC_REVERSE_SUBTRACT}{@link GL14#GL_MIN MIN}{@link GL14#GL_MAX MAX}
*/ public static native void glBlendEquationSeparatei(int buf, int modeRGB, int modeAlpha); // --- [ glBlendFunci ] --- /** *

Reference Page

* * Specifies pixel arithmetic for the specified draw buffer. * * @param buf the index of the draw buffer for which to set the blend function * @param sfactor how the red, green, blue, and alpha source blending factors are computed * @param dfactor how the red, green, blue, and alpha destination blending factors are computed */ public static native void glBlendFunci(int buf, int sfactor, int dfactor); // --- [ glBlendFuncSeparatei ] --- /** *

Reference Page

* * Specifies pixel arithmetic for RGB and alpha components separately for the specified draw buffer. * * @param buf the index of the draw buffer for which to set the blend functions * @param srcRGB how the red, green, and blue blending factors are computed * @param dstRGB how the red, green, and blue destination blending factors are computed * @param srcAlpha how the alpha source blending factor is computed * @param dstAlpha how the alpha destination blending factor is computed */ public static native void glBlendFuncSeparatei(int buf, int srcRGB, int dstRGB, int srcAlpha, int dstAlpha); // --- [ glDrawArraysIndirect ] --- /** Unsafe version of: {@link #glDrawArraysIndirect DrawArraysIndirect} */ public static native void nglDrawArraysIndirect(int mode, long indirect); /** *

Reference Page

* * Renders primitives from array data, taking parameters from memory. * *

{@code glDrawArraysIndirect} behaves similarly to {@link GL42#glDrawArraysInstancedBaseInstance DrawArraysInstancedBaseInstance}, except that the parameters to * glDrawArraysInstancedBaseInstance are stored in memory at the address given by {@code indirect}.

* *

The parameters addressed by {@code indirect} are packed into a structure that takes the form (in C):

* *
     * typedef struct {
     *     uint count;
     *     uint primCount;
     *     uint first;
     *     uint baseInstance; // must be 0 unless OpenGL 4.2 is supported
     * } DrawArraysIndirectCommand;
     * 
     * const DrawArraysIndirectCommand *cmd = (const DrawArraysIndirectCommand *)indirect;
     * glDrawArraysInstancedBaseInstance(mode, cmd->first, cmd->count, cmd->primCount, cmd->baseInstance);
* * @param mode what kind of primitives to render. One of:
{@link GL11#GL_POINTS POINTS}{@link GL11#GL_LINE_STRIP LINE_STRIP}{@link GL11#GL_LINE_LOOP LINE_LOOP}{@link GL11#GL_LINES LINES}{@link GL11#GL_POLYGON POLYGON}{@link GL11#GL_TRIANGLE_STRIP TRIANGLE_STRIP}{@link GL11#GL_TRIANGLE_FAN TRIANGLE_FAN}
{@link GL11#GL_TRIANGLES TRIANGLES}{@link GL11#GL_QUAD_STRIP QUAD_STRIP}{@link GL11#GL_QUADS QUADS}{@link GL32#GL_LINES_ADJACENCY LINES_ADJACENCY}{@link GL32#GL_LINE_STRIP_ADJACENCY LINE_STRIP_ADJACENCY}{@link GL32#GL_TRIANGLES_ADJACENCY TRIANGLES_ADJACENCY}{@link GL32#GL_TRIANGLE_STRIP_ADJACENCY TRIANGLE_STRIP_ADJACENCY}
{@link #GL_PATCHES PATCHES}
* @param indirect a structure containing the draw parameters */ public static void glDrawArraysIndirect(int mode, ByteBuffer indirect) { if (CHECKS) { check(indirect, 4 * 4); } nglDrawArraysIndirect(mode, memAddress(indirect)); } /** *

Reference Page

* * Renders primitives from array data, taking parameters from memory. * *

{@code glDrawArraysIndirect} behaves similarly to {@link GL42#glDrawArraysInstancedBaseInstance DrawArraysInstancedBaseInstance}, except that the parameters to * glDrawArraysInstancedBaseInstance are stored in memory at the address given by {@code indirect}.

* *

The parameters addressed by {@code indirect} are packed into a structure that takes the form (in C):

* *
     * typedef struct {
     *     uint count;
     *     uint primCount;
     *     uint first;
     *     uint baseInstance; // must be 0 unless OpenGL 4.2 is supported
     * } DrawArraysIndirectCommand;
     * 
     * const DrawArraysIndirectCommand *cmd = (const DrawArraysIndirectCommand *)indirect;
     * glDrawArraysInstancedBaseInstance(mode, cmd->first, cmd->count, cmd->primCount, cmd->baseInstance);
* * @param mode what kind of primitives to render. One of:
{@link GL11#GL_POINTS POINTS}{@link GL11#GL_LINE_STRIP LINE_STRIP}{@link GL11#GL_LINE_LOOP LINE_LOOP}{@link GL11#GL_LINES LINES}{@link GL11#GL_POLYGON POLYGON}{@link GL11#GL_TRIANGLE_STRIP TRIANGLE_STRIP}{@link GL11#GL_TRIANGLE_FAN TRIANGLE_FAN}
{@link GL11#GL_TRIANGLES TRIANGLES}{@link GL11#GL_QUAD_STRIP QUAD_STRIP}{@link GL11#GL_QUADS QUADS}{@link GL32#GL_LINES_ADJACENCY LINES_ADJACENCY}{@link GL32#GL_LINE_STRIP_ADJACENCY LINE_STRIP_ADJACENCY}{@link GL32#GL_TRIANGLES_ADJACENCY TRIANGLES_ADJACENCY}{@link GL32#GL_TRIANGLE_STRIP_ADJACENCY TRIANGLE_STRIP_ADJACENCY}
{@link #GL_PATCHES PATCHES}
* @param indirect a structure containing the draw parameters */ public static void glDrawArraysIndirect(int mode, long indirect) { nglDrawArraysIndirect(mode, indirect); } /** *

Reference Page

* * Renders primitives from array data, taking parameters from memory. * *

{@code glDrawArraysIndirect} behaves similarly to {@link GL42#glDrawArraysInstancedBaseInstance DrawArraysInstancedBaseInstance}, except that the parameters to * glDrawArraysInstancedBaseInstance are stored in memory at the address given by {@code indirect}.

* *

The parameters addressed by {@code indirect} are packed into a structure that takes the form (in C):

* *
     * typedef struct {
     *     uint count;
     *     uint primCount;
     *     uint first;
     *     uint baseInstance; // must be 0 unless OpenGL 4.2 is supported
     * } DrawArraysIndirectCommand;
     * 
     * const DrawArraysIndirectCommand *cmd = (const DrawArraysIndirectCommand *)indirect;
     * glDrawArraysInstancedBaseInstance(mode, cmd->first, cmd->count, cmd->primCount, cmd->baseInstance);
* * @param mode what kind of primitives to render. One of:
{@link GL11#GL_POINTS POINTS}{@link GL11#GL_LINE_STRIP LINE_STRIP}{@link GL11#GL_LINE_LOOP LINE_LOOP}{@link GL11#GL_LINES LINES}{@link GL11#GL_POLYGON POLYGON}{@link GL11#GL_TRIANGLE_STRIP TRIANGLE_STRIP}{@link GL11#GL_TRIANGLE_FAN TRIANGLE_FAN}
{@link GL11#GL_TRIANGLES TRIANGLES}{@link GL11#GL_QUAD_STRIP QUAD_STRIP}{@link GL11#GL_QUADS QUADS}{@link GL32#GL_LINES_ADJACENCY LINES_ADJACENCY}{@link GL32#GL_LINE_STRIP_ADJACENCY LINE_STRIP_ADJACENCY}{@link GL32#GL_TRIANGLES_ADJACENCY TRIANGLES_ADJACENCY}{@link GL32#GL_TRIANGLE_STRIP_ADJACENCY TRIANGLE_STRIP_ADJACENCY}
{@link #GL_PATCHES PATCHES}
* @param indirect a structure containing the draw parameters */ public static void glDrawArraysIndirect(int mode, IntBuffer indirect) { if (CHECKS) { check(indirect, (4 * 4) >> 2); } nglDrawArraysIndirect(mode, memAddress(indirect)); } // --- [ glDrawElementsIndirect ] --- /** Unsafe version of: {@link #glDrawElementsIndirect DrawElementsIndirect} */ public static native void nglDrawElementsIndirect(int mode, int type, long indirect); /** *

Reference Page

* * Renders indexed primitives from array data, taking parameters from memory. * *

{@code glDrawElementsIndirect} behaves similarly to {@link GL42#glDrawElementsInstancedBaseVertexBaseInstance DrawElementsInstancedBaseVertexBaseInstance}, execpt that the parameters to * glDrawElementsInstancedBaseVertexBaseInstance are stored in memory at the address given by {@code indirect}.

* *

The parameters addressed by {@code indirect} are packed into a structure that takes the form (in C):

* *
     * typedef struct {
     *     uint count;
     *     uint primCount;
     *     uint firstIndex;
     *     uint baseVertex;
     *     uint baseInstance;
     * } DrawElementsIndirectCommand;
* *

{@code glDrawElementsIndirect} is equivalent to:

* *
     * void glDrawElementsIndirect(GLenum mode, GLenum type, const void *indirect) {
     *     const DrawElementsIndirectCommand *cmd  = (const DrawElementsIndirectCommand *)indirect;
     *     glDrawElementsInstancedBaseVertexBaseInstance(
     *         mode,
     *         cmd->count,
     *         type,
     *         cmd->firstIndex + size-of-type,
     *         cmd->primCount,
     *         cmd->baseVertex,
     *         cmd->baseInstance
     *     );
     * }
* * @param mode what kind of primitives to render. One of:
{@link GL11#GL_POINTS POINTS}{@link GL11#GL_LINE_STRIP LINE_STRIP}{@link GL11#GL_LINE_LOOP LINE_LOOP}{@link GL11#GL_LINES LINES}{@link GL11#GL_POLYGON POLYGON}{@link GL11#GL_TRIANGLE_STRIP TRIANGLE_STRIP}{@link GL11#GL_TRIANGLE_FAN TRIANGLE_FAN}
{@link GL11#GL_TRIANGLES TRIANGLES}{@link GL11#GL_QUAD_STRIP QUAD_STRIP}{@link GL11#GL_QUADS QUADS}{@link GL32#GL_LINES_ADJACENCY LINES_ADJACENCY}{@link GL32#GL_LINE_STRIP_ADJACENCY LINE_STRIP_ADJACENCY}{@link GL32#GL_TRIANGLES_ADJACENCY TRIANGLES_ADJACENCY}{@link GL32#GL_TRIANGLE_STRIP_ADJACENCY TRIANGLE_STRIP_ADJACENCY}
{@link #GL_PATCHES PATCHES}
* @param type the type of data in the buffer bound to the {@link GL15#GL_ELEMENT_ARRAY_BUFFER ELEMENT_ARRAY_BUFFER} binding. One of:
{@link GL11#GL_UNSIGNED_BYTE UNSIGNED_BYTE}{@link GL11#GL_UNSIGNED_SHORT UNSIGNED_SHORT}{@link GL11#GL_UNSIGNED_INT UNSIGNED_INT}
* @param indirect the address of a structure containing the draw parameters */ public static void glDrawElementsIndirect(int mode, int type, ByteBuffer indirect) { if (CHECKS) { check(indirect, 5 * 4); } nglDrawElementsIndirect(mode, type, memAddress(indirect)); } /** *

Reference Page

* * Renders indexed primitives from array data, taking parameters from memory. * *

{@code glDrawElementsIndirect} behaves similarly to {@link GL42#glDrawElementsInstancedBaseVertexBaseInstance DrawElementsInstancedBaseVertexBaseInstance}, execpt that the parameters to * glDrawElementsInstancedBaseVertexBaseInstance are stored in memory at the address given by {@code indirect}.

* *

The parameters addressed by {@code indirect} are packed into a structure that takes the form (in C):

* *
     * typedef struct {
     *     uint count;
     *     uint primCount;
     *     uint firstIndex;
     *     uint baseVertex;
     *     uint baseInstance;
     * } DrawElementsIndirectCommand;
* *

{@code glDrawElementsIndirect} is equivalent to:

* *
     * void glDrawElementsIndirect(GLenum mode, GLenum type, const void *indirect) {
     *     const DrawElementsIndirectCommand *cmd  = (const DrawElementsIndirectCommand *)indirect;
     *     glDrawElementsInstancedBaseVertexBaseInstance(
     *         mode,
     *         cmd->count,
     *         type,
     *         cmd->firstIndex + size-of-type,
     *         cmd->primCount,
     *         cmd->baseVertex,
     *         cmd->baseInstance
     *     );
     * }
* * @param mode what kind of primitives to render. One of:
{@link GL11#GL_POINTS POINTS}{@link GL11#GL_LINE_STRIP LINE_STRIP}{@link GL11#GL_LINE_LOOP LINE_LOOP}{@link GL11#GL_LINES LINES}{@link GL11#GL_POLYGON POLYGON}{@link GL11#GL_TRIANGLE_STRIP TRIANGLE_STRIP}{@link GL11#GL_TRIANGLE_FAN TRIANGLE_FAN}
{@link GL11#GL_TRIANGLES TRIANGLES}{@link GL11#GL_QUAD_STRIP QUAD_STRIP}{@link GL11#GL_QUADS QUADS}{@link GL32#GL_LINES_ADJACENCY LINES_ADJACENCY}{@link GL32#GL_LINE_STRIP_ADJACENCY LINE_STRIP_ADJACENCY}{@link GL32#GL_TRIANGLES_ADJACENCY TRIANGLES_ADJACENCY}{@link GL32#GL_TRIANGLE_STRIP_ADJACENCY TRIANGLE_STRIP_ADJACENCY}
{@link #GL_PATCHES PATCHES}
* @param type the type of data in the buffer bound to the {@link GL15#GL_ELEMENT_ARRAY_BUFFER ELEMENT_ARRAY_BUFFER} binding. One of:
{@link GL11#GL_UNSIGNED_BYTE UNSIGNED_BYTE}{@link GL11#GL_UNSIGNED_SHORT UNSIGNED_SHORT}{@link GL11#GL_UNSIGNED_INT UNSIGNED_INT}
* @param indirect the address of a structure containing the draw parameters */ public static void glDrawElementsIndirect(int mode, int type, long indirect) { nglDrawElementsIndirect(mode, type, indirect); } /** *

Reference Page

* * Renders indexed primitives from array data, taking parameters from memory. * *

{@code glDrawElementsIndirect} behaves similarly to {@link GL42#glDrawElementsInstancedBaseVertexBaseInstance DrawElementsInstancedBaseVertexBaseInstance}, execpt that the parameters to * glDrawElementsInstancedBaseVertexBaseInstance are stored in memory at the address given by {@code indirect}.

* *

The parameters addressed by {@code indirect} are packed into a structure that takes the form (in C):

* *
     * typedef struct {
     *     uint count;
     *     uint primCount;
     *     uint firstIndex;
     *     uint baseVertex;
     *     uint baseInstance;
     * } DrawElementsIndirectCommand;
* *

{@code glDrawElementsIndirect} is equivalent to:

* *
     * void glDrawElementsIndirect(GLenum mode, GLenum type, const void *indirect) {
     *     const DrawElementsIndirectCommand *cmd  = (const DrawElementsIndirectCommand *)indirect;
     *     glDrawElementsInstancedBaseVertexBaseInstance(
     *         mode,
     *         cmd->count,
     *         type,
     *         cmd->firstIndex + size-of-type,
     *         cmd->primCount,
     *         cmd->baseVertex,
     *         cmd->baseInstance
     *     );
     * }
* * @param mode what kind of primitives to render. One of:
{@link GL11#GL_POINTS POINTS}{@link GL11#GL_LINE_STRIP LINE_STRIP}{@link GL11#GL_LINE_LOOP LINE_LOOP}{@link GL11#GL_LINES LINES}{@link GL11#GL_POLYGON POLYGON}{@link GL11#GL_TRIANGLE_STRIP TRIANGLE_STRIP}{@link GL11#GL_TRIANGLE_FAN TRIANGLE_FAN}
{@link GL11#GL_TRIANGLES TRIANGLES}{@link GL11#GL_QUAD_STRIP QUAD_STRIP}{@link GL11#GL_QUADS QUADS}{@link GL32#GL_LINES_ADJACENCY LINES_ADJACENCY}{@link GL32#GL_LINE_STRIP_ADJACENCY LINE_STRIP_ADJACENCY}{@link GL32#GL_TRIANGLES_ADJACENCY TRIANGLES_ADJACENCY}{@link GL32#GL_TRIANGLE_STRIP_ADJACENCY TRIANGLE_STRIP_ADJACENCY}
{@link #GL_PATCHES PATCHES}
* @param type the type of data in the buffer bound to the {@link GL15#GL_ELEMENT_ARRAY_BUFFER ELEMENT_ARRAY_BUFFER} binding. One of:
{@link GL11#GL_UNSIGNED_BYTE UNSIGNED_BYTE}{@link GL11#GL_UNSIGNED_SHORT UNSIGNED_SHORT}{@link GL11#GL_UNSIGNED_INT UNSIGNED_INT}
* @param indirect the address of a structure containing the draw parameters */ public static void glDrawElementsIndirect(int mode, int type, IntBuffer indirect) { if (CHECKS) { check(indirect, (5 * 4) >> 2); } nglDrawElementsIndirect(mode, type, memAddress(indirect)); } // --- [ glUniform1d ] --- /** *

Reference Page

* * Specifies the value of a double uniform variable for the current program object. * * @param location the location of the uniform variable to be modified * @param x the uniform x value */ public static native void glUniform1d(int location, double x); // --- [ glUniform2d ] --- /** *

Reference Page

* * Specifies the value of a dvec2 uniform variable for the current program object. * * @param location the location of the uniform variable to be modified * @param x the uniform x value * @param y the uniform y value */ public static native void glUniform2d(int location, double x, double y); // --- [ glUniform3d ] --- /** *

Reference Page

* * Specifies the value of a dvec3 uniform variable for the current program object. * * @param location the location of the uniform variable to be modified * @param x the uniform x value * @param y the uniform y value * @param z the uniform z value */ public static native void glUniform3d(int location, double x, double y, double z); // --- [ glUniform4d ] --- /** *

Reference Page

* * Specifies the value of a dvec4 uniform variable for the current program object. * * @param location the location of the uniform variable to be modified * @param x the uniform x value * @param y the uniform y value * @param z the uniform z value * @param w the uniform w value */ public static native void glUniform4d(int location, double x, double y, double z, double w); // --- [ glUniform1dv ] --- /** * Unsafe version of: {@link #glUniform1dv Uniform1dv} * * @param count the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. */ public static native void nglUniform1dv(int location, int count, long value); /** *

Reference Page

* * Specifies the value of a single double uniform variable or a double uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform variable */ public static void glUniform1dv(int location, DoubleBuffer value) { nglUniform1dv(location, value.remaining(), memAddress(value)); } // --- [ glUniform2dv ] --- /** * Unsafe version of: {@link #glUniform2dv Uniform2dv} * * @param count the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. */ public static native void nglUniform2dv(int location, int count, long value); /** *

Reference Page

* * Specifies the value of a single dvec2 uniform variable or a dvec2 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform variable */ public static void glUniform2dv(int location, DoubleBuffer value) { nglUniform2dv(location, value.remaining() >> 1, memAddress(value)); } // --- [ glUniform3dv ] --- /** * Unsafe version of: {@link #glUniform3dv Uniform3dv} * * @param count the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. */ public static native void nglUniform3dv(int location, int count, long value); /** *

Reference Page

* * Specifies the value of a single dvec3 uniform variable or a dvec3 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform variable */ public static void glUniform3dv(int location, DoubleBuffer value) { nglUniform3dv(location, value.remaining() / 3, memAddress(value)); } // --- [ glUniform4dv ] --- /** * Unsafe version of: {@link #glUniform4dv Uniform4dv} * * @param count the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. */ public static native void nglUniform4dv(int location, int count, long value); /** *

Reference Page

* * Specifies the value of a single dvec4 uniform variable or a dvec4 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform variable */ public static void glUniform4dv(int location, DoubleBuffer value) { nglUniform4dv(location, value.remaining() >> 2, memAddress(value)); } // --- [ glUniformMatrix2dv ] --- /** * Unsafe version of: {@link #glUniformMatrix2dv UniformMatrix2dv} * * @param count the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. */ public static native void nglUniformMatrix2dv(int location, int count, boolean transpose, long value); /** *

Reference Page

* * Specifies the value of a single dmat2 uniform variable or a dmat2 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param transpose whether to transpose the matrix as the values are loaded into the uniform variable * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform matrix variable */ public static void glUniformMatrix2dv(int location, boolean transpose, DoubleBuffer value) { nglUniformMatrix2dv(location, value.remaining() >> 2, transpose, memAddress(value)); } // --- [ glUniformMatrix3dv ] --- /** * Unsafe version of: {@link #glUniformMatrix3dv UniformMatrix3dv} * * @param count the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. */ public static native void nglUniformMatrix3dv(int location, int count, boolean transpose, long value); /** *

Reference Page

* * Specifies the value of a single dmat3 uniform variable or a dmat3 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param transpose whether to transpose the matrix as the values are loaded into the uniform variable * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform matrix variable */ public static void glUniformMatrix3dv(int location, boolean transpose, DoubleBuffer value) { nglUniformMatrix3dv(location, value.remaining() / 9, transpose, memAddress(value)); } // --- [ glUniformMatrix4dv ] --- /** * Unsafe version of: {@link #glUniformMatrix4dv UniformMatrix4dv} * * @param count the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. */ public static native void nglUniformMatrix4dv(int location, int count, boolean transpose, long value); /** *

Reference Page

* * Specifies the value of a single dmat4 uniform variable or a dmat4 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param transpose whether to transpose the matrix as the values are loaded into the uniform variable * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform matrix variable */ public static void glUniformMatrix4dv(int location, boolean transpose, DoubleBuffer value) { nglUniformMatrix4dv(location, value.remaining() >> 4, transpose, memAddress(value)); } // --- [ glUniformMatrix2x3dv ] --- /** * Unsafe version of: {@link #glUniformMatrix2x3dv UniformMatrix2x3dv} * * @param count the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. */ public static native void nglUniformMatrix2x3dv(int location, int count, boolean transpose, long value); /** *

Reference Page

* * Specifies the value of a single dmat2x3 uniform variable or a dmat2x3 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param transpose whether to transpose the matrix as the values are loaded into the uniform variable * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform matrix variable */ public static void glUniformMatrix2x3dv(int location, boolean transpose, DoubleBuffer value) { nglUniformMatrix2x3dv(location, value.remaining() / 6, transpose, memAddress(value)); } // --- [ glUniformMatrix2x4dv ] --- /** * Unsafe version of: {@link #glUniformMatrix2x4dv UniformMatrix2x4dv} * * @param count the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. */ public static native void nglUniformMatrix2x4dv(int location, int count, boolean transpose, long value); /** *

Reference Page

* * Specifies the value of a single dmat2x4 uniform variable or a dmat2x4 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param transpose whether to transpose the matrix as the values are loaded into the uniform variable * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform matrix variable */ public static void glUniformMatrix2x4dv(int location, boolean transpose, DoubleBuffer value) { nglUniformMatrix2x4dv(location, value.remaining() >> 3, transpose, memAddress(value)); } // --- [ glUniformMatrix3x2dv ] --- /** * Unsafe version of: {@link #glUniformMatrix3x2dv UniformMatrix3x2dv} * * @param count the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. */ public static native void nglUniformMatrix3x2dv(int location, int count, boolean transpose, long value); /** *

Reference Page

* * Specifies the value of a single dmat3x2 uniform variable or a dmat3x2 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param transpose whether to transpose the matrix as the values are loaded into the uniform variable * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform matrix variable */ public static void glUniformMatrix3x2dv(int location, boolean transpose, DoubleBuffer value) { nglUniformMatrix3x2dv(location, value.remaining() / 6, transpose, memAddress(value)); } // --- [ glUniformMatrix3x4dv ] --- /** * Unsafe version of: {@link #glUniformMatrix3x4dv UniformMatrix3x4dv} * * @param count the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. */ public static native void nglUniformMatrix3x4dv(int location, int count, boolean transpose, long value); /** *

Reference Page

* * Specifies the value of a single dmat3x4 uniform variable or a dmat3x4 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param transpose whether to transpose the matrix as the values are loaded into the uniform variable * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform matrix variable */ public static void glUniformMatrix3x4dv(int location, boolean transpose, DoubleBuffer value) { nglUniformMatrix3x4dv(location, value.remaining() / 12, transpose, memAddress(value)); } // --- [ glUniformMatrix4x2dv ] --- /** * Unsafe version of: {@link #glUniformMatrix4x2dv UniformMatrix4x2dv} * * @param count the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. */ public static native void nglUniformMatrix4x2dv(int location, int count, boolean transpose, long value); /** *

Reference Page

* * Specifies the value of a single dmat4x2 uniform variable or a dmat4x2 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param transpose whether to transpose the matrix as the values are loaded into the uniform variable * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform matrix variable */ public static void glUniformMatrix4x2dv(int location, boolean transpose, DoubleBuffer value) { nglUniformMatrix4x2dv(location, value.remaining() >> 3, transpose, memAddress(value)); } // --- [ glUniformMatrix4x3dv ] --- /** * Unsafe version of: {@link #glUniformMatrix4x3dv UniformMatrix4x3dv} * * @param count the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. */ public static native void nglUniformMatrix4x3dv(int location, int count, boolean transpose, long value); /** *

Reference Page

* * Specifies the value of a single dmat4x3 uniform variable or a dmat4x3 uniform variable array for the current program object. * * @param location the location of the uniform variable to be modified * @param transpose whether to transpose the matrix as the values are loaded into the uniform variable * @param value a pointer to an array of {@code count} values that will be used to update the specified uniform matrix variable */ public static void glUniformMatrix4x3dv(int location, boolean transpose, DoubleBuffer value) { nglUniformMatrix4x3dv(location, value.remaining() / 12, transpose, memAddress(value)); } // --- [ glGetUniformdv ] --- /** Unsafe version of: {@link #glGetUniformdv GetUniformdv} */ public static native void nglGetUniformdv(int program, int location, long params); /** *

Reference Page

* * Returns the double value(s) of a uniform variable. * * @param program the program object to be queried * @param location the location of the uniform variable to be queried * @param params the value of the specified uniform variable */ public static void glGetUniformdv(int program, int location, DoubleBuffer params) { if (CHECKS) { check(params, 1); } nglGetUniformdv(program, location, memAddress(params)); } /** *

Reference Page

* * Returns the double value(s) of a uniform variable. * * @param program the program object to be queried * @param location the location of the uniform variable to be queried */ public static double glGetUniformd(int program, int location) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { DoubleBuffer params = stack.callocDouble(1); nglGetUniformdv(program, location, memAddress(params)); return params.get(0); } finally { stack.setPointer(stackPointer); } } // --- [ glMinSampleShading ] --- /** *

Reference Page

* * Specifies the minimum rate at which sample shading takes place. * * @param value the rate at which samples are shaded within each covered pixel */ public static native void glMinSampleShading(float value); // --- [ glGetSubroutineUniformLocation ] --- /** Unsafe version of: {@link #glGetSubroutineUniformLocation GetSubroutineUniformLocation} */ public static native int nglGetSubroutineUniformLocation(int program, int shadertype, long name); /** *

Reference Page

* * Retrieves the location of a subroutine uniform of a given shader stage within a program. * * @param program the name of the program containing shader stage * @param shadertype the shader stage from which to query for subroutine uniform index. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param name the name of the subroutine uniform whose index to query. */ public static int glGetSubroutineUniformLocation(int program, int shadertype, ByteBuffer name) { if (CHECKS) { checkNT1(name); } return nglGetSubroutineUniformLocation(program, shadertype, memAddress(name)); } /** *

Reference Page

* * Retrieves the location of a subroutine uniform of a given shader stage within a program. * * @param program the name of the program containing shader stage * @param shadertype the shader stage from which to query for subroutine uniform index. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param name the name of the subroutine uniform whose index to query. */ public static int glGetSubroutineUniformLocation(int program, int shadertype, CharSequence name) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { ByteBuffer nameEncoded = stack.ASCII(name); return nglGetSubroutineUniformLocation(program, shadertype, memAddress(nameEncoded)); } finally { stack.setPointer(stackPointer); } } // --- [ glGetSubroutineIndex ] --- /** Unsafe version of: {@link #glGetSubroutineIndex GetSubroutineIndex} */ public static native int nglGetSubroutineIndex(int program, int shadertype, long name); /** *

Reference Page

* * Retrieves the index of a subroutine function of a given shader stage within a program. * * @param program the name of the program containing shader stage * @param shadertype the shader stage from which to query for subroutine function index. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param name the name of the subroutine function whose index to query */ public static int glGetSubroutineIndex(int program, int shadertype, ByteBuffer name) { if (CHECKS) { checkNT1(name); } return nglGetSubroutineIndex(program, shadertype, memAddress(name)); } /** *

Reference Page

* * Retrieves the index of a subroutine function of a given shader stage within a program. * * @param program the name of the program containing shader stage * @param shadertype the shader stage from which to query for subroutine function index. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param name the name of the subroutine function whose index to query */ public static int glGetSubroutineIndex(int program, int shadertype, CharSequence name) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { ByteBuffer nameEncoded = stack.ASCII(name); return nglGetSubroutineIndex(program, shadertype, memAddress(nameEncoded)); } finally { stack.setPointer(stackPointer); } } // --- [ glGetActiveSubroutineUniformiv ] --- /** Unsafe version of: {@link #glGetActiveSubroutineUniformiv GetActiveSubroutineUniformiv} */ public static native void nglGetActiveSubroutineUniformiv(int program, int shadertype, int index, int pname, long values); /** *

Reference Page

* * Queries a property of an active shader subroutine uniform. * * @param program the name of the program containing the subroutine * @param shadertype the shader stage from which to query for the subroutine parameter. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param index the index of the shader subroutine uniform * @param pname the parameter of the shader subroutine uniform to query. One of:
{@link #GL_NUM_COMPATIBLE_SUBROUTINES NUM_COMPATIBLE_SUBROUTINES}{@link #GL_COMPATIBLE_SUBROUTINES COMPATIBLE_SUBROUTINES}{@link GL31#GL_UNIFORM_SIZE UNIFORM_SIZE}{@link GL31#GL_UNIFORM_NAME_LENGTH UNIFORM_NAME_LENGTH}
* @param values the address of a buffer into which the queried value or values will be placed */ public static void glGetActiveSubroutineUniformiv(int program, int shadertype, int index, int pname, IntBuffer values) { if (CHECKS) { check(values, 1); } nglGetActiveSubroutineUniformiv(program, shadertype, index, pname, memAddress(values)); } /** *

Reference Page

* * Queries a property of an active shader subroutine uniform. * * @param program the name of the program containing the subroutine * @param shadertype the shader stage from which to query for the subroutine parameter. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param index the index of the shader subroutine uniform * @param pname the parameter of the shader subroutine uniform to query. One of:
{@link #GL_NUM_COMPATIBLE_SUBROUTINES NUM_COMPATIBLE_SUBROUTINES}{@link #GL_COMPATIBLE_SUBROUTINES COMPATIBLE_SUBROUTINES}{@link GL31#GL_UNIFORM_SIZE UNIFORM_SIZE}{@link GL31#GL_UNIFORM_NAME_LENGTH UNIFORM_NAME_LENGTH}
*/ public static int glGetActiveSubroutineUniformi(int program, int shadertype, int index, int pname) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { IntBuffer values = stack.callocInt(1); nglGetActiveSubroutineUniformiv(program, shadertype, index, pname, memAddress(values)); return values.get(0); } finally { stack.setPointer(stackPointer); } } // --- [ glGetActiveSubroutineUniformName ] --- /** * Unsafe version of: {@link #glGetActiveSubroutineUniformName GetActiveSubroutineUniformName} * * @param bufsize the size of the buffer whose address is given in {@code name} */ public static native void nglGetActiveSubroutineUniformName(int program, int shadertype, int index, int bufsize, long length, long name); /** *

Reference Page

* * Queries the name of an active shader subroutine uniform. * * @param program the name of the program containing the subroutine * @param shadertype the shader stage from which to query for the subroutine parameter. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param index the index of the shader subroutine uniform * @param length the address of a variable into which is written the number of characters copied into {@code name} * @param name the address of a buffer that will receive the name of the specified shader subroutine uniform */ public static void glGetActiveSubroutineUniformName(int program, int shadertype, int index, IntBuffer length, ByteBuffer name) { if (CHECKS) { checkSafe(length, 1); } nglGetActiveSubroutineUniformName(program, shadertype, index, name.remaining(), memAddressSafe(length), memAddress(name)); } /** *

Reference Page

* * Queries the name of an active shader subroutine uniform. * * @param program the name of the program containing the subroutine * @param shadertype the shader stage from which to query for the subroutine parameter. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param index the index of the shader subroutine uniform * @param bufsize the size of the buffer whose address is given in {@code name} */ public static String glGetActiveSubroutineUniformName(int program, int shadertype, int index, int bufsize) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { IntBuffer length = stack.ints(0); ByteBuffer name = stack.malloc(bufsize); nglGetActiveSubroutineUniformName(program, shadertype, index, bufsize, memAddress(length), memAddress(name)); return memASCII(name, length.get(0)); } finally { stack.setPointer(stackPointer); } } /** *

Reference Page

* * Queries the name of an active shader subroutine uniform. * * @param program the name of the program containing the subroutine * @param shadertype the shader stage from which to query for the subroutine parameter. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param index the index of the shader subroutine uniform */ public static String glGetActiveSubroutineUniformName(int program, int shadertype, int index) { return glGetActiveSubroutineUniformName(program, shadertype, index, glGetActiveSubroutineUniformi(program, shadertype, index, GL31.GL_UNIFORM_NAME_LENGTH)); } // --- [ glGetActiveSubroutineName ] --- /** * Unsafe version of: {@link #glGetActiveSubroutineName GetActiveSubroutineName} * * @param bufsize the size of the buffer whose address is given in {@code name} */ public static native void nglGetActiveSubroutineName(int program, int shadertype, int index, int bufsize, long length, long name); /** *

Reference Page

* * Queries the name of an active shader subroutine. * * @param program the name of the program containing the subroutine * @param shadertype the shader stage from which to query the subroutine name. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param index the index of the shader subroutine uniform * @param length a variable which is to receive the length of the shader subroutine uniform name * @param name an array into which the name of the shader subroutine uniform will be written */ public static void glGetActiveSubroutineName(int program, int shadertype, int index, IntBuffer length, ByteBuffer name) { if (CHECKS) { checkSafe(length, 1); } nglGetActiveSubroutineName(program, shadertype, index, name.remaining(), memAddressSafe(length), memAddress(name)); } /** *

Reference Page

* * Queries the name of an active shader subroutine. * * @param program the name of the program containing the subroutine * @param shadertype the shader stage from which to query the subroutine name. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param index the index of the shader subroutine uniform * @param bufsize the size of the buffer whose address is given in {@code name} */ public static String glGetActiveSubroutineName(int program, int shadertype, int index, int bufsize) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { IntBuffer length = stack.ints(0); ByteBuffer name = stack.malloc(bufsize); nglGetActiveSubroutineName(program, shadertype, index, bufsize, memAddress(length), memAddress(name)); return memASCII(name, length.get(0)); } finally { stack.setPointer(stackPointer); } } /** *

Reference Page

* * Queries the name of an active shader subroutine. * * @param program the name of the program containing the subroutine * @param shadertype the shader stage from which to query the subroutine name. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param index the index of the shader subroutine uniform */ public static String glGetActiveSubroutineName(int program, int shadertype, int index) { return glGetActiveSubroutineName(program, shadertype, index, glGetProgramStagei(program, shadertype, GL_ACTIVE_SUBROUTINE_MAX_LENGTH)); } // --- [ glUniformSubroutinesuiv ] --- /** * Unsafe version of: {@link #glUniformSubroutinesuiv UniformSubroutinesuiv} * * @param count the number of uniform indices stored in {@code indices} */ public static native void nglUniformSubroutinesuiv(int shadertype, int count, long indices); /** *

Reference Page

* * Loads active subroutine uniforms. * * @param shadertype the shader stage to update. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param indices an array holding the indices to load into the shader subroutine variables */ public static void glUniformSubroutinesuiv(int shadertype, IntBuffer indices) { nglUniformSubroutinesuiv(shadertype, indices.remaining(), memAddress(indices)); } /** *

Reference Page

* * Loads active subroutine uniforms. * * @param shadertype the shader stage to update. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
*/ public static void glUniformSubroutinesui(int shadertype, int index) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { IntBuffer indices = stack.ints(index); nglUniformSubroutinesuiv(shadertype, 1, memAddress(indices)); } finally { stack.setPointer(stackPointer); } } // --- [ glGetUniformSubroutineuiv ] --- /** Unsafe version of: {@link #glGetUniformSubroutineuiv GetUniformSubroutineuiv} */ public static native void nglGetUniformSubroutineuiv(int shadertype, int location, long params); /** *

Reference Page

* * Retrieves the value of a subroutine uniform of a given shader stage of the current program. * * @param shadertype the shader stage from which to query for subroutine uniform index. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param location the location of the subroutine uniform * @param params a variable to receive the value or values of the subroutine uniform */ public static void glGetUniformSubroutineuiv(int shadertype, int location, IntBuffer params) { if (CHECKS) { check(params, 1); } nglGetUniformSubroutineuiv(shadertype, location, memAddress(params)); } /** *

Reference Page

* * Retrieves the value of a subroutine uniform of a given shader stage of the current program. * * @param shadertype the shader stage from which to query for subroutine uniform index. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param location the location of the subroutine uniform */ public static int glGetUniformSubroutineui(int shadertype, int location) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { IntBuffer params = stack.callocInt(1); nglGetUniformSubroutineuiv(shadertype, location, memAddress(params)); return params.get(0); } finally { stack.setPointer(stackPointer); } } // --- [ glGetProgramStageiv ] --- /** Unsafe version of: {@link #glGetProgramStageiv GetProgramStageiv} */ public static native void nglGetProgramStageiv(int program, int shadertype, int pname, long values); /** *

Reference Page

* * Retrieves properties of a program object corresponding to a specified shader stage. * * @param program the name of the program containing shader stage * @param shadertype the shader stage from which to query for the subroutine parameter. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param pname the parameter of the shader to query. One of:
{@link #GL_ACTIVE_SUBROUTINES ACTIVE_SUBROUTINES}{@link #GL_ACTIVE_SUBROUTINE_UNIFORMS ACTIVE_SUBROUTINE_UNIFORMS}
{@link #GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS}{@link #GL_ACTIVE_SUBROUTINE_MAX_LENGTH ACTIVE_SUBROUTINE_MAX_LENGTH}
{@link #GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH}
* @param values a variable into which the queried value or values will be placed */ public static void glGetProgramStageiv(int program, int shadertype, int pname, IntBuffer values) { if (CHECKS) { check(values, 1); } nglGetProgramStageiv(program, shadertype, pname, memAddress(values)); } /** *

Reference Page

* * Retrieves properties of a program object corresponding to a specified shader stage. * * @param program the name of the program containing shader stage * @param shadertype the shader stage from which to query for the subroutine parameter. One of:
{@link GL20#GL_VERTEX_SHADER VERTEX_SHADER}{@link GL20#GL_FRAGMENT_SHADER FRAGMENT_SHADER}{@link GL32#GL_GEOMETRY_SHADER GEOMETRY_SHADER}{@link #GL_TESS_CONTROL_SHADER TESS_CONTROL_SHADER}
{@link #GL_TESS_EVALUATION_SHADER TESS_EVALUATION_SHADER}
* @param pname the parameter of the shader to query. One of:
{@link #GL_ACTIVE_SUBROUTINES ACTIVE_SUBROUTINES}{@link #GL_ACTIVE_SUBROUTINE_UNIFORMS ACTIVE_SUBROUTINE_UNIFORMS}
{@link #GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS}{@link #GL_ACTIVE_SUBROUTINE_MAX_LENGTH ACTIVE_SUBROUTINE_MAX_LENGTH}
{@link #GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH}
*/ public static int glGetProgramStagei(int program, int shadertype, int pname) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { IntBuffer values = stack.callocInt(1); nglGetProgramStageiv(program, shadertype, pname, memAddress(values)); return values.get(0); } finally { stack.setPointer(stackPointer); } } // --- [ glPatchParameteri ] --- /** *

Reference Page

* * Specifies the integer value of the specified parameter for patch primitives. * * @param pname the name of the parameter to set. Must be:
{@link #GL_PATCH_VERTICES PATCH_VERTICES}
* @param value the new value for the parameter given by {@code pname} */ public static native void glPatchParameteri(int pname, int value); // --- [ glPatchParameterfv ] --- /** Unsafe version of: {@link #glPatchParameterfv PatchParameterfv} */ public static native void nglPatchParameterfv(int pname, long values); /** *

Reference Page

* * Specifies an array of float values for the specified parameter for patch primitives. * * @param pname the name of the parameter to set. One of:
{@link #GL_PATCH_DEFAULT_OUTER_LEVEL PATCH_DEFAULT_OUTER_LEVEL}{@link #GL_PATCH_DEFAULT_INNER_LEVEL PATCH_DEFAULT_INNER_LEVEL}
* @param values an array containing the new values for the parameter given by {@code pname} */ public static void glPatchParameterfv(int pname, FloatBuffer values) { if (CHECKS) { if (DEBUG) { check(values, GL11.glGetInteger(GL_PATCH_VERTICES)); } } nglPatchParameterfv(pname, memAddress(values)); } // --- [ glBindTransformFeedback ] --- /** *

Reference Page

* * Binds a transform feedback object. * * @param target the target to which to bind the transform feedback object {@code id}. Must be:
{@link #GL_TRANSFORM_FEEDBACK TRANSFORM_FEEDBACK}
* @param id the name of a transform feedback object */ public static native void glBindTransformFeedback(int target, int id); // --- [ glDeleteTransformFeedbacks ] --- /** * Unsafe version of: {@link #glDeleteTransformFeedbacks DeleteTransformFeedbacks} * * @param n the number of transform feedback objects to delete */ public static native void nglDeleteTransformFeedbacks(int n, long ids); /** *

Reference Page

* * Deletes transform feedback objects. * * @param ids an array of names of transform feedback objects to delete */ public static void glDeleteTransformFeedbacks(IntBuffer ids) { nglDeleteTransformFeedbacks(ids.remaining(), memAddress(ids)); } /** *

Reference Page

* * Deletes transform feedback objects. */ public static void glDeleteTransformFeedbacks(int id) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { IntBuffer ids = stack.ints(id); nglDeleteTransformFeedbacks(1, memAddress(ids)); } finally { stack.setPointer(stackPointer); } } // --- [ glGenTransformFeedbacks ] --- /** * Unsafe version of: {@link #glGenTransformFeedbacks GenTransformFeedbacks} * * @param n the number of transform feedback object names to reserve */ public static native void nglGenTransformFeedbacks(int n, long ids); /** *

Reference Page

* * Reserves transform feedback object names. * * @param ids an array of into which the reserved names will be written */ public static void glGenTransformFeedbacks(IntBuffer ids) { nglGenTransformFeedbacks(ids.remaining(), memAddress(ids)); } /** *

Reference Page

* * Reserves transform feedback object names. */ public static int glGenTransformFeedbacks() { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { IntBuffer ids = stack.callocInt(1); nglGenTransformFeedbacks(1, memAddress(ids)); return ids.get(0); } finally { stack.setPointer(stackPointer); } } // --- [ glIsTransformFeedback ] --- /** *

Reference Page

* * Determines if a name corresponds to a transform feedback object. * * @param id a value that may be the name of a transform feedback object */ public static native boolean glIsTransformFeedback(int id); // --- [ glPauseTransformFeedback ] --- /** *

Reference Page

* * Pauses transform feedback operations for the currently bound transform feedback object. * *

When transform feedback operations are paused, transform feedback is still considered active and changing most transform feedback state related to the * object results in an error. However, a new transform feedback object may be bound while transform feedback is paused. The error {@link GL11#GL_INVALID_OPERATION INVALID_OPERATION} * is generated by PauseTransformFeedback if the currently bound transform feedback is not active or is paused.

* *

When transform feedback is active and not paused, all geometric primitives generated must be compatible with the value of {@code primitiveMode} passed * to {@link GL30#glBeginTransformFeedback BeginTransformFeedback}. The error {@link GL11#GL_INVALID_OPERATION INVALID_OPERATION} is generated by {@link GL11#glBegin Begin} or any operation that implicitly calls {@link GL11#glBegin Begin} * (such as {@link GL11#glDrawElements DrawElements}) if {@code mode} is not one of the allowed modes. If a geometry shader is active, its output primitive type is used instead * of the {@code mode} parameter passed to {@link GL11#glBegin Begin} for the purposes of this error check. Any primitive type may be used while transform feedback is * paused.

*/ public static native void glPauseTransformFeedback(); // --- [ glResumeTransformFeedback ] --- /** *

Reference Page

* * Resumes transform feedback operations for the currently bound transform feedback object. * *

The error {@link GL11#GL_INVALID_OPERATION INVALID_OPERATION} is generated by {@link #glResumeTransformFeedback ResumeTransformFeedback} if the currently bound transform feedback is not active or is not paused.

*/ public static native void glResumeTransformFeedback(); // --- [ glDrawTransformFeedback ] --- /** *

Reference Page

* * Render primitives using a count derived from a transform feedback object. * * @param mode what kind of primitives to render. One of:
{@link GL11#GL_POINTS POINTS}{@link GL11#GL_LINE_STRIP LINE_STRIP}{@link GL11#GL_LINE_LOOP LINE_LOOP}{@link GL11#GL_LINES LINES}{@link GL11#GL_POLYGON POLYGON}{@link GL11#GL_TRIANGLE_STRIP TRIANGLE_STRIP}{@link GL11#GL_TRIANGLE_FAN TRIANGLE_FAN}
{@link GL11#GL_TRIANGLES TRIANGLES}{@link GL11#GL_QUAD_STRIP QUAD_STRIP}{@link GL11#GL_QUADS QUADS}{@link GL32#GL_LINES_ADJACENCY LINES_ADJACENCY}{@link GL32#GL_LINE_STRIP_ADJACENCY LINE_STRIP_ADJACENCY}{@link GL32#GL_TRIANGLES_ADJACENCY TRIANGLES_ADJACENCY}{@link GL32#GL_TRIANGLE_STRIP_ADJACENCY TRIANGLE_STRIP_ADJACENCY}
{@link #GL_PATCHES PATCHES}
* @param id the name of a transform feedback object from which to retrieve a primitive count */ public static native void glDrawTransformFeedback(int mode, int id); // --- [ glDrawTransformFeedbackStream ] --- /** *

Reference Page

* * Renders primitives using a count derived from a specifed stream of a transform feedback object. * * @param mode what kind of primitives to render. One of:
{@link GL11#GL_POINTS POINTS}{@link GL11#GL_LINE_STRIP LINE_STRIP}{@link GL11#GL_LINE_LOOP LINE_LOOP}{@link GL11#GL_LINES LINES}{@link GL11#GL_POLYGON POLYGON}{@link GL11#GL_TRIANGLE_STRIP TRIANGLE_STRIP}{@link GL11#GL_TRIANGLE_FAN TRIANGLE_FAN}
{@link GL11#GL_TRIANGLES TRIANGLES}{@link GL11#GL_QUAD_STRIP QUAD_STRIP}{@link GL11#GL_QUADS QUADS}{@link GL32#GL_LINES_ADJACENCY LINES_ADJACENCY}{@link GL32#GL_LINE_STRIP_ADJACENCY LINE_STRIP_ADJACENCY}{@link GL32#GL_TRIANGLES_ADJACENCY TRIANGLES_ADJACENCY}{@link GL32#GL_TRIANGLE_STRIP_ADJACENCY TRIANGLE_STRIP_ADJACENCY}
{@link #GL_PATCHES PATCHES}
* @param id the name of a transform feedback object from which to retrieve a primitive count * @param stream the index of the transform feedback stream from which to retrieve a primitive count */ public static native void glDrawTransformFeedbackStream(int mode, int id, int stream); // --- [ glBeginQueryIndexed ] --- /** *

Reference Page

* * Begins a query object on an indexed target * * @param target the target type of query object established between {@code glBeginQueryIndexed} and the subsequent {@link #glEndQueryIndexed EndQueryIndexed}. One of:
{@link GL15#GL_SAMPLES_PASSED SAMPLES_PASSED}{@link GL30#GL_PRIMITIVES_GENERATED PRIMITIVES_GENERATED}{@link GL30#GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN}{@link GL33#GL_TIME_ELAPSED TIME_ELAPSED}
{@link GL33#GL_TIMESTAMP TIMESTAMP}{@link GL33#GL_ANY_SAMPLES_PASSED ANY_SAMPLES_PASSED}{@link GL43#GL_ANY_SAMPLES_PASSED_CONSERVATIVE ANY_SAMPLES_PASSED_CONSERVATIVE}
* @param index the index of the query target upon which to begin the query * @param id the name of a query object */ public static native void glBeginQueryIndexed(int target, int index, int id); // --- [ glEndQueryIndexed ] --- /** *

Reference Page

* * Ends a query object on an indexed target * * @param target the target type of query object to be concluded. One of:
{@link GL15#GL_SAMPLES_PASSED SAMPLES_PASSED}{@link GL30#GL_PRIMITIVES_GENERATED PRIMITIVES_GENERATED}{@link GL30#GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN}{@link GL33#GL_TIME_ELAPSED TIME_ELAPSED}
{@link GL33#GL_TIMESTAMP TIMESTAMP}{@link GL33#GL_ANY_SAMPLES_PASSED ANY_SAMPLES_PASSED}{@link GL43#GL_ANY_SAMPLES_PASSED_CONSERVATIVE ANY_SAMPLES_PASSED_CONSERVATIVE}
* @param index the index of the query target upon which to end the query */ public static native void glEndQueryIndexed(int target, int index); // --- [ glGetQueryIndexediv ] --- /** Unsafe version of: {@link #glGetQueryIndexediv GetQueryIndexediv} */ public static native void nglGetQueryIndexediv(int target, int index, int pname, long params); /** *

Reference Page

* * Returns parameters of an indexed query object target. * * @param target a query object target. One of:
{@link GL15#GL_SAMPLES_PASSED SAMPLES_PASSED}{@link GL30#GL_PRIMITIVES_GENERATED PRIMITIVES_GENERATED}{@link GL30#GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN}{@link GL33#GL_TIME_ELAPSED TIME_ELAPSED}
{@link GL33#GL_TIMESTAMP TIMESTAMP}{@link GL33#GL_ANY_SAMPLES_PASSED ANY_SAMPLES_PASSED}{@link GL43#GL_ANY_SAMPLES_PASSED_CONSERVATIVE ANY_SAMPLES_PASSED_CONSERVATIVE}
* @param index the index of the query object target * @param pname the symbolic name of a query object target parameter * @param params the requested data */ public static void glGetQueryIndexediv(int target, int index, int pname, IntBuffer params) { if (CHECKS) { check(params, 1); } nglGetQueryIndexediv(target, index, pname, memAddress(params)); } /** *

Reference Page

* * Returns parameters of an indexed query object target. * * @param target a query object target. One of:
{@link GL15#GL_SAMPLES_PASSED SAMPLES_PASSED}{@link GL30#GL_PRIMITIVES_GENERATED PRIMITIVES_GENERATED}{@link GL30#GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN}{@link GL33#GL_TIME_ELAPSED TIME_ELAPSED}
{@link GL33#GL_TIMESTAMP TIMESTAMP}{@link GL33#GL_ANY_SAMPLES_PASSED ANY_SAMPLES_PASSED}{@link GL43#GL_ANY_SAMPLES_PASSED_CONSERVATIVE ANY_SAMPLES_PASSED_CONSERVATIVE}
* @param index the index of the query object target * @param pname the symbolic name of a query object target parameter */ public static int glGetQueryIndexedi(int target, int index, int pname) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { IntBuffer params = stack.callocInt(1); nglGetQueryIndexediv(target, index, pname, memAddress(params)); return params.get(0); } finally { stack.setPointer(stackPointer); } } /** *

Reference Page

* * Array version of: {@link #glDrawArraysIndirect DrawArraysIndirect} */ public static void glDrawArraysIndirect(int mode, int[] indirect) { long __functionAddress = GL.getICD().glDrawArraysIndirect; if (CHECKS) { check(__functionAddress); check(indirect, (4 * 4) >> 2); } callPV(__functionAddress, mode, indirect); } /** *

Reference Page

* * Array version of: {@link #glDrawElementsIndirect DrawElementsIndirect} */ public static void glDrawElementsIndirect(int mode, int type, int[] indirect) { long __functionAddress = GL.getICD().glDrawElementsIndirect; if (CHECKS) { check(__functionAddress); check(indirect, (5 * 4) >> 2); } callPV(__functionAddress, mode, type, indirect); } /** *

Reference Page

* * Array version of: {@link #glUniform1dv Uniform1dv} */ public static void glUniform1dv(int location, double[] value) { long __functionAddress = GL.getICD().glUniform1dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length, value); } /** *

Reference Page

* * Array version of: {@link #glUniform2dv Uniform2dv} */ public static void glUniform2dv(int location, double[] value) { long __functionAddress = GL.getICD().glUniform2dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length >> 1, value); } /** *

Reference Page

* * Array version of: {@link #glUniform3dv Uniform3dv} */ public static void glUniform3dv(int location, double[] value) { long __functionAddress = GL.getICD().glUniform3dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length / 3, value); } /** *

Reference Page

* * Array version of: {@link #glUniform4dv Uniform4dv} */ public static void glUniform4dv(int location, double[] value) { long __functionAddress = GL.getICD().glUniform4dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length >> 2, value); } /** *

Reference Page

* * Array version of: {@link #glUniformMatrix2dv UniformMatrix2dv} */ public static void glUniformMatrix2dv(int location, boolean transpose, double[] value) { long __functionAddress = GL.getICD().glUniformMatrix2dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length >> 2, transpose, value); } /** *

Reference Page

* * Array version of: {@link #glUniformMatrix3dv UniformMatrix3dv} */ public static void glUniformMatrix3dv(int location, boolean transpose, double[] value) { long __functionAddress = GL.getICD().glUniformMatrix3dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length / 9, transpose, value); } /** *

Reference Page

* * Array version of: {@link #glUniformMatrix4dv UniformMatrix4dv} */ public static void glUniformMatrix4dv(int location, boolean transpose, double[] value) { long __functionAddress = GL.getICD().glUniformMatrix4dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length >> 4, transpose, value); } /** *

Reference Page

* * Array version of: {@link #glUniformMatrix2x3dv UniformMatrix2x3dv} */ public static void glUniformMatrix2x3dv(int location, boolean transpose, double[] value) { long __functionAddress = GL.getICD().glUniformMatrix2x3dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length / 6, transpose, value); } /** *

Reference Page

* * Array version of: {@link #glUniformMatrix2x4dv UniformMatrix2x4dv} */ public static void glUniformMatrix2x4dv(int location, boolean transpose, double[] value) { long __functionAddress = GL.getICD().glUniformMatrix2x4dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length >> 3, transpose, value); } /** *

Reference Page

* * Array version of: {@link #glUniformMatrix3x2dv UniformMatrix3x2dv} */ public static void glUniformMatrix3x2dv(int location, boolean transpose, double[] value) { long __functionAddress = GL.getICD().glUniformMatrix3x2dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length / 6, transpose, value); } /** *

Reference Page

* * Array version of: {@link #glUniformMatrix3x4dv UniformMatrix3x4dv} */ public static void glUniformMatrix3x4dv(int location, boolean transpose, double[] value) { long __functionAddress = GL.getICD().glUniformMatrix3x4dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length / 12, transpose, value); } /** *

Reference Page

* * Array version of: {@link #glUniformMatrix4x2dv UniformMatrix4x2dv} */ public static void glUniformMatrix4x2dv(int location, boolean transpose, double[] value) { long __functionAddress = GL.getICD().glUniformMatrix4x2dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length >> 3, transpose, value); } /** *

Reference Page

* * Array version of: {@link #glUniformMatrix4x3dv UniformMatrix4x3dv} */ public static void glUniformMatrix4x3dv(int location, boolean transpose, double[] value) { long __functionAddress = GL.getICD().glUniformMatrix4x3dv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, location, value.length / 12, transpose, value); } /** *

Reference Page

* * Array version of: {@link #glGetUniformdv GetUniformdv} */ public static void glGetUniformdv(int program, int location, double[] params) { long __functionAddress = GL.getICD().glGetUniformdv; if (CHECKS) { check(__functionAddress); check(params, 1); } callPV(__functionAddress, program, location, params); } /** *

Reference Page

* * Array version of: {@link #glGetActiveSubroutineUniformiv GetActiveSubroutineUniformiv} */ public static void glGetActiveSubroutineUniformiv(int program, int shadertype, int index, int pname, int[] values) { long __functionAddress = GL.getICD().glGetActiveSubroutineUniformiv; if (CHECKS) { check(__functionAddress); check(values, 1); } callPV(__functionAddress, program, shadertype, index, pname, values); } /** *

Reference Page

* * Array version of: {@link #glGetActiveSubroutineUniformName GetActiveSubroutineUniformName} */ public static void glGetActiveSubroutineUniformName(int program, int shadertype, int index, int[] length, ByteBuffer name) { long __functionAddress = GL.getICD().glGetActiveSubroutineUniformName; if (CHECKS) { check(__functionAddress); checkSafe(length, 1); } callPPV(__functionAddress, program, shadertype, index, name.remaining(), length, memAddress(name)); } /** *

Reference Page

* * Array version of: {@link #glGetActiveSubroutineName GetActiveSubroutineName} */ public static void glGetActiveSubroutineName(int program, int shadertype, int index, int[] length, ByteBuffer name) { long __functionAddress = GL.getICD().glGetActiveSubroutineName; if (CHECKS) { check(__functionAddress); checkSafe(length, 1); } callPPV(__functionAddress, program, shadertype, index, name.remaining(), length, memAddress(name)); } /** *

Reference Page

* * Array version of: {@link #glUniformSubroutinesuiv UniformSubroutinesuiv} */ public static void glUniformSubroutinesuiv(int shadertype, int[] indices) { long __functionAddress = GL.getICD().glUniformSubroutinesuiv; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, shadertype, indices.length, indices); } /** *

Reference Page

* * Array version of: {@link #glGetUniformSubroutineuiv GetUniformSubroutineuiv} */ public static void glGetUniformSubroutineuiv(int shadertype, int location, int[] params) { long __functionAddress = GL.getICD().glGetUniformSubroutineuiv; if (CHECKS) { check(__functionAddress); check(params, 1); } callPV(__functionAddress, shadertype, location, params); } /** *

Reference Page

* * Array version of: {@link #glGetProgramStageiv GetProgramStageiv} */ public static void glGetProgramStageiv(int program, int shadertype, int pname, int[] values) { long __functionAddress = GL.getICD().glGetProgramStageiv; if (CHECKS) { check(__functionAddress); check(values, 1); } callPV(__functionAddress, program, shadertype, pname, values); } /** *

Reference Page

* * Array version of: {@link #glPatchParameterfv PatchParameterfv} */ public static void glPatchParameterfv(int pname, float[] values) { long __functionAddress = GL.getICD().glPatchParameterfv; if (CHECKS) { check(__functionAddress); if (DEBUG) { check(values, GL11.glGetInteger(GL_PATCH_VERTICES)); } } callPV(__functionAddress, pname, values); } /** *

Reference Page

* * Array version of: {@link #glDeleteTransformFeedbacks DeleteTransformFeedbacks} */ public static void glDeleteTransformFeedbacks(int[] ids) { long __functionAddress = GL.getICD().glDeleteTransformFeedbacks; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, ids.length, ids); } /** *

Reference Page

* * Array version of: {@link #glGenTransformFeedbacks GenTransformFeedbacks} */ public static void glGenTransformFeedbacks(int[] ids) { long __functionAddress = GL.getICD().glGenTransformFeedbacks; if (CHECKS) { check(__functionAddress); } callPV(__functionAddress, ids.length, ids); } /** *

Reference Page

* * Array version of: {@link #glGetQueryIndexediv GetQueryIndexediv} */ public static void glGetQueryIndexediv(int target, int index, int pname, int[] params) { long __functionAddress = GL.getICD().glGetQueryIndexediv; if (CHECKS) { check(__functionAddress); check(params, 1); } callPV(__functionAddress, target, index, pname, params); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy