На главную

On-line справка по OpenGL

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-L-M-N-O-P-R-S-T-U-V-W | Скачать Вниз

glDrawPixels



The glDrawPixels function writes a block of pixels to the frame buffer.

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

Parameters

width, height

Specify the dimensions of the pixel rectangle that will 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_RGBA, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, 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, and GL_FLOAT are accepted.

pixels

Specifies a pointer to the pixel data.

Remarks

The glDrawPixels function reads pixel data from memory and writes it into the frame buffer relative to the current raster position. Use glRasterPos to set the current raster position, and use 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 topic describes the effects on glDrawPixels of many, but not all, of the parameters specified by these four commands.

Data is read from pixels as a sequence of signed or unsigned bytes, signed or unsigned shorts, signed or unsigned integers, or single-precision floating-point values, depending on type. Each of these bytes, shorts, integers, or floating-point values is interpreted as one color or depth component, or one index, depending on format. 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).

The 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.

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 eleven symbolic values:

GL_COLOR_INDEX

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 zero. Bitmap data convert to either 0.0 or 1.0.
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 using 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 integer part of the index is then ANDed with 2b-1, where b is the number of bits in a color index buffer.

The resulting indices or RGBA colors are then converted 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 (n) = x (r) + n mod width
y (n) = y (r) + л n/width ы

where (x (r) , y (r) ) is the current raster position. These pixel 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

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 zero. Bitmap data convert to either 0.0 or 1.0.
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 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 (n) = x (r) + n mod width
y (n) = y (r) + л n /width ы

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

GL_DEPTH_COMPONENT

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 zero 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 resulting depth components are then converted 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 (n) = x (r) + n mod width
y (n) = y (r) + л n /width ы

where (x (r) , y (r) ) is the current raster position. These pixel 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_RGBA

Each pixel is a four-component group: red 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. Unsigned integer data is mapped similarly: the largest integer value maps to 1.0, and zero 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 resulting RGBA colors are then converted 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 (n) = x (r) + n mod width
y (n) = y (r) + л n /width ы

where (x (r) , y (r) ) is the current raster position. These pixel 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_RED

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

GL_GREEN

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

GL_BLUE

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

GL_ALPHA

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

GL_RGB

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 as 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.0. After this conversion, the pixel is treated just as if it had been read as an RGBA pixel.

GL_LUMINANCE

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

GL_LUMINANCE_ALPHA

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 as the red component of an RGBA pixel is, then they are 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 just 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


The rasterization described thus far assumes pixel zoom factors of 1.0. If glPixelZoom is used to change the x and y pixel zoom factors, pixels are converted to fragments as follows. If (x (r) , y (r) ) is the current raster 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 (r) + zoom (x) n, y (r) + zoom (y) m)
(x (r) + zoom (x) (n + 1), y (r) + zoom (y) ( m + 1))

where zoom (x) is the value of GL_ZOOM_X and zoom (y) is the value of GL_ZOOM_Y.
The following functions retrieve information related to the glDrawPixels function:
glGet with argument GL_CURRENT_RASTER_POSITION
glGet with argument GL_CURRENT_RASTER_POSITION_VALID


Errors

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_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 called between a call to glBegin and the corresponding call to glEnd.

See Also

glAlphaFunc, glBlendFunc, glCopyPixels, glDepthFunc, glLogicOp, glPixelMap, glPixelStore, glPixelTransfer, glPixelZoom, glRasterPos, glReadPixels, glScissor, glStencilFunc



Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

glDrawPixels



Функция glDrawPixels пишет блока пикселей в фреймовый буфер.

пустота glDrawPixels( ширина GLsizei, высота GLsizei, формат GLenum, тип GLenum, const GLvoid *пиксели
);

Параметры

ширина, высота

Определите измерения прямоугольника пикселя, который будет записан в фреймовый буфер.

формат

Определяет формат данных пикселя. Символические константы GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RGBA, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_LUMINANCE, и GL_LUMINANCE_ALPHA приняты.

тип

Определяет тип данных для пикселей. Символические константы GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, и GL_FLOAT приняты.

пиксели

Определяет указатель в данные пикселя.

Замечания

Функция glDrawPixels читает данные пикселя из памяти и записывает это в фреймовый буфер относительно текущей растровой позиции. Используйте glRasterPos, чтобы устанавливать текущую растровую позицию и использовать glGet с аргументом GL_CURRENT_RASTER_POSITION на запрос растровая позиция.
Несколько параметров определяют кодирование данных пикселя в памяти и управляют обработкой данных пикселя прежде, чем будет установлено в фреймовом буфере. Эти параметры установлены четырьмя командами: glPixelStore, glPixelTransfer, glPixelMap, и glPixelZoom. Эта тема описывает эффекты на glDrawPixels много, но не все, параметров определенных этими четырьмя командами.

