Light | Dark

# docs.GL

OpenGL 4
OpenGL 3
OpenGL 2
OpenGL ES 3
OpenGL ES 2

# 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, which reverts to client memory usage).

`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

## See Also

glBindBuffer, glGenBuffers, glIsBuffer

## Copyright

Copyright © 2005 Addison-Wesley. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. https://opencontent.org/openpub/.

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