Top Description Fields Constructors Methods
org.lwjgl.opengl

public Class ARBSeparateShaderObjects

extends Object
Class Inheritance
Imports
javax.annotation.*, java.nio.*, org.lwjgl.*, org.lwjgl.system.*

Native bindings to the ARB_separate_shader_objects extension.

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 TypeField and Description
public static final int
GL_ACTIVE_PROGRAM

Accepted by type parameter to GetProgramPipelineiv.

public static final int
GL_ALL_SHADER_BITS

Accepted by stages parameter to UseProgramStages.

public static final int
GL_FRAGMENT_SHADER_BIT

Accepted by stages parameter to UseProgramStages.

public static final int
GL_GEOMETRY_SHADER_BIT

Accepted by stages parameter to UseProgramStages.

public static final int
GL_PROGRAM_PIPELINE_BINDING

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.

public static final int
GL_PROGRAM_SEPARABLE

Accepted by the pname parameter of ProgramParameteri and GetProgramiv.

public static final int
GL_TESS_CONTROL_SHADER_BIT

Accepted by stages parameter to UseProgramStages.

public static final int
GL_TESS_EVALUATION_SHADER_BIT

Accepted by stages parameter to UseProgramStages.

public static final int
GL_VERTEX_SHADER_BIT

Accepted by stages parameter to UseProgramStages.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static void
glActiveShaderProgram(int
the program pipeline object to set the active program object for
pipeline
,
int
the program object to set as the active program pipeline object pipeline
program
)

Sets the active program object for a program pipeline object.

public static void
glBindProgramPipeline(int
the name of the pipeline object to bind to the context
pipeline
)

Binds a program pipeline to the current context.

public static int
glCreateShaderProgramv(int
the type of shader to create
type
,
PointerBuffer
an array of pointers to source code strings from which to create the program object
strings
)

Creates a stand-alone program from an array of null-terminated source code strings.

public static int
glCreateShaderProgramv(int
the type of shader to create
type
,
CharSequence...
an array of pointers to source code strings from which to create the program object
strings
)

Creates a stand-alone program from an array of null-terminated source code strings.

public static int
glCreateShaderProgramv(int
the type of shader to create
type
,
CharSequence string)

Creates a stand-alone program from an array of null-terminated source code strings.

public static void
glDeleteProgramPipelines(IntBuffer
an array of names of program pipeline objects to delete
pipelines
)

Deletes program pipeline objects.

public static void
glDeleteProgramPipelines(int pipeline)

Deletes program pipeline objects.

public static void
glDeleteProgramPipelines(int[] pipelines)

Array version of: DeleteProgramPipelines

public static void
glGenProgramPipelines(IntBuffer
an array of into which the reserved names will be written
pipelines
)

Reserves program pipeline object names.

public static int
glGenProgramPipelines()

Reserves program pipeline object names.

public static void
glGenProgramPipelines(int[] pipelines)

Array version of: GenProgramPipelines

public static int
glGetProgramPipelinei(int
the name of a program pipeline object whose parameter retrieve
pipeline
,
int pname)

Retrieves properties of a program pipeline object.

public static void
glGetProgramPipelineInfoLog(int
the name of a program pipeline object from which to retrieve the info log
pipeline
,
IntBuffer
a variable into which will be written the number of characters written into infoLog
length
,
ByteBuffer
an array of characters into which will be written the info log for pipeline
infoLog
)

Retrieves the info log string from a program pipeline object.

public static String
glGetProgramPipelineInfoLog(int
the name of a program pipeline object from which to retrieve the info log
pipeline
,
int
the maximum number of characters, including the null terminator, that may be written into infoLog
bufSize
)

Retrieves the info log string from a program pipeline object.

public static String
glGetProgramPipelineInfoLog(int
the name of a program pipeline object from which to retrieve the info log
pipeline
)

Retrieves the info log string from a program pipeline object.

