GLAPI/glUniformSubroutines: Difference between revisions
m Renaming category: 'GL 4 API Shader Program Usage and State' to 'Core API Ref Shader Program Usage and State'. |
|||
(6 intermediate revisions by 2 users not shown) | |||
Line 9: | Line 9: | ||
== Function Definition == | == Function Definition == | ||
void '''glUniformSubroutinesuiv'''(GLenum | void '''glUniformSubroutinesuiv'''(GLenum {{param|shadertype}}, GLsizei {{param|count}}, const GLuint *{{param|indices}}); | ||
; shadertype | ; shadertype | ||
: Specifies the shader stage from which to query for subroutine uniform index. | : Specifies the shader stage from which to query for subroutine uniform index. {{param|shadertype}} must be one of {{enum|GL_VERTEX_SHADER}}, {{enum|GL_TESS_CONTROL_SHADER}}, {{enum|GL_TESS_EVALUATION_SHADER}}, {{enum|GL_GEOMETRY_SHADER}} or {{enum|GL_FRAGMENT_SHADER}}. | ||
; count | ; count | ||
: Specifies the number of uniform indices stored in | : Specifies the number of uniform indices stored in {{param|indices}}. | ||
; indices | ; indices | ||
: Specifies the address of an array holding the indices to load into the shader subroutine variables. | : Specifies the address of an array holding the indices to load into the shader subroutine variables. | ||
Line 20: | Line 20: | ||
== Description == | == Description == | ||
'''glUniformSubroutines''' loads all active subroutine uniforms for shader stage | '''glUniformSubroutines''' loads all active subroutine uniforms for shader stage {{param|shadertype}} of the current program with subroutine indices from {{param|indices}}, storing {{param|indices[i]}} into the uniform at location {{param|i}}. {{param|count}} must be equal to the value of {{enum|GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS}} for the program currently in use at shader stage {{param|shadertype}}. Furthermore, all values in {{param|indices}} must be less than the value of {{enum|GL_ACTIVE_SUBROUTINES}} for the shader stage. | ||
== Errors == | == Errors == | ||
{{ | {{enum|GL_INVALID_OPERATION}} is generated if no program object is current. | ||
{{ | {{enum|GL_INVALID_VALUE}} is generated if {{param|count}} is not equal to the value of {{enum|GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS}} for the shader stage {{param|shadertype}} of the current program. | ||
{{ | {{enum|GL_INVALID_VALUE}} is generated if any value in {{param|indices}} is geater than or equal to the value of {{enum|GL_ACTIVE_SUBROUTINES}} for the shader stage {{param|shadertype}} of the current program. | ||
{{ | {{enum|GL_INVALID_ENUM}} is generated if {{param|shadertype}} is not one of the accepted values. | ||
{{enum|GL_INVALID_OPERATION}} is generated if, for any subroutine index being loaded to a particular uniform location, the function corresponding to the subroutine index was not associated with the type of the subroutine variable at that location. | |||
== Associated Gets == | == Associated Gets == | ||
{{apifunc|glGetProgramStage}} with argument {{enum|GL_ACTIVE_SUBROUTINES}} | |||
{{apifunc|glGetProgramStage}} with argument {{enum|GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS}} | |||
{{apifunc|glGetProgramInterface}} with {{param|programInterface}} as {{enum|GL_VERTEX_SUBROUTINE}}, {{enum|GL_TESS_CONTROL_SUBROUTINE}}, {{enum|GL_TESS_EVALUATION_SUBROUTINE}}, {{enum|GL_GEOMETRY_SUBROUTINE}} or, {{enum|GL_FRAGMENT_SUBROUTINE}}; and {{enum|GL_ACTIVE_RESOURCES}} | |||
{{apifunc|glGetProgramInterface}} with {{param|programInterface}} as {{enum|GL_VERTEX_SUBROUTINE_UNIFORM}}, {{enum|GL_TESS_CONTROL_SUBROUTINE_UNIFORM}}, {{enum|GL_TESS_EVALUATION_SUBROUTINE_UNIFORM}}, {{enum|GL_GEOMETRY_SUBROUTINE_UNIFORM}} or, {{enum|GL_FRAGMENT_SUBROUTINE_UNIFORM}}; and {{enum|GL_ACTIVE_RESOURCES}} | |||
== See Also == | == See Also == | ||
{{apifunc|glGetActiveSubroutineUniform}}, {{apifunc|glGetActiveSubroutineUniformName}}, {{apifunc|glGetProgramResourceName}}, {{apifunc|glGetProgramResource}}, {{apifunc|glGetSubroutineUniformLocation}} | |||
== Copyright == | == Copyright == | ||
Line 46: | Line 52: | ||
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/ http://opencontent.org/openpub/]. | 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/ http://opencontent.org/openpub/]. | ||
[[Category:Core API Ref Shader Program Usage and State|UniformSubroutines]] | [[Category:Core API Ref Shader Program Usage and State|UniformSubroutines]] | ||
[[Category:Core API Reference|UniformSubroutines]] |
Latest revision as of 10:31, 20 April 2013
Core in version | 4.6 | |
---|---|---|
Core since version | 4.0 | |
Core ARB extension | ARB_shader_subroutine |
glUniformSubroutines: load active subroutine uniforms
Function Definition
void glUniformSubroutinesuiv(GLenum shadertype, GLsizei count, const GLuint *indices);
- 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.
GL_INVALID_OPERATION is generated if, for any subroutine index being loaded to a particular uniform location, the function corresponding to the subroutine index was not associated with the type of the subroutine variable at that location.
Associated Gets
glGetProgramStage with argument GL_ACTIVE_SUBROUTINES
glGetProgramStage with argument GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS
glGetProgramInterface with programInterface as GL_VERTEX_SUBROUTINE, GL_TESS_CONTROL_SUBROUTINE, GL_TESS_EVALUATION_SUBROUTINE, GL_GEOMETRY_SUBROUTINE or, GL_FRAGMENT_SUBROUTINE; and GL_ACTIVE_RESOURCES
glGetProgramInterface with programInterface as GL_VERTEX_SUBROUTINE_UNIFORM, GL_TESS_CONTROL_SUBROUTINE_UNIFORM, GL_TESS_EVALUATION_SUBROUTINE_UNIFORM, GL_GEOMETRY_SUBROUTINE_UNIFORM or, GL_FRAGMENT_SUBROUTINE_UNIFORM; and GL_ACTIVE_RESOURCES
See Also
glGetActiveSubroutineUniform, glGetActiveSubroutineUniformName, glGetProgramResourceName, glGetProgramResource, glGetSubroutineUniformLocation
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/.