Композитор Qt Wayland
Wayland — протокол сервера отображения, помогающий создавать многопроцессные системы, в которых несколько клиентских приложений могут отображать содержимое на одном дисплее, передавая данные через процесс композитора.
По сравнению с однопроцессной системой, многопроцессная система предоставляет несколько преимуществ:
- Более простое управление ресурсами с помощью стандартных механизмов операционной системы.
- Повышенная безопасность, так как каждое приложение может работать со своими разрешениями или в песочнице.
- Более чёткое разделение пользовательского интерфейса приложения и пользовательского интерфейса композитора, позволяющее изменять каждый из них независимо.
В типичной системе на базе Wayland несколько клиентских процессов отображают своё содержимое в буферы вне экрана. Затем информация об этих буферах передаётся процессу сервера отображения с помощью протокола Wayland. Наконец, процесс сервера отображения комбинирует и позиционирует содержимое на физическом дисплее.
Композитор Qt Wayland — это модуль, предоставляющий удобные и мощные API QML и C++ для разработки пользовательских серверов отображения на основе этого протокола. Сервер отображает содержимое от клиентских приложений, поддерживающих протокол Wayland. Философия проектирования Wayland заключается в поддержании простого и минимального ядра протокола и его расширении с помощью расширений, ориентированных на конкретные варианты использования. Композитор Qt Wayland по умолчанию поддерживает множество распространённых расширений, а также имеет API, позволяющие создавать новые пользовательские расширения.
В одном из типичных случаев использования сервер отображения, написанный с помощью композитора Qt Wayland, будет подсистемой внутри более крупного процесса менеджера приложений. Композитор Qt Wayland предоставляет API для взаимодействия с клиентами и отображения их содержимого на экране, используя C++ для низкоуровневого доступа и полный набор эффектов, анимаций и удобства Qt Quick при использовании API QML. Типичный менеджер приложений, помимо этого, реализует такие функции, как жизненный цикл приложения, ввод виртуальной клавиатуры, безопасность и IPC. Qt предоставляет API, которые могут быть использованы для разработки оставшихся частей менеджера приложения в других модулях. Набор инструментов Qt Automotive предоставляет полный менеджер приложений, который включает сервер отображения, разработанный с использованием композитора Qt Wayland.
Особенности композитора Qt Wayland
API композитора Qt Wayland включает в себя функции, необходимые для создания сервера отображения.
- API QML, который можно использовать для отображения и управления содержимым клиента, полностью интегрированным со всеми функциями Qt Quick.
- API C++ для низкоуровневого доступа и управления.
- Поддержка распространённых расширений, включая XDG Shell и IVI Application.
- API для лёгкого расширения поддержки пользовательских расширений.
Переменные окружения и аргументы командной строки
API композитора Qt Wayland распознаёт некоторые переменные окружения и аргументы командной строки, которые могут быть использованы для настройки его поведения.
- Переменные окружения:
- QT_WAYLAND_HARDWARE_INTEGRATION Выбирает плагин интеграции с аппаратным обеспечением для использования.
- QT_WAYLAND_CLIENT_BUFFER_INTEGRATION Выбирает плагин интеграции буфера клиента для использования.
- QT_WAYLAND_SERVER_BUFFER_INTEGRATION Выбирает плагин интеграции сервера для использования.
- Аргументы командной строки:
-
--wayland-socket-nameЗаменяет имя сокета по умолчанию, используемое для связи с клиентами.
-
Примеры
Ознакомьтесь с примерами композитора Qt Wayland для демонстрации способов использования API для написания пользовательских серверов отображения.
Лицензии и указание авторства
Композитор Qt Wayland и плагин интеграции Qt Wayland доступны по коммерческим лицензиям от The Qt Company. Кроме того, они доступны по GNU Lesser General Public License, версия 3, или GNU General Public License, версия 2. Дополнительные сведения см. в Qt Licensing.
Композитор Qt Wayland и плагин интеграции Qt Wayland используют определения протокола по следующим разрешительным лицензиям:
Лицензия MIT |
|
Лицензия HPND |
|
Лицензия HPND |
|
Лицензия MIT |
Справочник API
API композитора Qt Wayland можно использовать из C++ или QML.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qtwaylandcompositor-index.html