Доступний Wayland 1.26

Після чотирьох місяців розробки подано стабільний реліз протоколу, механізму міжпроцесної взаємодії та бібліотек 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-поверхню, на якій встановлено фокус введення.
  • До категорії «staging» додано протокол xdg-session-management, що надає можливості для відновлення стану та позиції вікон перерваного сеансу в оточеннях на основі протоколу Wayland, наприклад, після аварійного завершення композитного сервера або додатки.
  • До протоколу "linux-dmabuf" додано підтримку роботи на системах з кількома GPU. На таких системах клієнт може погодити з композитними сервером який із GPU слід використовувати.
  • У протокол color-management-v1 додано підтримку метаданих зображень у форматі BT.2100 для застосування в композитному сервері специфічних обробників, що дозволяють коректно відображати HDR-контент, створений для Windows.

Найбільш помітні події, пов'язані з Wayland і відбулися після публікації минулого випуску:

  • У Cinnamon реалізовано повноцінну підтримку Wayland.
  • У бібліотеку ANGLE, що використовується в Chrome та 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. 26.04, LXQt 2.4.0, Cage 0.3.

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

Wayland вирішує багато проблем з безпекою X11 в X.Org Server, так як на відміну від останнього ізолює введення та виведення для кожного вікна, не дозволяє клієнту отримати доступ до вмісту вікон інших клієнтів, а також не допускає перехоплення пов'язаних з іншими вікнами подій введення (в XLibre XServer реалізовано X11-розширення імен). Підтримка прямої роботи з 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.

Джерело: opennet.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster