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