Графика
На рисунке представлена архитектура пользовательского интерфейса и графики в ОС Аврора.
Графическое представление в ОС Аврора осуществляется с помощью Qt и выполняется через протокол Wayland. Wayland является протоколом взаимодействия между композитором и клиентами, в состав которого входит унифицированный протокол взаимодействия устройств ввода, предоставляющий виртуальную клавиатуру, виртуальную мышь и tablet-интерфейс — разделяемые всеми приложениями.
Аппаратно ускоренная работа с графикой обеспечивается библиотекой Mesa 3D, которая предоставляется OpenGL ES 3.2 (система Embedded Open Graphics Library) и EGL (Embedded-System Graphics Library).
Сборка в ядре Mesa использует LLVMpipe для быстрого программного рендеринга (визуализации) без подключения аппаратных специфичных драйверов.
Wayland использует подсистемы ядра Linux, такие как KMS (Kernel mode-setting) и DRM (Direct Rendering Manager).
В качестве композитора в ОС Аврора используется Lipstick. Подробное описание функций Lipstick приведено в статье «Композитор».
Протокол Wayland позволяет композитору отправлять входные события на клиентскую сторону и клиентской стороне отправлять уведомления композитору:
- Модуль evdev получает событие и отправляет его композитору.
- Композитор в своем графе сцены находит окно, которому следует доставить данное событие и определяет тип трансформации, который следует применить к объекту.
- Путём обратной трансформации композитор транслирует экранные координаты в локальные для данного окна.
- Рендеринг выполняется на клиентской стороне, при этом клиент только отправляет запрос композитору, чтобы указать область, которая была обновлена.
- Композитор собирает запросы с клиентской стороны, а затем пересобирает экран.
- Композитор загружает новую страницу с помощью вызова ioctl, адресованного KMS.