2010 Khronos Group.
glGetActiveSubroutineName 3G
glGetActiveSubroutineName query the name of an active shader subroutine

## C Specification

void `glGetActiveSubroutineName` GLuint program GLenum shadertype GLuint index GLsizei bufsize GLsizei *length GLchar *name

## Parameters

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

`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 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

`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

glGetProgramStage with argument `GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH`

## See Also

glGetSubroutineIndex, glGetActiveSubroutineUniform, glGetProgramStage

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