Функция Глдравпикселс

Функция глдравпикселс записывает блок пикселей в буфера кадров.

Синтаксис

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

Параметры

width

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

height

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

format

Формат точечных данных. Допустимые символьные константы приведены ниже.

Значение Значение
GL_COLOR_INDEX
Каждый пиксель имеет одно значение — цветовой индекс.
  1. Функция глдравпикселс преобразует каждую точку в формат с фиксированной запятой с неопределенным числом битов справа от двоичной точки независимо от типа данных Memory. Значения с плавающей запятой преобразуются в значения true с фиксированной запятой. Функция глдравпикселс преобразует подписанные и Беззнаковые целочисленные данные со всеми битами дробной части, равными нулю. Функция преобразует данные из битовой карты в 0,0 или 1,0.
  2. Функция глдравпикселс сдвигает каждый индекс с фиксированной точкой GL_INDEX_SHIFT битами и добавляет его в GL_INDEX_OFFSET. Если GL_INDEX_SHIFT является отрицательным, сдвиг вправо. В любом случае нулевые биты заполняются в результате неопределенных битовых точек в результатах.
  3. В режиме 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_MAP_COLOR имеет значение true, индекс заменяется значением, глдравпикселс ссылки в таблице подстановки GL_PIXEL_MAP_I_TO_I.
  4. Независимо от того, выполняется ли замена уточняющего запроса индекса, целая часть индекса имеет значение иED с 2b - 1, где b — число битов в буфере цветового индекса.
  5. Полученные в результате индексы или RGBA цвета преобразуются в фрагменты, присоединяя текущую координату z-координаты и координаты текстуры к каждому пикселю, а затем присваивая координаты окна x и y для n-го фрагмента, такого как x? = Ширина xr + n
    Да? = y + n/Ширина
    где (xr , yr ) — Текущая разточечная координата.
  6. Функция глдравпикселс обрабатывает эти фрагменты пикселей так же, как фрагменты, созданные с помощью растрирования точек, линий или многоугольников. Перед записью фрагментов в буфера кадров применяет сопоставление текстур, туман и все операции фрагментов.
GL_STENCIL_INDEX
Каждый пиксель имеет одно значение — индекс набора элементов.
  1. Функция глдравпикселс преобразует ее в формат с фиксированной запятой с неопределенным числом битов справа от двоичной точки независимо от типа данных в памяти. Значения с плавающей запятой преобразуются в значения true с фиксированной запятой. Функция глдравпикселс преобразует подписанные и Беззнаковые целочисленные данные со всеми битами дробной части, равными нулю. Данные битовой карты преобразуются в 0,0 или 1,0.
  2. Функция глдравпикселс сдвигает каждый индекс с фиксированной точкой GL_INDEX_SHIFT битами и добавляет его в GL_INDEX_OFFSET. Если GL_INDEX_SHIFT является отрицательным, сдвиг вправо. В любом случае нулевые биты заполняются в результате неопределенных битовых точек в результатах.
  3. Если GL_MAP_STENCIL имеет значение true, индекс заменяется значением, глдравпикселс ссылки в таблице подстановки GL_PIXEL_MAP_S_TO_S.
  4. Независимо от того, выполняется ли замена уточняющего запроса индекса, целочисленная часть индекса затем иED с 2b - 1, где b — число битов в буфере шаблона. Итоговые индексы набора элементов затем записываются в буфер шаблона таким, что n-й индекс записывается в расположение x? = Ширина xr + n
    Да? = y + n/Ширина
    где (xr , yr ) — Текущая разточечная координата. Эти операции записи влияют только на проверку владения пикселями, ножницные тесты и набор элементов вритемаск.
GL_DEPTH_COMPONENT
Каждый пиксель является компонентом одной глубины.
  1. Функция глдравпикселс преобразует данные с плавающей запятой непосредственно во внутренний формат с плавающей запятой с неопределенной точностью. Целочисленные данные со знаком последовательно сопоставляются с внутренним форматом с плавающей запятой таким образом, что наиболее положительное целочисленное значение, которое может быть представлено, сопоставляется с 1,0, а наиболее отрицательное значение — в-1,0. Целочисленные данные без знака сопоставлены аналогичным образом: максимальное целочисленное значение сопоставляется с 1,0, а нулевое сопоставляется с 0,0.
  2. Функция глдравпикселс умножает полученное значение глубины с плавающей запятой на GL_DEPTH_SCALE и добавляет его в GL_DEPTH_BIAS. Результат задается в виде фиксации в диапазоне [0, 1].
  3. Функция глдравпикселс преобразует результирующие компоненты глубины в фрагменты, присоединяя текущий цветовой индекс позиции или цветового индекса и координаты текстуры к каждому пикселю, а затем присваивая координаты x и y для n -го фрагмента, такого как x? = Ширина xr + n
    Да? = y + n/Ширина
    где ( xr ,yr ) — Текущая разточечная координата.
  4. Затем эти фрагменты пикселов обрабатываются так же, как фрагменты, созданные с помощью растровых точек, линий или многоугольников. Функция глдравпикселс применяет сопоставление текстур, туман и все операции фрагментов перед записью фрагментов в буфера кадров.
