Screen API характеризует способы взаимодействия приложения с оконной подсистемой Screen
Все компоненты Screen API достаточно тесно связаны между собой (в настоящий момент не все виды объектов доступны через API).
Рисунок 1. Компоненты Screen API
- Контексты
- Контекст представляет совокупность параметров графических операций в рамках подсистемы
Screen
.
Все остальные объекты API создаются в рамках конкретного контекста и доступ к ним в осуществляется с использованием ассоциированного контекста. Через контекст также можно получить доступ к объектам, на которых будет производиться рендеринг (например, окна, группы, дисплеи, pixmap-ы
), чтобы устанавливать или изменять их свойства и атрибуты.
Устройства, дисплеи и окна зависят от контекста, который ассоциирован также с событиями, группами и pixmap-ами
. - Устройство
- Определяет устройство ввода. Это устройство (например, клавиатура, мышь, джойстик, геймпад или мультитач) можно сфокусировать на конкретных дисплеях.
- Дисплей
- Дисплей относится к физическому устройству отображения. Используя API можно получить доступ к свойствам дисплея, его режимам и вертикальной синхронизации.
- Окна
- Окно представляет поверхность для рисования. Окно может отображать различные типы контента, отсюда следует доступность нескольких типов окон: окна приложений, дочерние окна и встроенные окна.
- Pixmap
- Pixmap схож с битовой картой, за исключением того, что она может иметь глубину цвета в несколько бит на пиксель. Битовые карты, напротив, имеют глубину цвета в 1 бит на пиксель.
Вы можете рисовать непосредственно на поверхность pixmap-а, размещенную в off-screen области, а затем копировать его содержимое в буфер. - Событие
- Событие включает такие действия, как создание окна, изменение его параметров, события клавиатуры и других устройств ввода. События связаны с контекстом.
Screen
API предоставляет одну очередь событий для каждого контекста. - Группа
- Группа используется для организации и управления несколькими окнами приложения. Принадлежащие группе окна имеют идентичные параметры.
- Буфер
- Буфер - это область памяти (обычно видео-памяти), где можно быстро перемещать данные не занимая CPU. Хотя буфер создается в рамках контекста, его нельзя использовать, если он не привязан к окну или
pixmap-у
.
Несколько буферов могут быть ассоциированы с окном, тогда как только один буфер может быть связан с pixmap-ом.
Предыдущий раздел: Руководство разработчика оконной подсистемы Screen