Перенос операций с пикселами

При переносе кода, включающего операции с пикселями, учитывайте следующие моменты:

  • Операции логического пикселя не применяются к буферам цветов RGBA. Дополнительные сведения см. в разделе гллогикоп.
  • В целом, функция IRI GL использует формат АБГР для пикселей, тогда как OpenGL использует RGBA. Формат можно изменить на глпикселсторе.
  • При переносе функций лректврите следует обратить внимание на место записи лректврите (например, можно записать в буфер глубины).

OpenGL предоставляет дополнительную гибкость в операциях с пикселами. В следующей таблице перечислены функции IRI GL для операций с пикселями и их эквивалентные функции OpenGL.

Функция IRI GL Функция OpenGL Значение
лректреад, ректреад,реадргб
глреадпикселс Считывает блок пикселей из буфера кадров.
лректврите, ректврите глдравпикселс Записывает блок пикселей в буфера кадров.
ректкопи глкопипикселс Копирует Пиксели в буфера кадров.
ректзум глпикселзум Задает коэффициенты масштабирования пикселей для глдравпикселс и глкопипикселс.
кмов глрастерпос Задает растровое расположение для операций с пикселями.
реадсаурце глреадбуффер Выбирает источник цветового буфера для пикселей.
пиксмоде глпикселсторе,глпикселтрансфер Задает режимы хранения в пикселях. Задайте режимы обмена пикселами.
логикоп гллогикоп Задает логическую операцию для операций записи в пикселях.
гленабле ( _ логическая _ Операция ГК) Включает логические операции с пиксельными пикселями.

Полный список возможных логических операций см. в разделе гллогикоп.

В этом образце кода IRI GL показана типичная запись в пикселях:

unsigned long *packedRaster; 
.. 
packedRaster[k] = 0x00000000; 
.. 
lrectwrite(0, 0, xSize, ySize, packedRaster);

Приведенный выше код выглядит следующим образом при переводе в OpenGL:

glRasterPos2i( 0, 0); 
glDrawPixels( xSize + 1, ySize + 1, GL_RGBA, GL_UNSIGNED_BYTE, packedRaster);