Class GL40

Direct Known Subclasses:
GL41

public class GL40 extends GL33
The OpenGL functionality up to version 4.0. Includes the deprecated symbols of the Compatibility Profile.

OpenGL 4.0 implementations support revision 4.00 of the OpenGL Shading Language.

Extensions promoted to core in this release:

  • Field Details

    • GL_DRAW_INDIRECT_BUFFER

      public static final int GL_DRAW_INDIRECT_BUFFER
      Accepted by the target parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferPointerv, MapBufferRange, FlushMappedBufferRange, GetBufferParameteriv, and CopyBufferSubData.
      See Also:
    • GL_DRAW_INDIRECT_BUFFER_BINDING

      public static final int GL_DRAW_INDIRECT_BUFFER_BINDING
      Accepted by the value parameter of GetIntegerv, GetBooleanv, GetFloatv, and GetDoublev.
      See Also:
    • GL_GEOMETRY_SHADER_INVOCATIONS

      public static final int GL_GEOMETRY_SHADER_INVOCATIONS
      Accepted by the pname parameter of GetProgramiv.
      See Also:
    • GL_MAX_GEOMETRY_SHADER_INVOCATIONS

      public static final int GL_MAX_GEOMETRY_SHADER_INVOCATIONS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, GetDoublev, and GetInteger64v.
      See Also:
    • GL_MIN_FRAGMENT_INTERPOLATION_OFFSET

      public static final int GL_MIN_FRAGMENT_INTERPOLATION_OFFSET
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, GetDoublev, and GetInteger64v.
      See Also:
    • GL_MAX_FRAGMENT_INTERPOLATION_OFFSET

      public static final int GL_MAX_FRAGMENT_INTERPOLATION_OFFSET
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, GetDoublev, and GetInteger64v.
      See Also:
    • GL_FRAGMENT_INTERPOLATION_OFFSET_BITS

      public static final int GL_FRAGMENT_INTERPOLATION_OFFSET_BITS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, GetDoublev, and GetInteger64v.
      See Also:
    • GL_DOUBLE_VEC2

      public static final int GL_DOUBLE_VEC2
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_DOUBLE_VEC3

      public static final int GL_DOUBLE_VEC3
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_DOUBLE_VEC4

      public static final int GL_DOUBLE_VEC4
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_DOUBLE_MAT2

      public static final int GL_DOUBLE_MAT2
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_DOUBLE_MAT3

      public static final int GL_DOUBLE_MAT3
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_DOUBLE_MAT4

      public static final int GL_DOUBLE_MAT4
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_DOUBLE_MAT2x3

      public static final int GL_DOUBLE_MAT2x3
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_DOUBLE_MAT2x4

      public static final int GL_DOUBLE_MAT2x4
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_DOUBLE_MAT3x2

      public static final int GL_DOUBLE_MAT3x2
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_DOUBLE_MAT3x4

      public static final int GL_DOUBLE_MAT3x4
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_DOUBLE_MAT4x2

      public static final int GL_DOUBLE_MAT4x2
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_DOUBLE_MAT4x3

      public static final int GL_DOUBLE_MAT4x3
      Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.
      See Also:
    • GL_SAMPLE_SHADING

      public static final int GL_SAMPLE_SHADING
      Accepted by the cap parameter of Enable, Disable, and IsEnabled, and by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.
      See Also:
    • GL_MIN_SAMPLE_SHADING_VALUE

      public static final int GL_MIN_SAMPLE_SHADING_VALUE
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.
      See Also:
    • GL_ACTIVE_SUBROUTINES

      public static final int GL_ACTIVE_SUBROUTINES
      Accepted by the pname parameter of GetProgramStageiv.
      See Also:
    • GL_ACTIVE_SUBROUTINE_UNIFORMS

      public static final int GL_ACTIVE_SUBROUTINE_UNIFORMS
      Accepted by the pname parameter of GetProgramStageiv.
      See Also:
    • GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS

      public static final int GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS
      Accepted by the pname parameter of GetProgramStageiv.
      See Also:
    • GL_ACTIVE_SUBROUTINE_MAX_LENGTH

      public static final int GL_ACTIVE_SUBROUTINE_MAX_LENGTH
      Accepted by the pname parameter of GetProgramStageiv.
      See Also:
    • GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH

      public static final int GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH
      Accepted by the pname parameter of GetProgramStageiv.
      See Also:
    • GL_MAX_SUBROUTINES

      public static final int GL_MAX_SUBROUTINES
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, GetDoublev, and GetInteger64v.
      See Also:
    • GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS

      public static final int GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, GetDoublev, and GetInteger64v.
      See Also:
    • GL_NUM_COMPATIBLE_SUBROUTINES

      public static final int GL_NUM_COMPATIBLE_SUBROUTINES
      Accepted by the pname parameter of GetActiveSubroutineUniformiv.
      See Also:
    • GL_COMPATIBLE_SUBROUTINES

      public static final int GL_COMPATIBLE_SUBROUTINES
      Accepted by the pname parameter of GetActiveSubroutineUniformiv.
      See Also:
    • GL_PATCHES

      public static final int GL_PATCHES
      Accepted by the mode parameter of Begin and all vertex array functions that implicitly call Begin.
      See Also:
    • GL_PATCH_VERTICES

      public static final int GL_PATCH_VERTICES
      Accepted by the pname parameter of PatchParameteri, GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_PATCH_DEFAULT_INNER_LEVEL

      public static final int GL_PATCH_DEFAULT_INNER_LEVEL
      Accepted by the pname parameter of PatchParameterfv, GetBooleanv, GetDoublev, GetFloatv, and GetIntegerv, and GetInteger64v.
      See Also:
    • GL_PATCH_DEFAULT_OUTER_LEVEL

      public static final int GL_PATCH_DEFAULT_OUTER_LEVEL
      Accepted by the pname parameter of PatchParameterfv, GetBooleanv, GetDoublev, GetFloatv, and GetIntegerv, and GetInteger64v.
      See Also:
    • GL_TESS_CONTROL_OUTPUT_VERTICES

      public static final int GL_TESS_CONTROL_OUTPUT_VERTICES
      Accepted by the pname parameter of GetProgramiv.
      See Also:
    • GL_TESS_GEN_MODE

      public static final int GL_TESS_GEN_MODE
      Accepted by the pname parameter of GetProgramiv.
      See Also:
    • GL_TESS_GEN_SPACING

      public static final int GL_TESS_GEN_SPACING
      Accepted by the pname parameter of GetProgramiv.
      See Also:
    • GL_TESS_GEN_VERTEX_ORDER

      public static final int GL_TESS_GEN_VERTEX_ORDER
      Accepted by the pname parameter of GetProgramiv.
      See Also:
    • GL_TESS_GEN_POINT_MODE

      public static final int GL_TESS_GEN_POINT_MODE
      Accepted by the pname parameter of GetProgramiv.
      See Also:
    • GL_ISOLINES

      public static final int GL_ISOLINES
      Returned by GetProgramiv when pname is TESS_GEN_MODE.
      See Also:
    • GL_FRACTIONAL_ODD

      public static final int GL_FRACTIONAL_ODD
      Returned by GetProgramiv when pname is TESS_GEN_SPACING.
      See Also:
    • GL_FRACTIONAL_EVEN

      public static final int GL_FRACTIONAL_EVEN
      Returned by GetProgramiv when pname is TESS_GEN_SPACING.
      See Also:
    • GL_MAX_PATCH_VERTICES

      public static final int GL_MAX_PATCH_VERTICES
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_GEN_LEVEL

      public static final int GL_MAX_TESS_GEN_LEVEL
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS

      public static final int GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS

      public static final int GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS

      public static final int GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS

      public static final int GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS

      public static final int GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_PATCH_COMPONENTS

      public static final int GL_MAX_TESS_PATCH_COMPONENTS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS

      public static final int GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS

      public static final int GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS

      public static final int GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS

      public static final int GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_CONTROL_INPUT_COMPONENTS

      public static final int GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS

      public static final int GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS

      public static final int GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS

      public static final int GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v.
      See Also:
    • GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER

      public static final int GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER
      Accepted by the pname parameter of GetActiveUniformBlockiv.
      See Also:
    • GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER

      public static final int GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER
      Accepted by the pname parameter of GetActiveUniformBlockiv.
      See Also:
    • GL_TESS_EVALUATION_SHADER

      public static final int GL_TESS_EVALUATION_SHADER
      Accepted by the type parameter of CreateShader and returned by the params parameter of GetShaderiv.
      See Also:
    • GL_TESS_CONTROL_SHADER

      public static final int GL_TESS_CONTROL_SHADER
      Accepted by the type parameter of CreateShader and returned by the params parameter of GetShaderiv.
      See Also:
    • GL_TEXTURE_CUBE_MAP_ARRAY

      public static final int GL_TEXTURE_CUBE_MAP_ARRAY
      Accepted by the target parameter of TexParameteri, TexParameteriv, TexParameterf, TexParameterfv, BindTexture, and GenerateMipmap.
      See Also:
    • GL_TEXTURE_BINDING_CUBE_MAP_ARRAY

      public static final int GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv and GetFloatv.
      See Also:
    • GL_PROXY_TEXTURE_CUBE_MAP_ARRAY

      public static final int GL_PROXY_TEXTURE_CUBE_MAP_ARRAY
      Accepted by the target parameter of TexImage3D, TexSubImage3D, CompressedTeximage3D, CompressedTexSubImage3D and CopyTexSubImage3D.
      See Also:
    • GL_SAMPLER_CUBE_MAP_ARRAY

      public static final int GL_SAMPLER_CUBE_MAP_ARRAY
      Returned by the type parameter of GetActiveUniform.
      See Also:
    • GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW

      public static final int GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW
      Returned by the type parameter of GetActiveUniform.
      See Also:
    • GL_INT_SAMPLER_CUBE_MAP_ARRAY

      public static final int GL_INT_SAMPLER_CUBE_MAP_ARRAY
      Returned by the type parameter of GetActiveUniform.
      See Also:
    • GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY

      public static final int GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY
      Returned by the type parameter of GetActiveUniform.
      See Also:
    • GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET

      public static final int GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET

      public static final int GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.
      See Also:
    • GL_TRANSFORM_FEEDBACK

      public static final int GL_TRANSFORM_FEEDBACK
      Accepted by the target parameter of BindTransformFeedback.
      See Also:
    • GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED

      public static final int GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.
      See Also:
    • GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE

      public static final int GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.
      See Also:
    • GL_TRANSFORM_FEEDBACK_BINDING

      public static final int GL_TRANSFORM_FEEDBACK_BINDING
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.
      See Also:
    • GL_MAX_TRANSFORM_FEEDBACK_BUFFERS

      public static final int GL_MAX_TRANSFORM_FEEDBACK_BUFFERS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.
      See Also:
    • GL_MAX_VERTEX_STREAMS

      public static final int GL_MAX_VERTEX_STREAMS
      Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.
      See Also:
  • Method Details

    • glBlendEquationi

      public static void glBlendEquationi(int buf, int mode)
      Specifies the equation used for both the RGB blend equation and the Alpha blend equation for the specified draw buffer.
      Parameters:
      buf - the index of the draw buffer for which to set the blend equation
      mode - how source and destination colors are combined. One of:
      FUNC_ADDFUNC_SUBTRACTFUNC_REVERSE_SUBTRACTMINMAX
      See Also:
    • glBlendEquationSeparatei

      public static void glBlendEquationSeparatei(int buf, int modeRGB, int modeAlpha)
      Sets the RGB blend equation and the alpha blend equation separately for the specified draw buffer.
      Parameters:
      buf - the index of the draw buffer for which to set the blend equations
      modeRGB - the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined. One of:
      FUNC_ADDFUNC_SUBTRACTFUNC_REVERSE_SUBTRACTMINMAX
      modeAlpha - the alpha blend equation, how the alpha component of the source and destination colors are combined. One of:
      FUNC_ADDFUNC_SUBTRACTFUNC_REVERSE_SUBTRACTMINMAX
      See Also:
    • glBlendFunci

      public static void glBlendFunci(int buf, int sfactor, int dfactor)
      Specifies pixel arithmetic for the specified draw buffer.
      Parameters:
      buf - the index of the draw buffer for which to set the blend function
      sfactor - how the red, green, blue, and alpha source blending factors are computed
      dfactor - how the red, green, blue, and alpha destination blending factors are computed
      See Also:
    • glBlendFuncSeparatei

      public static void glBlendFuncSeparatei(int buf, int srcRGB, int dstRGB, int srcAlpha, int dstAlpha)
      Specifies pixel arithmetic for RGB and alpha components separately for the specified draw buffer.
      Parameters:
      buf - the index of the draw buffer for which to set the blend functions
      srcRGB - how the red, green, and blue blending factors are computed
      dstRGB - how the red, green, and blue destination blending factors are computed
      srcAlpha - how the alpha source blending factor is computed
      dstAlpha - how the alpha destination blending factor is computed
      See Also:
    • nglDrawArraysIndirect

      public static void nglDrawArraysIndirect(int mode, long indirect)
      Unsafe version of: DrawArraysIndirect
    • glDrawArraysIndirect

      public static void glDrawArraysIndirect(int mode, ByteBuffer indirect)
      Renders primitives from array data, taking parameters from memory.

      glDrawArraysIndirect behaves similarly to DrawArraysInstancedBaseInstance, except that the parameters to glDrawArraysInstancedBaseInstance are stored in memory at the address given by indirect.

      The parameters addressed by 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);
      Parameters:
      mode - what kind of primitives to render. One of:
      POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLES
      LINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADS
      QUAD_STRIP
      indirect - a structure containing the draw parameters
      See Also:
    • glDrawArraysIndirect

      public static void glDrawArraysIndirect(int mode, long indirect)
      Renders primitives from array data, taking parameters from memory.

      glDrawArraysIndirect behaves similarly to DrawArraysInstancedBaseInstance, except that the parameters to glDrawArraysInstancedBaseInstance are stored in memory at the address given by indirect.

      The parameters addressed by 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);
      Parameters:
      mode - what kind of primitives to render. One of:
      POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLES
      LINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADS
      QUAD_STRIP
      indirect - a structure containing the draw parameters
      See Also:
    • glDrawArraysIndirect

      public static void glDrawArraysIndirect(int mode, IntBuffer indirect)
      Renders primitives from array data, taking parameters from memory.

      glDrawArraysIndirect behaves similarly to DrawArraysInstancedBaseInstance, except that the parameters to glDrawArraysInstancedBaseInstance are stored in memory at the address given by indirect.

      The parameters addressed by 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);
      Parameters:
      mode - what kind of primitives to render. One of:
      POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLES
      LINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADS
      QUAD_STRIP
      indirect - a structure containing the draw parameters
      See Also:
    • nglDrawElementsIndirect

      public static void nglDrawElementsIndirect(int mode, int type, long indirect)
      Unsafe version of: DrawElementsIndirect
    • glDrawElementsIndirect

      public static void glDrawElementsIndirect(int mode, int type, ByteBuffer indirect)
      Renders indexed primitives from array data, taking parameters from memory.

      glDrawElementsIndirect behaves similarly to DrawElementsInstancedBaseVertexBaseInstance, execpt that the parameters to glDrawElementsInstancedBaseVertexBaseInstance are stored in memory at the address given by indirect.

      The parameters addressed by 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;

      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
           );
       }
      Parameters:
      mode - what kind of primitives to render. One of:
      POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLES
      LINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADS
      QUAD_STRIP
      type - the type of data in the buffer bound to the ELEMENT_ARRAY_BUFFER binding. One of:
      UNSIGNED_BYTEUNSIGNED_SHORTUNSIGNED_INT
      indirect - the address of a structure containing the draw parameters
      See Also:
    • glDrawElementsIndirect

      public static void glDrawElementsIndirect(int mode, int type, long indirect)
      Renders indexed primitives from array data, taking parameters from memory.

      glDrawElementsIndirect behaves similarly to DrawElementsInstancedBaseVertexBaseInstance, execpt that the parameters to glDrawElementsInstancedBaseVertexBaseInstance are stored in memory at the address given by indirect.

      The parameters addressed by 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;

      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
           );
       }
      Parameters:
      mode - what kind of primitives to render. One of:
      POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLES
      LINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADS
      QUAD_STRIP
      type - the type of data in the buffer bound to the ELEMENT_ARRAY_BUFFER binding. One of:
      UNSIGNED_BYTEUNSIGNED_SHORTUNSIGNED_INT
      indirect - the address of a structure containing the draw parameters
      See Also:
    • glDrawElementsIndirect

      public static void glDrawElementsIndirect(int mode, int type, IntBuffer indirect)
      Renders indexed primitives from array data, taking parameters from memory.

      glDrawElementsIndirect behaves similarly to DrawElementsInstancedBaseVertexBaseInstance, execpt that the parameters to glDrawElementsInstancedBaseVertexBaseInstance are stored in memory at the address given by indirect.

      The parameters addressed by 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;

      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
           );
       }
      Parameters:
      mode - what kind of primitives to render. One of:
      POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLES
      LINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADS
      QUAD_STRIP
      type - the type of data in the buffer bound to the ELEMENT_ARRAY_BUFFER binding. One of:
      UNSIGNED_BYTEUNSIGNED_SHORTUNSIGNED_INT
      indirect - the address of a structure containing the draw parameters
      See Also:
    • glUniform1d

      public static void glUniform1d(int location, double x)
      Specifies the value of a double uniform variable for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      x - the uniform x value
      See Also:
    • glUniform2d

      public static void glUniform2d(int location, double x, double y)
      Specifies the value of a dvec2 uniform variable for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      x - the uniform x value
      y - the uniform y value
      See Also:
    • glUniform3d

      public static void glUniform3d(int location, double x, double y, double z)
      Specifies the value of a dvec3 uniform variable for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      x - the uniform x value
      y - the uniform y value
      z - the uniform z value
      See Also:
    • glUniform4d

      public static void glUniform4d(int location, double x, double y, double z, double w)
      Specifies the value of a dvec4 uniform variable for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      x - the uniform x value
      y - the uniform y value
      z - the uniform z value
      w - the uniform w value
      See Also:
    • nglUniform1dv

      public static void nglUniform1dv(int location, int count, long value)
      Unsafe version of: Uniform1dv
      Parameters:
      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.
    • glUniform1dv

      public static void glUniform1dv(int location, DoubleBuffer value)
      Specifies the value of a single double uniform variable or a double uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      value - a pointer to an array of count values that will be used to update the specified uniform variable
      See Also:
    • nglUniform2dv

      public static void nglUniform2dv(int location, int count, long value)
      Unsafe version of: Uniform2dv
      Parameters:
      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.
    • glUniform2dv

      public static void glUniform2dv(int location, DoubleBuffer value)
      Specifies the value of a single dvec2 uniform variable or a dvec2 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      value - a pointer to an array of count values that will be used to update the specified uniform variable
      See Also:
    • nglUniform3dv

      public static void nglUniform3dv(int location, int count, long value)
      Unsafe version of: Uniform3dv
      Parameters:
      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.
    • glUniform3dv

      public static void glUniform3dv(int location, DoubleBuffer value)
      Specifies the value of a single dvec3 uniform variable or a dvec3 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      value - a pointer to an array of count values that will be used to update the specified uniform variable
      See Also:
    • nglUniform4dv

      public static void nglUniform4dv(int location, int count, long value)
      Unsafe version of: Uniform4dv
      Parameters:
      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.
    • glUniform4dv

      public static void glUniform4dv(int location, DoubleBuffer value)
      Specifies the value of a single dvec4 uniform variable or a dvec4 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      value - a pointer to an array of count values that will be used to update the specified uniform variable
      See Also:
    • nglUniformMatrix2dv

      public static void nglUniformMatrix2dv(int location, int count, boolean transpose, long value)
      Unsafe version of: UniformMatrix2dv
      Parameters:
      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.
    • glUniformMatrix2dv

      public static void glUniformMatrix2dv(int location, boolean transpose, DoubleBuffer value)
      Specifies the value of a single dmat2 uniform variable or a dmat2 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      transpose - whether to transpose the matrix as the values are loaded into the uniform variable
      value - a pointer to an array of count values that will be used to update the specified uniform matrix variable
      See Also:
    • nglUniformMatrix3dv

      public static void nglUniformMatrix3dv(int location, int count, boolean transpose, long value)
      Unsafe version of: UniformMatrix3dv
      Parameters:
      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.
    • glUniformMatrix3dv

      public static void glUniformMatrix3dv(int location, boolean transpose, DoubleBuffer value)
      Specifies the value of a single dmat3 uniform variable or a dmat3 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      transpose - whether to transpose the matrix as the values are loaded into the uniform variable
      value - a pointer to an array of count values that will be used to update the specified uniform matrix variable
      See Also:
    • nglUniformMatrix4dv

      public static void nglUniformMatrix4dv(int location, int count, boolean transpose, long value)
      Unsafe version of: UniformMatrix4dv
      Parameters:
      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.
    • glUniformMatrix4dv

      public static void glUniformMatrix4dv(int location, boolean transpose, DoubleBuffer value)
      Specifies the value of a single dmat4 uniform variable or a dmat4 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      transpose - whether to transpose the matrix as the values are loaded into the uniform variable
      value - a pointer to an array of count values that will be used to update the specified uniform matrix variable
      See Also:
    • nglUniformMatrix2x3dv

      public static void nglUniformMatrix2x3dv(int location, int count, boolean transpose, long value)
      Unsafe version of: UniformMatrix2x3dv
      Parameters:
      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.
    • glUniformMatrix2x3dv

      public static void glUniformMatrix2x3dv(int location, boolean transpose, DoubleBuffer value)
      Specifies the value of a single dmat2x3 uniform variable or a dmat2x3 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      transpose - whether to transpose the matrix as the values are loaded into the uniform variable
      value - a pointer to an array of count values that will be used to update the specified uniform matrix variable
      See Also:
    • nglUniformMatrix2x4dv

      public static void nglUniformMatrix2x4dv(int location, int count, boolean transpose, long value)
      Unsafe version of: UniformMatrix2x4dv
      Parameters:
      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.
    • glUniformMatrix2x4dv

      public static void glUniformMatrix2x4dv(int location, boolean transpose, DoubleBuffer value)
      Specifies the value of a single dmat2x4 uniform variable or a dmat2x4 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      transpose - whether to transpose the matrix as the values are loaded into the uniform variable
      value - a pointer to an array of count values that will be used to update the specified uniform matrix variable
      See Also:
    • nglUniformMatrix3x2dv

      public static void nglUniformMatrix3x2dv(int location, int count, boolean transpose, long value)
      Unsafe version of: UniformMatrix3x2dv
      Parameters:
      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.
    • glUniformMatrix3x2dv

      public static void glUniformMatrix3x2dv(int location, boolean transpose, DoubleBuffer value)
      Specifies the value of a single dmat3x2 uniform variable or a dmat3x2 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      transpose - whether to transpose the matrix as the values are loaded into the uniform variable
      value - a pointer to an array of count values that will be used to update the specified uniform matrix variable
      See Also:
    • nglUniformMatrix3x4dv

      public static void nglUniformMatrix3x4dv(int location, int count, boolean transpose, long value)
      Unsafe version of: UniformMatrix3x4dv
      Parameters:
      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.
    • glUniformMatrix3x4dv

      public static void glUniformMatrix3x4dv(int location, boolean transpose, DoubleBuffer value)
      Specifies the value of a single dmat3x4 uniform variable or a dmat3x4 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      transpose - whether to transpose the matrix as the values are loaded into the uniform variable
      value - a pointer to an array of count values that will be used to update the specified uniform matrix variable
      See Also:
    • nglUniformMatrix4x2dv

      public static void nglUniformMatrix4x2dv(int location, int count, boolean transpose, long value)
      Unsafe version of: UniformMatrix4x2dv
      Parameters:
      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.
    • glUniformMatrix4x2dv

      public static void glUniformMatrix4x2dv(int location, boolean transpose, DoubleBuffer value)
      Specifies the value of a single dmat4x2 uniform variable or a dmat4x2 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      transpose - whether to transpose the matrix as the values are loaded into the uniform variable
      value - a pointer to an array of count values that will be used to update the specified uniform matrix variable
      See Also:
    • nglUniformMatrix4x3dv

      public static void nglUniformMatrix4x3dv(int location, int count, boolean transpose, long value)
      Unsafe version of: UniformMatrix4x3dv
      Parameters:
      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.
    • glUniformMatrix4x3dv

      public static void glUniformMatrix4x3dv(int location, boolean transpose, DoubleBuffer value)
      Specifies the value of a single dmat4x3 uniform variable or a dmat4x3 uniform variable array for the current program object.
      Parameters:
      location - the location of the uniform variable to be modified
      transpose - whether to transpose the matrix as the values are loaded into the uniform variable
      value - a pointer to an array of count values that will be used to update the specified uniform matrix variable
      See Also:
    • nglGetUniformdv

      public static void nglGetUniformdv(int program, int location, long params)
      Unsafe version of: GetUniformdv
    • glGetUniformdv

      public static void glGetUniformdv(int program, int location, DoubleBuffer params)
      Returns the double value(s) of a uniform variable.
      Parameters:
      program - the program object to be queried
      location - the location of the uniform variable to be queried
      params - the value of the specified uniform variable
      See Also:
    • glGetUniformd

      public static double glGetUniformd(int program, int location)
      Returns the double value(s) of a uniform variable.
      Parameters:
      program - the program object to be queried
      location - the location of the uniform variable to be queried
      See Also:
    • glMinSampleShading

      public static void glMinSampleShading(float value)
      Specifies the minimum rate at which sample shading takes place.
      Parameters:
      value - the rate at which samples are shaded within each covered pixel
      See Also:
    • nglGetSubroutineUniformLocation

      public static int nglGetSubroutineUniformLocation(int program, int shadertype, long name)
      Unsafe version of: GetSubroutineUniformLocation
    • glGetSubroutineUniformLocation

      public static int glGetSubroutineUniformLocation(int program, int shadertype, ByteBuffer name)
      Retrieves the location of a subroutine uniform of a given shader stage within a program.
      Parameters:
      program - the name of the program containing shader stage
      shadertype - the shader stage from which to query for subroutine uniform index. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      name - the name of the subroutine uniform whose index to query.
      See Also:
    • glGetSubroutineUniformLocation

      public static int glGetSubroutineUniformLocation(int program, int shadertype, CharSequence name)
      Retrieves the location of a subroutine uniform of a given shader stage within a program.
      Parameters:
      program - the name of the program containing shader stage
      shadertype - the shader stage from which to query for subroutine uniform index. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      name - the name of the subroutine uniform whose index to query.
      See Also:
    • nglGetSubroutineIndex

      public static int nglGetSubroutineIndex(int program, int shadertype, long name)
      Unsafe version of: GetSubroutineIndex
    • glGetSubroutineIndex

      public static int glGetSubroutineIndex(int program, int shadertype, ByteBuffer name)
      Retrieves the index of a subroutine function of a given shader stage within a program.
      Parameters:
      program - the name of the program containing shader stage
      shadertype - the shader stage from which to query for subroutine function index. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      name - the name of the subroutine function whose index to query
      See Also:
    • glGetSubroutineIndex

      public static int glGetSubroutineIndex(int program, int shadertype, CharSequence name)
      Retrieves the index of a subroutine function of a given shader stage within a program.
      Parameters:
      program - the name of the program containing shader stage
      shadertype - the shader stage from which to query for subroutine function index. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      name - the name of the subroutine function whose index to query
      See Also:
    • nglGetActiveSubroutineUniformiv

      public static void nglGetActiveSubroutineUniformiv(int program, int shadertype, int index, int pname, long values)
      Unsafe version of: GetActiveSubroutineUniformiv
    • glGetActiveSubroutineUniformiv

      public static void glGetActiveSubroutineUniformiv(int program, int shadertype, int index, int pname, IntBuffer values)
      Queries a property of an active shader subroutine uniform.
      Parameters:
      program - the name of the program containing the subroutine
      shadertype - the shader stage from which to query for the subroutine parameter. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      index - the index of the shader subroutine uniform
      pname - the parameter of the shader subroutine uniform to query. One of:
      NUM_COMPATIBLE_SUBROUTINESCOMPATIBLE_SUBROUTINESUNIFORM_SIZEUNIFORM_NAME_LENGTH
      values - the address of a buffer into which the queried value or values will be placed
      See Also:
    • glGetActiveSubroutineUniformi

      public static int glGetActiveSubroutineUniformi(int program, int shadertype, int index, int pname)
      Queries a property of an active shader subroutine uniform.
      Parameters:
      program - the name of the program containing the subroutine
      shadertype - the shader stage from which to query for the subroutine parameter. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      index - the index of the shader subroutine uniform
      pname - the parameter of the shader subroutine uniform to query. One of:
      NUM_COMPATIBLE_SUBROUTINESCOMPATIBLE_SUBROUTINESUNIFORM_SIZEUNIFORM_NAME_LENGTH
      See Also:
    • nglGetActiveSubroutineUniformName

      public static void nglGetActiveSubroutineUniformName(int program, int shadertype, int index, int bufsize, long length, long name)
      Parameters:
      bufsize - the size of the buffer whose address is given in name
    • glGetActiveSubroutineUniformName

      public static void glGetActiveSubroutineUniformName(int program, int shadertype, int index, @Nullable IntBuffer length, ByteBuffer name)
      Queries the name of an active shader subroutine uniform.
      Parameters:
      program - the name of the program containing the subroutine
      shadertype - the shader stage from which to query for the subroutine parameter. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      index - the index of the shader subroutine uniform
      length - the address of a variable into which is written the number of characters copied into name
      name - the address of a buffer that will receive the name of the specified shader subroutine uniform
      See Also:
    • glGetActiveSubroutineUniformName

      public static String glGetActiveSubroutineUniformName(int program, int shadertype, int index, int bufsize)
      Queries the name of an active shader subroutine uniform.
      Parameters:
      program - the name of the program containing the subroutine
      shadertype - the shader stage from which to query for the subroutine parameter. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      index - the index of the shader subroutine uniform
      bufsize - the size of the buffer whose address is given in name
      See Also:
    • glGetActiveSubroutineUniformName

      public static String glGetActiveSubroutineUniformName(int program, int shadertype, int index)
      Queries the name of an active shader subroutine uniform.
      Parameters:
      program - the name of the program containing the subroutine
      shadertype - the shader stage from which to query for the subroutine parameter. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      index - the index of the shader subroutine uniform
      See Also:
    • nglGetActiveSubroutineName

      public static void nglGetActiveSubroutineName(int program, int shadertype, int index, int bufsize, long length, long name)
      Unsafe version of: GetActiveSubroutineName
      Parameters:
      bufsize - the size of the buffer whose address is given in name
    • glGetActiveSubroutineName

      public static void glGetActiveSubroutineName(int program, int shadertype, int index, @Nullable IntBuffer length, ByteBuffer name)
      Queries the name of an active shader subroutine.
      Parameters:
      program - the name of the program containing the subroutine
      shadertype - the shader stage from which to query the subroutine name. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      index - the index of the shader subroutine uniform
      length - a variable which is to receive the length of the shader subroutine uniform name
      name - an array into which the name of the shader subroutine uniform will be written
      See Also:
    • glGetActiveSubroutineName

      public static String glGetActiveSubroutineName(int program, int shadertype, int index, int bufsize)
      Queries the name of an active shader subroutine.
      Parameters:
      program - the name of the program containing the subroutine
      shadertype - the shader stage from which to query the subroutine name. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      index - the index of the shader subroutine uniform
      bufsize - the size of the buffer whose address is given in name
      See Also:
    • glGetActiveSubroutineName

      public static String glGetActiveSubroutineName(int program, int shadertype, int index)
      Queries the name of an active shader subroutine.
      Parameters:
      program - the name of the program containing the subroutine
      shadertype - the shader stage from which to query the subroutine name. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      index - the index of the shader subroutine uniform
      See Also:
    • nglUniformSubroutinesuiv

      public static void nglUniformSubroutinesuiv(int shadertype, int count, long indices)
      Unsafe version of: UniformSubroutinesuiv
      Parameters:
      count - the number of uniform indices stored in indices
    • glUniformSubroutinesuiv

      public static void glUniformSubroutinesuiv(int shadertype, IntBuffer indices)
      Loads active subroutine uniforms.
      Parameters:
      shadertype - the shader stage to update. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      indices - an array holding the indices to load into the shader subroutine variables
      See Also:
    • glUniformSubroutinesui

      public static void glUniformSubroutinesui(int shadertype, int index)
      Loads active subroutine uniforms.
      Parameters:
      shadertype - the shader stage to update. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      See Also:
    • nglGetUniformSubroutineuiv

      public static void nglGetUniformSubroutineuiv(int shadertype, int location, long params)
      Unsafe version of: GetUniformSubroutineuiv
    • glGetUniformSubroutineuiv

      public static void glGetUniformSubroutineuiv(int shadertype, int location, IntBuffer params)
      Retrieves the value of a subroutine uniform of a given shader stage of the current program.
      Parameters:
      shadertype - the shader stage from which to query for subroutine uniform index. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      location - the location of the subroutine uniform
      params - a variable to receive the value or values of the subroutine uniform
      See Also:
    • glGetUniformSubroutineui

      public static int glGetUniformSubroutineui(int shadertype, int location)
      Retrieves the value of a subroutine uniform of a given shader stage of the current program.
      Parameters:
      shadertype - the shader stage from which to query for subroutine uniform index. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      location - the location of the subroutine uniform
      See Also:
    • nglGetProgramStageiv

      public static void nglGetProgramStageiv(int program, int shadertype, int pname, long values)
      Unsafe version of: GetProgramStageiv
    • glGetProgramStageiv

      public static void glGetProgramStageiv(int program, int shadertype, int pname, IntBuffer values)
      Retrieves properties of a program object corresponding to a specified shader stage.
      Parameters:
      program - the name of the program containing shader stage
      shadertype - the shader stage from which to query for the subroutine parameter. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      pname - the parameter of the shader to query. One of:
      ACTIVE_SUBROUTINESACTIVE_SUBROUTINE_UNIFORMS
      ACTIVE_SUBROUTINE_UNIFORM_LOCATIONSACTIVE_SUBROUTINE_MAX_LENGTH
      ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH
      values - a variable into which the queried value or values will be placed
      See Also:
    • glGetProgramStagei

      public static int glGetProgramStagei(int program, int shadertype, int pname)
      Retrieves properties of a program object corresponding to a specified shader stage.
      Parameters:
      program - the name of the program containing shader stage
      shadertype - the shader stage from which to query for the subroutine parameter. One of:
      VERTEX_SHADERFRAGMENT_SHADERGEOMETRY_SHADERTESS_CONTROL_SHADER
      TESS_EVALUATION_SHADER
      pname - the parameter of the shader to query. One of:
      ACTIVE_SUBROUTINESACTIVE_SUBROUTINE_UNIFORMS
      ACTIVE_SUBROUTINE_UNIFORM_LOCATIONSACTIVE_SUBROUTINE_MAX_LENGTH
      ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH
      See Also:
    • glPatchParameteri

      public static void glPatchParameteri(int pname, int value)
      Specifies the integer value of the specified parameter for patch primitives.
      Parameters:
      pname - the name of the parameter to set. Must be:
      PATCH_VERTICES
      value - the new value for the parameter given by pname
      See Also:
    • nglPatchParameterfv

      public static void nglPatchParameterfv(int pname, long values)
      Unsafe version of: PatchParameterfv
    • glPatchParameterfv

      public static void glPatchParameterfv(int pname, FloatBuffer values)
      Specifies an array of float values for the specified parameter for patch primitives.
      Parameters:
      pname - the name of the parameter to set. One of:
      PATCH_DEFAULT_OUTER_LEVELPATCH_DEFAULT_INNER_LEVEL
      values - an array containing the new values for the parameter given by pname
      See Also:
    • glBindTransformFeedback

      public static void glBindTransformFeedback(int target, int id)
      Binds a transform feedback object.
      Parameters:
      target - the target to which to bind the transform feedback object id. Must be:
      TRANSFORM_FEEDBACK
      id - the name of a transform feedback object
      See Also:
    • nglDeleteTransformFeedbacks

      public static void nglDeleteTransformFeedbacks(int n, long ids)
      Unsafe version of: DeleteTransformFeedbacks
      Parameters:
      n - the number of transform feedback objects to delete
    • glDeleteTransformFeedbacks

      public static void glDeleteTransformFeedbacks(IntBuffer ids)
      Deletes transform feedback objects.
      Parameters:
      ids - an array of names of transform feedback objects to delete
      See Also:
    • glDeleteTransformFeedbacks

      public static void glDeleteTransformFeedbacks(int id)
      Deletes transform feedback objects.
      See Also:
    • nglGenTransformFeedbacks

      public static void nglGenTransformFeedbacks(int n, long ids)
      Unsafe version of: GenTransformFeedbacks
      Parameters:
      n - the number of transform feedback object names to reserve
    • glGenTransformFeedbacks

      public static void glGenTransformFeedbacks(IntBuffer ids)
      Reserves transform feedback object names.
      Parameters:
      ids - an array of into which the reserved names will be written
      See Also:
    • glGenTransformFeedbacks

      public static int glGenTransformFeedbacks()
      Reserves transform feedback object names.
      See Also:
    • glIsTransformFeedback

      public static boolean glIsTransformFeedback(int id)
      Determines if a name corresponds to a transform feedback object.
      Parameters:
      id - a value that may be the name of a transform feedback object
      See Also:
    • glPauseTransformFeedback

      public static void glPauseTransformFeedback()
      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 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 primitiveMode passed to BeginTransformFeedback. The error INVALID_OPERATION is generated by Begin or any operation that implicitly calls Begin (such as DrawElements) if mode is not one of the allowed modes. If a geometry shader is active, its output primitive type is used instead of the mode parameter passed to Begin for the purposes of this error check. Any primitive type may be used while transform feedback is paused.

      See Also:
    • glResumeTransformFeedback

      public static void glResumeTransformFeedback()
      Resumes transform feedback operations for the currently bound transform feedback object.

      The error INVALID_OPERATION is generated by ResumeTransformFeedback if the currently bound transform feedback is not active or is not paused.

      See Also:
    • glDrawTransformFeedback

      public static void glDrawTransformFeedback(int mode, int id)
      Render primitives using a count derived from a transform feedback object.
      Parameters:
      mode - what kind of primitives to render. One of:
      POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLES
      LINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADS
      QUAD_STRIP
      id - the name of a transform feedback object from which to retrieve a primitive count
      See Also:
    • glDrawTransformFeedbackStream

      public static void glDrawTransformFeedbackStream(int mode, int id, int stream)
      Renders primitives using a count derived from a specifed stream of a transform feedback object.
      Parameters:
      mode - what kind of primitives to render. One of:
      POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLES
      LINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADS
      QUAD_STRIP
      id - the name of a transform feedback object from which to retrieve a primitive count
      stream - the index of the transform feedback stream from which to retrieve a primitive count
      See Also:
    • glBeginQueryIndexed

      public static void glBeginQueryIndexed(int target, int index, int id)
      Begins a query object on an indexed target
      Parameters:
      target - the target type of query object established between glBeginQueryIndexed and the subsequent EndQueryIndexed. One of:
      SAMPLES_PASSEDPRIMITIVES_GENERATEDTRANSFORM_FEEDBACK_PRIMITIVES_WRITTENTIME_ELAPSED
      TIMESTAMPANY_SAMPLES_PASSEDANY_SAMPLES_PASSED_CONSERVATIVE
      index - the index of the query target upon which to begin the query
      id - the name of a query object
      See Also:
    • glEndQueryIndexed

      public static void glEndQueryIndexed(int target, int index)
      Ends a query object on an indexed target
      Parameters:
      target - the target type of query object to be concluded. One of:
      SAMPLES_PASSEDPRIMITIVES_GENERATEDTRANSFORM_FEEDBACK_PRIMITIVES_WRITTENTIME_ELAPSED
      TIMESTAMPANY_SAMPLES_PASSEDANY_SAMPLES_PASSED_CONSERVATIVE
      index - the index of the query target upon which to end the query
      See Also:
    • nglGetQueryIndexediv

      public static void nglGetQueryIndexediv(int target, int index, int pname, long params)
      Unsafe version of: GetQueryIndexediv
    • glGetQueryIndexediv

      public static void glGetQueryIndexediv(int target, int index, int pname, IntBuffer params)
      Returns parameters of an indexed query object target.
      Parameters:
      target - a query object target. One of:
      SAMPLES_PASSEDPRIMITIVES_GENERATEDTRANSFORM_FEEDBACK_PRIMITIVES_WRITTENTIME_ELAPSED
      TIMESTAMPANY_SAMPLES_PASSEDANY_SAMPLES_PASSED_CONSERVATIVE
      index - the index of the query object target
      pname - the symbolic name of a query object target parameter
      params - the requested data
      See Also:
    • glGetQueryIndexedi

      public static int glGetQueryIndexedi(int target, int index, int pname)
      Returns parameters of an indexed query object target.
      Parameters:
      target - a query object target. One of:
      SAMPLES_PASSEDPRIMITIVES_GENERATEDTRANSFORM_FEEDBACK_PRIMITIVES_WRITTENTIME_ELAPSED
      TIMESTAMPANY_SAMPLES_PASSEDANY_SAMPLES_PASSED_CONSERVATIVE
      index - the index of the query object target
      pname - the symbolic name of a query object target parameter
      See Also:
    • glDrawArraysIndirect

      public static void glDrawArraysIndirect(int mode, int[] indirect)
      Array version of: DrawArraysIndirect
      See Also:
    • glDrawElementsIndirect

      public static void glDrawElementsIndirect(int mode, int type, int[] indirect)
      Array version of: DrawElementsIndirect
      See Also:
    • glUniform1dv

      public static void glUniform1dv(int location, double[] value)
      Array version of: Uniform1dv
      See Also:
    • glUniform2dv

      public static void glUniform2dv(int location, double[] value)
      Array version of: Uniform2dv
      See Also:
    • glUniform3dv

      public static void glUniform3dv(int location, double[] value)
      Array version of: Uniform3dv
      See Also:
    • glUniform4dv

      public static void glUniform4dv(int location, double[] value)
      Array version of: Uniform4dv
      See Also:
    • glUniformMatrix2dv

      public static void glUniformMatrix2dv(int location, boolean transpose, double[] value)
      Array version of: UniformMatrix2dv
      See Also:
    • glUniformMatrix3dv

      public static void glUniformMatrix3dv(int location, boolean transpose, double[] value)
      Array version of: UniformMatrix3dv
      See Also:
    • glUniformMatrix4dv

      public static void glUniformMatrix4dv(int location, boolean transpose, double[] value)
      Array version of: UniformMatrix4dv
      See Also:
    • glUniformMatrix2x3dv

      public static void glUniformMatrix2x3dv(int location, boolean transpose, double[] value)
      Array version of: UniformMatrix2x3dv
      See Also:
    • glUniformMatrix2x4dv

      public static void glUniformMatrix2x4dv(int location, boolean transpose, double[] value)
      Array version of: UniformMatrix2x4dv
      See Also:
    • glUniformMatrix3x2dv

      public static void glUniformMatrix3x2dv(int location, boolean transpose, double[] value)
      Array version of: UniformMatrix3x2dv
      See Also:
    • glUniformMatrix3x4dv

      public static void glUniformMatrix3x4dv(int location, boolean transpose, double[] value)
      Array version of: UniformMatrix3x4dv
      See Also:
    • glUniformMatrix4x2dv

      public static void glUniformMatrix4x2dv(int location, boolean transpose, double[] value)
      Array version of: UniformMatrix4x2dv
      See Also:
    • glUniformMatrix4x3dv

      public static void glUniformMatrix4x3dv(int location, boolean transpose, double[] value)
      Array version of: UniformMatrix4x3dv
      See Also:
    • glGetUniformdv

      public static void glGetUniformdv(int program, int location, double[] params)
      Array version of: GetUniformdv
      See Also:
    • glGetActiveSubroutineUniformiv

      public static void glGetActiveSubroutineUniformiv(int program, int shadertype, int index, int pname, int[] values)
      See Also:
    • glGetActiveSubroutineUniformName

      public static void glGetActiveSubroutineUniformName(int program, int shadertype, int index, @Nullable int[] length, ByteBuffer name)
      See Also:
    • glGetActiveSubroutineName

      public static void glGetActiveSubroutineName(int program, int shadertype, int index, @Nullable int[] length, ByteBuffer name)
      Array version of: GetActiveSubroutineName
      See Also:
    • glUniformSubroutinesuiv

      public static void glUniformSubroutinesuiv(int shadertype, int[] indices)
      Array version of: UniformSubroutinesuiv
      See Also:
    • glGetUniformSubroutineuiv

      public static void glGetUniformSubroutineuiv(int shadertype, int location, int[] params)
      Array version of: GetUniformSubroutineuiv
      See Also:
    • glGetProgramStageiv

      public static void glGetProgramStageiv(int program, int shadertype, int pname, int[] values)
      Array version of: GetProgramStageiv
      See Also:
    • glPatchParameterfv

      public static void glPatchParameterfv(int pname, float[] values)
      Array version of: PatchParameterfv
      See Also:
    • glDeleteTransformFeedbacks

      public static void glDeleteTransformFeedbacks(int[] ids)
      Array version of: DeleteTransformFeedbacks
      See Also:
    • glGenTransformFeedbacks

      public static void glGenTransformFeedbacks(int[] ids)
      Array version of: GenTransformFeedbacks
      See Also:
    • glGetQueryIndexediv

      public static void glGetQueryIndexediv(int target, int index, int pname, int[] params)
      Array version of: GetQueryIndexediv
      See Also: