glGetProgramResourceLocation - query the location of a named resource
within a program
GLint glGetProgramResourceLocation(GLuint program,
const char * name);
The name of a program object whose resources to query.
A token identifying the interface within program containing the
resource named name.
The name of the resource to query the location of.
glGetProgramResourceLocation returns the location assigned to the
variable named name in interface programInterface of program object
program. program must be the name of a program that has been linked
successfully. programInterface must be one of GL_UNIFORM,
GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT, GL_VERTEX_SUBROUTINE_UNIFORM,
GL_FRAGMENT_SUBROUTINE_UNIFORM, GL_COMPUTE_SUBROUTINE_UNIFORM, or
The value -1 will be returned if an error occurs, if name does not
identify an active variable on programInterface, or if name identifies
an active variable that does not have a valid location assigned, as
described above. The locations returned by these commands are the same
locations returned when querying the GL_LOCATION and GL_LOCATION_INDEX
A string provided to glGetProgramResourceLocation is considered to
match an active variable if:
· the string exactly matches the name of the active variable
· if the string identifies the base name of an active array, where
the string would exactly match the name of the variable if the
suffix "" were appended to the string
· if the string identifies an active element of the array, where the
string ends with the concatenation of the "[" character, an integer
with no "+" sign, extra leading zeroes, or whitespace identifying
an array element, and the "]" character, the integer is less than
the number of active elements of the array variable, and where the
string would exactly match the enumerated name of the array if the
decimal integer were replaced with zero.
Any other string is considered not to identify an active variable. If
the string specifies an element of an array variable,
glGetProgramResourceLocation returns the location assigned to that
element. If it specifies the base name of an array, it identifies the
resources associated with the first element of the array.
GL_INVALID_VALUE is generated if program is not the name of an existing
GL_INVALID_ENUM is generated if programInterface is not one of the
accepted interface types.
GL_INVALID_OPERATION is generated if program has not been linked
Copyright © 2012 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. http://opencontent.org/openpub/.