GLAPI/glGetProgramStage: Difference between revisions

From OpenGL Wiki
Jump to navigation Jump to search
m Renaming category: 'API Reference 4' to 'Core API Reference'.
 
(5 intermediate revisions by 2 users not shown)
Line 9: Line 9:
== Function Definition ==
== Function Definition ==


   void '''glGetProgramStageiv'''(GLuint ''program'', GLenum ''shadertype'', GLenum ''pname'', GLint *''values'');
   void '''glGetProgramStageiv'''(GLuint {{param|program}}, GLenum {{param|shadertype}}, GLenum {{param|pname}}, GLint *{{param|values}});


; 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 the subroutine parameter. ''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 the subroutine parameter. {{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}}.
; pname
; pname
: Specifies the parameter of the shader to query. ''pname'' must be {{code|GL_ACTIVE_SUBROUTINE_UNIFORMS}}, {{code|GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS}}, {{code|GL_ACTIVE_SUBROUTINES}}, {{code|GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH}}, or {{code|GL_ACTIVE_SUBROUTINE_MAX_LENGTH}}.
: Specifies the parameter of the shader to query. {{param|pname}} must be {{enum|GL_ACTIVE_SUBROUTINE_UNIFORMS}}, {{enum|GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS}}, {{enum|GL_ACTIVE_SUBROUTINES}}, {{enum|GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH}}, or {{enum|GL_ACTIVE_SUBROUTINE_MAX_LENGTH}}.
; values
; values
: Specifies the address of a variable into which the queried value or values will be placed.
: Specifies the address of a variable into which the queried value or values will be placed.
Line 22: Line 22:
== Description ==
== Description ==


'''glGetProgramStage''' queries a parameter of 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 the parameter. ''pname'' specifies which parameter should be queried. The value or values of the parameter to be queried is returned in the variable whose address is given in ''values''.
'''glGetProgramStage''' queries a parameter of 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 the parameter. {{param|pname}} specifies which parameter should be queried. The value or values of the parameter to be queried is returned in the variable whose address is given in {{param|values}}.


If ''pname'' is {{code|GL_ACTIVE_SUBROUTINE_UNIFORMS}}, the number of active subroutine variables in the stage is returned in ''values''.
If {{param|pname}} is {{enum|GL_ACTIVE_SUBROUTINE_UNIFORMS}}, the number of active subroutine variables in the stage is returned in {{param|values}}.


If ''pname'' is {{code|GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS}}, the number of active subroutine variable locations in the stage is returned in ''values''.
If {{param|pname}} is {{enum|GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS}}, the number of active subroutine variable locations in the stage is returned in {{param|values}}.


If ''pname'' is {{code|GL_ACTIVE_SUBROUTINES}}, the number of active subroutines in the stage is returned in ''values''.
If {{param|pname}} is {{enum|GL_ACTIVE_SUBROUTINES}}, the number of active subroutines in the stage is returned in {{param|values}}.


If ''pname'' is {{code|GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH}}, the length of the longest subroutine uniform for the stage is returned in ''values''.
If {{param|pname}} is {{enum|GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH}}, the length of the longest subroutine uniform for the stage is returned in {{param|values}}.


If ''pname'' is {{code|GL_ACTIVE_SUBROUTINE_MAX_LENGTH}}, the length of the longest subroutine name for the stage is returned in ''values''. The returned name length includes space for the null-terminator.
If {{param|pname}} is {{enum|GL_ACTIVE_SUBROUTINE_MAX_LENGTH}}, the length of the longest subroutine name for the stage is returned in {{param|values}}. The returned name length includes space for the null-terminator.


If there is no shader present of type ''shadertype'', the returned value will be consistent with a shader containing no subroutines or subroutine uniforms.
If there is no shader present of type {{param|shadertype}}, the returned value will be consistent with a shader containing no subroutines or subroutine uniforms.


== 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]]
{{apifunc|glGetProgram}}, {{apifunc|glGetProgramInterface}}, {{apifunc|glGetSubroutineIndex}}


== Copyright ==
== Copyright ==
Line 52: Line 52:
[[Category:Core API Ref Shader Program Query|GetProgramStage]]
[[Category:Core API Ref Shader Program Query|GetProgramStage]]
[[Category:Core API Reference|GetProgramStage]]
[[Category:Core API Reference|GetProgramStage]]
[[Category:Program Object API State Functions|GetProgramStage]]

Latest revision as of 08:32, 31 August 2013

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

glGetProgramStage: retrieve properties of a program object corresponding to a specified shader stage

Function Definition

 void glGetProgramStageiv(GLuint program​, GLenum shadertype​, GLenum pname​, GLint *values​);
program
Specifies the name of the program containing shader stage.
shadertype
Specifies the shader stage from which to query for the subroutine parameter. shadertype​ must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
pname
Specifies the parameter of the shader to query. pname​ must be GL_ACTIVE_SUBROUTINE_UNIFORMS, GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS, GL_ACTIVE_SUBROUTINES, GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH, or GL_ACTIVE_SUBROUTINE_MAX_LENGTH.
values
Specifies the address of a variable into which the queried value or values will be placed.

Description

glGetProgramStage queries a parameter of 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 the parameter. pname​ specifies which parameter should be queried. The value or values of the parameter to be queried is returned in the variable whose address is given in values​.

If pname​ is GL_ACTIVE_SUBROUTINE_UNIFORMS, the number of active subroutine variables in the stage is returned in values​.

If pname​ is GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS, the number of active subroutine variable locations in the stage is returned in values​.

If pname​ is GL_ACTIVE_SUBROUTINES, the number of active subroutines in the stage is returned in values​.

If pname​ is GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH, the length of the longest subroutine uniform for the stage is returned in values​.

If pname​ is GL_ACTIVE_SUBROUTINE_MAX_LENGTH, the length of the longest subroutine name for the stage is returned in values​. The returned name length includes space for the null-terminator.

If there is no shader present of type shadertype​, the returned value will be consistent with a shader containing no subroutines or subroutine uniforms.

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

glGetProgram, glGetProgramInterface, glGetSubroutineIndex

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