## Name

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`

## Version Support

| OpenGL Version
--- | ---
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5
`glGetActiveSubroutineName` | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔

## See Also

glGetSubroutineIndex, glGetActiveSubroutineUniform, glGetProgramStage

## Copyright

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