*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> OpenGL/gldrawpixels (3)              
Title
Content
Arch
Section
 

Contents


glDrawPixels(3G)	       OpenGL Reference		      glDrawPixels(3G)


NAME    [Toc]    [Back]

     glDrawPixels - write a block of pixels to the frame buffer

C SPECIFICATION    [Toc]    [Back]

     void glDrawPixels(	GLsizei	width,
			GLsizei	height,
			GLenum format,
			GLenum type,
			const GLvoid *pixels )

PARAMETERS    [Toc]    [Back]

     width, height Specify the dimensions of the pixel rectangle to be written
		   into	the frame buffer.

     format	   Specifies the format	of the pixel data.  Symbolic constants
		   GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT,
		   GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_ABGR_EXT, GL_RED,
		   GL_GREEN, GL_BLUE, GL_ALPHA,	GL_LUMINANCE, and
		   GL_LUMINANCE_ALPHA are accepted.

     type	   Specifies the data type for pixels.	Symbolic constants
		   GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT,
		   GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT,
		   GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV,
		   GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV,
		   GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV,
		   GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV,
		   GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV,
		   GL_UNSIGNED_INT_10_10_10_2, and
		   GL_UNSIGNED_INT_2_10_10_10_REV are accepted.

     pixels	   Specifies a pointer to the pixel data.

DESCRIPTION    [Toc]    [Back]

     glDrawPixels reads	pixel data from	memory and writes it into the frame
     buffer relative to	the current raster position, provided that the raster
     position is valid.	 Use glRasterPos to set	the current raster position;
     use glGet with argument GL_CURRENT_RASTER_POSITION_VALID to determine if
     the specified raster position is valid, and glGet with argument
     GL_CURRENT_RASTER_POSITION	to query the raster position.

     Several parameters	define the encoding of pixel data in memory and
     control the processing of the pixel data before it	is placed in the frame
     buffer.  These parameters are set with four commands:  glPixelStore,
     glPixelTransfer, glPixelMap, and glPixelZoom.  This reference page
     describes the effects on glDrawPixels of many, but	not all, of the
     parameters	specified by these four	commands.






									Page 1






glDrawPixels(3G)	       OpenGL Reference		      glDrawPixels(3G)



     Data is read from pixels as a sequence of signed or unsigned bytes,
     signed or unsigned	shorts,	signed or unsigned integers, or	singleprecision
 floating-point values, depending	on type. When type is one of
     GL_UNSIGNED_BYTE, GL_BYTE,	GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT,
     GL_INT, or	GL_FLOAT each of these bytes, shorts, integers,	or floatingpoint
 values is interpreted as one	color or depth component, or one
     index, depending on format.  When type is one of GL_UNSIGNED_BYTE_3_3_2,
     GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_4_4_4_4,
     GL_UNSIGNED_SHORT_5_5_5_1,	GL_UNSIGNED_INT_8_8_8_8,
     GL_UNSIGNED_INT_10_10_10_2, each unsigned value is	interpreted as
     containing	all the	components for a single	pixel, with the	color
     components	arranged according to format.  When type is one	of
     GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5_REV,
     GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_1_5_5_5_REV,
     GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_2_10_10_10_REV, each
     unsigned value is interpreted as containing all color components,
     specified by format, for a	single pixel in	a reversed order. Indices are
     always treated individually.  Color components are	treated	as groups of
     one, two, three, or four values, again based on format. Both individual
     indices and groups	of components are referred to as pixels.  If type is
     GL_BITMAP,	the data must be unsigned bytes, and format must be either
     GL_COLOR_INDEX or GL_STENCIL_INDEX.  Each unsigned	byte is	treated	as
     eight 1-bit pixels, with bit ordering determined by GL_UNPACK_LSB_FIRST
     (see glPixelStore).

     width x height pixels are read from memory, starting at location pixels.
     By	default, these pixels are taken	from adjacent memory locations,	except
     that after	all width pixels are read, the read pointer is advanced	to the
     next four-byte boundary.  The four-byte row alignment is specified	by
     glPixelStore with argument	GL_UNPACK_ALIGNMENT, and it can	be set to one,
     two, four,	or eight bytes.	 Other pixel store parameters specify
     different read pointer advancements, both before the first	pixel is read
     and after all width pixels	are read.  See the glPixelStore	reference page
     for details on these options.

     The width x height	pixels that are	read from memory are each operated on
     in	the same way, based on the values of several parameters	specified by
     glPixelTransfer and glPixelMap.  The details of these operations, as well
     as	the target buffer into which the pixels	are drawn, are specific	to the
     format of the pixels, as specified	by format.  format can assume one of
     13	symbolic values:

     GL_COLOR_INDEX    [Toc]    [Back]
	       Each pixel is a single value, a color index.  It	is converted
	       to fixed-point format, with an unspecified number of bits to
	       the right of the	binary point, regardless of the	memory data
	       type.  Floating-point values convert to true fixed-point
	       values.	Signed and unsigned integer data is converted with all
	       fraction	bits set to 0.	Bitmap data convert to either 0	or 1.






									Page 2






