glGetActiveSubroutineName

From OpenGL Reference
Jump to navigation Jump to search

Query the name of an active shader subroutine.

C Specification[edit]

void glGetActiveSubroutineName( GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name );


Parameters[edit]

program - Specifies the name of the program containing the subroutine.
shadertype - Specifies the shader stage from which to query the subroutine name.
index - Specifies the index of the shader subroutine uniform.
bufSize - Specifies the size of the buffer whose address is given in name .
length - Specifies the address of a variable which is to receive the length of the shader subroutine uniform name.
name - Specifies the address of an array into which the name of the shader subroutine uniform will be written.


Description[edit]

 glGetActiveSubroutineName queries the name of an active shader subroutine uniform from the program object given in program . index specifies the index of the shader subroutine uniform within the shader stage given by stage , and must between zero and the value of GL_ACTIVE_SUBROUTINES minus one for the shader stage.

The name of the selected subroutine is returned as a null-terminated string in name . The actual number of characters written into name , not including the null-terminator, is returned in length . If length is NULL , no length is returned. The maximum number of characters that may be written into name , including the null-terminator, is given in bufSize .


Errors[edit]

 GL_INVALID_VALUE is generated if index is greater than or equal to the value of GL_ACTIVE_SUBROUTINES .

 GL_INVALID_VALUE is generated if program is not the name of an existing program object.


Associated Gets[edit]

 glGetProgramStage with argument GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 


Version Support[edit]

 glGetActiveSubroutineName  4.0+

See Also[edit]

 glGetSubroutineIndex , glGetActiveSubroutineUniform , glGetProgramStage 


Copyright[edit]

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