Перенос операций с пикселем
При переносе кода, включающего пиксельные операции, учитывайте следующие моменты:
- Операции логических пикселей не применяются к буферам цвета RGBA. Дополнительные сведения см. в разделе glLogicOp.
- Как правило, IRIS GL использует формат ABGR для пикселей, а OpenGL — RGBA. Формат можно изменить с помощью glPixelStore.
- При переносе функций lrectwrite следует учитывать, где выполняется запись lrectwrite (например, это может быть запись в буфер глубины).
OpenGL обеспечивает дополнительную гибкость в пиксельных операциях. В следующей таблице перечислены функции IRIS GL для операций с пиксельами и их эквивалентные функции OpenGL.
Функция IRIS GL | Функция OpenGL | Значение |
---|---|---|
lrectread, rectread, readRGB |
glReadPixels | Считывает блок пикселей из framebuffer. |
lrectwrite, rectwrite | glDrawPixels | Записывает блок пикселей в framebuffer. |
rectcopy | glCopyPixels | Копирует пиксели в framebuffer. |
rectzoom | glPixelZoom | Задает коэффициенты увеличения пикселей для glDrawPixels и glCopyPixels. |
cmov | glRasterPos | Задает позицию растра для операций с пикселями. |
readsource | glReadBuffer | Выбирает источник буфера цвета для пикселей. |
pixmode | glPixelStore, glPixelTransfer | Задает режимы хранения пикселей. Настройка режимов передачи пикселей. |
logicop | glLogicOp | Задает логическую операцию для операций записи пикселей. |
glEnable ( GL_LOGIC_OP ) | Включает операции логики пикселей. |
Полный список возможных логических операций см. в разделе glLogicOp.
В этом примере кода IRIS 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);
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по