GL_RGBA
Каждый пиксель представляет собой группу из четырех компонентов в следующем порядке: красный, зеленый, синий, альфа.
  1. Функция глдравпикселс преобразует значения с плавающей запятой непосредственно во внутренний формат с плавающей запятой с неопределенной точностью. Целочисленные значения со знаком линейно сопоставляются с внутренним форматом с плавающей запятой таким образом, что наиболее положительное значение целочисленного представления сопоставляется с 1,0, а наиболее отрицательное значение — в-1,0. Целочисленные данные без знака сопоставлены аналогичным образом: максимальное целочисленное значение сопоставляется с 1,0, а нулевое сопоставляется с 0,0.
  2. Функция глдравпикселс умножает результирующие значения цвета с плавающей запятой на GL_c_SCALE и добавляет их в GL_c_BIAS, где c — красный, зеленый, синий и альфа-канал для соответствующих компонентов цвета. Результаты записываются в диапазон [0, 1].
  3. Если GL_MAP_COLOR имеет значение true, глдравпикселс масштабирует каждый компонент цвета по размеру таблицы подстановки GL_PIXEL_MAP_c_TO_c, а затем заменяет компонент на значение, на которое он ссылается в этой таблице. c — R, G, B или A соответственно.
  4. Функция глдравпикселс преобразует итоговые цвета RGBA в фрагменты, присоединяя текущую координату z-координаты и координаты текстуры к каждому пикселю, а затем присвоив координаты x и y для n-го фрагмента, такого как x? = Ширина xr + n
    Да? = yr + n/видс
    где (xr ,yr ) — Текущая разточечная координата.
  5. Затем эти фрагменты пикселов обрабатываются так же, как фрагменты, созданные с помощью растровых точек, линий или многоугольников. Функция глдравпикселс применяет сопоставление текстур, туман и все операции фрагментов перед записью фрагментов в буфера кадров.
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, а затем преобразует его в пиксельное значение с красным, зеленым и синим значением 0,0. После этого преобразования пиксел обрабатывается так же, как если бы он был считан как пиксель RGBA.
GL_RGB
Каждый пиксель — это группа из трех компонентов в следующем порядке: красный, зеленый, синий. Функция глдравпикселс преобразует каждый компонент во внутренний формат с плавающей запятой точно так же, как красные, зеленые и синие компоненты в пикселе RGBA. Тройной цвет преобразуется в пиксель RGBA с альфа-составляющей, равным 1,0. После этого преобразования пиксел обрабатывается так же, как если бы он был считан как пиксель RGBA.
GL_LUMINANCE
Каждый пиксель является одним компонентом светимости.
Функция глдравпикселс преобразует этот компонент во внутренний формат с плавающей запятой точно так же, как красный компонент пиксельного типа RGBA, а затем преобразует его в пиксельное значение с красным, зеленым и синим значением, а для альфа-канала — значение 1,0. После этого преобразования пиксел обрабатывается так же, как если бы он был считан как пиксель RGBA.
GL_LUMINANCE_ALPHA
Каждый пиксель — это группа из двух компонентов в следующем порядке: светимость, альфа.
Функция глдравпикселс преобразует два компонента в формат с плавающей запятой точно так же, как красный компонент пиксельного объекта RGBA, а затем преобразует их в пиксельное значение с красным, зеленым и синим значением, а значение альфа-канала — в преобразованное. После этого преобразования пиксел обрабатывается так же, как если бы он был считан как пиксель RGBA.
GL_BGR_EXT
Каждый пиксель — это группа из трех компонентов в следующем порядке: синий, зеленый, красный.
GL_BGR_EXT предоставляет формат, соответствующий макету памяти, не зависящему от устройства Windows (DIB). Таким же приложениям можно использовать те же данные, что и вызовы функций Windows, и вызовы функций OpenGL Pixel.
GL_BGRA_EXT
Каждый пиксель — это группа из четырех компонентов в следующем порядке: синий, зеленый, красный, альфа.
GL_BGRA_EXT предоставляет формат, соответствующий макету памяти, не зависящему от устройства Windows (DIB). Таким же приложениям можно использовать те же данные, что и вызовы функций Windows, и вызовы функций OpenGL Pixel.

type

Тип данных для пикселей. Ниже приведены допустимые символьные константы и их значения.

Значение Значение
_байт без знака GL _
8-разрядное целое число без знака
_байт GL
8-разрядное целое число со знаком
_точечный рисунок GL
Одиночные биты в 8-разрядных целых числах без знака
_ _ сокращенный формат GL без знака
16-разрядное целое число без знака
_Краткая GL
16-разрядное целое число со знаком
_целое число без знака GL _
32-разрядное целое число без знака
тип в GL _
32-разрядное целое число
с _ плавающей запятой
Одинарная точность с плавающей запятой