glDrawPixels(3G)	       OpenGL Reference		      glDrawPixels(3G)



	       Each fixed-point	index is then shifted left by GL_INDEX_SHIFT
	       bits and	added to GL_INDEX_OFFSET.  If GL_INDEX_SHIFT is
	       negative, the shift is to the right.  In	either case, zero bits
	       fill otherwise unspecified bit locations	in the result.

	       If the GL is in RGBA mode, the resulting	index is converted to
	       an RGBA pixel with the help of the 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 tables.  If the GL is in color index	mode,
	       and if GL_MAP_COLOR is true, the	index is replaced with the
	       value that it references	in lookup table	GL_PIXEL_MAP_I_TO_I.
	       Whether the lookup replacement of the index is done or not, the
							     b
	       integer part of the index is then ANDed with 2 -1, where	b is
	       the number of bits in a color index buffer.

	       The GL then converts the	resulting indices or RGBA colors to
	       fragments by attaching the current raster position z coordinate
	       and texture coordinates to each pixel, then assigning x and y
	       window coordinates to the nth fragment such that

				   x  =	x  + n mod width
				    n	 r

				    y  = y  + |n/width |
				     n	  r


	       where (x	,y ) is	the current raster position.  These pixel
		       r  r
	       fragments are then treated just like the	fragments generated by
	       rasterizing points, lines, or polygons.	Texture	mapping, fog,
	       and all the fragment operations are applied before the
	       fragments are written to	the frame buffer.

     GL_STENCIL_INDEX    [Toc]    [Back]
	       Each pixel is a single value, a stencil index.  It is converted
	       to fixed-point format, with an unspecified number of bits to
	       the right of the	binary point, regardless of the	memory data
	       type.  Floating-point values convert to true fixed-point
	       values.	Signed and unsigned integer data is converted with all
	       fraction	bits set to 0.	Bitmap data convert to either 0	or 1.

	       Each fixed-point	index is then shifted left by GL_INDEX_SHIFT
	       bits, and added to GL_INDEX_OFFSET.  If GL_INDEX_SHIFT is
	       negative, the shift is to the right.  In	either case, zero bits
	       fill otherwise unspecified bit locations	in the result.	If
	       GL_MAP_STENCIL is true, the index is replaced with the value
	       that it references in lookup table GL_PIXEL_MAP_S_TO_S.
	       Whether the lookup replacement of the index is done or not, the
							     b
	       integer part of the index is then ANDed with 2 -1, where	b is
	       the number of bits in the stencil buffer.  The resulting
	       stencil indices are then	written	to the stencil buffer such
	       that the	nth index is written to	location





									Page 3






