glBindVertexBuffer, glVertexArrayVertexBuffer — bind a buffer to a vertex buffer bind point
void glBindVertexBuffer( | GLuint bindingindex, |
GLuint buffer, | |
GLintptr offset, | |
GLintptr stride) ; |
void glVertexArrayVertexBuffer( | GLuint vaobj, |
GLuint bindingindex, | |
GLuint buffer, | |
GLintptr offset, | |
GLsizei stride) ; |
vaobj
Specifies the name of the vertex array object to be used by glVertexArrayVertexBuffer
function.
bindingindex
The index of the vertex buffer binding point to which to bind the buffer.
buffer
The name of a buffer to bind to the vertex buffer binding point.
offset
The offset of the first element of the buffer.
stride
The distance between elements within the buffer.
glBindVertexBuffer
and glVertexArrayVertexBuffer
bind the buffer named buffer
to the vertex buffer binding point whose index is given by bindingindex
. glBindVertexBuffer
modifies the binding of the currently bound vertex array object, whereas glVertexArrayVertexBuffer
allows the caller to specify ID of the vertex array object with an argument named vaobj
, for which the binding should be modified. offset
and stride
specify the offset of the first element within the buffer and the distance between elements within the buffer, respectively, and are both measured in basic machine units. bindingindex
must be less than the value of GL_MAX_VERTEX_ATTRIB_BINDINGS
. offset
and stride
must be greater than or equal to zero. If buffer
is zero, then any buffer currently bound to the specified binding point is unbound.
If buffer
is not the name of an existing buffer object, the GL first creates a new state vector, initialized with a zero-sized memory buffer and comprising all the state and with the same initial values as in case of glBindBuffer
. buffer
is then attached to the specified bindingindex
of the vertex array object.
GL_INVALID_OPERATION
is generated by glBindVertexBuffer
if no vertex array object is bound.
GL_INVALID_OPERATION
is generated by glVertexArrayVertexBuffer
if vaobj
is not the name of an existing vertex array object.
GL_INVALID_VALUE
is generated if bindingindex
is greater than or equal to the value of GL_MAX_VERTEX_ATTRIB_BINDINGS
.
GL_INVALID_VALUE
is generated if offset
or stride
is less than zero, or if stride is greater than the value of GL_MAX_VERTEX_ATTRIB_STRIDE
.
GL_INVALID_VALUE
is generated if buffer
is not zero or the name of an existing buffer object (as returned by glGenBuffers
or glCreateBuffers
).
glGet with argument GL_MAX_VERTEX_ATTRIB_BINDINGS
.
OpenGL Version | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5 |
glBindVertexBuffer | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
glVertexArrayVertexBuffer | - | - | - | - | - | - | - | - | - | - | - | ✔ |
glVertexAttribBinding, glVertexAttribFormat, glVertexAttribPointer, glVertexBindingDivisor.
Copyright © 2014 Khronos Group. 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/.