Композитор Qt Wayland
Wayland — это протокол сервера отображения, предназначенный для создания многопроцессорных систем, в которых несколько клиентских приложений могут отображать содержимое на одном экране через процесс композитора.
По сравнению с системой с однопроцессорной архитектурой, многопроцессорная система предоставляет несколько преимуществ:
- Более лёгкое управление ресурсами за счёт стандартных механизмов операционной системы.
- Более высокая безопасность, так как каждое приложение может работать со своими разрешениями или в собственном песочнице.
- Более чёткое разделение пользовательского интерфейса приложения и пользовательского интерфейса композитора, что позволяет изменять их независимо друг от друга.
В типичной системе на основе Wayland несколько клиентских процессов отображают своё содержимое в буферы вне экрана. Затем информация об этих буферах передаётся процессу сервера отображения с помощью протокола Wayland. Наконец, процесс сервера отображения комбинирует и размещает содержимое на физическом экране.
Композитор Qt Wayland — это модуль, который предоставляет удобные и мощные API на QML и C++ для разработки пользовательских серверов отображения на основе этого протокола. Сервер отображает содержимое из клиентских приложений, поддерживающих протокол Wayland. Философия проектирования Wayland заключается в простоте и минимализме основного протокола, расширяющегося с помощью расширений, специфичных для конкретных сценариев использования. Композитор Qt Wayland по умолчанию поддерживает многие распространённые расширения и также имеет API, позволяющие создавать новые пользовательские расширения.
В одном типичном случае использования сервер отображения, написанный с помощью Qt Wayland Compositor, будет подсистемой внутри более крупного процесса менеджера приложений. Qt Wayland Compositor предоставляет API для взаимодействия с клиентами и отображения их содержимого на экране, используя C++ для низкоуровневого доступа и весь набор эффектов, анимаций и удобства Qt Quick при использовании API QML. Кроме этого, типичный менеджер приложений также реализует такие функции, как жизненный цикл приложения, ввод с виртуальной клавиатуры, безопасность и межпроцессное взаимодействие. Qt предоставляет API, которые могут быть использованы для разработки оставшихся частей менеджера приложения в других модулях. Qt Automotive Suite предоставляет полный менеджер приложений, который включает сервер отображения, разработанный с использованием Qt Wayland Compositor.
Особенности композитора 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 Compositor, чтобы узнать, как использовать API для написания пользовательских серверов отображения.
Лицензии и авторские права
Композитор Qt Wayland и плагин интеграции Qt Wayland доступны по коммерческим лицензиям от The Qt Company. Кроме того, они доступны по GNU Lesser General Public License, версии 3 или GNU General Public License, версии 2. Подробнее см. Лицензирование Qt.
Композитор Qt Wayland и плагин интеграции Qt Wayland используют определения протоколов по следующим разрешительным лицензиям:
Лицензия MIT |
|
Лицензия MIT |
|
Лицензия HPND |
|
Лицензия HPND |
|
Лицензия MIT |
|
Лицензия MIT |
|
Протокол Wayland xdg-decoration, версия unstable v1, версия 1 |
Лицензия 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/qt-5.12/qtwaylandcompositor-index.html