---
name: "glArrayElement"
section: "3x"
platform: "linux"
package: "xlibmesa-gl-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/glArrayElement"
---

# glArrayElement(3x)

render a vertex using the specified vertex array element

## NAME

**glArrayElement** - render a vertex using the specified vertex array element

## C SPECIFICATION

void **glArrayElement**( GLint *i* )

```

```

delim $$

## 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 per individual 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 non-sequential 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.

## SEE ALSO

**glClientActiveTextureARB(3G)**, **glColorPointer(3G)**, **glDrawArrays(3G)**, **glEdgeFlagPointer(3G)**, **glGetPointerv(3G)**, **glIndexPointer(3G)**, **glInterleavedArrays(3G)**, **glNormalPointer(3G)**, **glTexCoordPointer(3G)**, **glVertexPointer(3G)**