glDrawPixels(3G)	       OpenGL Reference		      glDrawPixels(3G)



				 x  = x	 + n mod width
				  n    r

				 y  = y	 + | n/width |
				  n    r


	  where	(x ,y )	is the current raster position.	 Only the pixel
		  r  r
	  ownership test, the scissor test, and	the stencil writemask affect
	  these	write operations.

     GL_DEPTH_COMPONENT    [Toc]    [Back]
	  Each pixel is	a single-depth component.  Floating-point data is
	  converted directly to	an internal floating-point format with
	  unspecified precision.  Signed integer data is mapped	linearly to
	  the internal floating-point format such that the most	positive
	  representable	integer	value maps to 1.0, and the most	negative
	  representable	value maps to -1.0.  Unsigned integer data is mapped
	  similarly:  the largest integer value	maps to	1.0, and 0 maps	to
	  0.0.	The resulting floating-point depth value is then multiplied by
	  GL_DEPTH_SCALE and added to GL_DEPTH_BIAS.  The result is clamped to
	  the range [0,1].

	  The GL then converts the resulting depth components to fragments by
	  attaching the	current	raster position	color or color index and
	  texture coordinates to each pixel, then assigning x and y window
	  coordinates to the nth fragment such that

				 x  = x	 + n mod width
				  n    r

				 y  = y	 + | n/width |
				  n    r


	  where	(x ,y )	is the current raster position.	 These pixel fragments
		  r  r
	  are then treated just	like the fragments generated by	rasterizing
	  points, lines, or polygons.  Texture mapping,	fog, and all the
	  fragment operations are applied before the fragments are written to
	  the frame buffer.

     GL_RGBA    [Toc]    [Back]

     GL_BGRA    [Toc]    [Back]

     GL_ABGR_EXT    [Toc]    [Back]
	  Each pixel is	a four-component group:	for GL_RGBA, the red component
	  is first, followed by	green, followed	by blue, followed by alpha;
	  for GL_BGRA the order	is blue, green,	red and	then alpha; for
	  GL_ABGR_EXT the order	is alpha, blue,	green, and then	red.
	  Floating-point values	are converted directly to an internal
	  floating-point format	with unspecified precision.  Signed integer
	  values are mapped linearly to	the internal floating-point format
	  such that the	most positive representable integer value maps to 1.0,
	  and the most negative	representable value maps to -1.0. (Note	that
	  this mapping does not	convert	0 precisely to 0.0.)  Unsigned integer



									Page 4






glDrawPixels(3G)	       OpenGL Reference		      glDrawPixels(3G)



	  data is mapped similarly:  the largest integer value maps to 1.0,
	  and 0	maps to	0.0.  The resulting floating-point color values	are
	  then multiplied by GL_c_SCALE	and added to GL_c_BIAS,	where c	is
	  RED, GREEN, BLUE, and	ALPHA for the respective color components.
	  The results are clamped to the range [0,1].

	  If GL_MAP_COLOR is true, each	color component	is scaled by the size
	  of lookup table GL_PIXEL_MAP_c_TO_c, then replaced by	the value that
	  it references	in that	table.	c is R,	G, B, or A respectively.

	  The GL then converts the resulting RGBA colors to fragments by
	  attaching the	current	raster position	z coordinate and texture
	  coordinates to each pixel, then assigning x and y window coordinates
	  to the nth fragment such that

				 x  = x	 + n mod width
				  n    r

				 y  = y	 + | n/width |
				  n    r


	  where	(x ,y )	is the current raster position.	 These pixel fragments
		  r  r
	  are then treated just	like the fragments generated by	rasterizing
	  points, lines, or polygons.  Texture mapping,	fog, and all the
	  fragment operations are applied before the fragments are written to
	  the frame buffer.

     GL_RED    [Toc]    [Back]
	  Each pixel is	a single red component.	 This component	is converted
	  to the internal floating-point format	in the same way	the red
	  component of an RGBA pixel is. It is then converted to an RGBA pixel
	  with green and blue set to 0,	and alpha set to 1.  After this
	  conversion, the pixel	is treated as if it had	been read as an	RGBA
	  pixel.

     GL_GREEN    [Toc]    [Back]
	  Each pixel is	a single green component.  This	component is converted
	  to the internal floating-point format	in the same way	the green
	  component of an RGBA pixel is.  It is	then converted to an RGBA
	  pixel	with red and blue set to 0, and	alpha set to 1.	 After this
	  conversion, the pixel	is treated as if it had	been read as an	RGBA
	  pixel.

     GL_BLUE    [Toc]    [Back]
	  Each pixel is	a single blue component.  This component is converted
	  to the internal floating-point format	in the same way	the blue
	  component of an RGBA pixel is.  It is	then converted to an RGBA
	  pixel	with red and green set to 0, and alpha set to 1.  After	this
	  conversion, the pixel	is treated as if it had	been read as an	RGBA
	  pixel.






									Page 5






