Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

Доступен Wayland 1.24

Новости собранные из разных RSS источников
Аватара пользователя
root:#
Site Admin
Сообщения: 490
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 39 раз
Поблагодарили: 23 раза

Доступен Wayland 1.24

Сообщение root:# »

Доступен Wayland 1.24
После 13 месяцев разработки представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.24. Ветка 1.24 обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Наработки проекта распространяются под лицензией MIT. Эталонный композитный сервер Weston, предоставляющий код и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях, развивается в рамках отдельного цикла разработки.
Основные изменения в протоколе:
  • Реализован интерфейс wl_fixes, позволяющий решать проблемы с другими программными интерфейсами базовых протоколов, которые не могут быть устранены собственными возможностями этих интерфейсов. Например, запрос "wl_fixes::destroy_registry" позволяет ликвидировать объект wl_registry, после чего клиент не сможет его использовать, а композитный сервер прекратит передачу через него событий. В программном интерфейсе wl_keyboard::key реализовано псевдо-состояние "repeated", означающие нахождение клавиши в нажатом виде. Клавиша может быть переведена в состояние "repeated" только после перехода в состояние "pressed", но до наступления состояния "released". Связанные с новым состоянием события могут генерировать несколько раз, пока клавиша нажата. Изменение позволяет композитным серверам обрабатывать повторные нажатия при удерживании клавиш как отдельные состояния, а не просто как поток повторных событий нажатия ("pressed"), что может быть полезным для организации работы с удалённым рабочим столом. Добавлены функции wl_display_dispatch_queue_timeout() и wl_display_dispatch_timeout() для диспетчеризации событий в очереди с учётом таймаута (функции wl_display_dispatch и wl_display_dispatch_queue возвращают 0 только при отсутствии событий, а варианты *_timeiout ещё и при наступлении таймаута). Добавлены функции wl_shm_buffer_ref() и wl_shm_buffer_unref() для доступа к разделяемой памяти, связанной c буфером wl_shm_buffer, после его ликвидации (например, когда клиент завершает работу). Функции позволяют отвязать буфер wl_shm_buffer от времени жизни основного ресурса wl_buffer, когда композитному серверу требуется отложить переход к новому состоянию. Добавлены функции wl_proxy_get_interface() и wl_resource_get_interface(), возвращающие wl_interface для указанного ресурса, что востребовано в обвязках для языков с динамической типизацией. Добавлена функция wl_resource_post_error_vargs(), выступающая альтернативой функции wl_resource_post_error() с возможностью передать список аргументов для форматирования строки (va_list).


Наиболее заметные события, связанные с Wayland и произошедшие с момента публикации прошлого выпуска:
  • Улучшение поддержки Wayland в проприетарных драйверах NVIDIA. KDE планирует оставить только поддержку Wayland. Разделение кода kwin_x11 и kwin_wayland. Ubuntu и Kubuntu оставят только поддержку сеанса Wayland в GNOME и KDE. В GDM по умолчанию оставлена только поддержка Wayland. GTK перевёл бэкенд для X11 в разряд устаревших. В Fedora 43 решено удалить из репозитория пакеты, используемые в GNOME для работы поверх X-сервера. Все пользователи GNOME c X11 будут принудительно переключить на сеанс на базе Wayland. В среде рабочего стола Budgie будет оставлена только поддержка Wayland. В Xfce 4.20 реализована частичная поддержка Wayland. MATE 1.28 с экспериментальной поддержкой Wayland. Wayback - композитный сервер Wayland для запуска рабочих столов на базе X11 Компания Valve запустила проект Frog для ускорения продвижения новых протоколов Wayland. Библиотека построения графических интерфейсов Cosmoe, использующая Wayland и API в стиле BeOS. Включение по умолчанию драйвера Wayland в Wine. Переход Raspberry Pi OS на использование Wayland. Выпуск графического тулкита FLTK 1.4.0 с поддержкой Wayland. В набор Wayland-Protocols добавлена дополнительная фаза продвижения протоколов - "experimental", нацеленная на снижение барьера при интеграции протоколов, ускорение доведения протоколов до разработчиков и стимулирование ранней реализации в существующих проектах. AMD развивает собственный композитный сервер ACS, использующий Wayland. Семь альфа-выпусков среды рабочего стола COSMIC. Обновление композитных серверов: Weston 14.0, Niri 25.05, Wayland Maker 0.5, miracle-wm 0.5, Hyprland 0.49, labwc 0.8.3, Cage 0.2, Wayfire 0.9, Sway 1.11.


Добавленные за последний год расширения протоколов, дополняющих базовый протокол Wayland и поставляемых в отдельном наборе Wayland-Protocols:
  • color-management - возможности для управления цветом и поддержки расширенного динамического диапазона яркости (HDR, High Dynamic Range). color-representation-v1 - задание цветового представления Wayland-поверхности. xdg-toplevel-tag - позволяет Wayland-клиентам прикреплять теги к поверхностями верхнего уровня, которые композитный сервер может использовать для идентификации окон после перезапуска приложения. ext-background-effect - применение эффектов к полупрозрачным частям Wayland-поверхности, таких как размытие фона.
  • pointer-warp - позволяет приложению мгновенно переместить указатель в указанную позицию.
  • xx-session-management - восстановление состояния окон для прерванных сеансов (например, после аварийного завершения композитного менеджера).
  • xx-input-method - развитие нового протокола для использования методов ввода текста. ext-data-control - позволяет привилегированным клиентам управлять обработкой данных, например, для реализации менеджеров буфера обмена.
  • ext-workspace - реализует концепцию виртуальных рабочих столов и предлагает события с информацией о состоянии рабочих столов, а также возможности для активации и деактивации рабочих столов. xdg-system-bell - позволяет выводить системный сигнал, который может использоваться, например, как предупреждение в эмуляторе терминалов. xdg-toplevel-icon - для привязки пиктограммы к окну верхнего уровня.
  • ext-image-capture-source и ext-image-copy-capture - захват выводимого на экран контента.
  • fifo - реализует FIFO-механизм (первым пришёл - первым ушёл) обработки очереди обновления содержимого отображаемой поверхности. commit-timing - позволяет привязать ограничение времени к содержимому поверхности (композитный сервер должен отобразить изменение контента по возможности через указанное время, но не раньше).


Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK и Qt, берущих на себя работу по компоновке содержимого окон.

Wayland решает многие проблемы с безопасностью X11, так как в отличие от последнего изолирует ввод и вывод для каждого окна, не позволяет клиенту получить доступ к содержимому окон других клиентов, а также не допускает перехват связанных с другими окнами событий ввода. Поддержка прямой работы c Wayland реализована для большинства применяемых в Linux графических библиотек, включая GTK, Qt, SDL, FLTK, wxWidgets, Clutter и EFL (Enlightenment Foundation Library).

Взаимодействие с аппаратным обеспечением в Wayland/Weston, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland используется DDX-компонент XWayland (Device-Dependent X), похожий по организации работы на Xwin и Xquartz для платформ Win32 и macOS.

Изображение

Изображение


Источник: https://www.opennet.ru/opennews/art.shtml?num=63536