This extension provides a new set of commands allowing applications to bind or unbind a set of objects in a single call, instead of requiring a separate call for each bind or unbind operation. Using a single command allows OpenGL implementations to amortize function call, name space lookup, and potential locking overhead over multiple bind or unbind operations. The rendering loops of graphics applications frequently switch between different states, binding different sets of resources, including texture objects, sampler objects, textures for image loads and stores, uniform buffers, and vertex buffers; this extension provides "multi-bind" entry points for all of these object types.
Each command in this extension includes a <first> and <count> parameter, specifying a continguous range of binding points to update, as well
as an array of <count> object names specifying the objects to bind. Unlike single bind commands, multi-bind commands can be used only to bind or
unbind existing objects. Passing a previously unused object name (generated or not) results in an error and does not create a new object. For binding
points with associated data (e.g., ranges of a buffer), separate arrays are used to pass the associated data for each binding point. Passing zero values
in the array of object names removes the object bound to the current bounding point. Additionally, if NULL is passed as the array of objects, objects
bound to the entire range of binding points are unbound, as though the caller passed an array of zeroes.
Requires OpenGL 3.. Promoted to core in OpenGL 4..
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public static void | glBindBuffersBase(int target, int
the first binding first, IntBuffer an array of zeros or names of existing buffers objects buffers)Binds |
| public static void | |
| public static void | glBindBuffersRange(int target, int
the first binding first, IntBuffer an array of names of existing buffers objects buffers, PointerBuffer an array of offsets offsets, PointerBuffer an array of sizes sizes)Binds |
| public static void | glBindBuffersRange(int target, int first, int[] buffers, PointerBuffer offsets, PointerBuffer sizes)
Array version of: |
| public static void | glBindImageTextures(int
the first image unit first, IntBuffer an array of zeros or names of existing texture objects textures)Binds |
| public static void | |
| public static void | glBindSamplers(int
the first sampler object first, IntBuffer an array of zeros or names of existing sampler objects samplers)Binds |
| public static void | |
| public static void | glBindTextures(int
the first texture objects first, IntBuffer an array of zeros or names of existing texture objects textures)Binds |
| public static void | |
| public static void | glBindVertexBuffers(int
the first vertex buffer binding point first, IntBuffer an array of zeros or names of existing buffers objects buffers, PointerBuffer an array of offses offsets, IntBuffer an array of stride values strides)Binds |
| public static void | glBindVertexBuffers(int first, int[] buffers, PointerBuffer offsets, int[] strides)
Array version of: |
| public static void | nglBindBuffersBase(int target, int first, int
the number of bindings count, long buffers)Unsafe version of: |
| public static void | nglBindBuffersRange(int target, int first, int
the number of bindings count, long buffers, long offsets, long sizes)Unsafe version of: |
| public static void | nglBindImageTextures(int first, int
the number of image units count, long textures)Unsafe version of: |
| public static void | nglBindSamplers(int first, int
the number of sampler objects count, long samplers)Unsafe version of: |
| public static void | nglBindTextures(int first, int
the number of texture objects count, long textures)Unsafe version of: |
| public static void | nglBindVertexBuffers(int first, int
the number of vertex buffer binding points count, long buffers, long offsets, long strides)Unsafe version of: |
| ARBMultiBind | back to summary |
|---|---|
| protected ARBMultiBind() | |
| glBindBuffersBase | back to summary |
|---|---|
| public static void glBindBuffersBase(int target, int first, IntBuffer buffers) Binds
except that the single general buffer binding corresponding to
| |
| glBindBuffersBase | back to summary |
|---|---|
| public static void glBindBuffersBase(int target, int first, int[] buffers) Array version of: | |
| glBindBuffersRange | back to summary |
|---|---|
| public static void glBindBuffersRange(int target, int first, IntBuffer buffers, PointerBuffer offsets, PointerBuffer sizes) Binds
except that the single general buffer binding corresponding to The values specified in
| |
| glBindBuffersRange | back to summary |
|---|---|
| public static void glBindBuffersRange(int target, int first, int[] buffers, PointerBuffer offsets, PointerBuffer sizes) Array version of: | |
| glBindImageTextures | back to summary |
|---|---|
| public static void glBindImageTextures(int first, IntBuffer textures) Binds When binding a non-zero texture object to an image unit, the image unit When unbinding a texture object from an image unit, the image unit parameters
where The values specified in
| |
| glBindImageTextures | back to summary |
|---|---|
| public static void glBindImageTextures(int first, int[] textures) Array version of: | |
| glBindSamplers | back to summary |
|---|---|
| public static void glBindSamplers(int first, IntBuffer samplers) Binds
The values specified in
| |
| glBindSamplers | back to summary |
|---|---|
| public static void glBindSamplers(int first, int[] samplers) Array version of: | |
| glBindTextures | back to summary |
|---|---|
| public static void glBindTextures(int first, IntBuffer textures) Binds
except that the active texture selector retains its original value upon completion of the command, and that textures will not be created if they do not exist. The values specified in
| |
| glBindTextures | back to summary |
|---|---|
| public static void glBindTextures(int first, int[] textures) Array version of: | |
| glBindVertexBuffers | back to summary |
|---|---|
| public static void glBindVertexBuffers(int first, IntBuffer buffers, PointerBuffer offsets, IntBuffer strides) Binds
except that buffers will not be created if they do not exist. The values specified in
| |
| glBindVertexBuffers | back to summary |
|---|---|
| public static void glBindVertexBuffers(int first, int[] buffers, PointerBuffer offsets, int[] strides) Array version of: | |
| nglBindBuffersBase | back to summary |
|---|---|
| public static void nglBindBuffersBase(int target, int first, int count, long buffers) Unsafe version of:
| |
| nglBindBuffersRange | back to summary |
|---|---|
| public static void nglBindBuffersRange(int target, int first, int count, long buffers, long offsets, long sizes) Unsafe version of:
| |
| nglBindImageTextures | back to summary |
|---|---|
| public static void nglBindImageTextures(int first, int count, long textures) Unsafe version of:
| |
| nglBindSamplers | back to summary |
|---|---|
| public static void nglBindSamplers(int first, int count, long samplers) Unsafe version of:
| |
| nglBindTextures | back to summary |
|---|---|
| public static void nglBindTextures(int first, int count, long textures) Unsafe version of:
| |
| nglBindVertexBuffers | back to summary |
|---|---|
| public static void nglBindVertexBuffers(int first, int count, long buffers, long offsets, long strides) Unsafe version of:
| |