glArrayElement — render a vertex using the specified vertex array element
C Specification
void glArrayElement( | GLint | i) ; |
Parameters
i
- Specifies an index into the enabled vertex data arrays.
Description
glArrayElement
commands are used within glBegin/glEnd pairs to specify vertex and attribute data for point, line, and polygon primitives. If GL_VERTEX_ARRAY
is enabled when glArrayElement
is called, a single vertex is drawn, using vertex and attribute data taken from location i
of the enabled arrays. If GL_VERTEX_ARRAY
is not enabled, no drawing occurs but the attributes corresponding to the enabled arrays are modified.Use
glArrayElement
to construct primitives by indexing vertex data, rather than by streaming through arrays of data in first-to-last order. Because each call specifies only a single vertex, it is possible to explicitly specify per-primitive attributes such as a single normal for each triangle.Changes made to array data between the execution of glBegin and the corresponding execution of glEnd may affect calls to
glArrayElement
that are made within the same glBegin/glEnd period in nonsequential ways. That is, a call to glArrayElement
that precedes a change to array data may access the changed data, and a call that follows a change to array data may access original data.Notes
glArrayElement
is available only if the GL version is 1.1 or greater.glArrayElement
is included in display lists. If glArrayElement
is entered into a display list, the necessary array data (determined by the array pointers and enables) is also entered into the display list. Because the array pointers and enables are client-side state, their values affect display lists when the lists are created, not when the lists are executed.Errors
GL_INVALID_VALUE
may be generated if i
is negative.GL_INVALID_OPERATION
is generated if a non-zero buffer object name is bound to an enabled array and the buffer object's data store is currently mapped.See Also
glClientActiveTexture, glColorPointer, glDrawArrays, glEdgeFlagPointer, glFogCoordPointer, glGetPointerv, glIndexPointer,glInterleavedArrays, glNormalPointer, glSecondaryColorPointer, glTexCoordPointer, glVertexPointerCopyright
Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.Example
{
GLint vertex[] = {.....};
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
glColorPointer(3, GL_FLOAT, 0, color);
glVertexPointer(2, GL_INT, 0, vertex);
glBegin(GL_TRIANGLE);
glArrayElement(2);
glArrayElement(3);
glArrayElement(5);
glEnd();
}
}