glDrawElementsInstancedBaseVertexBaseInstance - render multiple instances of a set of primitives from array data with a per-element offset
void glDrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, GLvoid *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance);
glDrawElementsInstancedBaseVertexBaseInstance behaves identically to glDrawElementsInstanced() 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. The basevertex has no effect on the shader-visible value of gl_VertexID.
Specific vertex attributes may be classified as instanced through the use of glVertexAttribDivisor(). Instanced vertex attributes supply per-instance vertex data to the vertex shader. The index of the vertex fetched from the enabled instanced vertex attribute arrays is calculated as gl _ InstanceID divisor + baseInstance. Note that baseinstance does not affect the shader-visible value of gl_InstanceID.
glDrawElementsInstancedBaseVertex is only supported if the GL version is 3.2 or greater.
GL_INVALID_ENUM is generated if mode is not an accepted value.
GL_INVALID_VALUE is generated if count or primcount 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.
|Function / Feature Name||2.0||2.1||3.0||3.1||3.2||3.3||4.0||4.1||4.2||4.3||4.4||4.5|
glDrawElements(), glDrawRangeElements(), glDrawRangeElementsBaseVertex(), glDrawElementsInstanced(), glDrawElementsInstancedBaseVertex()
Copyright © 2011-2014 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/.
Copyright © 2011-2014 Khronos Group