'\" t .\" Title: glBindVertexBuffers .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 05/21/2015 .\" Manual: [FIXME: manual] .\" Source: [FIXME: source] .\" Language: English .\" .TH "GLBINDVERTEXBUFFERS" "3G" "05/21/2015" "[FIXME: source]" "[FIXME: manual]" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" glBindVertexBuffers, glVertexArrayVertexBuffers \- attach multiple buffer objects to a vertex array object .SH "C SPECIFICATION" .HP \w'void\ glBindVertexBuffers('u .BI "void glBindVertexBuffers(GLuint\ " "first" ", GLsizei\ " "count" ", const\ GLuint\ *" "buffers" ", const\ GLuintptr\ *" "offsets" ", const\ GLsizei\ *" "strides" ");" .HP \w'void\ glVertexArrayVertexBuffers('u .BI "void glVertexArrayVertexBuffers(GLuint\ " "vaobj" ", GLuint\ " "first" ", GLsizei\ " "count" ", const\ GLuint\ *" "buffers" ", const\ GLintptr\ *" "offsets" ", const\ GLsizei\ *" "strides" ");" .SH "PARAMETERS" .PP \fIvaobj\fR .RS 4 Specifies the name of the vertex array object for \fBglVertexArrayVertexBuffers\fR\&. .RE .PP \fIfirst\fR .RS 4 Specifies the first vertex buffer binding point to which a buffer object is to be bound\&. .RE .PP \fIcount\fR .RS 4 Specifies the number of buffers to bind\&. .RE .PP \fIbuffers\fR .RS 4 Specifies the address of an array of names of existing buffer objects\&. .RE .PP \fIoffsets\fR .RS 4 Specifies the address of an array of offsets to associate with the binding points\&. .RE .PP \fIbuffers\fR .RS 4 Specifies the address of an array of strides to associate with the binding points\&. .RE .SH "DESCRIPTION" .PP \fBglBindVertexBuffers\fR and \fBglVertexArrayVertexBuffers\fR 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 \fBglBindVertexBuffers\fR, the vertex array object is the currently bound vertex array object\&. For \fBglVertexArrayVertexBuffers\fR, \fIvaobj\fR is the name of the vertex array object\&. .PP \fIcount\fR existing buffer objects are bound to vertex buffer binding points numbered $first$ through $first + count \- 1$\&. If \fIbuffers\fR is not NULL, it specifies an array of \fIcount\fR values, each of which must be zero or the name of an existing buffer object\&. \fIoffsets\fR and \fIstrides\fR specify arrays of \fIcount\fR values indicating the offset of the first element and stride between elements in each buffer, respectively\&. If \fIbuffers\fR 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 \fIoffsets\fR and \fIstrides\fR\&. .PP \fBglBindVertexBuffers\fR is equivalent (assuming no errors are generated) to: .sp .if n \{\ .RS 4 .\} .nf 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]); } } .fi .if n \{\ .RE .\} .sp except that buffers will not be created if they do not exist\&. .PP \fBglVertexArrayVertexBuffers\fR is equivalent to the pseudocode above, but replacing \fBglBindVertexBuffers\fR(args) with \fBglVertexArrayVertexBuffers\fR(vaobj, args)\&. .PP The values specified in \fIbuffers\fR, \fIoffsets\fR, and \fIstrides\fR 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\&. .SH "ERRORS" .PP \fBGL_INVALID_OPERATION\fR is generated by \fBglBindVertexBuffers\fR if no vertex array object is bound\&. .PP \fBGL_INVALID_OPERATION\fR is generated by \fBglVertexArrayVertexBuffers\fR if \fIvaobj\fR is not the name of the vertex array object\&. .PP \fBGL_INVALID_OPERATION\fR is generated if $first + count$ is greater than the value of \fBGL_MAX_VERTEX_ATTRIB_BINDINGS\fR\&. .PP \fBGL_INVALID_OPERATION\fR is generated if any value in \fBbuffers\fR is not zero or the name of an existing buffer object\&. .PP \fBGL_INVALID_VALUE\fR is generated if any value in \fIoffsets\fR or \fIstrides\fR is negative, or if a value is \fIstride\fR is greater than the value of \fBGL_MAX_VERTEX_ATTRIB_STRIDE\fR\&. .SH "VERSION SUPPORT" .TS allbox tab(:); lB cB s s s s s s s s s s s lB cB cB cB cB cB cB cB cB cB cB cB cB. T{ T}:T{ \fBOpenGL Version\fR T} T{ \fBFunction / Feature Name\fR T}:T{ \fB2\&.0\fR T}:T{ \fB2\&.1\fR T}:T{ \fB3\&.0\fR T}:T{ \fB3\&.1\fR T}:T{ \fB3\&.2\fR T}:T{ \fB3\&.3\fR T}:T{ \fB4\&.0\fR T}:T{ \fB4\&.1\fR T}:T{ \fB4\&.2\fR T}:T{ \fB4\&.3\fR T}:T{ \fB4\&.4\fR T}:T{ \fB4\&.5\fR T} .T& l c c c c c c c c c c c c l c c c c c c c c c c c c. T{ \fBglBindVertexBuffers\fR T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ ✔ T}:T{ ✔ T} T{ \fBglVertexArrayVertexBuffers\fR T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ ✔ T} .TE .sp .SH "SEE ALSO" .PP \fBglGenBuffers\fR(), \fBglBindBuffer\fR(), \fBglDeleteBuffers\fR()\fBglDeleteTextures\fR() .SH "COPYRIGHT" .PP Copyright \(co 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\&. \m[blue]\fBhttp://opencontent\&.org/openpub/\fR\m[]\&. .SH "COPYRIGHT" .br Copyright \(co 2014 Khronos Group .br