glDrawPixels(3G)	       OpenGL Reference		      glDrawPixels(3G)



     GL_ALPHA    [Toc]    [Back]
	  Each pixel is	a single alpha component.  This	component is converted
	  to the internal floating-point format	in the same way	the alpha
	  component of an RGBA pixel is.  It is	then converted to an RGBA
	  pixel	with red, green, and blue set to 0.  After this	conversion,
	  the pixel is treated as if it	had been read as an RGBA pixel.

     GL_RGB    [Toc]    [Back]

     GL_BGR    [Toc]    [Back]
	  Each pixel is	a three-component group:  red first, followed by
	  green, followed by blue; for GL_BGR, the first component is blue,
	  followed by green and	then red.  Each	component is converted to the
	  internal floating-point format in the	same way the red, green, and
	  blue components of an	RGBA pixel are.	 The color triple is converted
	  to an	RGBA pixel with	alpha set to 1.	 After this conversion,	the
	  pixel	is treated as if it had	been read as an	RGBA pixel.

     GL_LUMINANCE    [Toc]    [Back]
	  Each pixel is	a single luminance component.  This component is
	  converted to the internal floating-point format in the same way the
	  red component	of an RGBA pixel is.  It is then converted to an RGBA
	  pixel	with red, green, and blue set to the converted luminance
	  value, and alpha set to 1.  After this conversion, the pixel is
	  treated as if	it had been read as an RGBA pixel.

     GL_LUMINANCE_ALPHA    [Toc]    [Back]
	  Each pixel is	a two-component	group:	luminance first, followed by
	  alpha.  The two components are converted to the internal floatingpoint
	format in the same way the red component of an RGBA pixel is.
	  They are then	converted to an	RGBA pixel with	red, green, and	blue
	  set to the converted luminance value,	and alpha set to the converted
	  alpha	value.	After this conversion, the pixel is treated as if it
	  had been read	as an RGBA pixel.

     The following table summarizes the	meaning	of the valid constants for the
     type parameter:


_________________________________________________________________________________________
Type				 Corresponding Type
_________________________________________________________________________________________
GL_UNSIGNED_BYTE		 unsigned 8-bit	integer
GL_BYTE				 signed	8-bit integer
GL_BITMAP			 single	bits in	unsigned 8-bit integers
GL_UNSIGNED_SHORT		 unsigned 16-bit integer
GL_SHORT			 signed	16-bit integer
GL_UNSIGNED_INT			 unsigned 32-bit integer
GL_INT				 32-bit	integer
GL_FLOAT			 single-precision floating-point





									Page 6






glDrawPixels(3G)	       OpenGL Reference		      glDrawPixels(3G)



