glPixelTransferi man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

GLPIXELTRANSFER()					     GLPIXELTRANSFER()

NAME
       glPixelTransferf, glPixelTransferi - set pixel transfer modes

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

       delim $$

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, glCopyTex‐
       SubImage1D, glCopyTexSubImage2D, glDrawPixels,  glReadPixels,  glTexIm‐
       age1D,  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 glCopy‐
       TexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D,
       and glReadPixels), or unpacked from client memory (glDrawPixels, glTex‐
       Image1D, 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	float‐
       ing-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 com‐
		   ponent  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  com‐
		   ponent  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  con‐
		   tents 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 $2 sup n ~-~
		   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 for‐
		   mat	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 $2 sup n ~-~ 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 $2 sup n ~-~ 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	 │   (-∞,∞)    │
	      │GL_INDEX_OFFSET │ integer │	 0	 │   (-∞,∞)    │
	      │ GL_RED_SCALE   │  float	 │	 1	 │   (-∞,∞)    │
	      │GL_GREEN_SCALE  │  float	 │	 1	 │   (-∞,∞)    │
	      │ GL_BLUE_SCALE  │  float	 │	 1	 │   (-∞,∞)    │
	      │GL_ALPHA_SCALE  │  float	 │	 1	 │   (-∞,∞)    │
	      │GL_DEPTH_SCALE  │  float	 │	 1	 │   (-∞,∞)    │
	      │	 GL_RED_BIAS   │  float	 │	 0	 │   (-∞,∞)    │
	      │ GL_GREEN_BIAS  │  float	 │	 0	 │   (-∞,∞)    │
	      │ GL_BLUE_BIAS   │  float	 │	 0	 │   (-∞,∞)    │
	      │ GL_ALPHA_BIAS  │  float	 │	 0	 │   (-∞,∞)    │
	      │ GL_DEPTH_BIAS  │  float	 │	 0	 │   (-∞,∞)    │
	      └────────────────┴─────────┴───────────────┴─────────────┘
       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,  glCopyTexSubIm‐
       age1D,  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,  glCopy‐
       TexSubImage1D,  glCopyTexSubImage2D,  glDrawPixels,  glNewList,	glPix‐
       elMap, glPixelStore, glPixelZoom, glReadPixels, glTexImage1D,  glTexIm‐
       age2D, glTexSubImage1D, glTexSubImage2D

							     GLPIXELTRANSFER()
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net