## Name

glGetActiveUniformName — query the name of an active uniform

## C Specification

`void glGetActiveUniformName(` | GLuint program,
| GLuint uniformIndex,
| GLsizei bufSize,
| GLsizei *length,
| GLchar *uniformName`)`;

## Parameters

`program`

  Specifies the program containing the active uniform index `uniformIndex`.

`uniformIndex`

  Specifies the index of the active uniform whose name to query.

`bufSize`

  Specifies the size of the buffer, in units of `GLchar`, of the buffer whose address is specified in `uniformName`.

`length`

  Specifies the address of a variable that will receive the number of characters that were or would have been written to the buffer addressed by `uniformName`.

`uniformName`

  Specifies the address of a buffer into which the GL will place the name of the active uniform at `uniformIndex` within `program`.

## Description

`glGetActiveUniformName` returns the name of the active uniform at `uniformIndex` within `program`. If `uniformName` is not `NULL`, up to `bufSize` characters (including a nul-terminator) will be written into the array whose address is specified by `uniformName`. If `length` is not `NULL`, the number of characters that were (or would have been) written into `uniformName` (not including the nul-terminator) will be placed in the variable whose address is specified in `length`. If `length` is `NULL`, no length is returned. The length of the longest uniform name in `program` is given by the value of `GL_ACTIVE_UNIFORM_MAX_LENGTH`, which can be queried with glGetProgram.

If `glGetActiveUniformName` is not successful, nothing is written to `length` or `uniformName`.

`program` must be the name of a program for which the command glLinkProgram has been issued in the past. It is not necessary for `program` to have been linked successfully. The link could have failed because the number of active uniforms exceeded the limit.

`uniformIndex` must be an active uniform index of the program `program`, in the range zero to the value of `GL_ACTIVE_UNIFORMS` minus one. The value of `GL_ACTIVE_UNIFORMS` can be queried with glGetProgram.

## Errors

`GL_INVALID_VALUE` is generated if `uniformIndex` is greater than or equal to the value of `GL_ACTIVE_UNIFORMS`.

`GL_INVALID_VALUE` is generated if `bufSize` is negative.

`GL_INVALID_VALUE` is generated if `program` is not the name of a program object for which glLinkProgram has been issued.

## 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
`glGetActiveUniformName` | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔

## See Also

glGetActiveUniform, glGetUniformIndices, glGetProgram, glLinkProgram

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