Dostępny Wayland 1.26

Po czterech miesiącach opracowywania zaprezentowano stabilną wersję protokołu, mechanizmu komunikacji międzyprocesowej oraz bibliotek Wayland 1.26. Gałąź 1.26 jest w pełni kompatybilna z poziomem API i ABI wersji 1.x i zawiera głównie poprawki błędów oraz niewielkie aktualizacje protokołu. Osiągnięcia projektu są rozpowszechniane na licencji MIT. Referencyjny kompozytor serwer Weston, dostarczający kod oraz przykłady do wykorzystania Wayland w środowiskach desktopowych oraz rozwiązaniach wbudowanych, rozwija się w ramach oddzielnego cyklu rozwoju.

Główne zmiany w protokole:

  • Dodano zdarzenie wl_pointer.warp, dzięki któremu można otrzymywać powiadomienia o nowej pozycji wskaźnika bez przetwarzania zdarzenia wl_pointer.motion, generowanego przy aktywności użytkownika.
  • Dodano żądanie wl_fixes.ack_global_remove, które ma na celu wysłanie do menedżera kompozycji potwierdzenia, że klient zaprzestał przetwarzania zdarzenia, aby wyeliminować stan wyścigu podczas usuwania globalnych zdarzeń. Po otrzymaniu potwierdzenia od wszystkich klientów menedżer kompozycji może usunąć związany z tym zdarzeniem kontroler po swojej stronie.
  • Dodano funkcję wl_display_remove_socket_fd() do usuwania gniazd, które zostały wcześniej dodane za pomocą wywołania wl_display_add_socket_fd().
  • W trybie debugowania WAYLAND_DEBUG zapewniono wyjście do logu z czasem w formacie „HH:MM:ss.xxxxxx”, co ułatwia analizę i porównywanie logów.

Po ostatnim wydaniu Wayland dodano rozszerzenia protokołów, które uzupełniają podstawowy protokół Wayland i są dostarczane w osobnym zestawie Wayland-Protocols:

  • xx-fractional-scale — do skalowania systemu logicznych współrzędnych, których wartości są określane jako liczby całkowite, aby zwiększyć dokładność pozycjonowania i zwiększyć rozdzielczość logicznych współrzędnych do pojedynczych pikseli. Taka możliwość rozwiązuje problem z ograniczoną rozdzielczością systemu logicznych współrzędnych, niewystarczającą do pozycjonowania na poziomie pojedynczych pikseli, co jest konieczne do pełnej implementacji skalowania ułamkowego.
  • xx-cutouts — w celu uzyskania informacji o wycinkach na ekranie (na przykład obszarach pod przednią kamerę na ekranie smartfona).
  • xx-zones — do tworzenia i dodawania okien podrzędnych do „stref” — środowiska z własną przestrzenią współrzędnych. Protokół umożliwia logiczne rozmieszczenie okien, w którym każde okno jest umieszczane w stosunku do innego okna.
  • xx-keyboard-filter — do przechwytywania wybranych przez klienta zdarzeń klawiatury, zmiany zdarzeń wejściowych lub blokowania przekazywania określonych zdarzeń do powierzchni Wayland, na której ustawiony jest fokus wejścia.
  • Do kategorii „staging” dodano protokół xdg-session-management, który zapewnia możliwość przywracania stanu i pozycji okien przerwanego sesji w środowiskach opartych na protokole Wayland, na przykład po awaryjnym zakończeniu kompozytora serwera lub aplikacji.
  • Do protokołu „linux-dmabuf” dodano wsparcie dla systemów z wieloma GPU. W takich systemach klient może uzgodnić z kompozytorami serwerem który z GPU powinien być używany.
  • W protokole color-management-v1 dodano wsparcie dla metadanych obrazów w formacie BT.2100 do zastosowań w kompozytowym serwerze specjalistycznych procesorach, które umożliwiają poprawne wyświetlanie treści HDR stworzonych dla systemu Windows.

Najbardziej zauważalne wydarzenia związane z Wayland, które miały miejsce po publikacji ostatniej wersji:

  • W Cinnamon w pełni zaimplementowano wsparcie dla Wayland.
  • W bibliotece ANGLE, używanej w Chrome i Androidzie, dodano wsparcie dla Wayland.
  • W KDE przy użyciu Wayland wprowadzono wsparcie dla przywracania sesji oraz zrealizowano protokół Wayland xx-fractional-scale-v2 dla fractional scaling.
  • Stworzono port sterownika X.Org Synaptics dla środowisk opartych na Wayland.
  • Rozpoczęto weryfikację gotowości platform VFX i animacji do zastąpienia X11 przez Wayland.
  • Rozpoczęto testowanie serwera kompozytora Xfwl4 z projektu Xfce.
  • Na bazie Wayfire i Libadwaita odtworzono powłokę użytkownika Unity.
  • Zaktualizowano serwery kompozytora i środowiska pulpitu: 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.

Przypominamy, że Wayland jest protokołem komunikacji między serwerem kompozytora a aplikacjami, które z nim współpracują. Klienci samodzielnie renderują swoje okna w oddzielnym buforze, przesyłając informacje o aktualizacjach do kompozytora. serwera, который łączy zawartość buforów poszczególnych aplikacji w celu utworzenia ostatecznego wyjścia z uwzględnieniem różnych szczegółów, takich jak nakładanie okien i przezroczystość. Innymi słowy, serwer kompozytowy nie udostępnia API do renderowania poszczególnych elementów, lecz operuje wyłącznie na już utworzonych oknach, co pozwala na wyeliminowanie podwójnego buforowania przy użyciu wysokopoziomowych bibliotek, takich jak GTK i Qt, które zajmują się kompozycją zawartości okien.

Wayland rozwiązuję wiele problemów z bezpieczeństwem X11 w X.Org Server, ponieważ w przeciwieństwie do ostatniego izoluje wejście i wyjście dla każdego okna, nie pozwala klientowi na dostęp do zawartości okien innych klientów, a także nie dopuszcza do przechwytywania związanych z innymi oknami zdarzeń wejściowych (w XLibre XServer zaimplementowane jest rozszerzenie X11 o nazwie Xnamespace, które zapewnia izolację klientów poprzez podział na poziomie przestrzeni nazw). Bezpośrednia obsługa Wayland jest zaimplementowana w większości używanych bibliotek graficznych w Linuxie, w tym GTK, Qt, SDL, FLTK, wxWidgets, Clutter i EFL (Enlightenment Foundation Library).

Interakcja z urządzeniami w Wayland/Weston, na przykład inicjalizacja, zmiana trybów wideo (drm modesetting) i zarządzanie pamięcią (GEM dla i915 i TTM dla radeon i nouveau) kart graficznych, może odbywać się bezpośrednio przez moduł działający na poziomie jądra, co pozwala ominąć wymagania superużytkownika. Aby zapewnić działanie standardowych aplikacji X11 w środowisku opartym na Wayland, używany jest komponent DDX XWayland (Device-Dependent X), który jest podobny pod względem funkcjonowania do Xwin i Xquartz dla platform Win32 i macOS.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster