Name

glPushClientAttrib, glPopClientAttrib	- push and pop the
client attribute stack

Python Specification

glPopClientAttrib
	glPopClientAttrib() -> None
glPushClientAttrib
	glPushClientAttrib(mask) -> None

Because reference counting is done in glPushClientAttrib() every call to
glPushClientAttrib() from Python must be accompanied by a call to
glPopClientAttrib() from within Python.  Also every call to glColorPointer,
glIndexPointer, etc. from within an extension module must be surrounded by
calls from the extension module to glPushClientAttrib and glPopClientAttrib.

C Specification

void glPushClientAttrib( GLbitfield mask )

Parameters

mask	Specifies a mask that indicates	which attributes to
      save.  Values for mask are listed below.

C Specification

void glPopClientAttrib( void )

Description

glPushClientAttrib takes one argument, a mask	that indicates
which	groups of client-state variables to save on the	client
attribute stack. Symbolic constants are used to set bits in
the mask.  mask is typically constructed by OR'ing several
of these constants together.	The special mask
GL_CLIENT_ALL_ATTRIB_BITS can	be used	to save	all stackable
client state.

The symbolic mask constants and their	associated GL client
state	are as follows (the second column lists	which
attributes are saved):

GL_CLIENT_PIXEL_STORE_BIT	Pixel storage modes
GL_CLIENT_VERTEX_ARRAY_BIT	Vertex arrays (and enables)

glPopClientAttrib restores the values	of the client-state
variables saved with the last	glPushClientAttrib.  Those not
saved	are left unchanged.

It is	an error to push attributes onto a full	client
attribute stack, or to pop attributes	off an empty stack.
In either case, the error flag is set, and no	other change
is made to GL	state.

Initially, the client	attribute stack	is empty.

Notes

glPushClientAttrib is	available only if the GL version is
1.1 or greater.

Not all values for GL	client state can be saved on the
attribute stack.  For	example, select	and feedback state
cannot be saved.

The depth of the attribute stack depends on the
implementation, but it must be at least 16.

Use glPushAttrib and glPopAttrib to push and restore state
which	is kept	on the server. Only pixel storage modes	and
vertex array state may be pushed and popped with
glPushClientAttrib and glPopClientAttrib.

Errors

GL_STACK_OVERFLOW is generated if glPushClientAttrib is
called while the attribute stack is full.

GL_STACK_UNDERFLOW is	generated if glPopClientAttrib is
called while the attribute stack is empty.

Associated Gets

glGet	with argument GL_ATTRIB_STACK_DEPTH
glGet	with argument GL_MAX_CLIENT_ATTRIB_STACK_DEPTH

See Also

glColorPointer, glDisableClientState,	glEdgeFlagPointer,
glEnableClientState, glGet, glGetError, glIndexPointer,
glNormalPointer, glNewList, glPixelStore, glPushAttrib,
glTexCoordPointer, glVertexPointer

:: Documentation :: References :: GL ::
:: Index (n/a) ::