Provided by: opengl-4-man-doc_1.0~svn33624-1_all bug

NAME

       glBindVertexBuffers, glVertexArrayVertexBuffers - attach multiple buffer objects to a
       vertex array object

C SPECIFICATION

       void glBindVertexBuffers(GLuint first, GLsizei count, const GLuint *buffers,
                                const GLuintptr *offsets, const GLsizei *strides);

       void glVertexArrayVertexBuffers(GLuint vaobj, GLuint first, GLsizei count,
                                       const GLuint *buffers, const GLintptr *offsets,
                                       const GLsizei *strides);

PARAMETERS

       vaobj
           Specifies the name of the vertex array object for glVertexArrayVertexBuffers.

       first
           Specifies the first vertex buffer binding point to which a buffer object is to be
           bound.

       count
           Specifies the number of buffers to bind.

       buffers
           Specifies the address of an array of names of existing buffer objects.

       offsets
           Specifies the address of an array of offsets to associate with the binding points.

       buffers
           Specifies the address of an array of strides to associate with the binding points.

DESCRIPTION

       glBindVertexBuffers and glVertexArrayVertexBuffers bind storage from an array of existing
       buffer objects to a specified number of consecutive vertex buffer binding points units in
       a vertex array object. For glBindVertexBuffers, the vertex array object is the currently
       bound vertex array object. For glVertexArrayVertexBuffers, vaobj is the name of the vertex
       array object.

       count existing buffer objects are bound to vertex buffer binding points numbered $first$
       through $first + count - 1$. If buffers is not NULL, it specifies an array of count
       values, each of which must be zero or the name of an existing buffer object.  offsets and
       strides specify arrays of count values indicating the offset of the first element and
       stride between elements in each buffer, respectively. If buffers is NULL, each affected
       vertex buffer binding point from $first$ through $first + count - 1$ will be reset to have
       no bound buffer object. In this case, the offsets and strides associated with the binding
       points are set to default values, ignoring offsets and strides.

       glBindVertexBuffers is equivalent (assuming no errors are generated) to:

               for (i = 0; i < count; i++) {
                   if (buffers == NULL) {
                       glBindVertexBuffer(first + i, 0, 0, 16);
                   } else {
                       glBindVertexBuffer(first + i, buffers[i], offsets[i], strides[i]);
                   }
               }

       except that buffers will not be created if they do not exist.

       glVertexArrayVertexBuffers is equivalent to the pseudocode above, but replacing
       glBindVertexBuffers(args) with glVertexArrayVertexBuffers(vaobj, args).

       The values specified in buffers, offsets, and strides will be checked separately for each
       vertex buffer binding point. When a value for a specific vertex buffer binding point is
       invalid, the state for that binding point will be unchanged and an error will be
       generated. However, state for other vertex buffer binding points will still be changed if
       their corresponding values are valid.

ERRORS

       GL_INVALID_OPERATION is generated by glBindVertexBuffers if no vertex array object is
       bound.

       GL_INVALID_OPERATION is generated by glVertexArrayVertexBuffers if vaobj is not the name
       of the vertex array object.

       GL_INVALID_OPERATION is generated if $first + count$ is greater than the value of
       GL_MAX_VERTEX_ATTRIB_BINDINGS.

       GL_INVALID_OPERATION is generated if any value in buffers is not zero or the name of an
       existing buffer object.

       GL_INVALID_VALUE is generated if any value in offsets or strides is negative, or if a
       value is stride is greater than the value of GL_MAX_VERTEX_ATTRIB_STRIDE.

VERSION SUPPORT

       ┌───────────────────────────┬───────────────────────────────────────────────────────────────────────┐
       │                           │                OpenGL Version                                         │
       ├───────────────────────────┼─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┤
       │Function2.02.13.03.13.23.34.04.14.24.34.44.5 │
       │/                          │     │     │     │     │     │     │     │     │     │     │     │     │
       │Feature                    │     │     │     │     │     │     │     │     │     │     │     │     │
       │Name                       │     │     │     │     │     │     │     │     │     │     │     │     │
       ├───────────────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glBindVertexBuffers        │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  ✔  │  ✔  │
       ├───────────────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glVertexArrayVertexBuffers │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  ✔  │
       └───────────────────────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘

SEE ALSO

       glGenBuffers(), glBindBuffer(), glDeleteBuffers() glDeleteTextures()

COPYRIGHT

       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/.

COPYRIGHT

       Copyright © 2014 Khronos Group

[FIXME: source]                             01/03/2018                    GLBINDVERTEXBUFFERS(3G)