The ARB_draw_indirect extension (included in OpenGL 4.0) introduced mechanisms whereby the parameters for a draw function may be provided in a
structure contained in a buffer object rather than as parameters to the drawing procedure. This is known as an indirect draw and is exposed as two new
functions, DrawArraysIndirect and DrawElementsIndirect. Each of these functions generates a single batch of
primitives.
This extension builds on this functionality by providing procedures to invoke multiple draws from a single procedure call. This allows large batches of drawing commands to be assembled in server memory (via a buffer object) which may then be dispatched through a single function call.
Requires OpenGL 4. or ARB_draw_indirect. Promoted to core in OpenGL 4..
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description | |||
|---|---|---|---|---|
| public static void | glMultiDrawArraysIndirect(int mode, ByteBuffer
an array of structures containing the draw parameters indirect, int the number of elements in the array of draw parameter structures drawcount, int the distance in basic machine units between elements of the draw parameter array stride)Renders multiple sets of primitives from array data, taking parameters from memory. | |||
| public static void | glMultiDrawArraysIndirect(int mode, long
an array of structures containing the draw parameters indirect, int the number of elements in the array of draw parameter structures drawcount, int the distance in basic machine units between elements of the draw parameter array stride)Renders multiple sets of primitives from array data, taking parameters from memory. | |||
| public static void | glMultiDrawArraysIndirect(int mode, IntBuffer
an array of structures containing the draw parameters indirect, int the number of elements in the array of draw parameter structures drawcount, int the distance in basic machine units between elements of the draw parameter array stride)Renders multiple sets of primitives from array data, taking parameters from memory. | |||
| public static void | glMultiDrawArraysIndirect(int mode, int[] indirect, int drawcount, int stride)
Array version of: | |||
| public static void | glMultiDrawElementsIndirect(int mode, int
the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding. One of: type, ByteBuffer
a structure containing an array of draw parameters indirect, int the number of elements in the array addressed by drawcount, int indirectthe distance in basic machine units between elements of the draw parameter array stride)Renders multiple indexed primitives from array data, taking parameters from memory. | |||
| public static void | glMultiDrawElementsIndirect(int mode, int
the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding. One of: type, long
a structure containing an array of draw parameters indirect, int the number of elements in the array addressed by drawcount, int indirectthe distance in basic machine units between elements of the draw parameter array stride)Renders multiple indexed primitives from array data, taking parameters from memory. | |||
| public static void | glMultiDrawElementsIndirect(int mode, int
the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding. One of: type, IntBuffer
a structure containing an array of draw parameters indirect, int the number of elements in the array addressed by drawcount, int indirectthe distance in basic machine units between elements of the draw parameter array stride)Renders multiple indexed primitives from array data, taking parameters from memory. | |||
| public static void | glMultiDrawElementsIndirect(int mode, int type, int[] indirect, int drawcount, int stride)
Array version of: | |||
| public static void | nglMultiDrawArraysIndirect(int mode, long indirect, int drawcount, int stride)
Unsafe version of: | |||
| public static void | nglMultiDrawElementsIndirect(int mode, int type, long indirect, int drawcount, int stride)
Unsafe version of: |
| ARBMultiDrawIndirect | back to summary |
|---|---|
| protected ARBMultiDrawIndirect() | |
| glMultiDrawArraysIndirect | back to summary | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glMultiDrawArraysIndirect(int mode, ByteBuffer indirect, int drawcount, int stride) Renders multiple sets of primitives from array data, taking parameters from memory. The parameters addressed by
A single call to
| ||||||||||||||||
| glMultiDrawArraysIndirect | back to summary | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glMultiDrawArraysIndirect(int mode, long indirect, int drawcount, int stride) Renders multiple sets of primitives from array data, taking parameters from memory. The parameters addressed by
A single call to
| ||||||||||||||||
| glMultiDrawArraysIndirect | back to summary | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glMultiDrawArraysIndirect(int mode, IntBuffer indirect, int drawcount, int stride) Renders multiple sets of primitives from array data, taking parameters from memory. The parameters addressed by
A single call to
| ||||||||||||||||
| glMultiDrawArraysIndirect | back to summary |
|---|---|
| public static void glMultiDrawArraysIndirect(int mode, int[] indirect, int drawcount, int stride) Array version of: | |
| glMultiDrawElementsIndirect | back to summary | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glMultiDrawElementsIndirect(int mode, int type, ByteBuffer indirect, int drawcount, int stride) Renders multiple indexed primitives from array data, taking parameters from memory. The parameters addressed by indirect are packed into a structure that takes the form (in C):
A single call to
| |||||||||||||||||||
| glMultiDrawElementsIndirect | back to summary | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glMultiDrawElementsIndirect(int mode, int type, long indirect, int drawcount, int stride) Renders multiple indexed primitives from array data, taking parameters from memory. The parameters addressed by indirect are packed into a structure that takes the form (in C):
A single call to
| |||||||||||||||||||
| glMultiDrawElementsIndirect | back to summary | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public static void glMultiDrawElementsIndirect(int mode, int type, IntBuffer indirect, int drawcount, int stride) Renders multiple indexed primitives from array data, taking parameters from memory. The parameters addressed by indirect are packed into a structure that takes the form (in C):
A single call to
| |||||||||||||||||||
| glMultiDrawElementsIndirect | back to summary |
|---|---|
| public static void glMultiDrawElementsIndirect(int mode, int type, int[] indirect, int drawcount, int stride) Array version of: | |
| nglMultiDrawArraysIndirect | back to summary |
|---|---|
| public static void nglMultiDrawArraysIndirect(int mode, long indirect, int drawcount, int stride) Unsafe version of: | |
| nglMultiDrawElementsIndirect | back to summary |
|---|---|
| public static void nglMultiDrawElementsIndirect(int mode, int type, long indirect, int drawcount, int stride) Unsafe version of: | |