Name

glBindBuffer - bind a named buffer to a target

C Specification

void glBindBuffer(GLenum target, GLuint buffer)

Parameters

target

Specifies the target to which the buffer is bound. Which must be GL_ARRAY_BUFFER or GL_ELEMENT_ARRAY_BUFFER.

buffer

Specifies the name of a buffer.

Description

glBindBuffer lets you create or use a named buffer. Calling glBindBuffer with target set to GL_ARRAY_BUFFER or GL_ELEMENT_ARRAY_BUFFER and buffer set to the buffer name, binds the buffer name to the target.

Buffer names are unsigned integers. The value 0 is reserved for GL.

When a buffer is bound to a target, any previous binding for that target is automatically broken.

If an unused buffer name is specified, a buffer object is created. The resulting buffer object is a new state vector, initialized with a zero-sized memory buffer, and with the following state values.

GL_BUFFER_SIZE initialized to 0.
GL_BUFFER_USAGE initialized to GL_STATIC_DRAW.
GL_BUFFER_ACCESS initialized to GL_WRITE_ONLY.

glBindBuffer may also be used to bind an existing buffer object. If the bind is successful no change is made to the state of the newly bound buffer object.

While a buffer is bound, GL operations on the target to which it is bound affect the bound buffer object, and queries of the target to which a buffer object is bound return state from the bound object.

Notes

In the initial state the reserved name zero is bound to GL_ARRAY_BUFFER and GL_ELEMENT_ARRAY_BUFFER. There is no buffer object corresponding to the name zero, so client attempts to modify or query buffer object state for the target GL_ARRAY_BUFFER or GL_ELEMENT_ARRAY_BUFFER while zero is bound will generate GL errors.

While a buffer object is bound, any GL operations on that object affect any other bindings of that object.

Errors

GL_INVALID_ENUM is generated if target is not one of the allowable values.

Copyright

Copyright © 2003-2004 Silicon Graphics, Inc.

This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.

See Also

glBufferData, glBufferSubData, glDeleteBuffers, glGenBuffers, glGet,