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 free for reuse (for example by glGenBuffers). If a buffer object that is currently bound is deleted, the binding reverts to 0 (the absence of any buffer object).

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

Think you can improve this page? Edit this page on GitHub.