glColorPointer
Prev | GL | Next

## Name

glColorPointer, glColorPointerb, glColorPointerf, glColorPointerd, glColorPointeri, glColorPointers, glColorPointerub, glColorPointerui, glColorPointerus — define an array of colors

## C Specification

`void `glColorPointer`` | `(` | `GLint `size`, GLenum `type`, GLsizei `stride`, const GLvoid *`pointer`);`

## Python Specification

``glColorPointer`` | `(` | ``size`, `type`, `stride`, `pointer`) → `None``
``glColorPointerb`` | `(` | ``pointer`[][]) → `None``
``glColorPointerd`` | `(` | ``pointer`[][]) → `None``
``glColorPointerf`` | `(` | ``pointer`[][]) → `None``
``glColorPointeri`` | `(` | ``pointer`[][]) → `None``
``glColorPointers`` | `(` | ``pointer`[][]) → `None``
``glColorPointerub`` | `(` | ``pointer`[][]) → `None``
``glColorPointerui`` | `(` | ``pointer`[][]) → `None``
``glColorPointerus`` | `(` | ``pointer`[][]) → `None``

## Parameters

`size`
  Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
`type`
  Specifies the data type of each color component in the array. Symbolic constants `GL_BYTE`, `GL_UNSIGNED_BYTE`, `GL_SHORT`, `GL_UNSIGNED_SHORT`, `GL_INT`, `GL_UNSIGNED_INT`, `GL_FLOAT`, and `GL_DOUBLE` are accepted. The initial value is `GL_FLOAT`.
`stride`
  Specifies the byte offset between consecutive colors. If `stride` is 0 (the initial value), the colors are understood to be tightly packed in the array. The initial value is 0.
`pointer`
  Specifies a pointer to the first component of the first color element in the array.

## Description

`glColorPointer` specifies the location and data of an array of color components to use when rendering. `size` specifies the number of components per color, and must be 3 or 4. `type` specifies the data type of each color component, and `stride` specifies the byte stride from one color to the next allowing vertexes 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 a color array is specified, `size`, `type`, `stride`, and `pointer` are saved as client-side state.

To enable and disable the color array, call `glEnableClientState` and

`glDisableClientState` with the argument `GL_COLOR_ARRAY`. If enabled, the color array is used when `glDrawArrays`, `glDrawElements`, `glDrawRangeElements`, or `glArrayElement` is called.

## Notes

`glColorPointer` is available only if the GL version is 1.1 or greater.

The color array is initially disabled and isn't accessed when `glArrayElement`, `glDrawArrays`, `glDrawRangeElements`, or `glDrawElements` is called.

Execution of `glColorPointer` 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.

`glColorPointer` is typically implemented on the client side.

Color 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_VALUE` is generated if `size` is not 3 or 4.

`GL_INVALID_ENUM` is generated if `type` is not an accepted value.

`GL_INVALID_VALUE` is generated if `stride` is negative.

## Associated Gets

`glIsEnabled` with argument `GL_COLOR_ARRAY`

`glGet` with argument `GL_COLOR_ARRAY_SIZE`

`glGet` with argument `GL_COLOR_ARRAY_TYPE`

`glGet` with argument `GL_COLOR_ARRAY_STRIDE`

`glGetPointerv` with argument `GL_COLOR_ARRAY_POINTER`

## See Also

glArrayElement, glDrawArrays, glDrawElements, glEdgeFlagPointer, glEnable, glGetPointerv, glIndexPointer, glInterleavedArrays, glNormalPointer, glPushClientAttrib, glTexCoordPointer, glVertexPointer

Prev | Up | Next
glColorMaterial | Home | glColorSubTable