public static void
glGetProgramPipelineInfoLog(int pipeline, int[] length, ByteBuffer infoLog)

Array version of: GetProgramPipelineInfoLog

public static void
glGetProgramPipelineiv(int
the name of a program pipeline object whose parameter retrieve
pipeline
,
int pname, IntBuffer
a variable into which will be written the value or values of pname for pipeline
params
)

Retrieves properties of a program pipeline object.

public static void
glGetProgramPipelineiv(int pipeline, int pname, int[] params)

Array version of: GetProgramPipelineiv

public static boolean
glIsProgramPipeline(int
a value that may be the name of a program pipeline object
pipeline
)

Determines if a name corresponds to a program pipeline object.

public static void
glProgramParameteri(int
the name of a program object whose parameter to modify
program
,
int
the name of the parameter to modify. One of:
PROGRAM_BINARY_RETRIEVABLE_HINTPROGRAM_SEPARABLE
pname
,
int
the new value of the parameter specified by pname for program
value
)

Specifies the integer value of a program object parameter.

public static void
glProgramUniform1d(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
)

Specifies the value of a double uniform variable for a specified program object.

public static void
glProgramUniform1dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
DoubleBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single double uniform variable or a double uniform variable array for a specified program object.

public static void
glProgramUniform1dv(int program, int location, double[] value)

Array version of: ProgramUniform1dv

public static void
glProgramUniform1f(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
float
the uniform x value
x
)

Specifies the value of a float uniform variable for a specified program object.

public static void
glProgramUniform1fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
FloatBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single float uniform variable or a float uniform variable array for a specified program object.

public static void
glProgramUniform1fv(int program, int location, float[] value)

Array version of: ProgramUniform1fv

public static void
glProgramUniform1i(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
int
the uniform x value
x
)

Specifies the value of an int uniform variable for a specified program object.

public static void
glProgramUniform1iv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
IntBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single float uniform variable or a float uniform variable array for a specified program object.

public static void
glProgramUniform1iv(int program, int location, int[] value)

Array version of: ProgramUniform1iv

public static void
glProgramUniform1ui(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
int
the uniform x value
x
)

Specifies the value of a uint uniform variable for a specified program object.

public static void
glProgramUniform1uiv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
IntBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single uint uniform variable or a uint uniform variable array for a specified program object.

public static void
glProgramUniform1uiv(int program, int location, int[] value)

Array version of: ProgramUniform1uiv

public static void
glProgramUniform2d(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
,
double
the uniform y value
y
)

Specifies the value of a dvec2 uniform variable for a specified program object.

public static void
glProgramUniform2dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
DoubleBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single dvec2 uniform variable or a dvec2 uniform variable array for a specified program object.

public static void
glProgramUniform2dv(int program, int location, double[] value)

Array version of: ProgramUniform2dv

public static void
glProgramUniform2f(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
float
the uniform x value
x
,
float
the uniform y value
y
)

Specifies the value of a vec2 uniform variable for a specified program object.

public static void
glProgramUniform2fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
FloatBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single vec2 uniform variable or a vec2 uniform variable array for a specified program object.

public static void
glProgramUniform2fv(int program, int location, float[] value)

Array version of: ProgramUniform2fv

public static void
glProgramUniform2i(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
int
the uniform x value
x
,
int
the uniform y value
y
)

Specifies the value of an ivec2 uniform variable for a specified program object.

public static void
glProgramUniform2iv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
IntBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single ivec2 uniform variable or an ivec2 uniform variable array for a specified program object.

public static void
glProgramUniform2iv(int program, int location, int[] value)

Array version of: ProgramUniform2iv

public static void
glProgramUniform2ui(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
int
the uniform x value
x
,
int
the uniform y value
y
)

Specifies the value of a uvec2 uniform variable for a specified program object.

public static void
glProgramUniform2uiv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
IntBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single uvec2 uniform variable or a uvec2 uniform variable array for a specified program object.

public static void
glProgramUniform2uiv(int program, int location, int[] value)

