После четырёх месяцев разработки представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.26. Ветка 1.26 обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Наработки проекта распространяются под лицензией MIT. Эталонный композитный сервер Weston, предоставляющий код и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях, развивается в рамках отдельного цикла разработки.
프로토콜의 주요 변경 사항은 다음과 같습니다.
- Добавлено событие wl_pointer.warp, через которое можно получать уведомления о новой позиции указателя без обработки события wl_pointer.motion, генерируемого при активности пользователя.
- Добавлен запрос wl_fixes.ack_global_remove, предназначенный для отправки композитному менеджеру подтверждения того, что клиент прекратил обработку события для исключения состояния гонки при удалении глобальных событий. После получения подтверждения от всех клиентов композитный менеджер может удалить связанный с событием обработчик на своей стороне.
- Добавлена функция wl_display_remove_socket_fd() для удаления сокетов, до этого добавленных через вызов wl_display_add_socket_fd().
- В отладочном режиме WAYLAND_DEBUG обеспечен вывод в лог времени в формате «HH:MM:ss.xxxxxx», упрощающем разбор и сравнение логов.
Добавленные после рошлого выпуска Wayland расширения протоколов, дополняющие базовый протокол Wayland и поставляемые в отдельном наборе Wayland-Protocols:
- xx-fractional-scale — для масштабирования системы логических координат, значения в которой задаются целыми числами, для повышения точности позиционирования и увеличения разрешения логических координат до отдельных пикселей. Подобная возможность решает проблему с ограниченным разрешением системы логических координат, недостаточным для позиционирования на уровне отдельных пикселей, необходимого для полноценной реализации дробного масштабирования.
- xx-cutouts — 화면의 컷아웃(예: 스마트폰 화면의 전면 카메라 아래 영역)에 대한 정보를 얻기 위한 검색어입니다.
- xx-zones — для создания и добавления окон верхнего уровня в «зоны» — окружения со своим пространством координат. Протокол позволяет организовать логическую расстановку окон, в которой каждое окно размещается относительно другого окна.
- xx-keyboard-filter — 클라이언트가 선택한 키보드 이벤트를 가로채거나, 입력 이벤트를 수정하거나, 포커스가 있는 Wayland 화면으로 특정 이벤트가 전달되는 것을 차단할 수 있도록 합니다.
- xdg-session-management 프로토콜이 스테이징 범주에 추가되어 Wayland 기반 환경에서 복합 서버 또는 애플리케이션 충돌 후와 같이 중단된 세션에서 창의 상태와 위치를 복원할 수 있게 되었습니다.
- "linux-dmabuf" 프로토콜이 멀티 GPU 시스템을 지원하도록 업데이트되었습니다. 이러한 시스템에서 클라이언트는 복합 서버와 어떤 GPU를 사용할지 협상할 수 있습니다.
- 컬러 관리 v1 프로토콜이 업데이트되어 합성 서버의 특정 핸들러에서 사용할 수 있도록 BT.2100 형식의 이미지 메타데이터를 지원하게 되었습니다. 이를 통해 HDR 콘텐츠를 올바르게 표시할 수 있습니다. Windows.
Наиболее заметные события, связанные с Wayland и произошедшие после публикации прошлого выпуска:
- В Cinnamon реализована полноценная поддержка Wayland.
- Chrome에서 사용되는 ANGLE 라이브러리에서 Android, добавлена поддержка Wayland.
- В KDE при использовании Wayland реализована поддержка восстановления сеансов и реализован Wayland-протокол xx-fractional-scale-v2 для дробного масштабирования.
- Создан порт X.Org-драйвера Synaptics для окружений на базе Wayland.
- Инициирована проверка готовности платформ VFX и анимации к замене X11 на Wayland.
- Началось тестирование композитного сервера Xfwl4 от проекта Xfce.
- На базе Wayfire и Libadwaita воссоздана пользовательская оболочка Unity.
- Обновлены композитные серверы и среды рабочего стола: COSMIC 1.3.0, Weston 16, Phosh 0.56, Nourish 1.0.0, miracle-wm 0.10, KDE Plasma 6.7, labwc 0.20, Sway 1.2, Wayland Maker 0.8, Hyprland 0.55, Niri 26.04, LXQt 2.4.0, Cage 0.3.
Wayland는 복합 서버와 이를 사용하는 애플리케이션 간의 상호작용을 위한 프로토콜입니다. 클라이언트는 별도의 버퍼에 각자의 창을 독립적으로 렌더링하고, 업데이트 정보를 복합 서버로 전달합니다. 복합 서버는 창 겹침이나 투명도와 같은 미묘한 차이를 고려하여 개별 애플리케이션의 버퍼 내용을 결합하여 최종 출력을 생성합니다. 다시 말해, 복합 서버는 개별 요소를 렌더링하는 API를 제공하지 않고 이미 생성된 창에 대해서만 동작합니다. 따라서 GTK나 Qt와 같이 창의 내용을 구성하는 작업을 담당하는 고수준 라이브러리를 사용할 때 이중 버퍼링을 방지할 수 있습니다.
Wayland решает многие проблемы с безопасностью X11 в X.Org Server, так как в отличие от последнего изолирует ввод и вывод для каждого окна, не позволяет клиенту получить доступ к содержимому окон других клиентов, а также не допускает перехват связанных с другими окнами событий ввода (в XLibre XServer реализовано X11-расширение Xnamespace, обеспечивающее изоляцию клиентов через разделение на уровне пространств имён). Поддержка прямой работы c Wayland реализована для большинства применяемых в Linux GTK, Qt, SDL, FLTK, wxWidgets, Clutter, EFL(Enlightenment Foundation Library) 등의 그래픽 라이브러리.
Wayland/Weston 환경에서 하드웨어와의 상호 작용, 예를 들어 그래픽 카드 초기화, 비디오 모드 전환(DRM 모드 설정), 메모리 관리(i915의 경우 GEM, Radeon 및 Nouveau의 경우 TTM) 등은 커널 수준 모듈을 통해 직접 수행할 수 있으므로 관리자 권한이 필요하지 않습니다. Wayland 기반 환경에서 표준 X11 애플리케이션의 실행을 보장하기 위해 Win32용 Xwin 및 Xquartz와 유사하게 작동하는 XWayland(Device-Dependent X) DDX 구성 요소가 사용됩니다. macOS.
출처 : opennet.ru
