screen_property_t

Свойства различных объектов Screen API

Прототип:

#include <screen/screen.h>
typedef enum {
SCREEN_PROPERTY_BUFFER_SIZE,
SCREEN_PROPERTY_FORMAT,
SCREEN_PROPERTY_ID_STRING,
SCREEN_PROPERTY_PHYSICALLY_CONTIGUOUS,
SCREEN_PROPERTY_POINTER,
SCREEN_PROPERTY_RENDER_BUFFERS,
SCREEN_PROPERTY_SIZE,
SCREEN_PROPERTY_STRIDE,
SCREEN_PROPERTY_SWAP_INTERVAL,
SCREEN_PROPERTY_USAGE,
SCREEN_PROPERTY_VISIBLE,
SCREEN_PROPERTY_RENDER_BUFFER_COUNT,
SCREEN_PROPERTY_ZORDER,
SCREEN_PROPERTY_PHYSICAL_ADDRESS,
SCREEN_PROPERTY_CURSOR_ENABLE,
SCREEN_PROPERTY_CURSOR_POSITION,
SCREEN_PROPERTY_CURSOR_HOTSPOT,
SCREEN_PROPERTY_CURSOR_PIXMAP,
SCREEN_PROPERTY_BUTTONS,
SCREEN_PROPERTY_KEY_CAP,
SCREEN_PROPERTY_FLAGS,
SCREEN_PROPERTY_MODIFIERS,
SCREEN_PROPERTY_SCAN,
SCREEN_PROPERTY_SYM,
SCREEN_PROPERTY_NAME,
SCREEN_PROPERTY_OWNER_PID,
SCREEN_PROPERTY_POSITION,
SCREEN_PROPERTY_SOURCE_POSITION,
SCREEN_PROPERTY_TYPE,
SCREEN_PROPERTY_USER_DATA,
SCREEN_PROPERTY_USER_HANDLE,
SCREEN_PROPERTY_WINDOW,
SCREEN_PROPERTY_DISPLAY_COUNT,
SCREEN_PROPERTY_DISPLAYS,
SCREEN_PROPERTY_ID,
SCREEN_PROPERTY_MOUSE_WHEEL,
SCREEN_PROPERTY_WINDOW_COUNT,
SCREEN_PROPERTY_WINDOWS,
SCREEN_PROPERTY_DISPLAY,
} screen_property_t;

Библиотека:

libscreen

Описание:

Возможность чтения и записи конкретных свойств зависит от конкретного объекта Screen API.

