Wydanie Wayland-Protocols 1.48

Została przedstawiona wersja pakietu wayland-protocols 1.48, która zawiera zestaw protokołów i rozszerzeń, uzupełniających podstawowy protokół Wayland i oferujących funkcje potrzebne do budowy serwerów kompozytowych i środowisk użytkownika.

W nowej wersji:

  • Do kategorii „staging” dodano protokół xdg-session-management, który zapewnia funkcje przywracania stanu i pozycji okien przerwanego sesji w środowiskach opartych na protokole Wayland, na przykład po awaryjnym zakończeniu działania serwera kompozytowego lub aplikacji.
  • Rozszerzono możliwości protokołu text-input, umożliwiającego serwerom kompozytowym implementację metod wprowadzania tekstu i przesyłania tekstu do aplikacji. Na przykład dodano flagę no_emoji do wprowadzania bez Emoji, zaimplementowano wsparcie dla dodatkowych działań oprócz wklejania tekstu, dodano flagę language do przesyłania informacji o języku, dodano zapytania do pokazywania i ukrywania panelu wprowadzania, dodano flagę preedit_hint do dostosowania stylu wstępnej edycji.
  • Dodano eksperymentalny protokół xx-cutouts do uzyskiwania informacji o wycięciach na ekranie (na przykład obszarach pod kamerą przednią na ekranie smartfona).
  • Dodano eksperymentalny protokół xx-zones do tworzenia i dodawania okien najwyższego poziomu do „stref” — środowisk z własną przestrzenią współrzędnych. Protokół umożliwia organizację logicznego rozmieszczenia okien, w której każde okno jest umieszczane względem innego okna.
  • Dodano eksperymentalny protokół xx-keyboard-filter do przechwytywania przez klienta wybranych zdarzeń klawiatury, modyfikowania zdarzeń wejściowych lub blokowania przesyłania określonych zdarzeń do powierzchni Wayland, na której znajduje się fokus wejścia.

Wszystkie protokoły przechodzą kolejno fazy rozwoju, testowania i stabilizacji. Po zakończeniu etapu rozwoju (kategoria „unstable”) protokół zostaje umieszczony w gałęzi „staging” i oficjalnie włączony do zestawu wayland-protocols, a po zakończeniu testów przeniesiony do kategorii stabilnych. Protokół z kategorii „staging” można już stosować w kompozytowych. serwerach i klientów, gdzie wymagana jest związana z nimi funkcjonalność. W przeciwieństwie do kategorii „unstable”, w „staging” wprowadzanie zmian naruszających kompatybilność jest zabronione, jednak w przypadku wystąpienia problemów i niedociągnięć podczas testów, nie wyklucza się zastąpienia nową znaczącą wersją protokołu lub innym rozszerzeniem Wayland.

Aby przyspieszyć dostarczanie protokołów do deweloperów i stymulować ich wczesną implementację w istniejących projektach, od przedostatniego wydania dodatkowo wprowadzono fazę «experimental», w której dopuszcza się wprowadzanie zmian naruszających kompatybilność oraz dodawanie «surowych» protokołów, które można stopniowo udoskonalać. Jeśli dla wprowadzenia protokołu do fazy «staging» konieczne jest skonformowanie zespołu wsparcia i uzyskanie określonej liczby potwierdzeń (ACK) od uczestników przeglądów, to dla wprowadzenia go do «experimental» wystarczy brak sprzeciwu (NACK) w ciągu dwutygodniowego okresu przeglądu.

Obecnie zestaw wayland-protocols obejmuje następujące stabilne protokoły, w których zapewniona jest wsteczna kompatybilność:

  • viewporter” — umożliwia klientowi działania związane ze skalowaniem i przycinaniem krawędzi powierzchni po stronie klienta. serwera.
  • «presentation-time» — zapewnia wyświetlanie wideo.
  • «xdg-shell» — interfejs do tworzenia i interakcji z powierzchniami jako oknami, pozwalający na ich przesuwanie po ekranie, minimalizowanie, maksymalizowanie, zmianę rozmiaru itd.
  • «linux-dmabuf» — dostarcza możliwości tworzenia wl_bufferów opartych na DMA-BUF.
  • «tablet» — organizacja wejścia z tabletów graficznych.

