Описание общих принципов работы оконной подсистемы
Screen
является композитной оконной подсистемой ЗОСРВ «Нейтрино», реализующей композицию графических окружений, а также аппаратную акселерацию приложений.
В отличие от традиционных оконных окружений, управляющих единственным буфером, ассоциированным с каждым дисплеем, в композитном окружении приложениям предоставляется возможность off-screen рендеринга (от англ. rendering
) с последующей визуализацией на экране средствами оконной подсистемы.
Off-screen рендеринг на системном уровне позволяет графической и оконной подсистеме производить манипуляции с окнами не вовлекая в это прикладное приложение. Содержимое окон может быть перемещено, масштабировано, повернуто на заданный угол, а также отражено вертикально или горизонтально без необходимости дополнительной перерисовки со стороны приложения.
Оконная подсистема Screen
ответственна за:
Screen
объединяет множество графических и UI (user interface) технологий в единое окружение. Посредством композиции это окружение объединяется оконной подсистемой в единое изображение для последующего отображения на экране. При этом осуществляется композиция (совмещение) слоев, окон и курсоров.
Как уже было сказано, одной из основных задач, решаемой оконной подсистемой Screen
является комбинирование всех видимых оконных буферов в единое изображение при отображении. Эта функция возложена на модуль, именуемый «Composition Manager» и достигается за счет привлечения аппаратной акселерации.
Screen имеет модульную архитектуру, включающую аппаратно-специфичные компоненты и модули организации OpenGL for Embedded Systems (OpenGL ES) акселерации.
Screen использует GPU-акселерированные операции для оптимального построения финальной сцены.
Кроме менеджмента окон «Composition Manager» тесно связан с маршрутизацией потоков ввода от соответствующих устройств. При этом происходит перехват потоков у классических путей, используемых в в оконной подсистеме Photon (отмечены красным).
![]() | Стоит отметить, что каждое событие ввода при маршрутизации направляется либо окнам Screen , либо в оконную подсистему Photon. Сосуществование обеих оконных подсистем возможно, но не рекомендуется из соображений производительности. Степень потерь при этом сильно зависит от особенностей устройств акселерации и общей производительности системы (пропускная способность памяти, CPU, вид и степень параллелизма, ...). |
Приложения взаимодействуют с Composition Manager используя Screen API. Основные векторы взаимодействия:
Приложения могут осуществлять рендеринг, используя:
Screen
предоставляет набор простых приложений для демонстрации основных функций Screen API. Запуск этих приложений позволяет в том числе определить настроен ли Screen
должным образом.
Предыдущий раздел: Руководство разработчика оконной подсистемы Screen