GLAPI/glBindBuffersBase

From OpenGL.org
Jump to: navigation, search
glBindBuffersBase
Core in version 4.4
Core since version 4.4
Core ARB extension ARB_multi_bind

glBindBuffersBase: bind one or more buffer objects to a sequence of indexed buffer targets

Function Definition

 void glBindBuffersBase(GLenum target​, GLuint first​, GLsizei count​, const GLuint *buffers​);
target
Specify the target of the bind operation. target​ must be one of GL_ATOMIC_COUNTER_BUFFER​, GL_TRANSFORM_FEEDBACK_BUFFER​, GL_UNIFORM_BUFFER​ or GL_SHADER_STORAGE_BUFFER​.
index
Specify the index of the first binding point within the array specified by target​.
count
Specify the number of contiguous binding points to which to bind buffers.
buffers
A pointer to an array of names of buffer objects to bind to the targets on the specified binding point, or NULL​.

Description

glBindBuffersBase binds a set of count​ buffer objects whose names are given in the array buffers​ to the count​ consecutive binding points starting from index index​ of the array of targets specified by target​. If buffers​ is NULL​ then glBindBuffersBase unbinds any buffers that are currently bound to the referenced binding points.

Assuming no errors are generated, it is equivalent to the following pseudo-code (with the exceptions noted below), which calls glBindBufferBase:

    for (i = 0; i < count; i++)
    {
        if (buffers != NULL)
        {
            glBindBufferBase(target, first + i, buffers[i]);
        }
        else
        {
            glBindBufferBase(target, first + i, 0);
        }
    }

The exceptions are that the single general buffer binding corresponding to target​ is unmodified, and that buffers will not be created if they do not exist.

Notes

Note that because glBindBuffersBase cannot create new buffer objects (even if a name passed has been previously generated by call to glGenBuffers), names pased to glBindBuffersBase must have been bound at least once previously via a call to glBindBuffer.

Errors

GL_INVALID_ENUM​ is generated if target​ is not GL_ATOMIC_COUNTER_BUFFER​, GL_TRANSFORM_FEEDBACK_BUFFER​, GL_UNIFORM_BUFFER​ or GL_SHADER_STORAGE_BUFFER​.

GL_INVALID_OPERATION​ is generated if first​ + count​ is greater than the number of target-specific indexed binding points.

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

See Also

glGenBuffers, glDeleteBuffers, glBindBuffer, glBindBufferBase, glBindBufferRange, glBindBuffersRange

Copyright

Copyright © 2013 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/.