Light | Dark

glDeleteBuffers

Name

glDeleteBuffers — delete named buffer objects

C Specification

void glDeleteBuffers( GLsizei n,
const GLuint * buffers);

Parameters

n

Specifies the number of buffer objects to be deleted.

buffers

Specifies an array of buffer objects to be deleted.

Description

glDeleteBuffers deletes n buffer objects named by the elements of the array buffers. After a buffer object is deleted it has no contents, and its name is again unused. Unused names in buffers that have been marked as used for the purposes of glGenBuffers are marked as unused again. Unused names in buffers are silently ignored, as is the value zero. If a buffer object is deleted while it is bound, all bindings to that object in the current context are reset to zero. Bindings to that buffer in other contexts are not affected.

glDeleteBuffers silently ignores 0's and names that do not correspond to existing buffer objects.

Errors

GL_INVALID_VALUE is generated if n is negative.

Associated Gets

glIsBuffer

Examples

Load a vertex buffer into OpenGL for later rendering.
// data_size_in_bytes is the size in bytes of your vertex data.
// data_vertices is your actual vertex data, probably a huge array of floats

GLuint vertex_buffer; // Save this for later rendering
glGenBuffers(1, &vertex_buffer);
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer);
glBufferData(GL_ARRAY_BUFFER, data_size_in_bytes, 0, GL_STATIC_DRAW);
glBufferSubData(GL_ARRAY_BUFFER, 0, data_size_in_bytes, data_vertices);

GLint size = 0;
glGetBufferParameteriv(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, &size);
if(data_size_in_bytes != size)
{
    glDeleteBuffers(1, &vertex_buffer);
    // Log the error
    return;
}

// Success
Load an index buffer into OpenGL for later rendering.
// data_size_in_bytes is the size in bytes of your vertex data.
// data_indices is an array of integer offsets into your vertex data.

GLuint index_buffer; // Save this for later rendering
glGenBuffers(1, &index_buffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, index_buffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, data_size_in_bytes, 0, GL_STATIC_DRAW);
glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, 0, data_size_in_bytes, data_indices);

GLint size = 0;
glGetBufferParameteriv(GL_ELEMENT_ARRAY_BUFFER, GL_BUFFER_SIZE, &size);
if(data_size_in_bytes != size)
{
    glDeleteBuffers(1, &index_buffer);
    // Log the error
    return;
}

// Success

Tutorials

API Version Support

OpenGL ES API Version
Function Name 2.0 3.0 3.1
glDeleteBuffers
Think you can improve this page? Edit this page on GitHub.