NAME
	  glPixelTransferf, glPixelTransferi - set pixel transfer
	  modes


     C SPECIFICATION
	  void glPixelTransferf( GLenum	pname,
				 GLfloat param )
	  void glPixelTransferi( GLenum	pname,
				 GLint param )


     PARAMETERS
	  pname	 Specifies the symbolic	name of	the pixel transfer
		 parameter to be set.  Must be one of the following:
		 GL_MAP_COLOR, GL_MAP_STENCIL, GL_INDEX_SHIFT,
		 GL_INDEX_OFFSET, GL_RED_SCALE,	GL_RED_BIAS,
		 GL_GREEN_SCALE, GL_GREEN_BIAS,	GL_BLUE_SCALE,
		 GL_BLUE_BIAS, GL_ALPHA_SCALE, GL_ALPHA_BIAS,
		 GL_DEPTH_SCALE, or GL_DEPTH_BIAS.

	  param	 Specifies the value that pname	is set to.

     DESCRIPTION
	  glPixelTransfer sets pixel transfer modes that affect	the
	  operation of subsequent glCopyPixels,	glCopyTexImage1D,
	  glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D,
	  glDrawPixels,	glReadPixels, glTexImage1D, glTexImage2D,
	  glTexSubImage1D, and glTexSubImage2D commands.  The
	  algorithms that are specified	by pixel transfer modes
	  operate on pixels after they are read	from the frame buffer
	  (glCopyPixels	glCopyTexImage1D, glCopyTexImage2D,
	  glCopyTexSubImage1D, glCopyTexSubImage2D, and	glReadPixels),
	  or unpacked from client memory (glDrawPixels,	glTexImage1D,
	  glTexImage2D,	glTexSubImage1D, and glTexSubImage2D). Pixel
	  transfer operations happen in	the same order,	and in the
	  same manner, regardless of the command that resulted in the
	  pixel	operation.  Pixel storage modes	(see glPixelStore)
	  control the unpacking	of pixels being	read from client
	  memory, and the packing of pixels being written back into
	  client memory.

	  Pixel	transfer operations handle four	fundamental pixel
	  types:  color, color index, depth, and stencil.  Color
	  pixels consist of four floating-point	values with
	  unspecified mantissa and exponent sizes, scaled such that 0
	  represents zero intensity and	1 represents full intensity.
	  Color	indices	comprise a single fixed-point value, with
	  unspecified precision	to the right of	the binary point.
	  Depth	pixels comprise	a single floating-point	value, with
	  unspecified mantissa and exponent sizes, scaled such that
	  0.0 represents the minimum depth buffer value, and 1.0
	  represents the maximum depth buffer value.  Finally, stencil
	  pixels comprise a single fixed-point value, with unspecified
	  precision to the right of the	binary point.

	  The pixel transfer operations	performed on the four basic
	  pixel	types are as follows:

	  Color	      Each of the four color components	is multiplied
		      by a scale factor, then added to a bias factor.
		      That is, the red component is multiplied by
		      GL_RED_SCALE, then added to GL_RED_BIAS; the
		      green component is multiplied by GL_GREEN_SCALE,
		      then added to GL_GREEN_BIAS; the blue component
		      is multiplied by GL_BLUE_SCALE, then added to
		      GL_BLUE_BIAS; and	the alpha component is
		      multiplied by GL_ALPHA_SCALE, then added to
		      GL_ALPHA_BIAS.  After all	four color components
		      are scaled and biased, each is clamped to	the
		      range [0,1].  All	color, scale, and bias values
		      are specified with glPixelTransfer.

		      If GL_MAP_COLOR is true, each color component is
		      scaled by	the size of the	corresponding color-
		      to-color map, then replaced by the contents of
		      that map indexed by the scaled component.	 That
		      is, the red component is scaled by
		      GL_PIXEL_MAP_R_TO_R_SIZE,	then replaced by the
		      contents of GL_PIXEL_MAP_R_TO_R indexed by
		      itself.  The green component is scaled by
		      GL_PIXEL_MAP_G_TO_G_SIZE,	then replaced by the
		      contents of GL_PIXEL_MAP_G_TO_G indexed by
		      itself.  The blue	component is scaled by
		      GL_PIXEL_MAP_B_TO_B_SIZE,	then replaced by the
		      contents of GL_PIXEL_MAP_B_TO_B indexed by
		      itself.  And the alpha component is scaled by
		      GL_PIXEL_MAP_A_TO_A_SIZE,	then replaced by the
		      contents of GL_PIXEL_MAP_A_TO_A indexed by
		      itself.  All components taken from the maps are
		      then clamped to the range	[0,1].	GL_MAP_COLOR
		      is specified with	glPixelTransfer.  The contents
		      of the various maps are specified	with
		      glPixelMap.

	  Color	index Each color index is shifted left by
		      GL_INDEX_SHIFT bits; any bits beyond the number
		      of fraction bits carried by the fixed-point
		      index are	filled with zeros.  If GL_INDEX_SHIFT
		      is negative, the shift is	to the right, again
		      zero filled.  Then GL_INDEX_OFFSET is added to
		      the index.  GL_INDEX_SHIFT and GL_INDEX_OFFSET
		      are specified with
		      glPixelTransfer.
		      From this	point, operation diverges depending on
		      the required format of the resulting pixels.  If
		      the resulting pixels are to be written to	a
		      color index buffer, or if	they are being read
		      back to client memory in GL_COLOR_INDEX format,
		      the pixels continue to be	treated	as indices.
		      If GL_MAP_COLOR is true, each index is masked by
		      2n - 1, where n is GL_PIXEL_MAP_I_TO_I_SIZE,
		      then replaced by the contents of
		      GL_PIXEL_MAP_I_TO_I indexed by the masked	value.
		      GL_MAP_COLOR is specified	with glPixelTransfer.
		      The contents of the index	map is specified with
		      glPixelMap.

		      If the resulting pixels are to be	written	to an
		      RGBA color buffer, or if they are	read back to
		      client memory in a format	other than
		      GL_COLOR_INDEX, the pixels are converted from
		      indices to colors	by referencing the four	maps
		      GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G,
		      GL_PIXEL_MAP_I_TO_B, and GL_PIXEL_MAP_I_TO_A.
		      Before being dereferenced, the index is masked
		      by 2n - 1, where n is GL_PIXEL_MAP_I_TO_R_SIZE
		      for the red map, GL_PIXEL_MAP_I_TO_G_SIZE	for
		      the green	map, GL_PIXEL_MAP_I_TO_B_SIZE for the
		      blue map,	and GL_PIXEL_MAP_I_TO_A_SIZE for the
		      alpha map.  All components taken from the	maps
		      are then clamped to the range [0,1].  The
		      contents of the four maps	is specified with
		      glPixelMap.

	  Depth	      Each depth value is multiplied by
		      GL_DEPTH_SCALE, added to GL_DEPTH_BIAS, then
		      clamped to the range [0,1].

	  Stencil     Each index is shifted GL_INDEX_SHIFT bits	just
		      as a color index is, then	added to
		      GL_INDEX_OFFSET.	If GL_MAP_STENCIL is true,
		      each index is masked by 2n - 1, where n is
		      GL_PIXEL_MAP_S_TO_S_SIZE,	then replaced by the
		      contents of GL_PIXEL_MAP_S_TO_S indexed by the
		      masked value.

	  The following	table gives the	type, initial value, and range
	  of valid values for each of the pixel	transfer parameters
	  that are set with glPixelTransfer.






	   _________________________________________________________
	   |	 pname	    |  type   |	initial	value |	valid range |
	   |________________|_________|_______________|_____________|
	   | GL_MAP_COLOR   | boolean |	    false     |	true/false  |
	   |GL_MAP_STENCIL  | boolean |	    false     |	true/false  |
	   |GL_INDEX_SHIFT  | integer |	      0	      |	 (-oo,oo)   |
	   |GL_INDEX_OFFSET | integer |	      0	      |	 (-oo,oo)   |
	   | GL_RED_SCALE   |  float  |	      1	      |	 (-oo,oo)   |
	   |GL_GREEN_SCALE  |  float  |	      1	      |	 (-oo,oo)   |
	   | GL_BLUE_SCALE  |  float  |	      1	      |	 (-oo,oo)   |
	   |GL_ALPHA_SCALE  |  float  |	      1	      |	 (-oo,oo)   |
	   |GL_DEPTH_SCALE  |  float  |	      1	      |	 (-oo,oo)   |
	   |  GL_RED_BIAS   |  float  |	      0	      |	 (-oo,oo)   |
	   | GL_GREEN_BIAS  |  float  |	      0	      |	 (-oo,oo)   |
	   | GL_BLUE_BIAS   |  float  |	      0	      |	 (-oo,oo)   |
	   | GL_ALPHA_BIAS  |  float  |	      0	      |	 (-oo,oo)   |
	   | GL_DEPTH_BIAS  |  float  |	      0	      |	 (-oo,oo)   |
	   |________________|_________|_______________|_____________|

	  glPixelTransferf can be used to set any pixel	transfer
	  parameter.  If the parameter type is boolean,	0 implies
	  false	and any	other value implies true.  If pname is an
	  integer parameter, param is rounded to the nearest integer.

	  Likewise, glPixelTransferi can be used to set	any of the
	  pixel	transfer parameters.  Boolean parameters are set to
	  false	if param is 0 and to true otherwise.  param is
	  converted to floating	point before being assigned to real-
	  valued parameters.

     NOTES
	  If a glCopyPixels, glCopyTexImage1D, glCopyTexImage2D,
	  glCopyTexSubImage1D, glCopyTexSubImage2D, glDrawPixels,
	  glReadPixels,	glTexImage1D, glTexImage2D, glTexSubImage1D,
	  or glTexSubImage2D command is	placed in a display list (see
	  glNewList and	glCallList), the pixel transfer	mode settings
	  in effect when the display list is executed are the ones
	  that are used.  They may be different	from the settings when
	  the command was compiled into	the display list.

     ERRORS
	  GL_INVALID_ENUM is generated if pname	is not an accepted
	  value.

	  GL_INVALID_OPERATION is generated if glPixelTransfer is
	  executed between the execution of glBegin and	the
	  corresponding	execution of glEnd.

     ASSOCIATED	GETS
	  glGet	with argument GL_MAP_COLOR
	  glGet	with argument GL_MAP_STENCIL
	  glGet	with argument GL_INDEX_SHIFT
	  glGet	with argument GL_INDEX_OFFSET
	  glGet	with argument GL_RED_SCALE
	  glGet	with argument GL_RED_BIAS
	  glGet	with argument GL_GREEN_SCALE
	  glGet	with argument GL_GREEN_BIAS
	  glGet	with argument GL_BLUE_SCALE
	  glGet	with argument GL_BLUE_BIAS
	  glGet	with argument GL_ALPHA_SCALE
	  glGet	with argument GL_ALPHA_BIAS
	  glGet	with argument GL_DEPTH_SCALE
	  glGet	with argument GL_DEPTH_BIAS

     SEE ALSO
	  glCallList, glCopyPixels, glCopyTexImage1D,
	  glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D,
	  glDrawPixels,	glNewList, glPixelMap, glPixelStore,
	  glPixelZoom, glReadPixels, glTexImage1D, glTexImage2D,
	  glTexSubImage1D, glTexSubImage2D