glGetUniform
3G
glGetUniform
glGetUniformfv
glGetUniformiv
Returns the value of a uniform variable
C Specification
void glGetUniformfv
GLuint program
GLint location
GLfloat *params
void glGetUniformiv
GLuint program
GLint location
GLint *params
Parameters
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.
Description
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.
Notes
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.
Errors
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.
Associated Gets
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
glIsProgram
See Also
glCreateProgram,
glLinkProgram,
glUniform
Copyright
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.
http://opencontent.org/openpub/.