Информация о слое
#include <gf/gf.h>
typedef struct {
gf_format_t format;
unsigned caps;
unsigned alpha_valid_flags;
unsigned alpha_combinations;
unsigned chromakey_caps;
uint64_t order_caps;
int src_max_height;
int src_max_width;
int src_max_viewport_height;
int src_max_viewport_width;
int dst_max_height;
int dst_max_width;
int dst_min_height;
int dst_min_width;
int max_scaleup_x;
int max_scaleup_y;
int max_scaledown_x;
int max_scaledown_y;
uint32_t output_mask;
} gf_layer_info_t;
Структура gf_layer_info_t
имеет как минимум следующие поля:
- format
- Формат пикселей слоя. См. также gf_format_t для списка доступных форматов.
| Если заполненный функцией gf_layer_query() формат является упакованным, то он не будет endian-специфичным. |
- caps
- Функциональные возможности слоя. Допустимые биты маски:
- GF_LAYER_CAP_FILTER
- Можно применять сглаживающие фильтры во время отображения слоя. Фильтрацию можно применять для уменьшения количества артефактов при масштабировании изображений.
- GF_LAYER_CAP_SCALE_REPLICATE
- Для масштабирования исходного изображения в целевое окно просмотра доступен простой метод реплицирования пикселей.
- GF_LAYER_CAP_PAN_SOURCE
- Можно настроить положение исходного окна просмотра, вызвав gf_layer_set_src_viewport().
- GF_LAYER_CAP_SIZE_DEST
- Размер целевого окна просмотра может отличаться от размера исходного окна просмотра.
- GF_LAYER_CAP_PAN_DEST
- Можно настроить положение целевого окна просмотра, вызвав gf_layer_set_dst_viewport().
- GF_LAYER_CAP_EDGE_CLAMP
- Если отображаемое изображение недостаточно велико для заполнения целевого окна просмотра, то незаполненные правая и нижняя части окна просмотра могут быть заполнены автоматически. Последний отображаемый пиксель будет повторен до границы просматриваемой области.
- GF_LAYER_CAP_EDGE_WRAP
- Если отображаемое изображение недостаточно велико для заполнения целевого окна просмотра, то незаполненные правая и нижняя части окна просмотра могут быть заполнены. Правая и нижняя части могут быть перенесены к левым верхним частям изображения.
- GF_LAYER_CAP_DISABLE
- Можно деактивировать слой с помощью gf_layer_disable().
- GF_LAYER_CAP_SET_BRIGHTNESS
- Можно настроить яркость с помощью gf_layer_set_brightness().
- GF_LAYER_CAP_SET_CONTRAST
- Можно настроить контрастность с помощью gf_layer_set_contrast().
- GF_LAYER_CAP_SET_SATURATION
- Можно настроить насыщенность с помощью gf_layer_set_saturation().
- GF_LAYER_CAP_ALPHA_WITH_CHROMA
- Слой может одновременно применять alpha-смешивание and chroma-key.
- GF_LAYER_CAP_PAN_DEST_NEGATIVE
- Координаты результирующего окна отображения слоя могут быть отрицательными.
- GF_LAYER_CAP_MAIN_DISPLAY
- Данный слой является основным слоем дисплея.
- alpha_valid_flags
- Флаги, указываемые папаметром mode типа gf_alpha_t в функции gf_layer_set_blending().
- alpha_combinations
- Возможности оборудования для alpha-смешивания в слое. Допустимые биты маски:
- GF_ALPHA_CAP_SPP_WITH_GLOBAL
- Попиксельное source-смешивание может производиться совместно с глобальным множителем alpha-канала.
- GF_ALPHA_CAP_GLOBAL_WITH_DPP
- Попиксельное destination-смешивание можно производить совместно с глобальным множителем alpha-канала.
- GF_ALPHA_CAP_SPP_WITH_DPP
- Попиксельное source-смешивание можно использовать совместно с destination-попиксельным смешиванием.
- GF_ALPHA_CAP_GLOBAL_WITH_GLOBAL
- Глобальные множители alpha-канала surce- и destination- слоев могут использоваться совместно.
- chromakey_caps
- Возможности аппаратуры по обеспечению chroma-key для уровня. Допустимые биты маски:
- GF_LAYER_CHROMAKEY_CAP_SRC_SINGLE
- Слой поддерживает chroma-key c точным совпадением значения цвета исходного пикселя с ключем.
- GF_LAYER_CHROMAKEY_CAP_SRC_RANGE
- Слой поддерживает chroma-key c соответствием значения исходного пикселя диапазану значени ключа.
- GF_LAYER_CHROMAKEY_CAP_DST_SINGLE
- Слой поддерживает chroma-key c точным совпадением значения цвета целевого пикселя с ключем.
- GF_LAYER_CHROMAKEY_CAP_DST_RANGE
- Tлой поддерживает chroma-key c соответствием значения целевого пикселя диапазану значени ключа.
- GF_LAYER_CHROMAKEY_CAP_SHOWTHROUGH
- Слой можно настроить так, чтобы при сравнении цветовых ключей и совпадении цветов отображаемый пиксель поступал из нижележащего слоя. При несовпадении цветов, отображается пиксель из видимого слоя.
- GF_LAYER_CHROMAKEY_CAP_BLOCK
- Слой можно настроить так, чтобы при сравнении цветовых ключей и совпадении цветов, отображаемый пиксель брался из видимого слоя. При несовпадении цветов, отображается пиксель из нижелезащего слоя.
- order_caps
- число z-уровней, которые может занимать слой. Для каждого уровня будет включен или выключен соответствующий бит order_caps, чтобы отразить, возможно ли использование уровня. Уровень
0
(самая дальняя от пользователя) представляется наименьшим значимым битом 0
, уровень 1
- битом 1 и т.д. - src_max_height
- Максимальная высота источника (в пикселях).
- src_max_width
- Максимальная ширина источника (в пикселях).
- src_max_viewport_height
- Максимальная высота исходного окна просмотра (в пикселях).
- src_max_viewport_width
- Максимальная ширина исходного окна просмотра (в пикселях).
- dst_max_height
- Максимальная высота цели (в пикселях).
- dst_max_width
- Максимальная ширина цели (в пикселях).
- dst_min_height
- Максимальная высота целевого окна просмотра (в пикселях).
- dst_min_width
- Максимальная ширина целевого окна просмотра (в пикселях).
- max_scaleup_x, max_scaleup_y
- Максимальный коэффициент масштабирования для увеличения изображения по горизонтали и вертикали. Значение
1
показывает, что масштабирование невозможно. Значение < 1
является некорректным. Значение max_scaleup_x > 1
означает, что ширина целевого окна просмотра может быть до max_scaleup_x, умноженного на на ширину исходного окна просмотра. Аналогично, значение max_scaleup_y > 1
означает, что высота целевого окна просмотра может достигать max_scaleup_y, умноженного на высоту исходного окна просмотра. - max_scaledown_x, max_scaledown_y
- Максимальный коэффициент масштабирования для уменьшения изображения по горизонтали и вертикали. Значение
1
показывает, что масштабирование невозможно. Значение < 1
является некорректным. Значение max_scaledown_x > 1
означает, что ширина целевого окна просмотра может быть в max_scaledown_x раз больше ширины исходного окна просмотра. Аналогично, значение max_scaledown_y > 1
означает, что высота целевого окна просмотра может быть в max_scaledown_y раз больше высоты исходного окна просмотра. - output_mask
- При наличии нескольких выходов это значение указывает, на каких выходах слой может отображаться.
Графическая подсистема ЗОСРВ «Нейтрино», Graphics Framework
gf_layer_query()
Предыдущий раздел: GF API