Protokoły testowane w gałęzi «staging»:

  • drm-lease — zapewnia zasoby niezbędne do tworzenia stereo obrazu z różnymi buforami dla lewego i prawego oka przy wyjściu na hełmy VR.
  • «ext-session-lock» — definiuje środki blokady sesji, na przykład podczas działania wygaszacza ekranu lub wyświetlania dialogu autoryzacji.
  • «single-pixel-buffer» — pozwala na tworzenie jednopikselowych buforów, zawierających cztery 32-bitowe wartości RGBA.
  • «xdg-activation» — pozwala na przekazywanie fokusów między różnymi powierzchniami pierwszego poziomu (na przykład za pomocą xdg-activation jedna aplikacja może przełączyć fokus na inną).
  • content-type — pozwala klientom na przesyłanie kompozytowi serwera informacji o wyświetlanym zawartości, które mogą być użyte do optymalizacji zachowania w zależności od zawartości, na przykład do ustalania specyficznych właściwości DRM, takich jak „typ treści”. Zadeklarowano wsparcie dla następujących typów treści: none (brak informacji o typie danych), photo (wyświetlanie cyfrowych zdjęć, wymagające minimalnej obróbki), video (wideo lub animacja, wymaga bardziej precyzyjnej synchronizacji, aby wyeliminować przycięcia) oraz game (uruchamianie gier, wymaga wyjścia z minimalnym opóźnieniem).
  • ext-idle-notify — umożliwia serwerom kompozytowym przekazywanie klientom powiadomień o braku aktywności użytkownika, co może być używane do aktywacji dodatkowych trybów oszczędzania energii po określonym czasie braku aktywności.
  • tearing-control — pozwala wyłączyć synchronizację pionową (VSync) w aplikacjach pełnoekranowych za pomocą impulsu wygaszającego, stosowanego w celu ochrony przed pojawianiem się zjawiska zerwania obrazu (tearing). W aplikacjach multimedialnych pojawianie się artefaktów z powodu zerwań jest niepożądanym efektem, jednak w programach gier można się z nimi pogodzić, jeśli ich eliminacja prowadzi do dodatkowych opóźnień.
  • ext-foreign-toplevel-list — umożliwia uzyskanie informacji o powierzchniach umieszczonych na samym szczycie (toplevel), które pozwalają na organizację przypinania okien nad inną zawartością, na przykład do podłączenia własnych paneli i przełączników okien.
  • security-context — pozwala identyfikować klientów korzystających z izolacji sandbox. Klient może zarejestrować nowe połączenie z kompozytowym serwerem opartym na Wayland i przypisać mu kontekst bezpieczeństwa, po czym na podstawie wskazanego kontekstu bezpieczeństwa kompozytowy menedżer ograniczy możliwości dostępne dla ustalonego połączenia.
  • cursor-shape — alternatywny sposób dostosowywania wyglądu kursora, oparty na przesyłaniu serii obrazów kursora zamiast przypinania do powierzchni (wl_surface).
  • «ext-transient-seat» — przeznaczony do tworzenia tymczasowych, niezależnych sesji (seat), zaprojektowanych do użytku z wirtualnymi urządzeniami wejściowymi. Na przykład przy implementacji możliwości podłączania do zdalnego pulpitu protokół pozwala stworzyć dla każdego użytkownika osobną sesję z wirtualną klawiaturą i myszą.
  • «xdg-toplevel-drag» — rozszerza mechanizm „drag & drop” o możliwość przypinania okien górnego poziomu do operacji przenoszenia, co może być wykorzystane, na przykład, do organizowania przeciągania paneli narzędziowych lub kart przeglądarki. Nowy protokół umożliwia tworzenie odłączanych części okna, które podczas przeciągania z tego okna stają się nowymi oknami i mogą być przenoszone nad istniejącym oknem przed ponownym przypięciem.
  • «xdg-dialog» — pozwala przypisywać górnym powierzchniom cechy specyficzne dla okien dialogowych, na przykład można tworzyć dialogi modalne, które blokują interakcję użytkownika z pozostałą częścią interfejsu.
  • «linux-drm-syncobj» — zapewnia narzędzia do jawnej synchronizacji buforów przy użyciu obiektów synchronizacji DRM (Direct Rendering Manager). Zakłada się, że w kontekście synchronizacji podczas renderowania do bufora proponowany protokół poprawi działanie z driverami opartymi na graficznych API Vulkan i OpenGL (wdrożenie oparte na handlerach w driverach). Nowy protokół umożliwia upewnienie się, że operacja renderowania do bufora jest zakończona, zanim menedżer kompozycji wyświetli ten bufor.
  • alpha-modifier, umożliwiający klientom zmianę poziomu przezroczystości powierzchni i przenoszenie operacji umożliwiających przezroczystość na stronę serwera kompozytowego, który z kolei może przekazywać te operacje KMS.
  • xdg-toplevel-icon — przypisanie ikony do okna najwyższego poziomu.
  • ext-image-capture-source i ext-image-copy-capture — organizacja przechwytywania treści wyświetlanej na ekranie.
  • xdg-system-bell — pozwala na wyświetlanie sygnału systemowego, który może być używany, na przykład, jako ostrzeżenie w emulatorze terminali. Forma wyświetlania sygnału jest określana według uznania menedżera kompozycji, może to być nie tylko dźwięk, ale również odpowiedź wizualna.
  • fifo — implementuje mechanizm FIFO (pierwszy przyszedł — pierwszy wyszedł) do przetwarzania kolejki aktualizacji zawartości wyświetlanej powierzchni. Z praktycznego punktu widzenia protokół pozwala na wykorzystanie oczekiwania na zakończenie pionowego odświeżania (vblank) zamiast wywoływania callbacków przy każdej gotowości do wyświetlenia nowej klatki, co rozwiązuje problem wysokiego obciążenia GPU przy użyciu VSync.
  • commit-timing — umożliwia powiązanie ograniczenia czasowego z zawartością powierzchni (serwer kompozycji powinien wyświetlić zmianę zawartości w możliwie najkrótszym czasie, ale nie wcześniej).
  • ext-data-control — pozwala dla przywilejowanych klientów zarządzać przetwarzaniem danych, na przykład do realizacji menedżerów schowka.
  • ext-workspace — wdraża koncepcję wirtualnych pulpitów i oferuje zdarzenia z informacjami o stanie pulpitów, a także możliwości aktywacji i dezaktywacji pulpitów. Protokół może być stosowany do tworzenia paneli i wskaźników, które wyświetlają listę dostępnych wirtualnych pulpitów i umożliwiają przełączanie między nimi.
  • color-management — zapewnia możliwości zarządzania kolorem oraz wsparcie dla rozszerzonego zakresu dynamiki jasności (HDR, High Dynamic Range). Dzięki dodanemu rozszerzeniu aplikacje klienckie mogą uzyskiwać informacje o związanych właściwościach urządzeń wyjściowych dotyczących reprodukcji kolorów i przekazywać serwerowi kompozycji dane o właściwościach reprodukcji kolorów własnej zawartości. W kompozycji serwerze ta informacja może być wykorzystywana do automatycznego zarządzania kolorem podczas wyświetlania treści na różnych urządzeniach wyjściowych, na przykład do przekształcania zawartości w formę odpowiednią do wyświetlania na monitorach HDR. Profile ICC są używane do opisu przestrzeni kolorów.
  • xdg-toplevel-tag — pozwala klientom Wayland na przypisywanie znaczników do powierzchni na najwyższym poziomie, które serwer kompozytowy może wykorzystać do identyfikacji okien po ponownym uruchomieniu aplikacji (na przykład, aplikacja może ustawić znaczniki „main window” oraz „settings” dla głównego okna i okna z ustawieniami). Tego typu identyfikacja jest przydatna do przywracania pozycji, rozmiaru i właściwości okien po ich ponownym uruchomieniu, a także do określania specjalnych zasad dla poszczególnych typów okien.
  • color-representation — określenie reprezentacji kolorów powierzchni Wayland. Klienci Wayland mogą przesyłać metadane niezbędne do określenia przezroczystości, modelu kolorów, subdyskretizacji i zakresu kwantyzacji, stosowane podczas konwersji bufora z danymi odpowiadającymi modelowi kolorów YCbCr na reprezentację RGB.
  • ext-background-effect — stosowanie efektów do przezroczystych części powierzchni Wayland, takich jak rozmycie tła.
  • pointer-warp — pozwala aplikacji na natychmiastowe przeniesienie wskaźnika do określonej pozycji.

