2013
Khronos Group
glGetObjectLabel
3G

# glGetObjectLabel

retrieve the label of a named object identified within a namespace

## C Specification

                    void glGetObjectLabel
                    GLenum identifier
                    GLuint name
                    GLsizei bifSize
                    GLsizei * length
                    char * label

## Parameters

`identifier`

  The namespace from which the name of the object is allocated.

`name`

  The name of the object whose label to retrieve.

`bufSize`

  The length of the buffer whose address is in `label`.

`length`

  The address of a variable to receive the length of the object label.

`label`

  The address of a string that will receive the object label.

## Description

`glGetObjectLabel` retrieves the label of the object identified by `name` within the namespace given by `identifier`. `identifier` must be one of `GL_BUFFER`, `GL_SHADER`, `GL_PROGRAM`, `GL_VERTEX_ARRAY`, `GL_QUERY`, `GL_PROGRAM_PIPELINE`, `GL_TRANSFORM_FEEDBACK`, `GL_SAMPLER`, `GL_TEXTURE`, `GL_RENDERBUFFER`, `GL_FRAMEBUFFER`, to indicate the namespace containing the names of buffers, shaders, programs, vertex array objects, query objects, program pipelines, transform feedback objects, samplers, textures, renderbuffers and frame buffers, respectively.

`label` is the address of a string that will be used to store the object label. `bufSize` specifies the number of characters in the array identified by `label`. `length` contains the address of a variable which will receive the the number of characters in the object label. If `length` is NULL, then it is ignored and no data is written. Likewise, if `label` is NULL, or if `bufSize` is zero then no data is written to `label`.

## Errors

`GL_INVALID_ENUM` is generated if `identifier` is not one of the accepted object types.

`GL_INVALID_OPERATION` is generated if `name` is not the name of an existing object of the type specified by `identifier`.

`GL_INVALID_VALUE` is generated if `bufSize` is zero.

If not NULL, `length` and `label` should be addresses to which the client has write access, otherwise undefined behavior, including process termination may occur.

## Associated Gets

glGet with argument `GL_MAX_LABEL_LENGTH`.

## See Also

glPushDebugGroup, glPopDebugGroup, glObjectLabel, glGetObjectPtrLabel.

## Copyright

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