Class ARBBaseInstance
This extension allows the offset within buffer objects used for instanced rendering to be specified. This is congruent with the first parameter
in DrawArrays and the basevertex parameter in DrawElements. When instanced rendering is performed (for example, through
DrawArraysInstanced), instanced vertex attributes whose vertex attribute divisors are non-zero are fetched from enabled vertex arrays
per-instance rather than per-vertex. However, in unextended OpenGL, there is no way to define the offset into those arrays from which the attributes are
fetched. This extension adds that offset in the form of a <baseinstance> parameter to several new procedures.
The baseinstance parameter is added to the index of the array element, after division by the vertex attribute divisor. This allows several sets
of instanced vertex attribute data to be stored in a single vertex array, and the base offset of that data to be specified for each draw. Further, this
extension exposes the <baseinstance> parameter as the final and previously undefined structure member of the draw-indirect data structure.
Requires OpenGL 3.1 or ARB_draw_instanced. Promoted to core in OpenGL 4.2.
-
Method Summary
Modifier and TypeMethodDescriptionstatic voidglDrawArraysInstancedBaseInstance(int mode, int first, int count, int primcount, int baseinstance) Draws multiple instances of a range of elements with an offset applied to instanced attributes.static voidglDrawElementsInstancedBaseInstance(int mode, int count, int type, long indices, int primcount, int baseinstance) Draws multiple instances of a set of elements with an offset applied to instanced attributesstatic voidglDrawElementsInstancedBaseInstance(int mode, int type, ByteBuffer indices, int primcount, int baseinstance) Draws multiple instances of a set of elements with an offset applied to instanced attributesstatic voidglDrawElementsInstancedBaseInstance(int mode, ByteBuffer indices, int primcount, int baseinstance) Draws multiple instances of a set of elements with an offset applied to instanced attributesstatic voidglDrawElementsInstancedBaseInstance(int mode, IntBuffer indices, int primcount, int baseinstance) Draws multiple instances of a set of elements with an offset applied to instanced attributesstatic voidglDrawElementsInstancedBaseInstance(int mode, ShortBuffer indices, int primcount, int baseinstance) Draws multiple instances of a set of elements with an offset applied to instanced attributesstatic voidglDrawElementsInstancedBaseVertexBaseInstance(int mode, int count, int type, long indices, int primcount, int basevertex, int baseinstance) Renders multiple instances of a set of primitives from array data with a per-element offset.static voidglDrawElementsInstancedBaseVertexBaseInstance(int mode, int type, ByteBuffer indices, int primcount, int basevertex, int baseinstance) Renders multiple instances of a set of primitives from array data with a per-element offset.static voidglDrawElementsInstancedBaseVertexBaseInstance(int mode, ByteBuffer indices, int primcount, int basevertex, int baseinstance) Renders multiple instances of a set of primitives from array data with a per-element offset.static voidglDrawElementsInstancedBaseVertexBaseInstance(int mode, IntBuffer indices, int primcount, int basevertex, int baseinstance) Renders multiple instances of a set of primitives from array data with a per-element offset.static voidglDrawElementsInstancedBaseVertexBaseInstance(int mode, ShortBuffer indices, int primcount, int basevertex, int baseinstance) Renders multiple instances of a set of primitives from array data with a per-element offset.static voidnglDrawElementsInstancedBaseInstance(int mode, int count, int type, long indices, int primcount, int baseinstance) Unsafe version of:DrawElementsInstancedBaseInstancestatic voidnglDrawElementsInstancedBaseVertexBaseInstance(int mode, int count, int type, long indices, int primcount, int basevertex, int baseinstance) Unsafe version of:DrawElementsInstancedBaseVertexBaseInstance
-
Method Details
-
glDrawArraysInstancedBaseInstance
public static void glDrawArraysInstancedBaseInstance(int mode, int first, int count, int primcount, int baseinstance) Draws multiple instances of a range of elements with an offset applied to instanced attributes.- Parameters:
mode- what kind of primitives to render. One of:POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLESLINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADSQUAD_STRIPfirst- the starting index in the enabled arrayscount- the number of indices to be renderedprimcount- the number of instances of the specified range of indices to be renderedbaseinstance- the base instance for use in fetching instanced vertex attributes
-
nglDrawElementsInstancedBaseInstance
public static void nglDrawElementsInstancedBaseInstance(int mode, int count, int type, long indices, int primcount, int baseinstance) Unsafe version of:DrawElementsInstancedBaseInstance- Parameters:
count- the number of elements to be renderedtype- the type of the values inindices. One of:UNSIGNED_BYTEUNSIGNED_SHORTUNSIGNED_INT
-
glDrawElementsInstancedBaseInstance
public static void glDrawElementsInstancedBaseInstance(int mode, int count, int type, long indices, int primcount, int baseinstance) Draws multiple instances of a set of elements with an offset applied to instanced attributes- Parameters:
mode- what kind of primitives to render. One of:POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLESLINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADSQUAD_STRIPcount- the number of elements to be renderedtype- the type of the values inindices. One of:UNSIGNED_BYTEUNSIGNED_SHORTUNSIGNED_INTindices- a pointer to the location where the indices are storedprimcount- the number of instances of the specified range of indices to be renderedbaseinstance- the base instance for use in fetching instanced vertex attributes
-
glDrawElementsInstancedBaseInstance
public static void glDrawElementsInstancedBaseInstance(int mode, int type, ByteBuffer indices, int primcount, int baseinstance) Draws multiple instances of a set of elements with an offset applied to instanced attributes- Parameters:
mode- what kind of primitives to render. One of:POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLESLINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADSQUAD_STRIPtype- the type of the values inindices. One of:UNSIGNED_BYTEUNSIGNED_SHORTUNSIGNED_INTindices- a pointer to the location where the indices are storedprimcount- the number of instances of the specified range of indices to be renderedbaseinstance- the base instance for use in fetching instanced vertex attributes
-
glDrawElementsInstancedBaseInstance
public static void glDrawElementsInstancedBaseInstance(int mode, ByteBuffer indices, int primcount, int baseinstance) Draws multiple instances of a set of elements with an offset applied to instanced attributes- Parameters:
mode- what kind of primitives to render. One of:POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLESLINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADSQUAD_STRIPindices- a pointer to the location where the indices are storedprimcount- the number of instances of the specified range of indices to be renderedbaseinstance- the base instance for use in fetching instanced vertex attributes
-
glDrawElementsInstancedBaseInstance
public static void glDrawElementsInstancedBaseInstance(int mode, ShortBuffer indices, int primcount, int baseinstance) Draws multiple instances of a set of elements with an offset applied to instanced attributes- Parameters:
mode- what kind of primitives to render. One of:POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLESLINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADSQUAD_STRIPindices- a pointer to the location where the indices are storedprimcount- the number of instances of the specified range of indices to be renderedbaseinstance- the base instance for use in fetching instanced vertex attributes
-
glDrawElementsInstancedBaseInstance
public static void glDrawElementsInstancedBaseInstance(int mode, IntBuffer indices, int primcount, int baseinstance) Draws multiple instances of a set of elements with an offset applied to instanced attributes- Parameters:
mode- what kind of primitives to render. One of:POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLESLINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADSQUAD_STRIPindices- a pointer to the location where the indices are storedprimcount- the number of instances of the specified range of indices to be renderedbaseinstance- the base instance for use in fetching instanced vertex attributes
-
nglDrawElementsInstancedBaseVertexBaseInstance
public static void nglDrawElementsInstancedBaseVertexBaseInstance(int mode, int count, int type, long indices, int primcount, int basevertex, int baseinstance) Unsafe version of:DrawElementsInstancedBaseVertexBaseInstance- Parameters:
count- the number of elements to be renderedtype- the type of the values inindices. One of:UNSIGNED_BYTEUNSIGNED_SHORTUNSIGNED_INT
-
glDrawElementsInstancedBaseVertexBaseInstance
public static void glDrawElementsInstancedBaseVertexBaseInstance(int mode, int count, int type, long indices, int primcount, int basevertex, int baseinstance) Renders multiple instances of a set of primitives from array data with a per-element offset.- Parameters:
mode- what kind of primitives to render. One of:POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLESLINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADSQUAD_STRIPcount- the number of elements to be renderedtype- the type of the values inindices. One of:UNSIGNED_BYTEUNSIGNED_SHORTUNSIGNED_INTindices- a pointer to the location where the indices are storedprimcount- the number of instances of the indexed geometry that should be drawnbasevertex- a constant that should be added to each element ofindiceswhen choosing elements from the enabled vertex arraysbaseinstance- the base instance for use in fetching instanced vertex attributes
-
glDrawElementsInstancedBaseVertexBaseInstance
public static void glDrawElementsInstancedBaseVertexBaseInstance(int mode, int type, ByteBuffer indices, int primcount, int basevertex, int baseinstance) Renders multiple instances of a set of primitives from array data with a per-element offset.- Parameters:
mode- what kind of primitives to render. One of:POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLESLINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADSQUAD_STRIPtype- the type of the values inindices. One of:UNSIGNED_BYTEUNSIGNED_SHORTUNSIGNED_INTindices- a pointer to the location where the indices are storedprimcount- the number of instances of the indexed geometry that should be drawnbasevertex- a constant that should be added to each element ofindiceswhen choosing elements from the enabled vertex arraysbaseinstance- the base instance for use in fetching instanced vertex attributes
-
glDrawElementsInstancedBaseVertexBaseInstance
public static void glDrawElementsInstancedBaseVertexBaseInstance(int mode, ByteBuffer indices, int primcount, int basevertex, int baseinstance) Renders multiple instances of a set of primitives from array data with a per-element offset.- Parameters:
mode- what kind of primitives to render. One of:POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLESLINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADSQUAD_STRIPindices- a pointer to the location where the indices are storedprimcount- the number of instances of the indexed geometry that should be drawnbasevertex- a constant that should be added to each element ofindiceswhen choosing elements from the enabled vertex arraysbaseinstance- the base instance for use in fetching instanced vertex attributes
-
glDrawElementsInstancedBaseVertexBaseInstance
public static void glDrawElementsInstancedBaseVertexBaseInstance(int mode, ShortBuffer indices, int primcount, int basevertex, int baseinstance) Renders multiple instances of a set of primitives from array data with a per-element offset.- Parameters:
mode- what kind of primitives to render. One of:POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLESLINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADSQUAD_STRIPindices- a pointer to the location where the indices are storedprimcount- the number of instances of the indexed geometry that should be drawnbasevertex- a constant that should be added to each element ofindiceswhen choosing elements from the enabled vertex arraysbaseinstance- the base instance for use in fetching instanced vertex attributes
-
glDrawElementsInstancedBaseVertexBaseInstance
public static void glDrawElementsInstancedBaseVertexBaseInstance(int mode, IntBuffer indices, int primcount, int basevertex, int baseinstance) Renders multiple instances of a set of primitives from array data with a per-element offset.- Parameters:
mode- what kind of primitives to render. One of:POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLESLINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADSQUAD_STRIPindices- a pointer to the location where the indices are storedprimcount- the number of instances of the indexed geometry that should be drawnbasevertex- a constant that should be added to each element ofindiceswhen choosing elements from the enabled vertex arraysbaseinstance- the base instance for use in fetching instanced vertex attributes
-