Издан пакет wayland-protocols 1.26, включающий набор протоколов и расширений, которые дополняют возможности основного протокола Wayland и предоставляют необходимые функции для создания композитных серверов и пользовательских окружений.
Все протоколы последовательно проходят три фазы — разработка, тестирование и стабилизация. После окончания этапа разработки (категория «unstable») протокол перемещается в ветку «staging» и официально включается в состав набора wayland-protocols, а после завершения тестирования переходит в категорию стабильных. Протоколы из категории «staging» могут уже применяться в композитных серверах и клиентах, где требуется связанная с ними функциональность. В отличие от категории «unstable», в «staging» запрещены изменения, нарушающие совместимость, но в случае выявления проблем и недоработок в процессе тестирования возможна замена на новую значительную версию протокола или другое расширение Wayland.
В новата версия:
- В категорию «staging» добавлен протокол single-pixel-buffer, позволяющий создавать однопиксельные буферы, содержащие четыре 32-битных значения RGBA. С помощью протокола viewporter композитные серверы могут масштабировать однопиксельные буферы для формирования однородных цветных поверхностей произвольного размера.
- В протокол xdg_shell, предоставляющий интерфейс для взаимодействия с поверхностями как с окнами, что позволяет перемещать поверхности по экрану, сворачивать, разворачивать, изменять размер и т.д., добавлена поддержка композитных сървъри, реализующих лишь часть предлагаемых в xdg_shell операций управления окнами. Для передачи информации о доступных в композитном сървър возможностях предложено событие wm_capabilities.
- В протоколе text-input пересмотрены формулировки, приводившие к неоднозначной трактовке, и добавлены пояснения о подразумеваемом поведении.
- Предписано использование терминологии, определённой в RFC 2119.
В настоящее время в состав wayland-protocols входят следующие стабильные протоколы, обеспечивающие обратную совместимость:
- «viewporter» — позволяет клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера.
- «presentation-time» — обеспечивает отображение видео.
- «xdg-shell» — интерфейс для создания и взаимодействия с поверхностями как с окнами, что позволяет их передвигать по экрану, сворачивать, разворачивать, изменять размер и т.д.
Протоколы, тестируемые в ветке «staging»:
- drm-lease — предоставя ресурси, необходими за формиране на стереоизображение с различни буфери за лявото и дясното око при изход на шлемове за виртуална реалност.
- «ext-session-lock» — определя средствата за блокиране на сесията, например, по време на работа на екранната защита или изход на диалог за удостоверяване.
- «single-pixel-buffer» — позволява създаване на однопикселови буфери, включващи четири 32-битови стойности RGBA.
- «xdg-activation» — позволява прехвърляне на фокуса между различни повърхности на първо ниво (например, с помощта на xdg-activation едно приложение може да пренасочи фокуса към друго).
Протоколите, разработвани в клона «unstable»:
- «fullscreen-shell» — управление на работата в режим на цял екран.
- «input-method» — обработка на методите за въвеждане.
- «idle-inhibit» — предотвратяване на стартиране на екранната заставка.
- «input-timestamps» — времеви печати за входни събития.
- «keyboard-shortcuts-inhibit» — контрол на привързаността на клавишни комбинации и бързи клавиши.
- «linux-dmabuf» — споделянето на няколко видеокарти чрез технологията DMABuff.
- «linux-explicit-synchronization» — специфичен за Linux механизъм за синхронизация на буферите, свързан с повърхността.
- «pointer-gestures» — управление на сензорни екрани.
- «pointer constraints» — ограничения на указателите (блокиране).
- «primary-selection» — подобно на X11 осигурява работа с основния буфер за обмен (primary selection), чийто вариант обикновено се вмъква с средния бутон на мишката.
- «relative pointer events» — относителни събития на указатели.
- «tablet» — поддръжка на вход от таблети.
- «text-input» — организация на въвеждане на текст.
- «xdg-foreign» — интерфейс за взаимодействие с повърхности на «съседен» клиент.
- «xdg-decoration» — отразяване на декорации на прозорците от страна на сървъра.
- «xdg-output» — допълнителна информация за видеовыхода (използва се за дробно мащабиране).
- «xwayland-keyboard-grab» — захващане на входа в приложенията XWayland.
Източник: opennet.ru