зависим

Указатель на данные пикселя.

Возвращаемое значение

Эта функция не возвращает значение.

Коды ошибок

Функция глжетеррор может получить следующие коды ошибок.

Имя Значение
_недопустимое _ значение GL
Либо Ширина , либо Высота были отрицательными.
_недействительное _ перечисление GL
Формат или тип не является допустимым значением.
_Недопустимая _ Операция GL
Формат был красным, зеленым, GL в ГК, голубым, GL, GL, GL, ГК, BGR, GL, GL, _ _ _ _ _ _ _ _ _ _ _ а также « _ светимость», _ а OpenGL — в режиме индексирования цветов.
_недействительное _ перечисление GL
тип — это _ битовый Формат GL, но он не является ни индексом, ни индексом _ _ _ шаблона GL _ .
_Недопустимая _ Операция GL
Format был _ индексом трафарета GL _ , а буфер трафарета отсутствует.
_Недопустимая _ Операция GL
Функция была вызвана между вызовом глбегин и соответствующим вызовом гленд.

Комментарии

Функция глдравпикселс считывает данные пикселей из памяти и записывает их в буфера кадров относительно текущей координаты. Используйте глрастерпос , чтобы установить текущую отрастровую точку, и используйте глжет с аргументом _ текущей _ точечной _ позицией GL для запроса относительной координаты.

Несколько параметров определяют кодировку данных пикселей в памяти и управляют обработкой данных о точках перед их помещением в буфера кадров. Эти параметры задаются четырьмя функциями: глпикселсторе, глпикселтрансфер, глпикселмапи глпикселзум. В этом разделе описывается влияние на глдравпикселс многих, но не всех параметров, заданных четырьмя функциями.

Данные считываются из пикселей в виде последовательности знаков со знаком или без знака, беззнакового или неподписанного имени, целого числа со знаком или без знака или значений с плавающей запятой одиночной точности, в зависимости от типа. Каждый из этих байтов, разомкнутых сторон, целых чисел или значений с плавающей запятой интерпретируется как один компонент цвета или глубины или один индекс в зависимости от формата. Индексы всегда обрабатываются по отдельности. Цветовые компоненты обрабатываются как группы из одного, двух, трех или четырех значений, опять же, в зависимости от формата. Как отдельные индексы, так и группы компонентов называются пикселами. Если тип является _ точечным рисунком GL, данные должны быть байтами без знака, а Формат должен быть либо _ индексом цвета GL, _ либо _ индексом трафарета GL _ . Каждый байт без знака обрабатывается как 8 1-разрядные Пиксели с порядковым порядком, который определяется параметром GL _ RePack _ ЛСБ _ First (см. глпикселсторе).

Ширина в пикселях по высоте считывается из памяти, начиная с точек расположения. По умолчанию эти Пиксели берутся из смежных расположений в памяти, за исключением того, что после считывания всех пикселов ширины указатель чтения будет расширен до следующей 4-байтовой границы. Функция глпикселсторе задает выравнивание по строкам размером 4 байта с помощью аргумента "распаковать параметр" GL " _ _ и позволяет задать для него значение 1, 2, 4 или 8 байт. Другие параметры хранилища пикселов определяют другие перекрестные операции чтения указателя, как до первого пикселя, так и после считывания всех пикселей ширины . Функция глпикселсторе работает с каждым из пикселов с шириной по высоте , которые он считывает из памяти одинаковым образом, исходя из значений нескольких параметров, заданных параметрами глпикселтрансфер и глпикселмап. Сведения об этих операциях, а также целевой буфер, в который рисуются Пиксели, зависят от формата пикселей, как указано в формате.

Приведенная выше растрирования предполагает, что коэффициенты масштабирования пикселя в 1,0. При использовании глпикселзум для изменения коэффициентов масштабирования x и y Пиксели преобразуются в фрагменты следующим образом. Если (XR, год) является текущей позицией разряда, а заданный пиксель находится в n-ом столбце и в m-й строке пиксельного прямоугольника, то фрагменты создаются для пикселов, центры которых находятся в прямоугольнике с углами в

(xr + увеличить масштаб n, yr + Zoomy m)

(xr + увеличить масштаб (n + 1), yr + Zoomy (m + 1))

где увеличить? — значение параметра «масштаб в GL» _ _ X, а « масштабy » — значение « _ Масштаб по _ оси y».

Следующие функции извлекают сведения, относящиеся к глдравпикселс:

глжет с аргументом _ текущей _ точечной _ позицией GL

глжет с аргументом _ текущей _ точечной _ позицией GL _ допустимо

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
GL. h
Библиотека
Opengl32. lib
DLL
Opengl32.dll

См. также раздел

глалфафунк

глбегин

глблендфунк

глкопипикселс

глдепсфунк

гленд

глжет

гллогикоп

глпикселмап

глпикселсторе

глпикселтрансфер

глпикселзум

глрастерпос

глреадпикселс

глсЦиссор

глстенЦилфунк