Został wydany pakiet Wayland-protocols 1.31, zawierający zestaw protokołów i rozszerzeń, które uzupełniają możliwości podstawowego protokołu Wayland i zapewniają możliwości niezbędne do budowy serwerów złożonych i środowisk użytkowników.
Wszystkie protokoły przechodzą kolejno przez trzy fazy – rozwój, testowanie i stabilizację. Po zakończeniu etapu rozwoju (kategoria „niestabilna”) protokół umieszczany jest w gałęzi „staging” i oficjalnie włączany do zestawu Wayland-protocols, a po zakończeniu testów zostaje przeniesiony do kategorii stabilnej. Protokoły z kategorii „staging” mogą być już stosowane w serwerach kompozytowych i klientach, gdzie wymagana jest powiązana funkcjonalność. W przeciwieństwie do kategorii „niestabilna”, „staging” zabrania wprowadzania zmian naruszających kompatybilność, ale jeśli podczas testowania zostaną zidentyfikowane problemy i niedociągnięcia, nie wyklucza się wymiany na nową, znaczącą wersję protokołu lub inne rozszerzenie Wayland.
Nowa wersja pojawia się tydzień po wydaniu Wayland-Protocols 1.30, w którym dodano obsługę protokołu kontroli łez w celu wyłączenia synchronizacji pionowej. W wersji 1.31 do kategorii „staging” dodano protokół skali ułamkowej, za pomocą którego menedżer złożony może przekazywać niecałkowite wartości skalowania powierzchni, co pozwala klientowi określić dokładniejszy rozmiar buforów dla obiektów wp_viewport w porównaniu do przekazywanie informacji o zaokrąglonej skali. Przygotowano implementacje protokołu skali ułamkowej dla wlroots, KWin i glfw.
Obecnie protokoły Wayland zawierają następujące stabilne protokoły, które zapewniają kompatybilność wsteczną:
- „viewporter” - umożliwia klientowi wykonywanie działań skalowania i przycinania krawędzi powierzchni po stronie serwera.
- „czas prezentacji” - zapewnia wyświetlanie wideo.
- „xdg-shell” to interfejs do tworzenia i interakcji z powierzchniami takimi jak okna, który umożliwia przesuwanie ich po ekranie, minimalizowanie, rozszerzanie, zmianę rozmiaru itp.
Protokoły testowane w gałęzi „staging”:
- drm-lease - zapewnia zasoby niezbędne do wygenerowania obrazu stereo z różnymi buforami dla lewego i prawego oka podczas przesyłania go do zestawów słuchawkowych wirtualnej rzeczywistości.
- "ext-session-lock" - określa sposób blokowania sesji, na przykład podczas działania wygaszacza ekranu lub wyświetlania okna dialogowego uwierzytelniania.
- „single-pixel-buffer” – umożliwia tworzenie jednopikselowych buforów zawierających cztery 32-bitowe wartości RGBA.
- „aktywacja xdg” - umożliwia przeniesienie fokusu pomiędzy różnymi powierzchniami pierwszego poziomu (na przykład za pomocą aktywacji xdg jedna aplikacja może przełączać fokus na inną).
- typ zawartości — umożliwia klientom przekazywanie informacji o wyświetlanej zawartości do serwera złożonego, co może zostać wykorzystane do optymalizacji zachowania uwzględniającego zawartość, na przykład ustawienia określonych właściwości DRM, takich jak „typ zawartości”. Deklarowana jest obsługa następujących typów treści: brak (brak informacji o typie danych), zdjęcie (wyjście zdjęć cyfrowych, wymagające minimalnej obróbki), wideo (wideo lub animacja, wymagana jest bardziej precyzyjna synchronizacja, aby uniknąć zacinania się) i gra (uruchamianie gry, wyjście z minimalnego opóźnienia).
- ext-idle-notify — umożliwia serwerom złożonym wysyłanie do klientów powiadomień o braku aktywności użytkownika, które można wykorzystać do aktywowania dodatkowych trybów oszczędzania energii po określonym czasie bezczynności.
- kontrola łez - umożliwia wyłączenie synchronizacji pionowej (VSync) z impulsem tłumienia pionowego w aplikacjach pełnoekranowych, używanym do ochrony przed rozrywaniem obrazu wyjściowego. W aplikacjach multimedialnych artefakty spowodowane rozdarciem są efektem niepożądanym, ale w programach do gier artefakty mogą być tolerowane, jeśli radzenie sobie z nimi powoduje dodatkowe opóźnienia.
Protokoły opracowywane w gałęzi „niestabilnej”:
- „fullscreen-shell” - kontrola pracy w trybie pełnoekranowym.
- "input-method" - przetwarzanie metod wejściowych.
- „idle-inhibit” - blokowanie uruchomienia wygaszacza ekranu (wygaszacza ekranu).
- "input-timestamps" - znaczniki czasu dla zdarzeń wejściowych.
- „keyboard-shortcuts-inhibit” – kontroluje dołączanie skrótów klawiaturowych i klawiszy skrótu.
- „linux-dmabuf” - współdzielenie kilku kart graficznych przy użyciu technologii dma-buf.
- „linux-explicit-synchronization” to specyficzny dla Linuksa mechanizm synchronizacji buforów związanych z powierzchnią.
- „gesty wskaźnikowe” – sterowanie z ekranów dotykowych.
- „ograniczenia wskaźnika” - ograniczenia wskaźnika (blokowanie).
- „wybór podstawowy” - analogicznie do X11 zapewnia działanie schowka podstawowego (wybór podstawowy), z którego informacje wstawiane są najczęściej środkowym przyciskiem myszy.
- „względne zdarzenia wskaźnikowe” - względne zdarzenia wskaźnikowe.
- „tablet” – obsługa wprowadzania danych z tabletów.
- „wprowadzanie tekstu” - organizacja wprowadzania tekstu.
- „xdg-foreign” to interfejs umożliwiający interakcję z powierzchniami „sąsiadującego” klienta.
- "xdg-decoration" - renderowanie dekoracji okiennych po stronie serwera.
- "xdg-output" - dodatkowa informacja o wyjściu wideo (używana do skalowania ułamkowego).
- "xwayland-keyboard-grab" - przechwytywanie danych wejściowych w aplikacjach XWayland.
Źródło: opennet.ru