GL_UNSIGNED_BYTE_3_3_2		 unsigned 8-bit	integer
GL_UNSIGNED_BYTE_2_3_3_REV	 unsigned 8-bit	integer	with reversed component	ordering
GL_UNSIGNED_SHORT_5_6_5		 unsigned 16-bit integer
GL_UNSIGNED_SHORT_5_6_5_REV	 unsigned 16-bit integer with reversed component ordering
GL_UNSIGNED_SHORT_4_4_4_4	 unsigned 16-bit integer
GL_UNSIGNED_SHORT_4_4_4_4_REV	 unsigned 16-bit integer with reversed component ordering
GL_UNSIGNED_SHORT_5_5_5_1	 unsigned 16-bit integer
GL_UNSIGNED_SHORT_1_5_5_5_REV	 unsigned 16-bit integer with reversed component ordering
GL_UNSIGNED_INT_8_8_8_8		 unsigned 32-bit integer
GL_UNSIGNED_INT_8_8_8_8_REV	 unsigned 32-bit integer with reversed component ordering
GL_UNSIGNED_INT_10_10_10_2	 unsigned 32-bit integer
GL_UNSIGNED_INT_2_10_10_10_REV	 unsigned 32-bit integer with reversed component ordering
_________________________________________________________________________________________


     The rasterization described so far	assumes	pixel zoom factors of 1.  If
     glPixelZoom is used to change the x and y pixel zoom factors, pixels are
     converted to fragments as follows.	 If (x , y ) is	the current raster
					      r	  r
     position, and a given pixel is in the nth column and mth row of the pixel
     rectangle,	then fragments are generated for pixels	whose centers are in
     the rectangle with	corners	at

			      (x  + zoom n, y  + zoom m)
				r	x    r	     y

			 (x  + zoom (n + 1), y	+ zoom (m + 1))
			   r	   x	      r	      y


     where zoom	 is the	value of GL_ZOOM_X and zoom  is	the value of
	       x				   y
     GL_ZOOM_Y.

     When GL_INTERLACE_SGIX is enabled,	every other row	of the destination
     pixel rectangle is	modified.  The height of the pixel rectangle is
     equivalent	to 2xGL_ZOOM_Yxheight.	Only rows (y +0,y +2,...) are affected
						    r	 r
     by	the draw operation.

     Normally glDrawPixels is synchronous: OpenGL executes a glDrawPixels
     command in	the order it is	issued in the OpenGL command stream.  Calling
     glEnable with parameter GL_ASYNC_DRAW_PIXELS_SGIX causes subsequent
     glDrawPixels commands to be asynchronous as defined by the	SGIX_async
     extension.	 An asynchronous glDrawPixels command samples the OpenGL state
     vector at the point in the	OpenGL command stream where the	command	is
     issued, but the results of	the command (e.g. updates to the frame buffer)
     do	not happen until some unspecified time in the future.  In particular,
     the order of the asynchronous command relative to other OpenGL commands
     issued later in the command stream	is undefined.  An implementation may
     choose to execute asynchronous commands in	parallel with the normal
     command stream or at some convenient time in the future.

     Calling glDisable with parameter GL_ASYNC_DRAW_PIXELS_SGIX	restores the
     default synchronous behavior for subsequent glDrawPixels commands.	 It
     does not affect any pending asynchronous glDrawPixels commands, or	wait
     for their completion.



									Page 7






glDrawPixels(3G)	       OpenGL Reference		      glDrawPixels(3G)



     When an asynchronous glDrawPixels command is issued, it is	associated
     with the current value of GL_ASYNC_MARKER_SGIX as defined by the
     SGIX_async	extension.  A program can determine if an asynchronous
     glDrawPixels command has completed	by using the glFinishAsyncSGIX or
     glPollAsyncSGIX commands.

     There is a	maximum	number of asynchronous glDrawPixels commands that can
     be	outstanding at any one time, defined by	the implementation.  This
     value can be queried with glGetIntegerv with argument
     GL_MAX_ASYNC_DRAW_PIXELS_SGIX.