Данные прочитаны с пикселей как последовательность подписанных или без знака байтов, подписанная или без знака шорты, подписанные или без знака целые, или единственная-прецизионная плавающая-точка оценивает, в зависимости от типа. Каждый из этих байтов, шортов, целых, или плавающей точки величин интерпретированы как один цвет или глубинный компонент, или один индекс, в зависимости от формата. Индексы всегда обращаются индивидуально. Цветные компоненты рассмотрены как группы одного, двух, трех, или четыре величин, снова основанные в формате. Как индивидуальные индексы так и группы компонентов называются пиксели. Если тип - GL_BITMAP, данные должны быть без знака байты, и формат должен быть или GL_COLOR_INDEX или GL_STENCIL_INDEX. Каждый без знака байт рассмотрен как восемь 1- битовых пикселей, с битом, заказывающим определенное GL_UNPACK_LSB_FIRST (смотри glPixelStore).

Широтные пиксели x высоты прочитаны из памяти, запускающейся на пикселях позиции. По умолчанию, эти пиксели взяты из смежных позиций памяти, за исключением того это в конце концов широтные пиксели прочитаны, указатель чтения предоставляют на следующую четырех байтовую границу. Четырех байтовое выравнивание колонки определено glPixelStore с аргументом GL_UNPACK_ALIGNMENT, и может быть установлено, чтобы один, два, четыре, или восемь байтов. Другие параметры загрузки пикселя определяют продвижения указателя другого чтения, оба прежде, чем первый пиксель будет прочитан, и в конце концов широтные пиксели прочитаны.

Широтные пиксели x высоты, которые прочитаны из памяти - каждыми обслуженные на так же, основанные в величинах нескольких параметров определенных glPixelTransfer и glPixelMap. Детали этих операций, а также целевой буфер в который пиксели сделаны, характерные для формата пикселей, как определено format. форматом может принять одна из одиннадцати символических величин:

GL_COLOR_INDEX

Каждый пиксель - единственная величина, цветной индекс. Преобразовано в фиксированную точку формата, с неопределенным количеством битов вправо от двоичной точки, независимо от типа данных памяти. Плавающая-точка оценивает преобразование в величины истины фиксированной точки. Подписанные и без знака данные целого преобразованы всеми битами доли установленными в нуль. Преобразование данных Побитового отображения, чтобы или 0.0 или 1.0.
Каждая фиксированная точка индекса - затем перемещенное оставленное битами GL_INDEX_SHIFT и добавленное к GL_INDEX_OFFSET. Если GL_INDEX_SHIFT - негатив, сдвиг - направо. В любом случае, нуль кусает наполнитель в противном случае неопределенные битовые позиции в результате.

Если GL - в режиме RGBA, результирующий индекс преобразован на пиксель RGBA, использовавший GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, и таблицы GL_PIXEL_MAP_I_TO_A. Если GL - в цветном индексном режиме, и если GL_MAP_COLOR - истина, индекс заменен величиной, что он указывает в таблице поиска GL_PIXEL_MAP_I_TO_I. Сделана замена поиска индекса или нет, часть целого индекса - затем ANDed с 2b-1, где b - количество битов в цветном индексном буфере.

Результирующие индексы или цвета RGBA - затем преобразованное, чтобы фрагментировать подключая текущую растровую z координату позиции и текстура координируется на каждый пиксель, затем назначая x и координаты y окна на энный фрагмент так что

x (n) = x (r) + ширина n модуля y (n) = y (r) + л n/width ы

где (x (r) , y (r) ), - текущая растровая позиция. Эти фрагменты пикселя - затем обратившееся просто подобно фрагментам сгенерированным rasterizing точками, строками, или многоугольниками. Распределение Текстуры, тумана, и все операции фрагмента приложены прежде, чем фрагменты будут записаны в фреймовый буфер.

GL_STENCIL_INDEX

Каждый пиксель - единственная величина, индекс шаблона. Преобразовано в фиксированную точку формата, с неопределенным количеством битов вправо от двоичной точки, независимо от типа данных памяти. Плавающая-точка оценивает преобразование в величины истины фиксированной точки. Подписанные и без знака данные целого преобразованы всеми битами доли установленными в нуль. Преобразование данных Побитового отображения, чтобы или 0.0 или 1.0.
Каждая фиксированная точка индекса - затем перемещенное оставленное битами GL_INDEX_SHIFT, и добавленными к GL_INDEX_OFFSET. Если GL_INDEX_SHIFT - негатив, сдвиг - направо. В любом случае, нуль кусает наполнитель в противном случае неопределенные битовые позиции в результате. Если GL_MAP_STENCIL - истина, индекс заменен величиной, что он указывает в таблице поиска GL_PIXEL_MAP_S_TO_S. Сделана замена поиска индекса или нет, часть целого индекса - затем ANDed с 2b - 1, где b - количество битов в буфере шаблона. Результирующие индексы шаблона - затем записанное в буфер шаблона так что энный индекс записан в позицию

