Форматы кодирования цветов пикселей
#include <screen/screen.h>
typedef 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
} screen_format_t;
libscreen
- SCREEN_FORMAT_BYTE
- 8 бит-на-пиксель; Индексированный RGB.
- SCREEN_FORMAT_RGBA4444
- 16 бит-на-пиксель; (4 бит на канал) RGB с альфа каналом. Формат представляет следующий порядок бит (от старшего байта к младшему):
RRRRGGGG BBBBAAAA
. - SCREEN_FORMAT_RGBX4444
- 16 бит-на-пиксель; (4 бит на канал) RGB с альфа каналом (альфа канал игнорируется). Формат представляет следующий порядок бит (от старшего байта к младшему):
RRRRGGGG BBBBXXXX
. - SCREEN_FORMAT_RGBA5551
- 16 бит-на-пиксель; 2 байта содержат R, G, и B компоненты (5 бит на канал и 1 бит на альфа компонент). Формат представляет следующий порядок бит (от старшего байта к младшему):
RRRRRGGG GGBBBBBA
. - SCREEN_FORMAT_RGBX5551
- 16 бит-на-пиксель; 2 байта содержат R, G, и B компоненты (5 бит на канал и 1 бит на альфа компонент, который игнорируется). Формат представляет следующий порядок бит (от старшего байта к младшему):
RRRRRGGG GGBBBBBX
. - SCREEN_FORMAT_RGB565
- 16 бит-на-пиксель; 5 бит на R и B компоненты и 6 бит для G. Формат представляет следующий порядок бит (от старшего байта к младшему):
RRRRRGGG GGGBBBBB
. - SCREEN_FORMAT_RGB888
- 24 бит-на-пиксель; (8 бит на канал) RGB. Формат представляет следующий порядок бит (от старшего байта к младшему):
RRRRRRRR GGGGGGGG BBBBBBBB
. - SCREEN_FORMAT_RGBA8888
- 32 бит-на-пиксель; (8 бит на канал) RGB с альфа каналом. Формат представляет следующий порядок бит (от старшего байта к младшему):
RRRRRRRR GGGGGGGG BBBBBBBB AAAAAAAA
. - SCREEN_FORMAT_RGBX8888
- 32 бит-на-пиксель; (8 бит на канал) RGB с альфа каналом (альфа канал игнорируется). Формат представляет следующий порядок бит (от старшего байта к младшему):
RRRRRRRR GGGGGGGG BBBBBBBB XXXXXXXX
. - 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 . |
Графическая подсистема ЗОСРВ «Нейтрино», Screen
- Поддерживается, начиная с
ЗОСРВ
«Нейтрино»
редакции 2020
Предыдущий раздел: Общие типы данных