GLAPI/glGetSubroutineIndex: Difference between revisions

From OpenGL Wiki
Jump to navigation Jump to search
m Bot: Adjusting API page category.
See Also: Wrong functions to link to. This queries subroutine function indices, not subroutine uniform indices.
 
(7 intermediate revisions by 2 users not shown)
Line 9: Line 9:
== Function Definition ==
== Function Definition ==


   GLuint '''glGetSubroutineIndex'''(GLuint ''program'', GLenum ''shadertype'', const GLchar *''name'');
   GLuint '''glGetSubroutineIndex'''(GLuint {{param|program}}, GLenum {{param|shadertype}}, const GLchar *{{param|name}});


; program
; program
: Specifies the name of the program containing shader stage.
: Specifies the name of the program containing shader stage.
; shadertype
; shadertype
: Specifies the shader stage from which to query for subroutine uniform index. ''shadertype'' must be one of {{code|GL_VERTEX_SHADER}}, {{code|GL_TESS_CONTROL_SHADER}}, {{code|GL_TESS_EVALUATION_SHADER}}, {{code|GL_GEOMETRY_SHADER}} or {{code|GL_FRAGMENT_SHADER}}.
: 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}}, {{enum|GL_FRAGMENT_SHADER}}, or {{enum|GL_COMPUTE_SHADER}}.
; name
; name
: Specifies the name of the subroutine uniform whose index to query.
: Specifies the name of the subroutine uniform whose index to query.
Line 20: Line 20:
== Description ==
== Description ==


'''glGetSubroutineIndex''' returns the index of a subroutine uniform within a shader stage attached to a program object. ''program'' contains the name of the program to which the shader is attached. ''shadertype'' specifies the stage from which to query shader subroutine index. ''name'' contains the null-terminated name of the subroutine uniform whose name to query.
'''glGetSubroutineIndex''' returns the index of a subroutine uniform within a shader stage attached to a program object. {{param|program}} contains the name of the program to which the shader is attached. {{param|shadertype}} specifies the stage from which to query shader subroutine index. {{param|name}} contains the null-terminated name of the subroutine uniform whose name to query.


If ''name'' is not the name of a subroutine uniform in the shader stage, {{code|GL_INVALID_INDEX}} 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 {{code|GL_ACTIVE_SUBROUTINES}} minus one will be returned. Subroutine indices are assigned using consecutive integers in the range from zero to the value of {{code|GL_ACTIVE_SUBROUTINES}} minus one for the shader stage.
If {{param|name}} is not the name of a subroutine uniform in the shader stage, {{enum|GL_INVALID_INDEX}} is returned, but no error is generated. If {{param|name}} is the name of a subroutine uniform in the shader stage, a value between zero and the value of {{enum|GL_ACTIVE_SUBROUTINES}} minus one will be returned. Subroutine indices are assigned using consecutive integers in the range from zero to the value of {{enum|GL_ACTIVE_SUBROUTINES}} minus one for the shader stage.


== Errors ==
== Errors ==


{{code|GL_INVALID_ENUM}} is generated if ''shadertype'' or ''pname'' is not one of the accepted values.
{{enum|GL_INVALID_ENUM}} is generated if {{param|shadertype}} or {{param|pname}} is not one of the accepted values.


{{code|GL_INVALID_VALUE}} is generated if ''program'' is not the name of an existing program object.
{{enum|GL_INVALID_VALUE}} is generated if {{param|program}} is not the name of an existing program object.


== See Also ==
== See Also ==


[[GLAPI/glGetProgram|glGetProgram]], [[GLAPI/glGetActiveSubroutineUniform|glGetActiveSubroutineUniform]], [[GLAPI/glGetActiveSubroutineUniformName|glGetActiveSubroutineUniformName]]
{{apifunc|glGetActiveSubroutineName}}, {{apifunc|glGetProgramResourceIndex}}, {{apifunc|glGetProgramResource}}


== Copyright ==
== Copyright ==
Line 38: Line 38:
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:API Reference 4|GetSubroutineIndex]]
[[Category:Core API Ref Shader Program Query|GetSubroutineIndex]]
[[Category:GL 4 API Shader Program Query|GetSubroutineIndex]]
[[Category:Core API Reference|GetSubroutineIndex]]
[[Category:Program Object API State Functions|GetSubroutineIndex]]

Latest revision as of 08:43, 31 August 2013

glGetSubroutineIndex
Core in version 4.6
Core since version 4.0
Core ARB extension ARB_shader_subroutine

glGetSubroutineIndex: retrieve the index of a subroutine uniform of a given shader stage within a program

Function Definition

 GLuint glGetSubroutineIndex(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, GL_FRAGMENT_SHADER, or GL_COMPUTE_SHADER.
name
Specifies the name of the subroutine uniform whose index to query.

Description

glGetSubroutineIndex returns the index of a subroutine uniform within a shader stage attached to a program object. program​ contains the name of the program to which the shader is attached. shadertype​ specifies the stage from which to query shader subroutine index. name​ contains the null-terminated name of the subroutine uniform whose name to query.

If name​ is not the name of a subroutine uniform in the shader stage, GL_INVALID_INDEX 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_SUBROUTINES minus one will be returned. Subroutine indices are assigned using consecutive integers in the range from zero to the value of GL_ACTIVE_SUBROUTINES minus one for the shader stage.

Errors

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.

See Also

glGetActiveSubroutineName, glGetProgramResourceIndex, glGetProgramResource

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