glGetUniform — Returns the value of a uniform variable
void glGetUniformfv( | GLuint | program, |
GLint | location, | |
GLfloat * | params) ; |
void glGetUniformiv( | GLuint | program, |
GLint | location, | |
GLint * | params) ; |
program
Specifies the program object to be queried.
location
Specifies the location of the uniform variable to be queried.
params
Returns the value of the specified uniform variable.
glGetUniform
returns in params
the value(s) of the specified uniform variable. The type of the uniform variable specified by location
determines the number of values returned. If the uniform variable is defined in the shader as a boolean, int, or float, a single value will be returned. If it is defined as a vec2, ivec2, or bvec2, two values will be returned. If it is defined as a vec3, ivec3, or bvec3, three values will be returned, and so on. To query values stored in uniform variables declared as arrays, call glGetUniform
for each element of the array. To query values stored in uniform variables declared as structures, call glGetUniform
for each field in the structure. The values for uniform variables declared as a matrix will be returned in column major order.
The locations assigned to uniform variables are not known until the program object is linked. After linking has occurred, the command glGetUniformLocation can be used to obtain the location of a uniform variable. This location value can then be passed to glGetUniform
in order to query the current value of the uniform variable. After a program object has been linked successfully, the index values for uniform variables remain fixed until the next link command occurs. The uniform variable values can only be queried after a link if the link was successful.
glGetUniform
is available only if the GL version is 2.0 or greater.
If an error is generated, no change is made to the contents of params
.
GL_INVALID_VALUE
is generated if program
is not a value generated by OpenGL.
GL_INVALID_OPERATION
is generated if program
is not a program object.
GL_INVALID_OPERATION
is generated if program
has not been successfully linked.
GL_INVALID_OPERATION
is generated if location
does not correspond to a valid uniform variable location for the specified program object.
GL_INVALID_OPERATION
is generated if glGetUniform
is executed between the execution of glBegin and the corresponding execution of glEnd.
glGetActiveUniform with arguments program
and the index of an active uniform variable
glGetProgram with arguments program
and GL_ACTIVE_UNIFORMS
or GL_ACTIVE_UNIFORM_MAX_LENGTH
glGetUniformLocation with arguments program
and the name of a uniform variable
Copyright © 2003-2005 3Dlabs Inc. Ltd. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. https://opencontent.org/openpub/.