📄 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 + -