glUniformSubroutines

From OpenGL Reference
Jump to navigation Jump to search

Load active subroutine uniforms.

C Specification[edit]

void glUniformSubroutinesuiv( GLenum shadertype, GLsizei count, const GLuint * indices );


Parameters[edit]

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 .
count - Specifies the number of uniform indices stored in indices .
indices - Specifies the address of an array holding the indices to load into the shader subroutine variables.


Description[edit]

 glUniformSubroutines loads all active subroutine uniforms for shader stage shadertype of the current program with subroutine indices from indices , storing indices[i] into the uniform at location i . count must be equal to the value of GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS for the program currently in use at shader stage shadertype . Furthermore, all values in indices must be less than the value of GL_ACTIVE_SUBROUTINES for the shader stage.


Errors[edit]

 GL_INVALID_OPERATION is generated if no program object is current.

 GL_INVALID_VALUE is generated if count is not equal to the value of GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS for the shader stage shadertype of the current program.

 GL_INVALID_VALUE is generated if any value in indices is geater than or equal to the value of GL_ACTIVE_SUBROUTINES for the shader stage shadertype of the current program.

 GL_INVALID_ENUM is generated if shadertype is not one of the accepted values.


Associated Gets[edit]

 glGetProgramStage with argument GL_ACTIVE_SUBROUTINES 

 glGetProgramStage with argument GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 


Version Support[edit]

 glUniformSubroutinesuiv  4.0+

See Also[edit]

 glGetProgram , glGetActiveSubroutineUniform , glGetActiveSubroutineUniformName , glGetProgramStage 


Copyright[edit]

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/.