glGetUniform — Returns the value of a uniform variable
void glGetUniformfv(
|
GLuint program, |
GLint location, | |
GLfloat *params) ; |
void glGetUniformiv(
|
GLuint program, |
GLint location, | |
GLint *params) ; |
void glGetUniformuiv(
|
GLuint program, |
GLint location, | |
GLuint *params) ; |
void glGetnUniformfv(
|
GLuint program, |
GLint location, | |
GLsizei bufSize, | |
GLfloat *params) ; |
void glGetnUniformiv(
|
GLuint program, |
GLint location, | |
GLsizei bufSize, | |
GLint *params) ; |
void glGetnUniformuiv(
|
GLuint program, |
GLint location, | |
GLsizei bufSize, | |
GLuint *params) ; |
program
Specifies the program object to be queried.
location
Specifies the location of the uniform variable to be queried.
bufSize
Specifies the size of the buffer
params
.
params
Returns the value of the specified uniform variable.
glGetUniform
and glGetnUniform
return 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, unsigned int, or float, a single value will be returned. If it
is defined as a vec2, ivec2, uvec2, or bvec2, two values will be
returned. If it is defined as a vec3, ivec3, uvec3, 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
or glGetnUniform
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.
The only difference between glGetUniform
and
glGetnUniform
is that
glGetnUniform
will generate an error if size of the
params
buffer, as described by
bufSize
, is not large enough to hold the result
data.
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 by
glGetnUniform
if the buffer size required to store
the requested data is greater than bufSize
.
glGetActiveUniform
with arguments program
and the index of an active
uniform variable
glGetProgramiv
with arguments program
and
GL_ACTIVE_UNIFORMS
or
GL_ACTIVE_UNIFORM_MAX_LENGTH
glGetUniformLocation
with arguments program
and the name of a
uniform variable
OpenGL ES API Version | ||||
---|---|---|---|---|
Function Name | 2.0 | 3.0 | 3.1 | 3.2 |
glGetUniformfv
|
✔ | ✔ | ✔ | ✔ |
glGetUniformiv
|
✔ | ✔ | ✔ | ✔ |
glGetUniformuiv
|
- | ✔ | ✔ | ✔ |
glGetnUniformfv
|
- | - | - | ✔ |
glGetnUniformiv
|
- | - | - | ✔ |
glGetnUniformuiv
|
- | - | - | ✔ |
Copyright © 2003-2005 3Dlabs Inc. Ltd. Copyright © 2010-2015 Khronos Group. 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/.