2010 Khronos Group.
glUniformSubroutines 3G
glUniformSubroutines load active subroutine uniforms

## C Specification

void `glUniformSubroutinesuiv` GLenum shadertype GLsizei count const GLuint *indices

## Parameters

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

`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

`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

glGetProgramStage with argument `GL_ACTIVE_SUBROUTINES`

glGetProgramStage with argument `GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS`

## See Also

glGetProgram, glGetActiveSubroutineUniform, glGetActiveSubroutineUniformName, glGetProgramStage

## Copyright

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