Обзор Screen API

Screen API характеризует способы взаимодействия приложения с оконной подсистемой Screen

Все компоненты Screen API достаточно тесно связаны между собой (в настоящий момент не все виды объектов доступны через API).

cscreen_api_components.png
Рисунок 1. Компоненты Screen API

Контексты
Контекст представляет совокупность параметров графических операций в рамках подсистемы Screen.

Все остальные объекты API создаются в рамках конкретного контекста и доступ к ним в осуществляется с использованием ассоциированного контекста. Через контекст также можно получить доступ к объектам, на которых будет производиться рендеринг (например, окна, группы, дисплеи, pixmap-ы), чтобы устанавливать или изменять их свойства и атрибуты.

Устройства, дисплеи и окна зависят от контекста, который ассоциирован также с событиями, группами и pixmap-ами.
Устройство
Определяет устройство ввода. Это устройство (например, клавиатура, мышь, джойстик, геймпад или мультитач) можно сфокусировать на конкретных дисплеях.
Дисплей
Дисплей относится к физическому устройству отображения. Используя API можно получить доступ к свойствам дисплея, его режимам и вертикальной синхронизации.
Окна
Окно представляет поверхность для рисования. Окно может отображать различные типы контента, отсюда следует доступность нескольких типов окон: окна приложений, дочерние окна и встроенные окна.
Pixmap
Pixmap схож с битовой картой, за исключением того, что она может иметь глубину цвета в несколько бит на пиксель. Битовые карты, напротив, имеют глубину цвета в 1 бит на пиксель.

Вы можете рисовать непосредственно на поверхность pixmap-а, размещенную в off-screen области, а затем копировать его содержимое в буфер.
Событие
Событие включает такие действия, как создание окна, изменение его параметров, события клавиатуры и других устройств ввода. События связаны с контекстом. Screen API предоставляет одну очередь событий для каждого контекста.
Группа
Группа используется для организации и управления несколькими окнами приложения. Принадлежащие группе окна имеют идентичные параметры.
Буфер
Буфер - это область памяти (обычно видео-памяти), где можно быстро перемещать данные не занимая CPU. Хотя буфер создается в рамках контекста, его нельзя использовать, если он не привязан к окну или pixmap-у.

Несколько буферов могут быть ассоциированы с окном, тогда как только один буфер может быть связан с pixmap-ом.




Предыдущий раздел: Руководство разработчика оконной подсистемы Screen