---
name: "glEdgeFlagPointer"
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/glEdgeFlagPointer"
---

# glEdgeFlagPointer(3x)

define an array of edge flags

## NAME

**glEdgeFlagPointer** - define an array of edge flags

## C SPECIFICATION

void **glEdgeFlagPointer**( GLsizei *stride*,

```
	const GLvoid *ptr )
```

delim $$

## PARAMETERS

- *stride*

  Specifies the byte offset between consecutive edge flags. If *stride* is 0 (the initial value), the edge flags are understood to be tightly packed in the array. The initial value is 0.

- *ptr*

  Specifies a pointer to the first edge flag in the array. The initial value is zero.

## DESCRIPTION

**glEdgeFlagPointer** specifies the location and data  of an array of boolean edge  flags to use when rendering. *stride* specifies the byte stride from one edge flag to the next allowing vertices and attributes to be packed into a single array or stored in separate arrays. (Single-array storage may be more efficient on some implementations; see **glInterleavedArrays**.)

When an edge flag array is specified, *stride* and *ptr* are saved as client-side state.

To enable and disable the edge flag array, call **glEnableClientState** and\
 **glDisableClientState** with  the argument **GL\_EDGE\_FLAG\_ARRAY**. If enabled, the edge flag array is used when **glDrawArrays**, **glDrawElements**, or **glArrayElement** is called.

Use **glDrawArrays** to construct a sequence of primitives (all of the same type) from prespecified vertex and vertex attribute arrays. Use **glArrayElement** to specify primitives by indexing vertices and vertex attributes and **glDrawElements** to construct a sequence of primitives by indexing vertices and vertex attributes.

## NOTES

**glEdgeFlagPointer** is available only if the GL version is 1.1 or greater.

The edge flag array is initially disabled and it won't be accessed when\
 **glArrayElement**, **glDrawElements** or **glDrawArrays** is called.

Execution of **glEdgeFlagPointer** is not allowed between the execution of **glBegin** and the corresponding execution of **glEnd**, but an error may or may not be generated. If no error is generated, the operation is undefined.

**glEdgeFlagPointer** is typically implemented on the client side.

Edge flag array parameters are client-side state and are therefore not saved or restored by **glPushAttrib** and **glPopAttrib**. Use **glPushClientAttrib** and \
 **glPopClientAttrib** instead.

## ERRORS

**GL\_INVALID\_ENUM** is generated if *stride* is negative.

## ASSOCIATED GETS

**glIsEnabled** with argument **GL\_EDGE\_FLAG\_ARRAY**\
 **glGet** with argument **GL\_EDGE\_FLAG\_ARRAY\_STRIDE**\
 **glGetPointerv** with argument **GL\_EDGE\_FLAG\_ARRAY\_POINTER**

## SEE ALSO

**glArrayElement(3G)**, **glColorPointer(3G)**, **glDrawArrays(3G)**, **glDrawElements(3G)**, **glEnable(3G)**, **glGetPointerv(3G)**, **glIndexPointer(3G)**, **glNormalPointer(3G)**, **glPopClientAttrib(3G)**,\
 **glPushClientAttrib(3G)**, **glTexCoordPointer(3G)**, **glVertexPointer(3G)**