x (n) = x (r) + ширина n модуля y (n) = y (r) + л n /width ы

где (x (r) , y (r) ), - текущая растровая позиция. Только тест собственности пикселя, тест вырезания, и шаблон writemask влияет на эти записывает.

GL_DEPTH_COMPONENT

Каждый пиксель является единственным-глубинным компонентом. Плавающая точка данных преобразовывается непосредственно в плавающую точку внутреннего формата с неопределенной точностью. Подписанные данные целого отображается линейно в плавающую точку внутреннего формата так что наиболее положительная representable величина целого отображается на 1.0, и отрицательные representable карты величины, чтобы -1.0. Без знака данные целого отображается аналогично: карты величины самого большого целого на 1.0, и нуль отображается на 0.0. Результирующая плавающая-глубинная величина точки - затем умноженное на GL_DEPTH_SCALE и добавленное к GL_DEPTH_BIAS. Результат скреплен в дипазон [0,1].

Результирующие глубинные компоненты - затем преобразованное, чтобы фрагментировать подключая текущий растровый цвет позиции или цветной индекс и текстура координируется на каждый пиксель, затем назначая x и координаты y окна на энный фрагмент так что

x (n) = x (r) + ширина n модуля y (n) = y (r) + л n /width ы

где (x (r) , y (r) ), - текущая растровая позиция. Эти фрагменты пикселя - затем обратившееся просто подобно фрагментам сгенерированным rasterizing точками, строками, или многоугольниками. Распределение Текстуры, тумана, и все операции фрагмента приложены прежде, чем фрагменты будут записаны в фреймовый буфер.

GL_RGBA

Каждый пиксель является четырех компонентной группой: красный первый, сопровожденный зеленым, сопровожденным синим, сопровожденным альфой.
Плавающая точка величин преобразовываются непосредственно в плавающую точку внутреннего формата с неопределенной точностью. Подписанные величины целого отображаются линейно в плавающую точку внутреннего формата так что наиболее положительная representable величина целого отображается на 1.0, и отрицательные representable карты величины, чтобы
- 1.0. Без знака данные целого отображается аналогично: карты величины самого большого целого на 1.0, и нуль отображается на 0.0. Результирующие плавающие-цветные величины точки - затем умноженное на GL_c_SCALE и добавленное к GL_c_BIAS, где c - КРАСНАЯ, ЗЕЛЕНАЯ, СИНЯЯ, и АЛЬФА для соответствующих цветных компонентов. Результаты скреплены в дипазон [0,1].

Если GL_MAP_COLOR - истина, каждый цветной компонент масштабирован размером таблицы поиска GL_PIXEL_MAP_c_TO_c, тогда замененное величиной, которую он указывает в этом table. c - R, G, B, или A, соответственно.
Результирующие цвета RGBA - затем преобразованное, чтобы фрагментировать подключая текущую растровую z координату позиции и текстура координируется на каждый пиксель, затем назначая x и координаты y окна на энный фрагмент так что

x (n) = x (r) + ширина n модуля y (n) = y (r) + л n /width ы

где (x (r) , y (r) ), - текущая растровая позиция. Эти фрагменты пикселя - затем обратившееся просто подобно фрагментам сгенерированным rasterizing точками, строками, или многоугольниками. Распределение Текстуры, тумана, и все операции фрагмента приложены прежде, чем фрагменты будут записаны в фреймовый буфер.

GL_RED

Каждый пиксель является единственным красным компонентом. Этот компонент преобразован в плавающую точку внутреннего формата так же как красный компонент пикселя RGBA, затем преобразовано на пиксель RGBA с зеленой и синей установкой на 0.0, и альфа была установлена на 1.0. После этого преобразования, пиксель обратиться подобно тому, как если было прочитано как пиксель RGBA.

GL_GREEN

Каждый пиксель является единственным зеленым компонентом. Этот компонент преобразован в плавающую точку внутреннего формата так же как зеленый компонент пикселя RGBA, затем преобразовано на пиксель RGBA с красной и синей установкой на 0.0, и альфа была установлена на 1.0. После этого преобразования, пиксель обратиться подобно тому, как если было прочитано как пиксель RGBA.

GL_BLUE

