1991-2006 Silicon Graphics, Inc.
glEnableClientState 3G
glEnableClientState enable or disable client-side capability

## C Specification

void `glEnableClientState` GLenum cap

## Parameters

cap

  Specifies the capability to enable. Symbolic constants `GL_COLOR_ARRAY`, `GL_EDGE_FLAG_ARRAY`, `GL_FOG_COORD_ARRAY`, `GL_INDEX_ARRAY`, `GL_NORMAL_ARRAY`, `GL_SECONDARY_COLOR_ARRAY`, `GL_TEXTURE_COORD_ARRAY`, and `GL_VERTEX_ARRAY` are accepted.

## C Specification

void `glDisableClientState` GLenum cap

## Parameters

cap

  Specifies the capability to disable.

## Description

`glEnableClientState` and glDisableClientState enable or disable individual client-side capabilities. By default, all client-side capabilities are disabled. Both `glEnableClientState` and glDisableClientState take a single argument, cap, which can assume one of the following values:

`GL_COLOR_ARRAY`

  If enabled, the color array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElements glMultiDrawArrays, or glMultiDrawElements is called. See glColorPointer.

`GL_EDGE_FLAG_ARRAY`

  If enabled, the edge flag array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElements glMultiDrawArrays, or glMultiDrawElements is called. See glEdgeFlagPointer.

`GL_FOG_COORD_ARRAY`

  If enabled, the fog coordinate array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElements glMultiDrawArrays, or glMultiDrawElements is called. See glFogCoordPointer.

`GL_INDEX_ARRAY`

  If enabled, the index array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElements glMultiDrawArrays, or glMultiDrawElements is called. See glIndexPointer.

`GL_NORMAL_ARRAY`

  If enabled, the normal array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElements glMultiDrawArrays, or glMultiDrawElements is called. See glNormalPointer.

`GL_SECONDARY_COLOR_ARRAY`

  If enabled, the secondary color array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElements glMultiDrawArrays, or glMultiDrawElements is called. See glColorPointer.

`GL_TEXTURE_COORD_ARRAY`

  If enabled, the texture coordinate array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElements glMultiDrawArrays, or glMultiDrawElements is called. See glTexCoordPointer.

`GL_VERTEX_ARRAY`

  If enabled, the vertex array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElements glMultiDrawArrays, or glMultiDrawElements is called. See glVertexPointer.

## Notes

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

`GL_FOG_COORD_ARRAY` and `GL_SECONDARY_COLOR_ARRAY` are available only if the GL version is 1.4 or greater.

For OpenGL versions 1.3 and greater, or when `ARB_multitexture` is supported, enabling and disabling `GL_TEXTURE_COORD_ARRAY` affects the active client texture unit. The active client texture unit is controlled with glClientActiveTexture.

## Errors

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

`glEnableClientState` is not allowed between the execution of glBegin and the corresponding glEnd, but an error may or may not be generated. If no error is generated, the behavior is undefined.

## See Also

glArrayElement, glClientActiveTexture, glColorPointer, glDrawArrays, glDrawElements, glEdgeFlagPointer, glFogCoordPointer, glEnable, 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/.