This extension provides a mechanism for supplying the arguments to a DrawArraysInstanced or DrawElementsInstancedBaseVertex from buffer object memory. This is not particularly useful for applications where the CPU knows the values of the arguments beforehand, but is helpful when the values will be generated on the GPU through any mechanism that can write to a buffer object including image stores, atomic counters, or compute interop. This allows the GPU to consume these arguments without a round- trip to the CPU or the expensive synchronization that would involve. This is similar to the DrawTransformFeedbackEXT command from EXT_transform_feedback2, but offers much more flexibility in both generating the arguments and in the type of Draws that can be accomplished.
Requires OpenGL 3.. Promoted to core in OpenGL 4..
| Modifier and Type | Field and Description |
|---|---|
| public static final int | GL_DRAW_INDIRECT_BUFFER
Accepted by the |
| public static final int | GL_DRAW_INDIRECT_BUFFER_BINDING
Accepted by the |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description | |||
|---|---|---|---|---|
| public static void | glDrawArraysIndirect(int mode, ByteBuffer
a structure containing the draw parameters indirect)Renders primitives from array data, taking parameters from memory. | |||
| public static void | glDrawArraysIndirect(int mode, long
a structure containing the draw parameters indirect)Renders primitives from array data, taking parameters from memory. | |||
| public static void | glDrawArraysIndirect(int mode, IntBuffer
a structure containing the draw parameters indirect)Renders primitives from array data, taking parameters from memory. | |||
| public static void | ||||
| public static void | glDrawElementsIndirect(int mode, int
the type of data in the buffer bound to the type, ByteBuffer ELEMENT_ARRAY_BUFFER binding. One of:
the address of a structure containing the draw parameters indirect)Renders indexed primitives from array data, taking parameters from memory. | |||
| public static void | glDrawElementsIndirect(int mode, int
the type of data in the buffer bound to the type, long ELEMENT_ARRAY_BUFFER binding. One of:
the address of a structure containing the draw parameters indirect)Renders indexed primitives from array data, taking parameters from memory. | |||
| public static void | glDrawElementsIndirect(int mode, int
the type of data in the buffer bound to the type, IntBuffer ELEMENT_ARRAY_BUFFER binding. One of:
the address of a structure containing the draw parameters indirect)Renders indexed primitives from array data, taking parameters from memory. | |||
| public static void | ||||
| public static void | ||||
| public static void |
| GL_DRAW_INDIRECT_BUFFER | back to summary |
|---|---|
| public static final int GL_DRAW_INDIRECT_BUFFER Accepted by the | |
| GL_DRAW_INDIRECT_BUFFER_BINDING | back to summary |
|---|---|
| public static final int GL_DRAW_INDIRECT_BUFFER_BINDING Accepted by the | |
| ARBDrawIndirect | back to summary |
|---|---|
| protected ARBDrawIndirect() | |
| glDrawArraysIndirect | back to summary | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glDrawArraysIndirect(int mode, ByteBuffer indirect) Renders primitives from array data, taking parameters from memory.
The parameters addressed by
| ||||||||||||||||
| glDrawArraysIndirect | back to summary | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glDrawArraysIndirect(int mode, long indirect) Renders primitives from array data, taking parameters from memory.
The parameters addressed by
| ||||||||||||||||
| glDrawArraysIndirect | back to summary | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glDrawArraysIndirect(int mode, IntBuffer indirect) Renders primitives from array data, taking parameters from memory.
The parameters addressed by
| ||||||||||||||||
| glDrawArraysIndirect | back to summary |
|---|---|
| public static void glDrawArraysIndirect(int mode, int[] indirect) Array version of: | |
| glDrawElementsIndirect | back to summary | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glDrawElementsIndirect(int mode, int type, ByteBuffer indirect) Renders indexed primitives from array data, taking parameters from memory.
The parameters addressed by
| |||||||||||||||||||
| glDrawElementsIndirect | back to summary | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glDrawElementsIndirect(int mode, int type, long indirect) Renders indexed primitives from array data, taking parameters from memory.
The parameters addressed by
| |||||||||||||||||||
| glDrawElementsIndirect | back to summary | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glDrawElementsIndirect(int mode, int type, IntBuffer indirect) Renders indexed primitives from array data, taking parameters from memory.
The parameters addressed by
| |||||||||||||||||||
| glDrawElementsIndirect | back to summary |
|---|---|
| public static void glDrawElementsIndirect(int mode, int type, int[] indirect) Array version of: | |
| nglDrawArraysIndirect | back to summary |
|---|---|
| public static void nglDrawArraysIndirect(int mode, long indirect) Unsafe version of: | |
| nglDrawElementsIndirect | back to summary |
|---|---|
| public static void nglDrawElementsIndirect(int mode, int type, long indirect) Unsafe version of: | |