Курсор
#include <gf/gf.h>
typedef struct {
enum {
GF_CURSOR_BITMAP,
} type;
gf_point_t hotspot;
union {
struct {
int w;
int h;
int stride;
gf_color_t color0;
const uint8_t *image0;
const uint8_t *image1;
gf_color_t color1;
} bitmap;
} cursor;
} gf_cursor_t;
Структура gf_cursor_t
имеет как минимум следующие поля:
- type
- Тип курсора. Значение этого поля определяет, какой из членов объединения
gf_cursor_t::cursor
будет задействован. Поддерживаются только курсоры, определяемые изображением, поэтому данный параметр должен быть установлен в GF_CURSOR_BITMAP
. - hotspot
- Смещение от верхнего левого угла курсора, характеризующее его актуальную позицию указателя. Смотрите gf_point_t.
- cursor
- Объединение типозависимых данных, описывающих сущность курсора. Из-за того, что поддерживаются только курсоры, определяемые изображением, это объединение имеет одно возможное значение - структуру, описывающую курсор как два двумерных изображения со следующими параметрами:
- w, h
- Ширина и высота изображения в пикселях. Предполагается, что эти значения одинаковы для обоих изображений.
- stride
- Количество байт на строку в изображении. Сюда входят байты, необходимые для представления одной строки, а также любые отступы, заданные приложением. Предполагается, что это значение одинаково для обоих изображений.
- color0
- Цвет первого изображения.
- image0
- Указатель на данные изображения переднего плана. Данные представляют изображение размером w × h, один бит на пиксель, соответственно,
8
пикселей на байт. По сути, получается h последовательных строк по stride байт в каждой. Биты со значением 1
рендерятся с использованием цвета color0, биты со значением 0
рендерятся прозрачными. - image1
- Указатель на данные изображения заднего плана, которое находится под первым изображением. Данное изображение по параметрам идентично первому за исключением цвета, опеределяемого параметром color1.
- color1
- Цвет второго изображения.
Графическая подсистема ЗОСРВ «Нейтрино», Graphics Framework
gf_point_t, gf_color_t, gf_cursor_set(), gf_cursor_disable(), gf_cursor_enable(), gf_cursor_set_pos()
Предыдущий раздел: GF API