glPushAttrib.3gl




Name

  glPushAttrib,	glPopAttrib - push and pop the attribute stack


C Specification

  void glPushAttrib( GLbitfield	mask )


Parameters


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

C Specification

  void glPopAttrib( void )


Description

  glPushAttrib takes one argument, a mask that indicates which groups of
  state	variables to save on the attribute stack.  Symbolic constants are
  used to set bits in the mask.	 mask is typically constructed by ORing
  several of these constants together.	The special mask GL_ALL_ATTRIB_BITS
  can be used to save all stackable states.

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

  GL_ACCUM_BUFFER_BIT	   Accumulation	buffer clear value

  GL_COLOR_BUFFER_BIT	   GL_ALPHA_TEST enable	bit
			   Alpha test function and reference value
			   GL_BLEND enable bit
			   Blending source and destination functions
			   GL_DITHER enable bit
			   GL_DRAW_BUFFER setting
			   GL_LOGIC_OP enable bit
			   Logic op function
			   Color mode and index	mode clear values
			   Color mode and index	mode writemasks

  GL_CURRENT_BIT	   Current RGBA	color
			   Current color index
			   Current normal vector
			   Current texture coordinates
			   Current raster position
			   GL_CURRENT_RASTER_POSITION_VALID flag
			   RGBA	color associated with current raster position
			   Color index associated with current raster position
			   Texture coordinates associated with current raster position
			   GL_EDGE_FLAG	flag

  GL_DEPTH_BUFFER_BIT	   GL_DEPTH_TEST enable	bit
			   Depth buffer	test function
			   Depth buffer	clear value
			   GL_DEPTH_WRITEMASK enable bit

  GL_ENABLE_BIT		   GL_ALPHA_TEST flag
			   GL_AUTO_NORMAL flag
			   GL_BLEND flag
			   Enable bits for the user-definable clipping planes
			   GL_COLOR_MATERIAL
			   GL_CULL_FACE	flag
			   GL_DEPTH_TEST flag
			   GL_DITHER flag
			   GL_FOG flag
			   GL_LIGHTi where 0 <=	i<GL_MAX_LIGHTS
			   GL_LIGHTING flag
			   GL_LINE_SMOOTH flag
			   GL_LINE_STIPPLE flag
			   GL_LOGIC_OP flag
			   GL_MAP1_x where x is	a map type
			   GL_MAP2_x where x is	a map type
			   GL_NORMALIZE	flag
			   GL_POINT_SMOOTH flag
			   GL_POLYGON_SMOOTH flag
			   GL_POLYGON_STIPPLE flag
			   GL_SCISSOR_TEST flag
			   GL_STENCIL_TEST flag
			   GL_TEXTURE_1D flag
			   GL_TEXTURE_2D flag
			   Flags GL_TEXTURE_GEN_x where	x is S,	T, R, or Q

  GL_EVAL_BIT		   GL_MAP1_x enable bits, where	x is a map type
			   GL_MAP2_x enable bits, where	x is a map type
			   1-D grid endpoints and divisions
			   2-D grid endpoints and divisions
			   GL_AUTO_NORMAL enable bit

  GL_FOG_BIT		   GL_FOG enable flag
			   Fog color
			   Fog density
			   Linear fog start
			   Linear fog end
			   Fog index
			   GL_FOG_MODE value

  GL_HINT_BIT		   GL_PERSPECTIVE_CORRECTION_HINT setting
			   GL_POINT_SMOOTH_HINT	setting
			   GL_LINE_SMOOTH_HINT setting
			   GL_POLYGON_SMOOTH_HINT setting
			   GL_FOG_HINT setting

  GL_LIGHTING_BIT	   GL_COLOR_MATERIAL enable bit
			   GL_COLOR_MATERIAL_FACE value
			   Color material parameters that are tracking the current color
			   Ambient scene color
			   GL_LIGHT_MODEL_LOCAL_VIEWER value
			   GL_LIGHT_MODEL_TWO_SIDE setting
			   GL_LIGHTING enable bit
			   Enable bit for each light
			   Ambient, diffuse, and specular intensity for	each light
			   Direction, position,	exponent, and cutoff angle for each light
			   Constant, linear, and quadratic attenuation factors for each	light
			   Ambient, diffuse, specular, and emissive color for each material
			   Ambient, diffuse, and specular color	indices	for each material
			   Specular exponent for each material
			   GL_SHADE_MODEL setting

  GL_LINE_BIT		   GL_LINE_SMOOTH flag
			   GL_LINE_STIPPLE enable bit
			   Line	stipple	pattern	and repeat counter
			   Line	width

  GL_LIST_BIT		   GL_LIST_BASE	setting

  GL_PIXEL_MODE_BIT	   GL_RED_BIAS and GL_RED_SCALE	settings
			   GL_GREEN_BIAS and GL_GREEN_SCALE values
			   GL_BLUE_BIAS	and GL_BLUE_SCALE
			   GL_ALPHA_BIAS and GL_ALPHA_SCALE
			   GL_DEPTH_BIAS and GL_DEPTH_SCALE
			   GL_INDEX_OFFSET and GL_INDEX_SHIFT values
			   GL_MAP_COLOR	and GL_MAP_STENCIL flags
			   GL_ZOOM_X and GL_ZOOM_Y factors
			   GL_READ_BUFFER setting

  GL_POINT_BIT		   GL_POINT_SMOOTH flag
			   Point size

  GL_POLYGON_BIT	   GL_CULL_FACE	enable bit
			   GL_CULL_FACE_MODE value
			   GL_FRONT_FACE indicator
			   GL_POLYGON_MODE setting
			   GL_POLYGON_SMOOTH flag
			   GL_POLYGON_STIPPLE enable bit

  GL_POLYGON_STIPPLE_BIT   Polygon stipple image

  GL_SCISSOR_BIT	   GL_SCISSOR_TEST flag
			   Scissor box

  GL_STENCIL_BUFFER_BIT	   GL_STENCIL_TEST enable bit
			   Stencil function and	reference value
			   Stencil value mask
			   Stencil fail, pass, and depth buffer	pass actions
			   Stencil buffer clear	value
			   Stencil buffer writemask

  GL_TEXTURE_BIT	   Enable bits for the four texture coordinates
			   Border color	for each texture image
			   Minification	function for each texture image
			   Magnification function for each texture image
			   Texture coordinates and wrap	mode for each texture image
			   Color and mode for each texture environment
			   Enable bits GL_TEXTURE_GEN_x, x is S, T, R, and Q
			   GL_TEXTURE_GEN_MODE setting for S, T, R, and	Q
			   glTexGen plane equations for	S, T, R, and Q

  GL_TRANSFORM_BIT	   Coefficients	of the six clipping planes
			   Enable bits for the user-definable clipping planes
			   GL_MATRIX_MODE value
			   GL_NORMALIZE	flag

  GL_VIEWPORT_BIT	   Depth range (near and far)
			   Viewport origin and extent

  glPopAttrib restores the values of the state variables saved with the	last
  glPushAttrib command.	 Those not saved are left unchanged.

  It is	an error to push attributes onto a full	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 attribute stack is empty.


Notes

  Not all values for GL	state can be saved on the attribute stack.  For
  example, pixel pack and unpack state,	render mode state, and select and
  feedback state cannot	be saved.


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

Errors

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

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

  GL_INVALID_OPERATION is generated if glPushAttrib or glPopAttrib is
  executed between the execution of glBegin and	the corresponding execution
  of glEnd.

Associated Gets

  glGet	with argument GL_ATTRIB_STACK_DEPTH.
  glGet	with argument GL_MAX_ATTRIB_STACK_DEPTH.

See Also

  glGet, glGetClipPlane, glGetError, glGetLight, glGetMap, glGetMaterial,
  glGetPixelMap, glGetPolygonStipple, glGetString, glGetTexEnv,	glGetTexGen,
  glGetTexImage, glGetTexLevelParameter, glGetTexParameter, glIsEnabled




Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV