glGetSubroutineUniformLocation — retrieve the location of a subroutine uniform of a given shader stage within a program
GLint glGetSubroutineUniformLocation(
|
GLuint program, |
GLenum shadertype, | |
const GLchar *name) ; |
program
Specifies the name of the program containing shader stage.
shadertype
Specifies the shader stage from which to query for subroutine uniform index.
shadertype
must be one of GL_VERTEX_SHADER
, GL_TESS_CONTROL_SHADER
,
GL_TESS_EVALUATION_SHADER
, GL_GEOMETRY_SHADER
or
GL_FRAGMENT_SHADER
.
name
Specifies the name of the subroutine uniform whose index to query.
glGetSubroutineUniformLocation
returns the location of the subroutine uniform variable
name
in the shader stage of type shadertype
attached to
program
, with behavior otherwise identical to
glGetUniformLocation.
If name
is not the name of a subroutine uniform in the shader stage, -1
is returned, but no error is generated. If name
is the name of a subroutine uniform in the shader stage,
a value between zero and the value of GL_ACTIVE_SUBROUTINE_LOCATIONS
minus one will be returned.
Subroutine locations are assigned using consecutive integers in the range from zero to the value
of GL_ACTIVE_SUBROUTINE_LOCATIONS
minus one for the shader stage. For active subroutine uniforms
declared as arrays, the declared array elements are assigned consecutive locations.
GL_INVALID_ENUM
is generated if shadertype
or pname
is not one of the accepted values.
GL_INVALID_VALUE
is generated if program
is not the name of an
existing program object.
OpenGL Version | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5 |
glGetSubroutineUniformLocation
|
- | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetProgram, glGetActiveSubroutineUniform, glGetActiveSubroutineUniformName, glGetUniformLocation
Copyright © 2010-2014 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/.