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