1991-2006 Silicon Graphics, Inc.
glArrayElement 3G
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, glVertexPointer

## Copyright

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/.