glMultiDrawElementsBaseVertex

From OpenGL Reference
Jump to navigation Jump to search

Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index.

C Specification[edit]

void glMultiDrawElementsBaseVertex( GLenum mode, const GLsizei * count, GLenum type, const void * const * indices, GLsizei drawcount, const GLint * basevertex );


Parameters[edit]

mode - Specifies what kind of primitives to render. Symbolic constants GL_POINTS , GL_LINE_STRIP , GL_LINE_LOOP , GL_LINES , GL_LINE_STRIP_ADJACENCY , GL_LINES_ADJACENCY , GL_TRIANGLE_STRIP , GL_TRIANGLE_FAN , GL_TRIANGLES , GL_TRIANGLE_STRIP_ADJACENCY , GL_TRIANGLES_ADJACENCY and GL_PATCHES are accepted.
count - Points to an array of the elements counts.
type - Specifies the type of the values in indices . Must be one of GL_UNSIGNED_BYTE , GL_UNSIGNED_SHORT , or GL_UNSIGNED_INT .
indices - Specifies a pointer to the location where the indices are stored.
drawcount - Specifies the size of the count , indices and basevertex arrays.
basevertex - Specifies a pointer to the location where the base vertices are stored.


Description[edit]

 glMultiDrawElementsBaseVertex behaves identically to glDrawElementsBaseVertex , except that drawcount separate lists of elements are specifried instead.

It has the same effect as:

   for (int i = 0; i < drawcount; i++)
       if (count[i] > 0)
           glDrawElementsBaseVertex(mode,
                                    count[i],
                                    type,
                                    indices[i],
                                    basevertex[i]);



Notes[edit]

 glMultiDrawElementsBaseVertex is available only if the GL version is 3.1 or greater.

 GL_LINE_STRIP_ADJACENCY , GL_LINES_ADJACENCY , GL_TRIANGLE_STRIP_ADJACENCY and GL_TRIANGLES_ADJACENCY are available only if the GL version is 3.2 or greater.


Errors[edit]

 GL_INVALID_ENUM is generated if mode is not an accepted value.

 GL_INVALID_VALUE is generated if drawcount is negative.

 GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an enabled array or the element array and the buffer object's data store is currently mapped.


Version Support[edit]

 glMultiDrawElementsBaseVertex  3.2+

See Also[edit]

 glMultiDrawElements , glDrawElementsBaseVertex , glDrawArrays , glVertexAttribPointer 


Copyright[edit]

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