Каждый пиксель является единственным синим компонентом. Этот компонент преобразован в плавающую точку внутреннего формата так же как синий компонент пикселя RGBA, затем преобразовано на пиксель RGBA с красной и зеленой установкой на 0.0, и альфа была установлена на 1.0. После этого преобразования, пиксель обратиться подобно тому, как если было прочитано как пиксель RGBA.

GL_ALPHA

Каждый пиксель является единственным буквенным компонентом. Этот компонент преобразован в плавающую точку внутреннего формата так же как буквенный компонент пикселя RGBA, затем преобразовано на пиксель RGBA с красной, зеленой, и синей установкой на 0.0. После этого преобразования, пиксель обратиться подобно тому, как если было прочитано как пиксель RGBA.

GL_RGB

Каждый пиксель является трех компонентной группой: красный первый, сопровожденный зеленым, сопровожденным синим. Каждый компонент преобразован в плавающую точку внутреннего формата так же как красный, зеленый, и синие компоненты пикселя RGBA. Цветное утраивать преобразовано на пиксель RGBA с альфой установленной на 1.0. После этого преобразования, пиксель обратиться подобно тому, как если было прочитано как пиксель RGBA.

GL_LUMINANCE

Каждый пиксель является единственным компонентом luminance. Этот компонент преобразован в плавающую точку внутреннего формата так же как красный компонент пикселя RGBA, затем преобразовано на пиксель RGBA с красной, зеленой, и синей установкой в преобразованную величину luminance, и альфа была установлена на 1.0. После этого преобразования, пиксель обратиться подобно тому, как если было прочитано как пиксель RGBA.

GL_LUMINANCE_ALPHA

Каждый пиксель является двух компонентной группой: luminance сначала, сопровожденный альфой. Два компонента преобразованы в плавающую точку внутреннего формата так же как красный компонент пикселя RGBA, затем они преобразованы на пиксель RGBA с красной, зеленой, и синей установкой в преобразованную величину luminance, и альфа была установлена в преобразованную буквенную величину. После этого преобразования, пиксель обратиться подобно тому, как если было прочитано как пиксель RGBA.



Следующая таблица суммирует значение правильных констант для параметра типа:

Наберите Соответствовать Типа GL_UNSIGNED_BYTE без знака 8- битового целого GL_BYTE подписывал 8- битовые единственные биты целого GL_BITMAP в без знака 8- битовом без знака 16- битовом целом целых GL_UNSIGNED_SHORT GL_SHORT подписавшем 16- битовое без знака 32- битовое целое целого GL_UNSIGNED_INT битового целого GL_INT 32-GL_FLOAT единственная-прецизионная плавающая-точка


Описанная растеризация до сих пор принимает изменение масштаба показателей пикселя 1.0. Если glPixelZoom использован, чтобы изменять x и изменение масштаба показателей y пикселя, пиксели преобразованы на фрагменты следующим образом. Если (x (r) , y (r) ), - текущая растровая позиция, и данный пиксель - в энном столбце и mth колонке прямоугольника пикселя, тогда фрагменты сгенерированы для пикселей чьи центры - в прямоугольнике с углами в

(x (r) + изменение масштаба (x) n, y (r) + изменение масштаба (y) m) (x (r) + изменение масштаба (x) (n + 1), y (r) + изменение масштаба (y) ( m + 1))

где изменение масштаба (x), - величина GL_ZOOM_X и изменения масштаба (y), - величина GL_ZOOM_Y.
Следующее функций извлекает информацию имело отношение к функции glDrawPixels:
glGet С аргументом GL_CURRENT_RASTER_POSITION glGet с аргументом GL_CURRENT_RASTER_POSITION_VALID


Ошибки

GL_INVALID_VALUE сгенерирован если или ширина или высота отрицательное.
GL_INVALID_ENUM сгенерирован если формат или тип - не одна из допустимых величин.
GL_INVALID_OPERATION сгенерирован если формат - GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, или GL_LUMINANCE_ALPHA, и GL - в цветном индексном режиме.
GL_INVALID_ENUM сгенерирован если тип - GL_BITMAP и формат - не или GL_COLOR_INDEX или GL_STENCIL_INDEX.

GL_INVALID_OPERATION сгенерирован если формат - GL_STENCIL_INDEX и нет буфера шаблона.
GL_INVALID_OPERATION сгенерирован если glDrawPixels назван между вызовом на glBegin и соответствующий вызов на glEnd.

Смотри Также

glAlphaFunc, glBlendFunc, glCopyPixels, glDepthFunc, glLogicOp, glPixelMap, glPixelStore, glPixelTransfer, glPixelZoom, glRasterPos, glReadPixels, glScissor, glStencilFunc



Вверх Version 1.1, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод Win32 API  Русский перевод OpenGL
 
Hosted by uCoz