2010 Khronos Group
glDrawElementsBaseVertex 3G
glDrawElementsBaseVertex render primitives from array data with a per-element offset

## C Specification

void `glDrawElementsBaseVertex` GLenum mode GLsizei count GLenum type GLvoid *indices GLint basevertex

## Parameters

mode

  Specifies what kind of primitives to render. Symbolic constants `GL_POINTS`, `GL_LINE_STRIP`, `GL_LINE_LOOP`, `GL_LINES`, `GL_TRIANGLE_STRIP`, `GL_TRIANGLE_FAN`, `GL_TRIANGLES`, `GL_LINES_ADJACENCY`, `GL_LINE_STRIP_ADJACENCY`, `GL_TRIANGLES_ADJACENCY`, `GL_TRIANGLE_STRIP_ADJACENCY` and `GL_PATCHES` are accepted.

count

  Specifies the number of elements to be rendered.

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.

basevertex

  Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.

## Description

`glDrawElementsBaseVertex` behaves identically to glDrawElements except that the ith element transferred by the corresponding draw call will be taken from element indices[i] + basevertex of each enabled array. If the resulting value is larger than the maximum value representable by type, it is as if the calculation were upconverted to 32-bit unsigned integers (with wrapping on overflow conditions). The operation is undefined if the sum would be negative.

## Notes

`glDrawElementsBaseVertex` is only supported if the GL version is 3.2 or greater, or if the `ARB_draw_elements_base_vertex` extension is supported.

## Errors

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

`GL_INVALID_VALUE` is generated if count is negative.

`GL_INVALID_OPERATION` is generated if a geometry shader is active and mode is incompatible with the input primitive type of the geometry shader in the currently installed program object.

`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

glDrawElements, glDrawRangeElements, glDrawRangeElementsBaseVertex, glDrawElementsInstanced, glDrawElementsInstancedBaseVertex

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