NOTES    [Toc]    [Back]

     GL_BGR and	GL_BGRA	are only valid for format if the GL version is 1.2 or
     greater.

     GL_ABGR_EXT is valid only if the EXT_abgr extension is supported.

     GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV,
     GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV,
     GL_UNSIGNED_SHORT_4_4_4_4,	GL_UNSIGNED_SHORT_4_4_4_4_REV,
     GL_UNSIGNED_SHORT_5_5_5_1,	GL_UNSIGNED_SHORT_1_5_5_5_REV,
     GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV,
     GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are	only
     valid for type if the GL version is 1.2 or	greater.

ERRORS    [Toc]    [Back]

     GL_INVALID_VALUE is generated if either width or height is	negative.

     GL_INVALID_ENUM is	generated if format or type is not one of the accepted
     values.

     GL_INVALID_OPERATION is generated if format is GL_RED, GL_GREEN, GL_BLUE,
     GL_ALPHA, GL_RGB, GL_RGBA,	GL_BGR,	GL_BGRA, GL_ABGR_EXT, GL_LUMINANCE, or
     GL_LUMINANCE_ALPHA, and the GL is in color	index mode.

     GL_INVALID_ENUM is	generated if type is GL_BITMAP and format is not
     either GL_COLOR_INDEX or GL_STENCIL_INDEX.

     GL_INVALID_OPERATION is generated if format is GL_STENCIL_INDEX and there
     is	no stencil buffer.

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

     GL_INVALID_OPERATION is generated if format is one
     GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV,
     GL_UNSIGNED_SHORT_5_6_5, of GL_UNSIGNED_SHORT_5_6_5_REV and format	is not
     GL_RGB.

     GL_INVALID_OPERATION is generated if format is one	of
     GL_UNSIGNED_SHORT_4_4_4_4,	GL_UNSIGNED_SHORT_4_4_4_4_REV,
     GL_UNSIGNED_SHORT_5_5_5_1,	GL_UNSIGNED_SHORT_1_5_5_5_REV,



									Page 8






glDrawPixels(3G)	       OpenGL Reference		      glDrawPixels(3G)



     GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV,
     GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV and format
     is	not GL_RGBA, GL_BGRA or	GL_ABGR_EXT.

     GL_INVALID_OPERATION is generated when the	SGIX_subsample extension is
     supported,	and the	pixel storage mode GL_UNPACK_SUBSAMPLE_RATE_SGIX is
     not GL_PIXEL_SUBSAMPLE_4444_SGIX, and width is not	a multiple of 2, or
     format is not a 3 or 4 component format, or type is a packed pixels type.

     GL_INVALID_OPERATION is generated if GL_ASYNC_DRAW_PIXELS_SGIX is enabled
     and the number of asynchronous glDrawPixels commands that have been
     issued but	not queried (using glFinishAsyncSGIX or	glPollAsyncSGIX)
     exceeds GL_MAX_ASYNC_DRAW_PIXELS_SGIX.

ASSOCIATED GETS    [Toc]    [Back]

     glGet with	argument GL_CURRENT_RASTER_POSITION
     glGet with	argument GL_CURRENT_RASTER_POSITION_VALID
     glGet with	argument GL_INTERLACE_SGIX


MACHINE	DEPENDENCIES
     The SGIX_async and	SGIX_async_pixel extensions are	implemented only on
     Octane2 VPro systems.

     On	RealityEngine, RealityEngine2, and VTX systems convolution may not be
     used in the following circumstances:

	  1.  When rendering to	pixmaps.

	  2.  When fragment processing (texturing, depth buffering, alpha
	      testing, multisampling, fog) is enabled.

	  3.  When histogramming or minmax is enabled.

	  4.  When either of the pixel zoom factors has	a value	other than 1.0
	      or -1.0.

     In	these cases, glDrawPixels and glCopyPixels report a
     GL_INVALID_OPERATION error	and do not transfer any	pixels.

     Performance note for RealityEngine, RealityEngine2, and VTX systems:
     Unsigned color types use the fastest pixel-drawing	path.  Smaller types
     (e.g., GL_UNSIGNED_BYTE) require less host-to-graphics bandwidth, and are
     therefore faster than larger types	(e.g., GL_UNSIGNED_INT).  Signed and
     float types use the significantly slower floating-point pixel-drawing
     path.  The	slower pixel-drawing path is also used when the	format is
     GL_DEPTH_COMPONENT	and when fragment operations (i.e., depth or alpha
     testing, texturing, fog, etc.) are	enabled.

     For best performance on XS, XZ, Elan, and Extreme systems set type	to
     GL_UNSIGNED_BYTE and, when	drawing	to the color buffer, set format	to
     GL_ABGR_EXT.



									Page 9