SCREEN_PROPERTY_BUFFER_SIZE
Пара переменных типа int, представляющая ширину и высоту виде-буфера в пикселях. Следующие объекты API поддерживают данное свойство:
буфер (только чтение)
окно
SCREEN_PROPERTY_FORMAT
Значение соответствует типу int и определяет пиксельный формат видео-буфера. Значение должно быть выбрано из списка Форматы кодирования цветов пикселей. Следующие объекты API поддерживают данное свойств:
окно
Если окну устанавливается формат, имеющий активный альфа компонент цвета (например, SCREEN_FORMAT_RGBA4444), также неявно устанавливается значение SCREEN_TRANSPARENCY_SOURCE_OVER свойству SCREEN_PROPERTY_TRANSPARENCY. Если такое поведение не желательно, рекомендуется использовать форматы, которые подразумевают игнорирование альфа компонента цвета (например, SCREEN_FORMAT_RGBX4444).
SCREEN_PROPERTY_ID_STRING
Строка, которая может быть использована оконным менеджером для идентификации указанного объекта API. Следующие объекты API поддерживают данное свойство:
окно
SCREEN_PROPERTY_PHYSICALLY_CONTIGUOUS
Значение соответствует типу int и характеризует является ли буфер непрерывным в физической памяти. Данное свойство доступно только для чтения. Следующие объекты API поддерживают данное свойство:
буфер (только чтение)
SCREEN_PROPERTY_POINTER
Значение соответствует типу void * и характеризует указатель на видео-память указанного буфера, доступную для чтения/записи со стороны ПО. Буфер должен иметь установленными следующие биты маски предполагаемых способов использования: SCREEN_USAGE_READ, SCREEN_USAGE_WRITE. Данное свойство доступно только для чтения. Следующие объекты API поддерживают данное свойство:
буфер (только чтение)
SCREEN_PROPERTY_RENDER_BUFFERS
Указатели на один или несколько видео-буферов, доступных для рендеринга. Данное свойство доступно только для чтения. Следующие объекты API поддерживают данное свойство:
окно (только чтение)
Объекты этого типа могут содержать несколько видео-буфферов, доступных для рендеринга. Используя свойство SCREEN_PROPERTY_RENDER_BUFFER_COUNT можно определить точное число доступных видео-буферов.
SCREEN_PROPERTY_SIZE
Размер объекта API. Следующие объекты API поддерживают данное свойство, причем для различных объектов назначение свойства отличается:
окно
Пара значений типа int, которая определяет ширину и высоту окна в пикселях. По умолчанию размер окна соответствует размеру дисплея.
дисплей (только чтение)
Пара значений типа int, которая определяет ширину и высоту дисплея в пикселях (разрешение экрана). Имейте в виду, что при использовании поворота дисплея эти параметры меняются местами
событие
Пара значений типа int, которая определяет ширину и высоту области касания в пикселях. Свойство доступно для следующих событий:
SCREEN_PROPERTY_STRIDE
Значение соответствует типу int и определяет размер строки пикселей в байтах. Данное свойство доступно только для чтения. Следующие объекты API поддерживают данное свойство:
буфер (только чтение)
SCREEN_PROPERTY_SWAP_INTERVAL
Значение соответствует типу int и определяет минимальное число vsync периодов между публикациями изменений содержимого окна. По умолчанию интервал обновления между публикациями изменений содержимого окна равен 1. Следующие объекты API поддерживают данное свойство:
окно
SCREEN_PROPERTY_USAGE
Значение соответствует типу int и определяет битовую маску предполагаемых способов использования ассоциированных с объектом API видео-буферов. Устанавливаемая по умлочанию для создаваемых в рамках объекта буферов маска предполагаемых способов использования соответствует комбинации битов SCREEN_USAGE_READ | SCREEN_USAGE_WRITE. Свойство SCREEN_PROPERTY_USAGE должно быть задано в виде комбинации битов, определяемых типом Способы использования буферов. Обратите внимение на то, что изменение свойства SCREEN_PROPERTY_USAGE влияет на весь конвейер обработки видео-буферов в том случае, когда снимается или устанавливается бит SCREEN_USAGE_OVERLAY. Следующие объекты API поддерживают данное свойство:
окно (только запись)
SCREEN_PROPERTY_VISIBLE
Значение соответствует типу int и определяет видимость окна. По умолчанию свойство установлено в значение 1 (окно видимо). Следующие объекты API поддерживают данное свойство:
окно (только запись)
SCREEN_PROPERTY_RENDER_BUFFER_COUNT
Число видео-буферов, доступных для рендеринга. Данное свойство доступно только для чтения. Следующие объекты API поддерживают данное свойство:
окно (только чтение)
SCREEN_PROPERTY_ZORDER
Значение соответствует типу int и характеризует порядок отображения окон (z-индекс). По умолчанию свойство установлено в значение 0, z-индекс может быть как положительным, так и отрицательным. Следующие объекты API поддерживают данное свойство:
окно
SCREEN_PROPERTY_PHYSICAL_ADDRESS
Значение соответствует типу long long int и характеризует физический адрес указанного буфера. Свойство доступно только в том случае, если видео-буфер является физически непрерывным. Данное свойство доступно только для чтения. Следующие объекты API поддерживают данное свойство:
буфер (только чтение)
SCREEN_PROPERTY_CURSOR_ENABLE
Значение соответствует типу int и характеризует отображение курсора на дисплее. По умолчанию свойство установлено в значение 0 (не отображать), допустимые значения - 0 или 1. Следующие объекты API поддерживают данное свойство:
дисплей
SCREEN_PROPERTY_CURSOR_POSITION
Пара значений типа int, характеризует позицию курсора на дисплее: {x, y}. По умолчанию позиция курсора соответствует центру дисплея. Следующие объекты API поддерживают данное свойство:
дисплей
SCREEN_PROPERTY_CURSOR_HOTSPOT
Пара значений типа int, характеризует активную точку нажатия для курсора: {x, y}. Следующие объекты API поддерживают данное свойство:
дисплей
SCREEN_PROPERTY_CURSOR_PIXMAP
Значение типа screen_window_t *, содержит битмап курсора. Следующие объекты API поддерживают данное свойство:
дисплей (только запись)
SCREEN_PROPERTY_BUTTONS
Значение типа int, содержит битовую маску нажатых кнопок. Заметим, что на геймпаде D-pad, A, B, X, Y, Start, Select, Left и Right считаются кнопками. В настоящее время на геймпадах нет карты кнопок, эквивалентной клавиатурной. Следующие объекты API поддерживают данное свойство:
событие
устройство
SCREEN_PROPERTY_KEY_CAP
Значение типа int, содержит код клавиши без учета модификаторов. Свойство SCREEN_PROPERTY_KEY_CAP реализовано только для события SCREEN_EVENT_KEYBOARD. Следующие объекты API поддерживают данное свойство:
событие
SCREEN_PROPERTY_FLAGS
Значение типа int, содержит флаги, ассоциированные с событием. Следующие объекты API поддерживают данное свойство:
событие
Свойство реализовано для следующих событий:
SCREEN_PROPERTY_MODIFIERS
Значение типа int, содержит модификаторы, ассоциированные с событием. Следующие объекты API поддерживают данное свойство:
событие
Свойство реализовано для следующих событий:
SCREEN_PROPERTY_SCAN
Значение типа int, содержит ассоциированный с событием сканкод. Следующие объекты API поддерживают данное свойство:
событие
Свойство реализовано для следующих событий:
SCREEN_PROPERTY_SYM
Значение типа int, содержит ассоциированный с событием символ. Следующие объекты API поддерживают данное свойство:
событие
Свойство реализовано для следующих событий:
SCREEN_PROPERTY_NAME
Значение типа int, содержит тип события. Следующие объекты API поддерживают данное свойство:
событие (реализовано только для события SCREEN_EVENT_PROPERTY)
SCREEN_PROPERTY_OWNER_PID
Значение типа int, содержит идентификатор процесса, ответственного за создание объекта API. Следующие объекты API поддерживают данное свойство:
окно (только чтение)
SCREEN_PROPERTY_POSITION
Пара значений типа int, содержит пару экранных координат объекта API. Следующие объекты API поддерживают данное свойство:
дисплей
Координаты {x, y} дисплея в пределах логического рабочего стола.
событие
Координаты {x, y} точки касания touch-события или указателя. Поддерживается следующими событиями:
окно
Позиция {x, y} левого верхнего угла окна в экранных координатах. Следует помнить, что для встроенных или дочерних окон эта позиция относительна. Например, если окно имеет позицию {10, 10}, дочернее окно имеет позицию {10, 10}, то позиция дочернего окна в экранных координатах будет {20, 20}.
SCREEN_PROPERTY_SOURCE_POSITION
Пара значений типа int, позиция исходного viewport'a внутри оконного буфера. Следующие объекты API поддерживают данное свойство:
событие
Поддерживается следующими событиями:
SCREEN_PROPERTY_TYPE
Значение типа int, содержит индикатор типа интересуемого объекта. Следующие объекты API поддерживают данное свойство:
событие
Содержит тип события. Со списком допустимых значений можно ознакомиться здесь .
SCREEN_PROPERTY_USER_DATA
Массив из четырёх значений типа int, содержит пользовательские данные. Следующие объекты API поддерживают данное свойство:
событие
Применимо к событию SCREEN_EVENT_USER.
SCREEN_PROPERTY_USER_HANDLE
Значение типа void *, содержит дескриптор, который передается окну в случае ассоциации события с окном. Следующие объекты API поддерживают данное свойство:
окно
SCREEN_PROPERTY_WINDOW
Значение типа void *, содержит дескриптор окна. Следующие объекты API поддерживают данное свойство:
событие
Для следующих событий SCREEN_PROPERTY_WINDOW ссылается на окно, ассоциированное с событием: Для следующих событий SCREEN_PROPERTY_WINDOW ссылается на окно, ассоциированное с устройством ввода, для которого событие вызвано: Для следующих событий SCREEN_PROPERTY_WINDOW ссылается на окно, свойство для которого будет установлено:
SCREEN_PROPERTY_DISPLAY_COUNT
Значение типа int, содержит количество дисплеев, ассоциированных с контекстом. Следующие объекты API поддерживают данное свойство:
контекст (только чтение)
дисплей (только чтение)
SCREEN_PROPERTY_DISPLAYS
Значение типа void **, содержит массив указателей на дисплеи. Необходимо запросить значение свойства SCREEN_PROPERTY_DISPLAY_COUNT, после этого нужно выделить необходимое количество памяти для хранения массива указателей. Следующие объекты API поддерживают данное свойство:
контекст (только чтение)
дисплей (только чтение)
SCREEN_PROPERTY_ID
Значение типа char или int, содержит идентификатор дисплея. Следующие объекты API поддерживают данное свойство:
дисплей (только чтение)
SCREEN_PROPERTY_MOUSE_WHEEL
Значение типа int, содержит информацию о вращении и вертикальном направлении движения колеса мыши. При вращении вверх значение будет отрицательным. Следующие объекты API поддерживают данное свойство:
событие (применимо только для SCREEN_EVENT_POINTER)
SCREEN_PROPERTY_WINDOW_COUNT
Значение типа int, содержит количество окон, ассоциированных с контекстом. Следующие объекты API поддерживают данное свойство:
контекст (только чтение)
SCREEN_PROPERTY_WINDOWS
Значение типа void **, содержит массив указателей на окна. Необходимо запросить значение свойства SCREEN_PROPERTY_WINDOW_COUNT, после этого нужно выделить необходимое количество памяти для хранения массива указателей. Следующие объекты API поддерживают данное свойство:
контекст (только чтение)
SCREEN_PROPERTY_DISPLAY
Значение типа void *, содержит дескриптор дисплея. Следующие объекты API поддерживают данное свойство:
окно
Дисплей, с которым ассоциировано окно.

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

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

Поддерживается, начиная с ЗОСРВ «Нейтрино» редакции 2020




Предыдущий раздел: Общие типы данных