Light | Dark

# docs.GL

OpenGL 4
OpenGL 3

# glMultiDrawElementsBaseVertex

## Name

glMultiDrawElementsBaseVertex — render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index

## C Specification

`void glMultiDrawElementsBaseVertex(` | GLenum mode,
| const GLsizei *count,
| GLenum type,
| const GLvoid **indices,
| GLsizei primcount,
| GLint *basevertex`)`;

## Parameters

`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` and `GL_TRIANGLES_ADJACENCY` 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.

`primcount`

  Specifies the size of the `count` array.

`basevertex`

  Specifies a pointer to the location where the base vertices are stored.

## Description

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

It has the same effect as:

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

## Notes

`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

`GL_INVALID_ENUM` is generated if `mode` is not an accepted value.

`GL_INVALID_VALUE` is generated if `primcount` 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.

## See Also

glMultiDrawElements, glDrawElementsBaseVertex, glDrawArrays, glVertexAttribPointer

## Copyright

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. https://opencontent.org/openpub/.

Think you can improve this page? Edit this page on GitHub.