glObjectLabel.3G - Man Page

label a named object identified within a namespace

C Specification

void glObjectLabel(GLenum identifier, GLuint name, GLsizei length, const char * label);



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


The name of the object to label.


The length of the label to be used for the object.


The address of a string containing the label to assign to the object.


glObjectLabel labels 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 label an object. length contains the number of characters in label. If length is negative, it is implied that label contains a null-terminated string. If label is NULL, any debug label is effectively removed from the object.


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 the number of characters in label, excluding the null terminator when length is negative, is greater than the value of GL_MAX_LABEL_LENGTH.

Associated Gets

glGet() with argument GL_MAX_LABEL_LENGTH.

Version Support

OpenGL Version
Function / Feature Name2.

See Also

glPushDebugGroup(), glPopDebugGroup(), glObjectPtrLabel().

Referenced By

glGetObjectLabel.3G(3), glGetObjectPtrLabel.3G(3), glGetProgramInterface.3G(3), glObjectPtrLabel.3G(3), glPopDebugGroup.3G(3), glPushDebugGroup.3G(3).