Array version of: ProgramUniform2uiv

public static void
glProgramUniform3d(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
,
double
the uniform y value
y
,
double
the uniform z value
z
)

Specifies the value of a dvec3 uniform variable for a specified program object.

public static void
glProgramUniform3dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
DoubleBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single dvec3 uniform variable or a dvec3 uniform variable array for a specified program object.

public static void
glProgramUniform3dv(int program, int location, double[] value)

Array version of: ProgramUniform3dv

public static void
glProgramUniform3f(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
float
the uniform x value
x
,
float
the uniform y value
y
,
float
the uniform z value
z
)

Specifies the value of a vec3 uniform variable for a specified program object.

public static void
glProgramUniform3fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
FloatBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single vec3 uniform variable or a vec3 uniform variable array for a specified program object.

public static void
glProgramUniform3fv(int program, int location, float[] value)

Array version of: ProgramUniform3fv

public static void
glProgramUniform3i(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
int
the uniform x value
x
,
int
the uniform y value
y
,
int
the uniform z value
z
)

Specifies the value of an ivec3 uniform variable for a specified program object.

public static void
glProgramUniform3iv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
IntBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single ivec3 uniform variable or an ivec3 uniform variable array for a specified program object.

public static void
glProgramUniform3iv(int program, int location, int[] value)

Array version of: ProgramUniform3iv

public static void
glProgramUniform3ui(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
int
the uniform x value
x
,
int
the uniform y value
y
,
int
the uniform z value
z
)

Specifies the value of a uvec3 uniform variable for a specified program object.

public static void
glProgramUniform3uiv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
IntBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single uvec3 uniform variable or a uvec3 uniform variable array for a specified program object.

public static void
glProgramUniform3uiv(int program, int location, int[] value)

Array version of: ProgramUniform3uiv

public static void
glProgramUniform4d(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
,
double
the uniform y value
y
,
double
the uniform z value
z
,
double
the uniform w value
w
)

Specifies the value of a dvec4 uniform variable for a specified program object.

public static void
glProgramUniform4dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
DoubleBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single dvec4 uniform variable or a dvec4 uniform variable array for a specified program object.

public static void
glProgramUniform4dv(int program, int location, double[] value)

Array version of: ProgramUniform4dv

public static void
glProgramUniform4f(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
float
the uniform x value
x
,
float
the uniform y value
y
,
float
the uniform z value
z
,
float
the uniform w value
w
)

Specifies the value of a vec4 uniform variable for a specified program object.

public static void
glProgramUniform4fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
FloatBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single vec4 uniform variable or a vec4 uniform variable array for a specified program object.

public static void
glProgramUniform4fv(int program, int location, float[] value)

Array version of: ProgramUniform4fv

public static void
glProgramUniform4i(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
int
the uniform x value
x
,
int
the uniform y value
y
,
int
the uniform z value
z
,
int
the uniform w value
w
)

Specifies the value of an ivec4 uniform variable for a specified program object.

public static void
glProgramUniform4iv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
IntBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single ivec4 uniform variable or an ivec4 uniform variable array for a specified program object.

public static void
glProgramUniform4iv(int program, int location, int[] value)

Array version of: ProgramUniform4iv

public static void
glProgramUniform4ui(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
int
the uniform x value
x
,
int
the uniform y value
y
,
int
the uniform z value
z
,
int
the uniform w value
w
)

Specifies the value of a uvec4 uniform variable for a specified program object.

public static void
glProgramUniform4uiv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
IntBuffer
an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single uvec4 uniform variable or a uvec4 uniform variable array for a specified program object.

public static void
glProgramUniform4uiv(int program, int location, int[] value)

Array version of: ProgramUniform4uiv

public static void
glProgramUniformMatrix2dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat2 uniform variable or a dmat2 uniform variable array for the current program object.