glDrawPixels(3G)	       OpenGL Reference		      glDrawPixels(3G)



     On	InfiniteReality	systems, signed	color-index pixels written to
     drawables with dual-personality (luminance	+ color-index) visuals will be
     sign-extended into	the high-order bits of the framebuffer.	 For example,
     writing a signed byte value of 0x88 would yield 0xF88 in a	12-bit
     drawable.

     The SGIX_ycrcb extension is supported only	on O2 systems.	When using
     GL_YCRCB_422_SGIX with glDrawPixels on O2 systems,	an odd integer value
     for GL_UNPACK_SKIP_PIXELS will be set to the next highest even integer
     value to preserve color alignment.

     On	CRIME systems with a Crime Revision of 1.0-1.3,	the SGIX_ycrcb
     extension will generate incorrect RGB colors from video with highly
     saturated blue or red values. Commonly, the blue of a very	saturated sky
     will be converted to a pale yellow.  This problem is fixed	with the CRIME
     1.4 graphics.

     On	Octane2	VPro systems the format	GL_DEPTH_COMPONENT24_SGIX can be used
     to	transfer depth pixel values to and from	the depth buffer in their
     internal eye-space	range.	There are performance advantages over
     transfers that convert to screen-space values, particularly for
     GL_UNSIGNED_INT type pixels.

     The SGIX_interlace	extension is supported only on InfiniteReality
     systems, on RealityEngine,	RealityEngine2,	and VTX	systems, on Octane2
     VPro systems, and on O2 systems.

     The EXT_packed_pixels extension is	not supported on RealityEngine,
     RealityEngine2, and VTX systems.

     The SGIX_subsample	and SGIX_resample extensions are supported only	on
     Octane2 VPro systems.  Applying the GL_PIXEL_SUBSAMPLE_2424_SGIX
     subsample rate is accelerated for direct immmediate mode transfers	when
     the format	is GL_RGB or GL_RGBA, and the type is GL_UNSIGNED_BYTE or
     GL_UNSIGNED_SHORT.

SEE ALSO    [Toc]    [Back]

      
      
     glAlphaFunc, glBlendFunc, glCopyPixels, glDepthFunc, glLogicOp,
     glPixelMap, glPixelStore, glPixelTransfer,	glPixelZoom, glRasterPos,
     glReadPixels, glScissor, glStencilFunc, glAsyncMarkerSGIX,
     glDeleteAsyncMarkersSGIX, glFinishAsyncSGIX, glGenAsyncMarkersSGIX,
     glIsAsyncMarkerSGIX, glPollAsyncSGIX


								       PPPPaaaaggggeeee 11110000
[ Back ]
 Similar pages
Name OS Title
glreadpixels IRIX read a block of pixels from the frame buffer
glReadPixels Tru64 read a block of pixels from the frame buffer
glCopyPixels Tru64 copy pixels in the frame buffer
glcopypixels IRIX copy pixels in the frame buffer
lrectwrite IRIX draws a rectangular array of pixels into the frame buffer
rectwrite IRIX draws a rectangular array of pixels into the frame buffer
glReadBuffer Tru64 select a color buffer source for pixels
glreadbuffer IRIX select a color buffer source for pixels
vgafb OpenBSD VGA frame buffer
satwrite IRIX write a block of audit record data
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service