Формат пикселей поверхности
#include <gf/gf.h>typedef enum {GF_FORMAT_INVALID = 0,GF_FORMAT_BYTE,GF_FORMAT_PAL8,GF_FORMAT_PACK_ARGB1555,GF_FORMAT_PKLE_ARGB1555,GF_FORMAT_PKBE_ARGB1555,GF_FORMAT_PACK_RGB565,GF_FORMAT_PKLE_RGB565,GF_FORMAT_PKBE_RGB565,GF_FORMAT_BGR888,GF_FORMAT_BGRA8888,GF_FORMAT_ARGB8888,GF_FORMAT_ABGR8888,GF_FORMAT_RGBA8888,GF_FORMAT_PACK_YUV_UYVY,GF_FORMAT_PKLE_YUV_UYVY,GF_FORMAT_PKBE_YUV_UYVY,GF_FORMAT_PACK_YUV_YUY2,GF_FORMAT_PKLE_YUV_YUY2,GF_FORMAT_PKBE_YUV_YUY2,GF_FORMAT_PACK_YUV_YVYU,GF_FORMAT_PKLE_YUV_YVYU,GF_FORMAT_PKBE_YUV_YVYU,GF_FORMAT_PACK_YUV_V422,GF_FORMAT_PKLE_YUV_V422,GF_FORMAT_PKBE_YUV_V422,GF_FORMAT_PACK_YUV_NV12,GF_FORMAT_PACK_YUV_AYUV,GF_FORMAT_PLANAR_YUV_YVU9,GF_FORMAT_PLANAR_YUV_YV12,GF_FORMAT_PLANAR_YUV_420,/* interlaced formats */GF_FORMAT_PACK_YUV_UYVY_INTERLACED,GF_FORMAT_PKLE_YUV_UYVY_INTERLACED,GF_FORMAT_PKBE_YUV_UYVY_INTERLACED,GF_FORMAT_PACK_YUV_YUY2_INTERLACED,GF_FORMAT_PKLE_YUV_YUY2_INTERLACED,GF_FORMAT_PKBE_YUV_YUY2_INTERLACED,GF_FORMAT_PACK_YUV_YVYU_INTERLACED,GF_FORMAT_PKLE_YUV_YVYU_INTERLACED,GF_FORMAT_PKBE_YUV_YVYU_INTERLACED,GF_FORMAT_PACK_YUV_V422_INTERLACED,GF_FORMAT_PKLE_YUV_V422_INTERLACED,GF_FORMAT_PKBE_YUV_V422_INTERLACED,GF_FORMAT_PACK_YUV_NV12_INTERLACED,GF_FORMAT_PACK_YUV_AYUV_INTERLACED,GF_FORMAT_PLANAR_YUV_YVU9_INTERLACED,GF_FORMAT_PLANAR_YUV_YV12_INTERLACED,GF_FORMAT_PLANAR_YUV_420_INTERLACED,} gf_format_t;
Перечисление gf_format_t характеризует форматы отображаемой информации и соответствующие им форматы пикселей поверхности. Допустимы следующие значения:
8bpp (от англ. "bits per pixel" или бит на пиксель). 8bpp, индексированный палитровый формат с 256 цветами. 16bpp упакованные ARGB форматы: биты 0-4 определяют синий цвет, 5-9 — зеленый, 10-14 — красный, старшие биты — альфа канал. 16bpp упакованные RGB форматы: биты 0-4 определяют синий цвет, 5-10 — зеленый, 11-15 — красный. 24bpp BGR формат с 8 битами на канал цвета. 32bpp BGRA формат с 8 битами на канал цвета. 16-битовый упакованные YUV форматы (FourCC код UYVY). 16-битовый упакованные YUV форматы (FourCC код YUY2). 16-битовый упакованные YUV форматы (FourCC код YVYU). 16-битовый упакованные YUV форматы (FourCC код V422). YVU9). YV12). Отдельные форматы со временем утрачивают актуальность. Так, Photon не поддерживает палитровый формат GF_FORMAT_PAL8.
Для всех упакованных форматов имеется четыре разновидности:
Там, где это возможно, рекомендуется использовать PACK и позволить драйверу выделять поверхности тем способом, который близок к потребностям оборудования. Это повысит потенциальную портируемость приложения. Данную логику принятия решений в общем случае реализуют функции gf_surface_create() и gf_surface_create_layer().
При использовании функции gf_surface_attach() следует указывать конкретный порядок байт, используя PKLE, PKBE или PKHE.
Графическая подсистема ЗОСРВ «Нейтрино», Graphics Framework
gf_surface_create(), gf_surface_create_layer(), gf_surface_attach()
Предыдущий раздел: GF API