⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drawpixels.html

📁 计算机图形学~想必是很多人需要的~在此共享一下
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<HTML><BODY><PRE>     <STRONG>NAME</STRONG>	  <STRONG>glDrawPixels</STRONG> - write a block of pixels to the	frame buffer     <STRONG>C</STRONG> <STRONG>SPECIFICATION</STRONG>	  void <STRONG>glDrawPixels</STRONG>( GLsizei <EM>width</EM>,			     GLsizei <EM>height</EM>,			     GLenum <EM>format</EM>,			     GLenum <EM>type</EM>,			     const GLvoid *<EM>pixels</EM> )     <STRONG>PARAMETERS</STRONG>	  <EM>width</EM>, <EM>height</EM>	Specify	the dimensions of the pixel rectangle			to be written into the frame buffer.	  <EM>format</EM>	Specifies the format of	the pixel data.			Symbolic constants <STRONG>GL_COLOR_INDEX</STRONG>,			<STRONG>GL_STENCIL_INDEX</STRONG>, <STRONG>GL_DEPTH_COMPONENT</STRONG>, <STRONG>GL_RGBA</STRONG>,			<STRONG>GL_RED</STRONG>,	<STRONG>GL_GREEN</STRONG>, <STRONG>GL_BLUE</STRONG>, <STRONG>GL_ALPHA</STRONG>, <STRONG>GL_RGB</STRONG>,			<STRONG>GL_LUMINANCE</STRONG>, and <STRONG>GL_LUMINANCE_ALPHA</STRONG> are			accepted.	  <EM>type</EM>		Specifies the data type	for <EM>pixels</EM>.  Symbolic			constants <STRONG>GL_UNSIGNED_BYTE</STRONG>, <STRONG>GL_BYTE</STRONG>,			<STRONG>GL_BITMAP</STRONG>, <STRONG>GL_UNSIGNED_SHORT</STRONG>, <STRONG>GL_SHORT</STRONG>,			<STRONG>GL_UNSIGNED_INT</STRONG>, <STRONG>GL_INT</STRONG>, and <STRONG>GL_FLOAT</STRONG> are			accepted.	  <EM>pixels</EM>	Specifies a pointer to the pixel data.     <STRONG>DESCRIPTION</STRONG>	  <STRONG>glDrawPixels</STRONG> reads pixel data	from memory and	writes it into	  the frame buffer relative to the current raster position.	  Use <STRONG>glRasterPos</STRONG> to set the current raster position; use	  <STRONG>glGet</STRONG>	with argument <STRONG>GL_CURRENT_RASTER_POSITION</STRONG> 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:  <STRONG>glPixelStore</STRONG>, <STRONG>glPixelTransfer</STRONG>,	  <STRONG>glPixelMap</STRONG>, and <STRONG>glPixelZoom</STRONG>.	This reference page describes	  the effects on <STRONG>glDrawPixels</STRONG> of many, but not all, of the	  parameters specified by these	four commands.	  Data is read from <EM>pixels</EM> as a	sequence of signed or unsigned	  bytes, signed	or unsigned shorts, signed or unsigned	  integers, or single-precision	floating-point values,	  depending on <EM>type</EM>.  Each of these bytes, shorts, integers,	  or floating-point values is interpreted as one color or	  depth	component, or one index, depending on <EM>format</EM>.  Indices	  are always treated individually.  Color components are	  treated as groups of one, two, three,	or four	values,	again	  based	on <EM>format</EM>.  Both individual indices and	groups of	  components are referred to as	pixels.	 If <EM>type</EM> is <STRONG>GL_BITMAP</STRONG>,	  the data must	be unsigned bytes, and <EM>format</EM> must be either	  <STRONG>GL_COLOR_INDEX</STRONG> or <STRONG>GL_STENCIL_INDEX</STRONG>.  Each unsigned byte is	  treated as eight 1-bit pixels, with bit ordering determined	  by <STRONG>GL_UNPACK_LSB_FIRST</STRONG> (see <STRONG>glPixelStore</STRONG>).	  <EM>width</EM>x<EM>height</EM> pixels are read from memory, starting at	  location <EM>pixels</EM>.  By default,	these pixels are taken from	  adjacent memory locations, except that after all <EM>width</EM>	  pixels are read, the read pointer is advanced	to the next	  four-byte boundary.  The four-byte row alignment is	  specified by <STRONG>glPixelStore</STRONG> with argument <STRONG>GL_UNPACK_ALIGNMENT</STRONG>,	  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 <EM>width</EM> pixels are read.  See the	  <STRONG>glPixelStore</STRONG> reference page for details on these options.	  The <EM>width</EM>x<EM>height</EM> pixels that are read	from memory are	each	  operated on in the same way, based on	the values of several	  parameters specified by <STRONG>glPixelTransfer</STRONG> and <STRONG>glPixelMap</STRONG>.  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 <EM>format</EM>.  <EM>format</EM> can assume	  one of eleven	symbolic values:	  <STRONG>GL_COLOR_INDEX</STRONG>		    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.		    Each fixed-point index is then shifted left	by		    <STRONG>GL_INDEX_SHIFT</STRONG> bits	and added to <STRONG>GL_INDEX_OFFSET</STRONG>.		    If <STRONG>GL_INDEX_SHIFT</STRONG> 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		    <STRONG>GL_PIXEL_MAP_I_TO_R</STRONG>, <STRONG>GL_PIXEL_MAP_I_TO_G</STRONG>,		    <STRONG>GL_PIXEL_MAP_I_TO_B</STRONG>, and <STRONG>GL_PIXEL_MAP_I_TO_A</STRONG>		    tables.  If	the GL is in color index mode, and if		    <STRONG>GL_MAP_COLOR</STRONG> is true, the index is replaced	with		    the	value that it references in lookup table		    <STRONG>GL_PIXEL_MAP_I_TO_I</STRONG>.  Whether the lookup		    replacement	of the index is	done or	not, the		    integer part of the	index is then ANDed with 2b-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 <EM>z</EM> 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 pi<STRONG>x</STRONG>elrfragments 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.	  <STRONG>GL_STENCIL_INDEX</STRONG>		    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		    <STRONG>GL_INDEX_SHIFT</STRONG> bits, and added to <STRONG>GL_INDEX_OFFSET</STRONG>.		    If <STRONG>GL_INDEX_SHIFT</STRONG> is negative, the shift is	to the		    right.  In either case, zero bits fill otherwise		    unspecified	bit locations in the result.  If		    <STRONG>GL_MAP_STENCIL</STRONG> is true, the	index is replaced with		    the	value that it references in lookup table		    <STRONG>GL_PIXEL_MAP_S_TO_S</STRONG>.  Whether the lookup		    replacement	of the index is	done or	not, the		    integer part of the	index is then ANDed with 2b-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			       x  = x  + n mod width				n    r				y  = y	+ | n/width |	       where (x	,y ) is	the current raster position.  Only the	       pixel ow<STRONG>n</STRONG>er<STRONG>s</STRONG>hip test, the scissor test, and the stencil	       writemask affect	these write operations.	  <STRONG>GL_DEPTH_COMPONENT</STRONG>	       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	by	       <STRONG>GL_DEPTH_SCALE</STRONG> and added	to <STRONG>GL_DEPTH_BIAS</STRONG>.  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 fr<STRONG>a</STRONG>gm<STRONG>e</STRONG>nts 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.	  <STRONG>GL_RGBA</STRONG>	       Each pixel is a four-component group: for <STRONG>GL_RGBA</STRONG>, the	       red component is	first, followed	by green, followed by	       blue, followed by alpha.	 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 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 <STRONG>GL_c_SCALE</STRONG>	and added to	       <STRONG>GL_c_BIAS</STRONG>, where	<EM>c</EM> is RED, GREEN, BLUE, and ALPHA for	       the respective color components.	 The results are	       clamped to the range [0,1].

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -