glBindVertexBuffer, glVertexArrayVertexBuffer — bind a buffer to a vertex buffer bind point
void glBindVertexBuffer(
|
GLuint bindingindex, |
GLuint buffer, | |
GLintptr offset, | |
GLsizei 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. http://opencontent.org/openpub/.