public static void
glProgramUniformMatrix2dv(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix2dv

public static void
glProgramUniformMatrix2fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
FloatBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single mat2 uniform variable or a mat2 uniform variable array for the current program object.

public static void
glProgramUniformMatrix2fv(int program, int location, boolean transpose, float[] value)

Array version of: ProgramUniformMatrix2fv

public static void
glProgramUniformMatrix2x3dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat2x3 uniform variable or a dmat2x3 uniform variable array for the current program object.

public static void
glProgramUniformMatrix2x3dv(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix2x3dv

public static void
glProgramUniformMatrix2x3fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
FloatBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single mat2x3 uniform variable or a mat2x3 uniform variable array for the current program object.

public static void
glProgramUniformMatrix2x3fv(int program, int location, boolean transpose, float[] value)

Array version of: ProgramUniformMatrix2x3fv

public static void
glProgramUniformMatrix2x4dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat2x4 uniform variable or a dmat2x4 uniform variable array for the current program object.

public static void
glProgramUniformMatrix2x4dv(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix2x4dv

public static void
glProgramUniformMatrix2x4fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
FloatBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single mat2x4 uniform variable or a mat2x4 uniform variable array for the current program object.

public static void
glProgramUniformMatrix2x4fv(int program, int location, boolean transpose, float[] value)

Array version of: ProgramUniformMatrix2x4fv

public static void
glProgramUniformMatrix3dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat3 uniform variable or a dmat3 uniform variable array for the current program object.

public static void
glProgramUniformMatrix3dv(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix3dv

public static void
glProgramUniformMatrix3fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
FloatBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single mat3 uniform variable or a mat3 uniform variable array for the current program object.

public static void
glProgramUniformMatrix3fv(int program, int location, boolean transpose, float[] value)

Array version of: ProgramUniformMatrix3fv

public static void
glProgramUniformMatrix3x2dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat3x2 uniform variable or a dmat3x2 uniform variable array for the current program object.

public static void
glProgramUniformMatrix3x2dv(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix3x2dv

public static void
glProgramUniformMatrix3x2fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
FloatBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single mat3x2 uniform variable or a mat3x2 uniform variable array for the current program object.

public static void
glProgramUniformMatrix3x2fv(int program, int location, boolean transpose, float[] value)

Array version of: ProgramUniformMatrix3x2fv

public static void
glProgramUniformMatrix3x4dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat3x4 uniform variable or a dmat3x4 uniform variable array for the current program object.

public static void
glProgramUniformMatrix3x4dv(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix3x4dv

public static void
glProgramUniformMatrix3x4fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
FloatBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single mat3x4 uniform variable or a mat3x4 uniform variable array for the current program object.

public static void
glProgramUniformMatrix3x4fv(int program, int location, boolean transpose, float[] value)

Array version of: ProgramUniformMatrix3x4fv

public static void
glProgramUniformMatrix4dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat4 uniform variable or a dmat4 uniform variable array for the current program object.

public static void
glProgramUniformMatrix4dv(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix4dv

public static void
glProgramUniformMatrix4fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
FloatBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single mat4 uniform variable or a mat4 uniform variable array for the current program object.

public static void
glProgramUniformMatrix4fv(int program, int location, boolean transpose, float[] value)

Array version of: ProgramUniformMatrix4fv

public static void
glProgramUniformMatrix4x2dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat4x2 uniform variable or a dmat4x2 uniform variable array for the current program object.

public static void
glProgramUniformMatrix4x2dv(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix4x2dv

public static void
glProgramUniformMatrix4x2fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
FloatBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single mat4x2 uniform variable or a mat4x2 uniform variable array for the current program object.

public static void
glProgramUniformMatrix4x2fv(int program, int location, boolean transpose, float[] value)

Array version of: ProgramUniformMatrix4x2fv

public static void
glProgramUniformMatrix4x3dv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat4x3 uniform variable or a dmat4x3 uniform variable array for the current program object.

public static void
glProgramUniformMatrix4x3dv(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix4x3dv

public static void
glProgramUniformMatrix4x3fv(int
the handle of the program containing the uniform variable to be modified
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
FloatBuffer
an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single mat4x3 uniform variable or a mat4x3 uniform variable array for the current program object.

public static void
glProgramUniformMatrix4x3fv(int program, int location, boolean transpose, float[] value)

Array version of: ProgramUniformMatrix4x3fv

public static void
glUseProgramStages(int
the program pipeline object to which to bind stages from program
pipeline
,
int
a set of program stages to bind to the program pipeline object
stages
,
int
the program object containing the shader executables to use in pipeline
program
)

Binds stages of a program object to a program pipeline.

public static void
glValidateProgramPipeline(int
the name of a program pipeline object to validate
pipeline
)

Validates a program pipeline object against current GL state.

public static int
nglCreateShaderProgramv(int type, int
the number of source code strings in the array strings
count
,
long strings)

Unsafe version of: CreateShaderProgramv

public static void
nglDeleteProgramPipelines(int
the number of program pipeline objects to delete
n
,
long pipelines)

Unsafe version of: DeleteProgramPipelines

public static void
nglGenProgramPipelines(int
the number of program pipeline object names to reserve
n
,
long pipelines)

Unsafe version of: GenProgramPipelines

public static void
nglGetProgramPipelineInfoLog(int pipeline, int
the maximum number of characters, including the null terminator, that may be written into infoLog
bufSize
,
long length, long infoLog)

Unsafe version of: GetProgramPipelineInfoLog

public static void
nglGetProgramPipelineiv(int pipeline, int pname, long params)

Unsafe version of: GetProgramPipelineiv

public static void
nglProgramUniform1dv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform1dv

public static void
nglProgramUniform1fv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform1fv

public static void
nglProgramUniform1iv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform1iv

public static void
nglProgramUniform1uiv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform1uiv

public static void
nglProgramUniform2dv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform2dv

public static void
nglProgramUniform2fv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform2fv

public static void
nglProgramUniform2iv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform2iv

public static void
nglProgramUniform2uiv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform2uiv

public static void
nglProgramUniform3dv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform3dv

public static void
nglProgramUniform3fv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform3fv

public static void
nglProgramUniform3iv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform3iv

public static void
nglProgramUniform3uiv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform3uiv

public static void
nglProgramUniform4dv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform4dv

public static void
nglProgramUniform4fv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform4fv

public static void
nglProgramUniform4iv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform4iv

public static void
nglProgramUniform4uiv(int program, int location, int
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.
count
,
long value)

Unsafe version of: ProgramUniform4uiv

public static void
nglProgramUniformMatrix2dv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix2dv

public static void
nglProgramUniformMatrix2fv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix2fv

public static void
nglProgramUniformMatrix2x3dv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix2x3dv

public static void
nglProgramUniformMatrix2x3fv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix2x3fv

public static void
nglProgramUniformMatrix2x4dv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix2x4dv

public static void
nglProgramUniformMatrix2x4fv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix2x4fv

public static void
nglProgramUniformMatrix3dv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix3dv

public static void
nglProgramUniformMatrix3fv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix3fv

public static void
nglProgramUniformMatrix3x2dv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix3x2dv

public static void
nglProgramUniformMatrix3x2fv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix3x2fv

public static void
nglProgramUniformMatrix3x4dv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix3x4dv

public static void
nglProgramUniformMatrix3x4fv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix3x4fv

public static void
nglProgramUniformMatrix4dv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix4dv

public static void
nglProgramUniformMatrix4fv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix4fv

public static void
nglProgramUniformMatrix4x2dv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix4x2dv

public static void
nglProgramUniformMatrix4x2fv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix4x2fv

public static void
nglProgramUniformMatrix4x3dv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix4x3dv

public static void
nglProgramUniformMatrix4x3fv(int program, int location, int
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.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix4x3fv

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait