Пиксельные форматы

Форматы пикселей окна определяют способ хранения информации в памяти GPU

Модель RGBA использует цветовое кодирование Red Green Blue (RGB) с дополнительной информацией об альфа канале (уровень прозрачности). Приложения, которым не требуется альфа-смешивание, могут использовать форматы, имеющие в качестве альфа-компонента отметку X.

Screen API поддерживает следующие форматы пикселей окон (описание этих форматов доступно на сайте www.fourcc.org):

Формат Описание
SCREEN_FORMAT_BYTE
SCREEN_FORMAT_RGBA4444 16 бит-на-пиксель; (4 бит на канал) RGB с альфа каналом.
SCREEN_FORMAT_RGBX4444 16 бит-на-пиксель; (4 бит на канал) RGB с альфа каналом (альфа канал игнорируется).
SCREEN_FORMAT_RGBA5551 16 бит-на-пиксель; 2 байта содержат R, G, и B компоненты (5 бит на канал и 1 бит на альфа компонент).
SCREEN_FORMAT_RGBX5551 16 бит-на-пиксель; 2 байта содержат R, G, и B компоненты (5 бит на канал и 1 бит на альфа компонент, который игнорируется).
SCREEN_FORMAT_RGB565 16 бит-на-пиксель; 5 бит на R и B компоненты и 6 бит для G. Формат представляет следующий порядок бит (от старшего байта к младшему): RRRRRGGG GGGBBBBB.
SCREEN_FORMAT_RGB888 24 бит-на-пиксель; (8 бит на канал) RGB.
SCREEN_FORMAT_RGBA8888 32 бит-на-пиксель; (8 бит на канал) RGB с альфа каналом.
SCREEN_FORMAT_RGBX8888 32 бит-на-пиксель; (8 бит на канал) RGB с альфа каналом (альфа канал игнорируется).
SCREEN_FORMAT_YVU9 9 бит-на-пиксель; YUV формат. 8-bit Y поверхность и 8-bit 4x4 субсэмплированные V и U поверхности. Зарегистрирован Intel.
SCREEN_FORMAT_YUV420 Стандартный формат передачи NTSC TV.
SCREEN_FORMAT_NV12 12 бит-на-пиксель; YUV формат. 8-bit Y поверхность и 2x2 субсэмплированные, чередующиеся U и V поверхности.
SCREEN_FORMAT_YV12 12 бит-на-пиксель; YUV формат. 8-bit Y поверхность и 8-bit 2x2 субсэмплированные U и V поверхности.
SCREEN_FORMAT_UYVY 16 бит-на-пиксель; упакованный YUV формат. YUV 4:2:2 — Y сэмпл в каждом пикселе, U и V сэмплы в каждом втором пикселе горизонтально на каждой линии. Макропиксель содержит 2 пикселя в 1 типе u_int32.
SCREEN_FORMAT_YUY2 16 бит-на-пиксель; упакованный YUV формат. YUV 4:2:2 как в UYVY, но с отличным порядком компонентов в u_int32 макропикселе.
SCREEN_FORMAT_YVYU 16 бит-на-пиксель; упакованный YUV формат. YUV 4:2:2 как в UYVY, но с отличным порядком компонентов в u_int32 макропикселе.
SCREEN_FORMAT_V422 Упакованный YUV формат. Инвертированная версия UYVY.
SCREEN_FORMAT_AYUV Упакованный YUV формат. Комбинируется YUV и альфа канал.

Также в Screen API поддерживаются следующие дополнительные форматы:

Формат Описание
SCREEN_FORMAT_BGRA8888 32 бит-на-пиксель; (8 бит на канал) RGB с альфа каналом. Формат представляет следующий порядок бит (от старшего байта к младшему): BBBBBBBB GGGGGGGG RRRRRRRR AAAAAAAA.
SCREEN_FORMAT_BGR565 16 бит-на-пиксель; 5 бит на R и B компоненты и 6 бит для G. Формат представляет следующий порядок бит (от старшего байта к младшему): BBBBBGGG GGGRRRRR
SCREEN_FORMAT_BGRA5551 16 бит-на-пиксель; 2 байта содержат R, G, и B компоненты (5 бит на канал и 1 бит на альфа компонент). Формат представляет следующий порядок бит (от старшего байта к младшему): BBBBBGGG GGRRRRRA.




Предыдущий раздел: Окна