Class ARBSeparateShaderObjects
Conventional GLSL requires multiple shader stages (vertex, fragment, geometry, tessellation control, and tessellation evaluation) to be linked into a single monolithic program object to specify a GLSL shader for each stage.
While GLSL's monolithic approach has some advantages for optimizing shaders as a unit that span multiple stages, all existing GPU hardware supports the more flexible mix-and-match approach.
Shaders written for HLSL9, Cg, the prior OpenGL assembly program extensions, and game console favor a more flexible "mix-and-match" approach to specifying shaders independently for these different shader stages. Many developers build their shader content around the mix-and-match approach where they can use a single vertex shader with multiple fragment shaders (or vice versa).
This extension adopts a "mix-and-match" shader stage model for GLSL allowing multiple different GLSL program objects to be bound at once each to an individual rendering pipeline stage independently of other stage bindings. This allows program objects to contain only the shader stages that best suit the applications needs.
This extension introduces the program pipeline object that serves as a container for the program bound to any particular rendering stage. It can be bound, unbound, and rebound to simply save and restore the complete shader stage to program object bindings. Like framebuffer and vertex array objects, program pipeline objects are "container" objects that are not shared between contexts.
To bind a program object to a specific shader stage or set of stages, UseProgramStages
is used. The VERTEX_SHADER_BIT
, GEOMETRY_SHADER_BIT
,
FRAGMENT_SHADER_BIT
, TESS_CONTROL_SHADER_BIT
, and TESS_EVALUATION_SHADER_BIT
tokens refer to the conventional vertex, geometry, fragment,
tessellation control and tessellation evaluation stages respectively. ActiveShaderProgram
specifies the program that Uniform* commands will update.
While ActiveShaderProgram
allows the use of conventional Uniform* commands to update uniform variable values for separable program objects, this
extension provides a preferrable interface in a set of ProgramUniform* commands that update the same uniform variables but take a parameter indicating
the program object to be updated, rather than updating the currently active program object. These commands mirror those introduced in
EXT_direct_state_access
.
While ActiveShaderProgram
provides a selector for setting and querying uniform values of a program object, the glProgramUniform* commands provide a
selector-free way to modify uniforms of a GLSL program object without an explicit bind. This selector-free model reduces API overhead and provides a
cleaner interface for applications.
Separate linking creates the possibility that certain output varyings of a shader may go unread by the subsequent shader inputting varyings. In this case, the output varyings are simply ignored. It is also possible input varyings from a shader may not be written as output varyings of a preceding shader. In this case, the unwritten input varying values are undefined.
This extension builds on the proof-of-concept provided by EXT_separate_shader_objects
which demonstrated that separate shader objects can work
for GLSL. EXT_separate_shader_objects
was a response to repeated requests for this functionality from 3D developers.
This ARB version addresses several "loose ends" in the prior EXT extension. In particular, it allows user-defined varyings with explicitly defined locations or implicitly assigned locations.
This ARB extension extends the GLSL language's use of layout qualifiers to provide cross-stage interfacing.
Requires OpenGL 2.0
or ARB_shader_objects
. Promoted to core in OpenGL 4.1
.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Accepted bytype
parameter to GetProgramPipelineiv.static final int
Accepted bystages
parameter to UseProgramStages.static final int
Accepted bystages
parameter to UseProgramStages.static final int
Accepted bystages
parameter to UseProgramStages.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.static final int
Accepted by thepname
parameter of ProgramParameteri and GetProgramiv.static final int
Accepted bystages
parameter to UseProgramStages.static final int
Accepted bystages
parameter to UseProgramStages.static final int
Accepted bystages
parameter to UseProgramStages. -
Method Summary
Modifier and TypeMethodDescriptionstatic void
glActiveShaderProgram
(int pipeline, int program) Sets the active program object for a program pipeline object.static void
glBindProgramPipeline
(int pipeline) Binds a program pipeline to the current context.static int
glCreateShaderProgramv
(int type, CharSequence string) Creates a stand-alone program from an array of null-terminated source code strings.static int
glCreateShaderProgramv
(int type, CharSequence... strings) Creates a stand-alone program from an array of null-terminated source code strings.static int
glCreateShaderProgramv
(int type, PointerBuffer strings) Creates a stand-alone program from an array of null-terminated source code strings.static void
glDeleteProgramPipelines
(int pipeline) Deletes program pipeline objects.static void
glDeleteProgramPipelines
(int[] pipelines) Array version of:DeleteProgramPipelines
static void
glDeleteProgramPipelines
(IntBuffer pipelines) Deletes program pipeline objects.static int
Reserves program pipeline object names.static void
glGenProgramPipelines
(int[] pipelines) Array version of:GenProgramPipelines
static void
glGenProgramPipelines
(IntBuffer pipelines) Reserves program pipeline object names.static int
glGetProgramPipelinei
(int pipeline, int pname) Retrieves properties of a program pipeline object.static String
glGetProgramPipelineInfoLog
(int pipeline) Retrieves the info log string from a program pipeline object.static String
glGetProgramPipelineInfoLog
(int pipeline, int bufSize) Retrieves the info log string from a program pipeline object.static void
glGetProgramPipelineInfoLog
(int pipeline, int[] length, ByteBuffer infoLog) Array version of:GetProgramPipelineInfoLog
static void
glGetProgramPipelineInfoLog
(int pipeline, IntBuffer length, ByteBuffer infoLog) Retrieves the info log string from a program pipeline object.static void
glGetProgramPipelineiv
(int pipeline, int pname, int[] params) Array version of:GetProgramPipelineiv
static void
glGetProgramPipelineiv
(int pipeline, int pname, IntBuffer params) Retrieves properties of a program pipeline object.static boolean
glIsProgramPipeline
(int pipeline) Determines if a name corresponds to a program pipeline object.static void
glProgramParameteri
(int program, int pname, int value) Specifies the integer value of a program object parameter.static void
glProgramUniform1d
(int program, int location, double x) Specifies the value of a double uniform variable for a specified program object.static void
glProgramUniform1dv
(int program, int location, double[] value) Array version of:ProgramUniform1dv
static void
glProgramUniform1dv
(int program, int location, DoubleBuffer value) Specifies the value of a single double uniform variable or a double uniform variable array for a specified program object.static void
glProgramUniform1f
(int program, int location, float x) Specifies the value of a float uniform variable for a specified program object.static void
glProgramUniform1fv
(int program, int location, float[] value) Array version of:ProgramUniform1fv
static void
glProgramUniform1fv
(int program, int location, FloatBuffer value) Specifies the value of a single float uniform variable or a float uniform variable array for a specified program object.static void
glProgramUniform1i
(int program, int location, int x) Specifies the value of an int uniform variable for a specified program object.static void
glProgramUniform1iv
(int program, int location, int[] value) Array version of:ProgramUniform1iv
static void
glProgramUniform1iv
(int program, int location, IntBuffer value) Specifies the value of a single float uniform variable or a float uniform variable array for a specified program object.static void
glProgramUniform1ui
(int program, int location, int x) Specifies the value of a uint uniform variable for a specified program object.static void
glProgramUniform1uiv
(int program, int location, int[] value) Array version of:ProgramUniform1uiv
static void
glProgramUniform1uiv
(int program, int location, IntBuffer value) Specifies the value of a single uint uniform variable or a uint uniform variable array for a specified program object.static void
glProgramUniform2d
(int program, int location, double x, double y) Specifies the value of a dvec2 uniform variable for a specified program object.static void
glProgramUniform2dv
(int program, int location, double[] value) Array version of:ProgramUniform2dv
static void
glProgramUniform2dv
(int program, int location, DoubleBuffer value) Specifies the value of a single dvec2 uniform variable or a dvec2 uniform variable array for a specified program object.static void
glProgramUniform2f
(int program, int location, float x, float y) Specifies the value of a vec2 uniform variable for a specified program object.static void
glProgramUniform2fv
(int program, int location, float[] value) Array version of:ProgramUniform2fv
static void
glProgramUniform2fv
(int program, int location, FloatBuffer value) Specifies the value of a single vec2 uniform variable or a vec2 uniform variable array for a specified program object.static void
glProgramUniform2i
(int program, int location, int x, int y) Specifies the value of an ivec2 uniform variable for a specified program object.static void
glProgramUniform2iv
(int program, int location, int[] value) Array version of:ProgramUniform2iv
static void
glProgramUniform2iv
(int program, int location, IntBuffer value) Specifies the value of a single ivec2 uniform variable or an ivec2 uniform variable array for a specified program object.static void
glProgramUniform2ui
(int program, int location, int x, int y) Specifies the value of a uvec2 uniform variable for a specified program object.static void
glProgramUniform2uiv
(int program, int location, int[] value) Array version of:ProgramUniform2uiv
static void
glProgramUniform2uiv
(int program, int location, IntBuffer value) Specifies the value of a single uvec2 uniform variable or a uvec2 uniform variable array for a specified program object.static void
glProgramUniform3d
(int program, int location, double x, double y, double z) Specifies the value of a dvec3 uniform variable for a specified program object.static void
glProgramUniform3dv
(int program, int location, double[] value) Array version of:ProgramUniform3dv
static void
glProgramUniform3dv
(int program, int location, DoubleBuffer value) Specifies the value of a single dvec3 uniform variable or a dvec3 uniform variable array for a specified program object.static void
glProgramUniform3f
(int program, int location, float x, float y, float z) Specifies the value of a vec3 uniform variable for a specified program object.static void
glProgramUniform3fv
(int program, int location, float[] value) Array version of:ProgramUniform3fv
static void
glProgramUniform3fv
(int program, int location, FloatBuffer value) Specifies the value of a single vec3 uniform variable or a vec3 uniform variable array for a specified program object.static void
glProgramUniform3i
(int program, int location, int x, int y, int z) Specifies the value of an ivec3 uniform variable for a specified program object.static void
glProgramUniform3iv
(int program, int location, int[] value) Array version of:ProgramUniform3iv
static void
glProgramUniform3iv
(int program, int location, IntBuffer value) Specifies the value of a single ivec3 uniform variable or an ivec3 uniform variable array for a specified program object.static void
glProgramUniform3ui
(int program, int location, int x, int y, int z) Specifies the value of a uvec3 uniform variable for a specified program object.static void
glProgramUniform3uiv
(int program, int location, int[] value) Array version of:ProgramUniform3uiv
static void
glProgramUniform3uiv
(int program, int location, IntBuffer value) Specifies the value of a single uvec3 uniform variable or a uvec3 uniform variable array for a specified program object.static void
glProgramUniform4d
(int program, int location, double x, double y, double z, double w) Specifies the value of a dvec4 uniform variable for a specified program object.static void
glProgramUniform4dv
(int program, int location, double[] value) Array version of:ProgramUniform4dv
static void
glProgramUniform4dv
(int program, int location, DoubleBuffer value) Specifies the value of a single dvec4 uniform variable or a dvec4 uniform variable array for a specified program object.static void
glProgramUniform4f
(int program, int location, float x, float y, float z, float w) Specifies the value of a vec4 uniform variable for a specified program object.static void
glProgramUniform4fv
(int program, int location, float[] value) Array version of:ProgramUniform4fv
static void
glProgramUniform4fv
(int program, int location, FloatBuffer value) Specifies the value of a single vec4 uniform variable or a vec4 uniform variable array for a specified program object.static void
glProgramUniform4i
(int program, int location, int x, int y, int z, int w) Specifies the value of an ivec4 uniform variable for a specified program object.static void
glProgramUniform4iv
(int program, int location, int[] value) Array version of:ProgramUniform4iv
static void
glProgramUniform4iv
(int program, int location, IntBuffer value) Specifies the value of a single ivec4 uniform variable or an ivec4 uniform variable array for a specified program object.static void
glProgramUniform4ui
(int program, int location, int x, int y, int z, int w) Specifies the value of a uvec4 uniform variable for a specified program object.static void
glProgramUniform4uiv
(int program, int location, int[] value) Array version of:ProgramUniform4uiv
static void
glProgramUniform4uiv
(int program, int location, IntBuffer value) Specifies the value of a single uvec4 uniform variable or a uvec4 uniform variable array for a specified program object.static void
glProgramUniformMatrix2dv
(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix2dv
static void
glProgramUniformMatrix2dv
(int program, 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.static void
glProgramUniformMatrix2fv
(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix2fv
static void
glProgramUniformMatrix2fv
(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat2 uniform variable or a mat2 uniform variable array for the current program object.static void
glProgramUniformMatrix2x3dv
(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix2x3dv
static void
glProgramUniformMatrix2x3dv
(int program, 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.static void
glProgramUniformMatrix2x3fv
(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix2x3fv
static void
glProgramUniformMatrix2x3fv
(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat2x3 uniform variable or a mat2x3 uniform variable array for the current program object.static void
glProgramUniformMatrix2x4dv
(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix2x4dv
static void
glProgramUniformMatrix2x4dv
(int program, 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.static void
glProgramUniformMatrix2x4fv
(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix2x4fv
static void
glProgramUniformMatrix2x4fv
(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat2x4 uniform variable or a mat2x4 uniform variable array for the current program object.static void
glProgramUniformMatrix3dv
(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix3dv
static void
glProgramUniformMatrix3dv
(int program, 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.static void
glProgramUniformMatrix3fv
(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix3fv
static void
glProgramUniformMatrix3fv
(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat3 uniform variable or a mat3 uniform variable array for the current program object.static void
glProgramUniformMatrix3x2dv
(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix3x2dv
static void
glProgramUniformMatrix3x2dv
(int program, 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.static void
glProgramUniformMatrix3x2fv
(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix3x2fv
static void
glProgramUniformMatrix3x2fv
(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat3x2 uniform variable or a mat3x2 uniform variable array for the current program object.static void
glProgramUniformMatrix3x4dv
(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix3x4dv
static void
glProgramUniformMatrix3x4dv
(int program, 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.static void
glProgramUniformMatrix3x4fv
(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix3x4fv
static void
glProgramUniformMatrix3x4fv
(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat3x4 uniform variable or a mat3x4 uniform variable array for the current program object.static void
glProgramUniformMatrix4dv
(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix4dv
static void
glProgramUniformMatrix4dv
(int program, 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.static void
glProgramUniformMatrix4fv
(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix4fv
static void
glProgramUniformMatrix4fv
(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat4 uniform variable or a mat4 uniform variable array for the current program object.static void
glProgramUniformMatrix4x2dv
(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix4x2dv
static void
glProgramUniformMatrix4x2dv
(int program, 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.static void
glProgramUniformMatrix4x2fv
(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix4x2fv
static void
glProgramUniformMatrix4x2fv
(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat4x2 uniform variable or a mat4x2 uniform variable array for the current program object.static void
glProgramUniformMatrix4x3dv
(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix4x3dv
static void
glProgramUniformMatrix4x3dv
(int program, 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.static void
glProgramUniformMatrix4x3fv
(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix4x3fv
static void
glProgramUniformMatrix4x3fv
(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat4x3 uniform variable or a mat4x3 uniform variable array for the current program object.static void
glUseProgramStages
(int pipeline, int stages, int program) Binds stages of a program object to a program pipeline.static void
glValidateProgramPipeline
(int pipeline) Validates a program pipeline object against current GL state.static int
nglCreateShaderProgramv
(int type, int count, long strings) Unsafe version of:CreateShaderProgramv
static void
nglDeleteProgramPipelines
(int n, long pipelines) Unsafe version of:DeleteProgramPipelines
static void
nglGenProgramPipelines
(int n, long pipelines) Unsafe version of:GenProgramPipelines
static void
nglGetProgramPipelineInfoLog
(int pipeline, int bufSize, long length, long infoLog) Unsafe version of:GetProgramPipelineInfoLog
static void
nglGetProgramPipelineiv
(int pipeline, int pname, long params) Unsafe version of:GetProgramPipelineiv
static void
nglProgramUniform1dv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform1dv
static void
nglProgramUniform1fv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform1fv
static void
nglProgramUniform1iv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform1iv
static void
nglProgramUniform1uiv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform1uiv
static void
nglProgramUniform2dv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform2dv
static void
nglProgramUniform2fv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform2fv
static void
nglProgramUniform2iv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform2iv
static void
nglProgramUniform2uiv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform2uiv
static void
nglProgramUniform3dv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform3dv
static void
nglProgramUniform3fv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform3fv
static void
nglProgramUniform3iv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform3iv
static void
nglProgramUniform3uiv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform3uiv
static void
nglProgramUniform4dv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform4dv
static void
nglProgramUniform4fv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform4fv
static void
nglProgramUniform4iv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform4iv
static void
nglProgramUniform4uiv
(int program, int location, int count, long value) Unsafe version of:ProgramUniform4uiv
static void
nglProgramUniformMatrix2dv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2dv
static void
nglProgramUniformMatrix2fv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2fv
static void
nglProgramUniformMatrix2x3dv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2x3dv
static void
nglProgramUniformMatrix2x3fv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2x3fv
static void
nglProgramUniformMatrix2x4dv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2x4dv
static void
nglProgramUniformMatrix2x4fv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2x4fv
static void
nglProgramUniformMatrix3dv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3dv
static void
nglProgramUniformMatrix3fv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3fv
static void
nglProgramUniformMatrix3x2dv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3x2dv
static void
nglProgramUniformMatrix3x2fv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3x2fv
static void
nglProgramUniformMatrix3x4dv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3x4dv
static void
nglProgramUniformMatrix3x4fv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3x4fv
static void
nglProgramUniformMatrix4dv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4dv
static void
nglProgramUniformMatrix4fv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4fv
static void
nglProgramUniformMatrix4x2dv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4x2dv
static void
nglProgramUniformMatrix4x2fv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4x2fv
static void
nglProgramUniformMatrix4x3dv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4x3dv
static void
nglProgramUniformMatrix4x3fv
(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4x3fv
-
Field Details
-
GL_VERTEX_SHADER_BIT
public static final int GL_VERTEX_SHADER_BITAccepted bystages
parameter to UseProgramStages.- See Also:
-
GL_FRAGMENT_SHADER_BIT
public static final int GL_FRAGMENT_SHADER_BITAccepted bystages
parameter to UseProgramStages.- See Also:
-
GL_GEOMETRY_SHADER_BIT
public static final int GL_GEOMETRY_SHADER_BITAccepted bystages
parameter to UseProgramStages.- See Also:
-
GL_TESS_CONTROL_SHADER_BIT
public static final int GL_TESS_CONTROL_SHADER_BITAccepted bystages
parameter to UseProgramStages.- See Also:
-
GL_TESS_EVALUATION_SHADER_BIT
public static final int GL_TESS_EVALUATION_SHADER_BITAccepted bystages
parameter to UseProgramStages.- See Also:
-
GL_ALL_SHADER_BITS
public static final int GL_ALL_SHADER_BITSAccepted bystages
parameter to UseProgramStages.- See Also:
-
GL_PROGRAM_SEPARABLE
public static final int GL_PROGRAM_SEPARABLEAccepted by thepname
parameter of ProgramParameteri and GetProgramiv.- See Also:
-
GL_ACTIVE_PROGRAM
public static final int GL_ACTIVE_PROGRAMAccepted bytype
parameter to GetProgramPipelineiv.- See Also:
-
GL_PROGRAM_PIPELINE_BINDING
public static final int GL_PROGRAM_PIPELINE_BINDINGAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.- See Also:
-
-
Method Details
-
glUseProgramStages
public static void glUseProgramStages(int pipeline, int stages, int program) Binds stages of a program object to a program pipeline.- Parameters:
pipeline
- the program pipeline object to which to bind stages fromprogram
stages
- a set of program stages to bind to the program pipeline objectprogram
- the program object containing the shader executables to use inpipeline
-
glActiveShaderProgram
public static void glActiveShaderProgram(int pipeline, int program) Sets the active program object for a program pipeline object.- Parameters:
pipeline
- the program pipeline object to set the active program object forprogram
- the program object to set as the active program pipeline objectpipeline
-
nglCreateShaderProgramv
public static int nglCreateShaderProgramv(int type, int count, long strings) Unsafe version of:CreateShaderProgramv
- Parameters:
count
- the number of source code strings in the arraystrings
-
glCreateShaderProgramv
Creates a stand-alone program from an array of null-terminated source code strings.glCreateShaderProgram
is equivalent (assuming no errors are generated) to:const GLuint shader = glCreateShader(type); if (shader) { glShaderSource(shader, count, strings, NULL); glCompileShader(shader); const GLuint program = glCreateProgram(); if (program) { GLint compiled = GL_FALSE; glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); glProgramParameteri(program, GL_PROGRAM_SEPARABLE, GL_TRUE); if (compiled) { glAttachShader(program, shader); glLinkProgram(program); glDetachShader(program, shader); } // append-shader-info-log-to-program-info-log } glDeleteShader(shader); return program; } else { return 0; }
The program object created by glCreateShaderProgram has its GL_PROGRAM_SEPARABLE status set to GL_TRUE.
- Parameters:
type
- the type of shader to createstrings
- an array of pointers to source code strings from which to create the program object
-
glCreateShaderProgramv
Creates a stand-alone program from an array of null-terminated source code strings.glCreateShaderProgram
is equivalent (assuming no errors are generated) to:const GLuint shader = glCreateShader(type); if (shader) { glShaderSource(shader, count, strings, NULL); glCompileShader(shader); const GLuint program = glCreateProgram(); if (program) { GLint compiled = GL_FALSE; glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); glProgramParameteri(program, GL_PROGRAM_SEPARABLE, GL_TRUE); if (compiled) { glAttachShader(program, shader); glLinkProgram(program); glDetachShader(program, shader); } // append-shader-info-log-to-program-info-log } glDeleteShader(shader); return program; } else { return 0; }
The program object created by glCreateShaderProgram has its GL_PROGRAM_SEPARABLE status set to GL_TRUE.
- Parameters:
type
- the type of shader to createstrings
- an array of pointers to source code strings from which to create the program object
-
glCreateShaderProgramv
Creates a stand-alone program from an array of null-terminated source code strings.glCreateShaderProgram
is equivalent (assuming no errors are generated) to:const GLuint shader = glCreateShader(type); if (shader) { glShaderSource(shader, count, strings, NULL); glCompileShader(shader); const GLuint program = glCreateProgram(); if (program) { GLint compiled = GL_FALSE; glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); glProgramParameteri(program, GL_PROGRAM_SEPARABLE, GL_TRUE); if (compiled) { glAttachShader(program, shader); glLinkProgram(program); glDetachShader(program, shader); } // append-shader-info-log-to-program-info-log } glDeleteShader(shader); return program; } else { return 0; }
The program object created by glCreateShaderProgram has its GL_PROGRAM_SEPARABLE status set to GL_TRUE.
- Parameters:
type
- the type of shader to create
-
glBindProgramPipeline
public static void glBindProgramPipeline(int pipeline) Binds a program pipeline to the current context.- Parameters:
pipeline
- the name of the pipeline object to bind to the context
-
nglDeleteProgramPipelines
public static void nglDeleteProgramPipelines(int n, long pipelines) Unsafe version of:DeleteProgramPipelines
- Parameters:
n
- the number of program pipeline objects to delete
-
glDeleteProgramPipelines
Deletes program pipeline objects.- Parameters:
pipelines
- an array of names of program pipeline objects to delete
-
glDeleteProgramPipelines
public static void glDeleteProgramPipelines(int pipeline) Deletes program pipeline objects. -
nglGenProgramPipelines
public static void nglGenProgramPipelines(int n, long pipelines) Unsafe version of:GenProgramPipelines
- Parameters:
n
- the number of program pipeline object names to reserve
-
glGenProgramPipelines
Reserves program pipeline object names.- Parameters:
pipelines
- an array of into which the reserved names will be written
-
glGenProgramPipelines
public static int glGenProgramPipelines()Reserves program pipeline object names. -
glIsProgramPipeline
public static boolean glIsProgramPipeline(int pipeline) Determines if a name corresponds to a program pipeline object.- Parameters:
pipeline
- a value that may be the name of a program pipeline object
-
glProgramParameteri
public static void glProgramParameteri(int program, int pname, int value) Specifies the integer value of a program object parameter.- Parameters:
program
- the name of a program object whose parameter to modifypname
- the name of the parameter to modify. One of:PROGRAM_BINARY_RETRIEVABLE_HINT
PROGRAM_SEPARABLE
value
- the new value of the parameter specified bypname
forprogram
-
nglGetProgramPipelineiv
public static void nglGetProgramPipelineiv(int pipeline, int pname, long params) Unsafe version of:GetProgramPipelineiv
-
glGetProgramPipelineiv
Retrieves properties of a program pipeline object.- Parameters:
pipeline
- the name of a program pipeline object whose parameter retrievepname
- the name of the parameter to retrieve. One of:ACTIVE_PROGRAM
INFO_LOG_LENGTH
VERTEX_SHADER
FRAGMENT_SHADER
GEOMETRY_SHADER
TESS_CONTROL_SHADER
TESS_EVALUATION_SHADER
params
- a variable into which will be written the value or values ofpname
forpipeline
-
glGetProgramPipelinei
public static int glGetProgramPipelinei(int pipeline, int pname) Retrieves properties of a program pipeline object.- Parameters:
pipeline
- the name of a program pipeline object whose parameter retrievepname
- the name of the parameter to retrieve. One of:ACTIVE_PROGRAM
INFO_LOG_LENGTH
VERTEX_SHADER
FRAGMENT_SHADER
GEOMETRY_SHADER
TESS_CONTROL_SHADER
TESS_EVALUATION_SHADER
-
glProgramUniform1i
public static void glProgramUniform1i(int program, int location, int x) Specifies the value of an int uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x value
-
glProgramUniform2i
public static void glProgramUniform2i(int program, int location, int x, int y) Specifies the value of an ivec2 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y value
-
glProgramUniform3i
public static void glProgramUniform3i(int program, int location, int x, int y, int z) Specifies the value of an ivec3 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y valuez
- the uniform z value
-
glProgramUniform4i
public static void glProgramUniform4i(int program, int location, int x, int y, int z, int w) Specifies the value of an ivec4 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y valuez
- the uniform z valuew
- the uniform w value
-
glProgramUniform1ui
public static void glProgramUniform1ui(int program, int location, int x) Specifies the value of a uint uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x value
-
glProgramUniform2ui
public static void glProgramUniform2ui(int program, int location, int x, int y) Specifies the value of a uvec2 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y value
-
glProgramUniform3ui
public static void glProgramUniform3ui(int program, int location, int x, int y, int z) Specifies the value of a uvec3 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y valuez
- the uniform z value
-
glProgramUniform4ui
public static void glProgramUniform4ui(int program, int location, int x, int y, int z, int w) Specifies the value of a uvec4 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y valuez
- the uniform z valuew
- the uniform w value
-
glProgramUniform1f
public static void glProgramUniform1f(int program, int location, float x) Specifies the value of a float uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x value
-
glProgramUniform2f
public static void glProgramUniform2f(int program, int location, float x, float y) Specifies the value of a vec2 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y value
-
glProgramUniform3f
public static void glProgramUniform3f(int program, int location, float x, float y, float z) Specifies the value of a vec3 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y valuez
- the uniform z value
-
glProgramUniform4f
public static void glProgramUniform4f(int program, int location, float x, float y, float z, float w) Specifies the value of a vec4 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y valuez
- the uniform z valuew
- the uniform w value
-
glProgramUniform1d
public static void glProgramUniform1d(int program, int location, double x) Specifies the value of a double uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x value
-
glProgramUniform2d
public static void glProgramUniform2d(int program, int location, double x, double y) Specifies the value of a dvec2 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y value
-
glProgramUniform3d
public static void glProgramUniform3d(int program, int location, double x, double y, double z) Specifies the value of a dvec3 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y valuez
- the uniform z value
-
glProgramUniform4d
public static void glProgramUniform4d(int program, int location, double x, double y, double z, double w) Specifies the value of a dvec4 uniform variable for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedx
- the uniform x valuey
- the uniform y valuez
- the uniform z valuew
- the uniform w value
-
nglProgramUniform1iv
public static void nglProgramUniform1iv(int program, int location, int count, long value) Unsafe version of:ProgramUniform1iv
- 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.
-
glProgramUniform1iv
Specifies the value of a single float uniform variable or a float uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform2iv
public static void nglProgramUniform2iv(int program, int location, int count, long value) Unsafe version of:ProgramUniform2iv
- 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.
-
glProgramUniform2iv
Specifies the value of a single ivec2 uniform variable or an ivec2 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform3iv
public static void nglProgramUniform3iv(int program, int location, int count, long value) Unsafe version of:ProgramUniform3iv
- 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.
-
glProgramUniform3iv
Specifies the value of a single ivec3 uniform variable or an ivec3 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform4iv
public static void nglProgramUniform4iv(int program, int location, int count, long value) Unsafe version of:ProgramUniform4iv
- 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.
-
glProgramUniform4iv
Specifies the value of a single ivec4 uniform variable or an ivec4 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform1uiv
public static void nglProgramUniform1uiv(int program, int location, int count, long value) Unsafe version of:ProgramUniform1uiv
- 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.
-
glProgramUniform1uiv
Specifies the value of a single uint uniform variable or a uint uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform2uiv
public static void nglProgramUniform2uiv(int program, int location, int count, long value) Unsafe version of:ProgramUniform2uiv
- 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.
-
glProgramUniform2uiv
Specifies the value of a single uvec2 uniform variable or a uvec2 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform3uiv
public static void nglProgramUniform3uiv(int program, int location, int count, long value) Unsafe version of:ProgramUniform3uiv
- 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.
-
glProgramUniform3uiv
Specifies the value of a single uvec3 uniform variable or a uvec3 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform4uiv
public static void nglProgramUniform4uiv(int program, int location, int count, long value) Unsafe version of:ProgramUniform4uiv
- 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.
-
glProgramUniform4uiv
Specifies the value of a single uvec4 uniform variable or a uvec4 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform1fv
public static void nglProgramUniform1fv(int program, int location, int count, long value) Unsafe version of:ProgramUniform1fv
- 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.
-
glProgramUniform1fv
Specifies the value of a single float uniform variable or a float uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform2fv
public static void nglProgramUniform2fv(int program, int location, int count, long value) Unsafe version of:ProgramUniform2fv
- 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.
-
glProgramUniform2fv
Specifies the value of a single vec2 uniform variable or a vec2 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform3fv
public static void nglProgramUniform3fv(int program, int location, int count, long value) Unsafe version of:ProgramUniform3fv
- 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.
-
glProgramUniform3fv
Specifies the value of a single vec3 uniform variable or a vec3 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform4fv
public static void nglProgramUniform4fv(int program, int location, int count, long value) Unsafe version of:ProgramUniform4fv
- 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.
-
glProgramUniform4fv
Specifies the value of a single vec4 uniform variable or a vec4 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform1dv
public static void nglProgramUniform1dv(int program, int location, int count, long value) Unsafe version of:ProgramUniform1dv
- 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.
-
glProgramUniform1dv
Specifies the value of a single double uniform variable or a double uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform2dv
public static void nglProgramUniform2dv(int program, int location, int count, long value) Unsafe version of:ProgramUniform2dv
- 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.
-
glProgramUniform2dv
Specifies the value of a single dvec2 uniform variable or a dvec2 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform3dv
public static void nglProgramUniform3dv(int program, int location, int count, long value) Unsafe version of:ProgramUniform3dv
- 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.
-
glProgramUniform3dv
Specifies the value of a single dvec3 uniform variable or a dvec3 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniform4dv
public static void nglProgramUniform4dv(int program, int location, int count, long value) Unsafe version of:ProgramUniform4dv
- 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.
-
glProgramUniform4dv
Specifies the value of a single dvec4 uniform variable or a dvec4 uniform variable array for a specified program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedvalue
- an array ofcount
values that will be used to update the specified uniform variable
-
nglProgramUniformMatrix2fv
public static void nglProgramUniformMatrix2fv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2fv
- 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.
-
glProgramUniformMatrix2fv
public static void glProgramUniformMatrix2fv(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat2 uniform variable or a mat2 uniform variable array for the current program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix3fv
public static void nglProgramUniformMatrix3fv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3fv
- 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.
-
glProgramUniformMatrix3fv
public static void glProgramUniformMatrix3fv(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat3 uniform variable or a mat3 uniform variable array for the current program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix4fv
public static void nglProgramUniformMatrix4fv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4fv
- 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.
-
glProgramUniformMatrix4fv
public static void glProgramUniformMatrix4fv(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat4 uniform variable or a mat4 uniform variable array for the current program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix2dv
public static void nglProgramUniformMatrix2dv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2dv
- 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.
-
glProgramUniformMatrix2dv
public static void glProgramUniformMatrix2dv(int program, 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:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix3dv
public static void nglProgramUniformMatrix3dv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3dv
- 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.
-
glProgramUniformMatrix3dv
public static void glProgramUniformMatrix3dv(int program, 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:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix4dv
public static void nglProgramUniformMatrix4dv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4dv
- 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.
-
glProgramUniformMatrix4dv
public static void glProgramUniformMatrix4dv(int program, 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:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix2x3fv
public static void nglProgramUniformMatrix2x3fv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2x3fv
- 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.
-
glProgramUniformMatrix2x3fv
public static void glProgramUniformMatrix2x3fv(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat2x3 uniform variable or a mat2x3 uniform variable array for the current program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix3x2fv
public static void nglProgramUniformMatrix3x2fv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3x2fv
- 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.
-
glProgramUniformMatrix3x2fv
public static void glProgramUniformMatrix3x2fv(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat3x2 uniform variable or a mat3x2 uniform variable array for the current program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix2x4fv
public static void nglProgramUniformMatrix2x4fv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2x4fv
- 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.
-
glProgramUniformMatrix2x4fv
public static void glProgramUniformMatrix2x4fv(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat2x4 uniform variable or a mat2x4 uniform variable array for the current program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix4x2fv
public static void nglProgramUniformMatrix4x2fv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4x2fv
- 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.
-
glProgramUniformMatrix4x2fv
public static void glProgramUniformMatrix4x2fv(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat4x2 uniform variable or a mat4x2 uniform variable array for the current program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix3x4fv
public static void nglProgramUniformMatrix3x4fv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3x4fv
- 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.
-
glProgramUniformMatrix3x4fv
public static void glProgramUniformMatrix3x4fv(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat3x4 uniform variable or a mat3x4 uniform variable array for the current program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix4x3fv
public static void nglProgramUniformMatrix4x3fv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4x3fv
- 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.
-
glProgramUniformMatrix4x3fv
public static void glProgramUniformMatrix4x3fv(int program, int location, boolean transpose, FloatBuffer value) Specifies the value of a single mat4x3 uniform variable or a mat4x3 uniform variable array for the current program object.- Parameters:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix2x3dv
public static void nglProgramUniformMatrix2x3dv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2x3dv
- 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.
-
glProgramUniformMatrix2x3dv
public static void glProgramUniformMatrix2x3dv(int program, 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:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix3x2dv
public static void nglProgramUniformMatrix3x2dv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3x2dv
- 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.
-
glProgramUniformMatrix3x2dv
public static void glProgramUniformMatrix3x2dv(int program, 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:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix2x4dv
public static void nglProgramUniformMatrix2x4dv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix2x4dv
- 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.
-
glProgramUniformMatrix2x4dv
public static void glProgramUniformMatrix2x4dv(int program, 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:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix4x2dv
public static void nglProgramUniformMatrix4x2dv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4x2dv
- 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.
-
glProgramUniformMatrix4x2dv
public static void glProgramUniformMatrix4x2dv(int program, 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:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix3x4dv
public static void nglProgramUniformMatrix3x4dv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix3x4dv
- 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.
-
glProgramUniformMatrix3x4dv
public static void glProgramUniformMatrix3x4dv(int program, 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:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
nglProgramUniformMatrix4x3dv
public static void nglProgramUniformMatrix4x3dv(int program, int location, int count, boolean transpose, long value) Unsafe version of:ProgramUniformMatrix4x3dv
- 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.
-
glProgramUniformMatrix4x3dv
public static void glProgramUniformMatrix4x3dv(int program, 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:
program
- the handle of the program containing the uniform variable to be modifiedlocation
- the location of the uniform variable to be modifiedtranspose
- whether to transpose the matrix as the values are loaded into the uniform variablevalue
- an array ofcount
values that will be used to update the specified uniform matrix variable
-
glValidateProgramPipeline
public static void glValidateProgramPipeline(int pipeline) Validates a program pipeline object against current GL state.- Parameters:
pipeline
- the name of a program pipeline object to validate
-
nglGetProgramPipelineInfoLog
public static void nglGetProgramPipelineInfoLog(int pipeline, int bufSize, long length, long infoLog) Unsafe version of:GetProgramPipelineInfoLog
- Parameters:
bufSize
- the maximum number of characters, including the null terminator, that may be written intoinfoLog
-
glGetProgramPipelineInfoLog
public static void glGetProgramPipelineInfoLog(int pipeline, @Nullable IntBuffer length, ByteBuffer infoLog) Retrieves the info log string from a program pipeline object.- Parameters:
pipeline
- the name of a program pipeline object from which to retrieve the info loglength
- a variable into which will be written the number of characters written intoinfoLog
infoLog
- an array of characters into which will be written the info log forpipeline
-
glGetProgramPipelineInfoLog
Retrieves the info log string from a program pipeline object.- Parameters:
pipeline
- the name of a program pipeline object from which to retrieve the info logbufSize
- the maximum number of characters, including the null terminator, that may be written intoinfoLog
-
glGetProgramPipelineInfoLog
Retrieves the info log string from a program pipeline object.- Parameters:
pipeline
- the name of a program pipeline object from which to retrieve the info log
-
glDeleteProgramPipelines
public static void glDeleteProgramPipelines(int[] pipelines) Array version of:DeleteProgramPipelines
-
glGenProgramPipelines
public static void glGenProgramPipelines(int[] pipelines) Array version of:GenProgramPipelines
-
glGetProgramPipelineiv
public static void glGetProgramPipelineiv(int pipeline, int pname, int[] params) Array version of:GetProgramPipelineiv
-
glProgramUniform1iv
public static void glProgramUniform1iv(int program, int location, int[] value) Array version of:ProgramUniform1iv
-
glProgramUniform2iv
public static void glProgramUniform2iv(int program, int location, int[] value) Array version of:ProgramUniform2iv
-
glProgramUniform3iv
public static void glProgramUniform3iv(int program, int location, int[] value) Array version of:ProgramUniform3iv
-
glProgramUniform4iv
public static void glProgramUniform4iv(int program, int location, int[] value) Array version of:ProgramUniform4iv
-
glProgramUniform1uiv
public static void glProgramUniform1uiv(int program, int location, int[] value) Array version of:ProgramUniform1uiv
-
glProgramUniform2uiv
public static void glProgramUniform2uiv(int program, int location, int[] value) Array version of:ProgramUniform2uiv
-
glProgramUniform3uiv
public static void glProgramUniform3uiv(int program, int location, int[] value) Array version of:ProgramUniform3uiv
-
glProgramUniform4uiv
public static void glProgramUniform4uiv(int program, int location, int[] value) Array version of:ProgramUniform4uiv
-
glProgramUniform1fv
public static void glProgramUniform1fv(int program, int location, float[] value) Array version of:ProgramUniform1fv
-
glProgramUniform2fv
public static void glProgramUniform2fv(int program, int location, float[] value) Array version of:ProgramUniform2fv
-
glProgramUniform3fv
public static void glProgramUniform3fv(int program, int location, float[] value) Array version of:ProgramUniform3fv
-
glProgramUniform4fv
public static void glProgramUniform4fv(int program, int location, float[] value) Array version of:ProgramUniform4fv
-
glProgramUniform1dv
public static void glProgramUniform1dv(int program, int location, double[] value) Array version of:ProgramUniform1dv
-
glProgramUniform2dv
public static void glProgramUniform2dv(int program, int location, double[] value) Array version of:ProgramUniform2dv
-
glProgramUniform3dv
public static void glProgramUniform3dv(int program, int location, double[] value) Array version of:ProgramUniform3dv
-
glProgramUniform4dv
public static void glProgramUniform4dv(int program, int location, double[] value) Array version of:ProgramUniform4dv
-
glProgramUniformMatrix2fv
public static void glProgramUniformMatrix2fv(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix2fv
-
glProgramUniformMatrix3fv
public static void glProgramUniformMatrix3fv(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix3fv
-
glProgramUniformMatrix4fv
public static void glProgramUniformMatrix4fv(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix4fv
-
glProgramUniformMatrix2dv
public static void glProgramUniformMatrix2dv(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix2dv
-
glProgramUniformMatrix3dv
public static void glProgramUniformMatrix3dv(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix3dv
-
glProgramUniformMatrix4dv
public static void glProgramUniformMatrix4dv(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix4dv
-
glProgramUniformMatrix2x3fv
public static void glProgramUniformMatrix2x3fv(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix2x3fv
-
glProgramUniformMatrix3x2fv
public static void glProgramUniformMatrix3x2fv(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix3x2fv
-
glProgramUniformMatrix2x4fv
public static void glProgramUniformMatrix2x4fv(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix2x4fv
-
glProgramUniformMatrix4x2fv
public static void glProgramUniformMatrix4x2fv(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix4x2fv
-
glProgramUniformMatrix3x4fv
public static void glProgramUniformMatrix3x4fv(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix3x4fv
-
glProgramUniformMatrix4x3fv
public static void glProgramUniformMatrix4x3fv(int program, int location, boolean transpose, float[] value) Array version of:ProgramUniformMatrix4x3fv
-
glProgramUniformMatrix2x3dv
public static void glProgramUniformMatrix2x3dv(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix2x3dv
-
glProgramUniformMatrix3x2dv
public static void glProgramUniformMatrix3x2dv(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix3x2dv
-
glProgramUniformMatrix2x4dv
public static void glProgramUniformMatrix2x4dv(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix2x4dv
-
glProgramUniformMatrix4x2dv
public static void glProgramUniformMatrix4x2dv(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix4x2dv
-
glProgramUniformMatrix3x4dv
public static void glProgramUniformMatrix3x4dv(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix3x4dv
-
glProgramUniformMatrix4x3dv
public static void glProgramUniformMatrix4x3dv(int program, int location, boolean transpose, double[] value) Array version of:ProgramUniformMatrix4x3dv
-
glGetProgramPipelineInfoLog
public static void glGetProgramPipelineInfoLog(int pipeline, @Nullable int[] length, ByteBuffer infoLog) Array version of:GetProgramPipelineInfoLog
-