gf_surface_create_layer()

Создание новой поверхности, пригодной для ассоциации со слоем

Прототип:

#include <gf/gf.h>
int gf_surface_create_layer( gf_surface_t *psurface,
gf_layer_t *layer,
int nlayers,
int surface_index,
int w,
int h,
gf_format_t format,
const gf_palette_t *palette,
uint32_t flags );

Аргументы:

psurface
Указатель на память, куда будет сохранен дескриптор создаваемой поверхности.
layer
Массив дескрипторов слоёв, возвращенных функцией gf_layer_attach(), с которыми может ассоциироваться создаваемая поверхность.
nlayers
Число дескрипторов слоев в массиве layer.
surface_index
Индекс поверхности, используемый только для планарных форматов слоев (напрмер, YUV), которые предполагают несколько поверхностей для каждой составляющей цветового пространства. Для не планарных форматов должно использоваться значение 0.
w,h
Ширина и высота поверхности в пикселях.
format
Формат поверхности типа gf_format_t. Если используется упакованный формат, лучше использовать не endianness-специфичные варианты. Это приведет к лучшей портируемости приложения.
palette
Указатель на палитру поверхности типа gf_palette_t. Вы можете передать NULL только в том случае, если формат поверхности не предколагает наличия палитры (отличные от GF_FORMAT_PAL8 форматы).
flags
Флаги, характеризующие особенности создаваемой поверхности. Перечень и особенности использования флагов достпны на странице gf_surface_create().

Библиотека:

gf

Описание:

Функция позволяет создать новую графическую поверхность, пригодную для использования слоем layer контроллера дисплеев. Следует использовать эту функцию в случае, если поверхность предназначается для прямого ассоциирования с одним или несколькими слоями через вызов gf_layer_set_surfaces(). Она позволяет осуществить дополнительные проверки для определения соответствия запрашиваемых параметров поверхности возможностям слоя. Если поверхность предназначена лишь для offscreen рендеринга, достаточно возможностей функции gf_surface_create().


Warning: Потоки не должны вызывать эту функцию между вызовами gf_draw_begin() и gf_draw_end(). В противном случае возможна взаимная блокировка потоков.

Возвращаемое значение:

GF_ERR_OK
Успешное завершение.
GF_ERR_MEM
Выделение памяти не выполнено.
GF_ERR_PARM
Невозможно удовлетворить критерии создания поверхности; убедитесь, что формат поверхности соответствует требованиям, установленным флагами flags для данного оборудования. Также данный статус завершения возвращается, если значение параметра psurface или layer равно NULL
GF_ERR_IODISPLAY
Ошибка коммуникации с io-display. Следует проверить запущен ли в настоящий момент сервер io-display. Вывод sloginfo может содержать дополнительную информацию.

Классификация:

Графическая подсистема ЗОСРВ «Нейтрино», Graphics Framework

Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

gf_palette_t, gf_layer_set_surfaces(), gf_surface_attach(), gf_surface_create(), gf_surface_free()




Предыдущий раздел: GF API