GLAPI/glGetProgramStage

From OpenGL.org
Jump to: navigation, search
glGetProgramStage
Core in version 4.4
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/.