Protokół, który jest opracowywany w gałęzi „experimental”:

  • xx-session-management — przywracanie stanu okien dla przerwanych sesji (na przykład po awaryjnym zakończeniu menedżera kompozytowego).
  • xx-input-method — daje aplikacjom możliwość implementacji metod wprowadzania tekstu dla kompozytowych. serwerów i formować wprowadzony tekst, co może być stosowane na przykład do tworzenia wirtualnych klawiatur i warstw IME (Input Method Editor) do przetwarzania wejścia.
  • xx-text-input — umożliwia serwerom kompozytowym implementację metod wejścia i wysyłanie tekstu do aplikacji. Protokół standaryzuje interakcję między kompozytowym serwerem i aplikacjami, a także pozwala zarządzać takimi funkcjami jak przesyłanie wprowadzonego tekstu, przetwarzanie zdarzeń związanych ze zmianą fokusu wejścia i uwzględnianie specyfiki pól wejściowych (język, zaznaczenie tekstu, typ treści).

Protokół, który jest rozwijany w gałęzi «unstable»:

  • «fullscreen-shell» — zarządzanie pracą w trybie pełnoekranowym.
  • «input-method» — obsługa metod wprowadzania.
  • «idle-inhibit» — blokada uruchamiania wygaszacza ekranu (ekranowej zasłony).
  • «input-timestamps» — znaczniki czasowe dla zdarzeń wejściowych.
  • «keyboard-shortcuts-inhibit» — zarządzanie przypinaniem kombinacji klawiszowych i skrótów klawiszowych.
  • «linux-explicit-synchronization» — specyficzny dla Linux mechanizm synchronizacji buforów związany z powierzchnią.
  • «pointer-gestures» — zarządzanie gestami z ekranów dotykowych.
  • «pointer constraints» — ograniczenia wskaźników (blokada).
  • «primary-selection» — podobnie jak w X11 zapewnia działanie pierwszego bufora wymiany (primary selection), z którego wstawianie informacji zazwyczaj odbywa się za pomocą środkowego przycisku myszy.
  • «relative pointer events» — względne zdarzenia wskaźników.
  • «text-input» — organizacja wprowadzania tekstu.
  • «xdg-foreign» — interfejs interakcji z powierzchniami „sąsiedniego” klienta.
  • «xdg-decoration» — renderowanie dekoracji okien po stronie serwera.
  • «xdg-output» — dodatkowe informacje o wyjściu wideo (używane do skalowania niecałkowitego).
  • «xwayland-keyboard-grab» — przechwytywanie wejścia w aplikacjach XWayland.

Ź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