📄 drawpixels.html
字号:
If <STRONG>GL_MAP_COLOR</STRONG> is true, each color component is scaled by the size of lookup table <STRONG>GL_PIXEL_MAP_c_TO_c</STRONG>, then replaced by the value that it references in that table. <EM>c</EM> is R, G, B, or A respectively. The GL then converts the resulting 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 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_RED</STRONG> 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. <STRONG>GL_GREEN</STRONG> 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. <STRONG>GL_BLUE</STRONG> 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. <STRONG>GL_ALPHA</STRONG> 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. <STRONG>GL_RGB</STRONG> Each pixel is a three-component group: red first, followed by green, followed by blue. 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. <STRONG>GL_LUMINANCE</STRONG> 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. <STRONG>GL_LUMINANCE_ALPHA</STRONG> Each pixel is a two-component group: luminance first, followed by alpha. The two components are converted to the internal floating-point 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 <EM>type</EM> parameter: ____________________________________________________________ | <EM>type</EM> | <EM>corresponding</EM> <EM>type</EM> | <EM>|</EM>__________________<EM>|</EM>________________________________________| |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 | <EM>|</EM>__________________<EM>|</EM>________________________________________| The rasterization described so far assumes pixel zoom factors of 1. If <STRONG>glPixelZoom</STRONG> 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 position, and a given pixel isrin <STRONG>t</STRONG>he 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 <STRONG>GL_ZOOM_X</STRONG> and zoom is the value of <STRONG>GL_ZOOM_Y</STRONG>. y <STRONG>ERRORS</STRONG> <STRONG>GL_INVALID_VALUE</STRONG> is generated if either <EM>width</EM> or <EM>height</EM> is negative. <STRONG>GL_INVALID_ENUM</STRONG> is generated if <EM>format</EM> or <EM>type</EM> is not one of the accepted values. <STRONG>GL_INVALID_OPERATION</STRONG> is generated if <EM>format</EM> is <STRONG>GL_RED</STRONG>, <STRONG>GL_GREEN</STRONG>, <STRONG>GL_BLUE</STRONG>, <STRONG>GL_ALPHA</STRONG>, <STRONG>GL_RGB</STRONG>, <STRONG>GL_RGBA</STRONG>, <STRONG>GL_LUMINANCE</STRONG>, or <STRONG>GL_LUMINANCE_ALPHA</STRONG>, and the GL is in color index mode. <STRONG>GL_INVALID_ENUM</STRONG> is generated if <EM>type</EM> is <STRONG>GL_BITMAP</STRONG> and <EM>format</EM> is not either <STRONG>GL_COLOR_INDEX</STRONG> or <STRONG>GL_STENCIL_INDEX</STRONG>. <STRONG>GL_INVALID_OPERATION</STRONG> is generated if <EM>format</EM> is <STRONG>GL_STENCIL_INDEX</STRONG> and there is no stencil buffer. <STRONG>GL_INVALID_OPERATION</STRONG> is generated if <STRONG>glDrawPixels</STRONG> is executed between the execution of <STRONG>glBegin</STRONG> and the corresponding execution of <STRONG>glEnd</STRONG>. <STRONG>ASSOCIATED</STRONG> <STRONG>GETS</STRONG> <STRONG>glGet</STRONG> with argument <STRONG>GL_CURRENT_RASTER_POSITION</STRONG> <STRONG>glGet</STRONG> with argument <STRONG>GL_CURRENT_RASTER_POSITION_VALID</STRONG> <STRONG>SEE</STRONG> <STRONG>ALSO</STRONG> <STRONG>glAlphaFunc</STRONG>, <STRONG>glBlendFunc</STRONG>, <STRONG>glCopyPixels</STRONG>, <STRONG>glDepthFunc</STRONG>, <STRONG>glLogicOp</STRONG>, <STRONG>glPixelMap</STRONG>, <STRONG>glPixelStore</STRONG>, <STRONG>glPixelTransfer</STRONG>, <STRONG>glPixelZoom</STRONG>, <STRONG>glRasterPos</STRONG>, <STRONG>glReadPixels</STRONG>, <STRONG>glScissor</STRONG>, <STRONG>glStencilFunc</STRONG></PRE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -