Форматы кодирования цветов пикселей
#include <screen/screen.h>
enum {
SCREEN_FORMAT_BYTE
SCREEN_FORMAT_RGBA4444
SCREEN_FORMAT_RGBX4444
SCREEN_FORMAT_RGBA5551
SCREEN_FORMAT_RGBX5551
SCREEN_FORMAT_RGB565
SCREEN_FORMAT_RGB888
SCREEN_FORMAT_RGBA8888
SCREEN_FORMAT_RGBX8888
SCREEN_FORMAT_YVU9
SCREEN_FORMAT_YUV420
SCREEN_FORMAT_NV12
SCREEN_FORMAT_YV12
SCREEN_FORMAT_UYVY
SCREEN_FORMAT_YUY2
SCREEN_FORMAT_YVYU
SCREEN_FORMAT_V422
SCREEN_FORMAT_AYUV
SCREEN_FORMAT_BGRA8888
SCREEN_FORMAT_BGR565
SCREEN_FORMAT_BGRA5551
SCREEN_FORMAT_NFORMATS
};
libscreen
- SCREEN_FORMAT_BYTE
- 8 бит-на-пиксель; Индексированный RGB.
- 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-битная Y поверхность и 8-битные 4x4 субсемплированные V и U поверхности. - SCREEN_FORMAT_YUV420
- Стандартный формат передачи NTSC TV.
- SCREEN_FORMAT_NV12
- 12 бит-на-пиксель; YUV формат.
8-битная Y поверхность и 2x2 субсемплированные U и V поверхности. - SCREEN_FORMAT_YV12
- 12 бит-на-пиксель; YUV формат.
8-битная Y поверхность и 8-битные 2x2 субсемплированные U и V поверхности. - SCREEN_FORMAT_UYVY
- 16 бит-на-пиксель; упакованный YUV формат.
YUV 4:2:2 - Y семплируется в каждом пикселе, U и V семплируются в каждом втором пикселе горизонтально в каждой строке. Макропиксель содержит 2 пикселя в одном uint32. - SCREEN_FORMAT_YUY2
- 16 бит-на-пиксель; упакованный YUV формат.
YUV 4:2:2 - как и в UYVY, но с другим порядком компонентов uint32 макропикселе. - SCREEN_FORMAT_YVYU
- 16 бит-на-пиксель; упакованный YUV формат.
YUV 4:2:2 - как и в UYVY, но с другим порядком компонентов uint32 макропикселе. - SCREEN_FORMAT_V422
- Упакованный YUV формат.
Инвертированная версия UYVY. - SCREEN_FORMAT_AYUV
- Упакованный YUV формат.
Комбинируется YUV и альфа канал. - 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. - SCREEN_FORMAT_NFORMATS
- Константа, характеризующая общее число форматов.
 | Форматы с альфа каналом будут иметь src-alpha режим смешивания включенным автоматически. Приложения, которым не требуется альфа-смешивание, должны выбирать форматы с X на позиции альфа канала. Например, SCREEN_FORMAT_RGBX8888. |
Предыдущий раздел: Общие типы данных