Wydanie Wayland-Protocols 1.46

Opublikowano wersję pakietu wayland-protocols 1.46, która zawiera zestaw protokołów i rozszerzeń, uzupełniających podstawowy protokół Wayland oraz zapewniających funkcjonalności potrzebne do budowy serwerów kompozytowych i środowisk użytkownika.

W nowej wersji:

  • Dodano eksperymentalny protokół xx-input-method, który umożliwia aplikacjom wdrażanie metod wprowadzania tekstu dla serwerów kompozytowych oraz formowanie wprowadzonego tekstu, co może być używane na przykład do tworzenia wirtualnych klawiatur i warstw IME (Edytor Metody Wprowadzania) do przetwarzania wprowadzania.
  • Dodano eksperymentalny protokół xx-text-input, który umożliwia serwerom kompozytowym implementację metod wprowadzania i wysyłanie tekstu do aplikacji. Protokół standaryzuje interakcję między serwerem kompozytowym a aplikacjami oraz pozwala zarządzać takimi funkcjonalnościami, jak przekazywanie wprowadzonego tekstu, przetwarzanie zdarzeń zmiany fokusu wprowadzania oraz uwzględnianie specyficznych właściwości pól wprowadzania (język, zaznaczenie tekstu, typ treści).
  • Poprawione protokoły color-management-v1 i color-representation-v1, zapewniające możliwości zarządzania kolorem, wsparcia HDR oraz określenia przedstawienia kolorów powierzchni Wayland.

Wszystkie protokoły przechodzą kolejno fazy rozwoju, testowania i stabilizacji. Po zakończeniu etapu rozwoju (kategoria «unstable») protokół trafia do gałęzi «staging» i zostaje oficjalnie włączony do zestawu wayland-protocols, a po zakończeniu testów przenosi się do kategorii stabilnych. Protokół z kategorii «staging» można już stosować w serwerach kompozytowych i klientach, gdzie wymagana jest związana z nimi funkcjonalność. W odróżnieniu od kategorii «unstable» w «staging» zakazane jest wprowadzanie zmian, które naruszają kompatybilność, ale w przypadku wykrycia problemów i niedociągnięć w trakcie testów, nie wyklucza się zastąpienia go nową, znaczną 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» — pozwala klientowi na wykonywanie działań związanych z powiększaniem i przycinaniem krawędzi powierzchni po stronie 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 przekazywanie serwerowi kompozytowemu informacji o wyświetlanym zawartości, które mogą być używane do optymalizacji zachowania w kontekście zawartości, na przykład ustalania specyficznych właściwości DRM, takich jak «content type». Zgłoszono wsparcie dla następujących typów zawartości: none (brak informacji o typie danych), photo (wyświetlanie zdjęć cyfrowych, wymagających minimalnej obróbki), video (wideo lub animacja, wymagająca dokładniejszej synchronizacji, aby uniknąć zacięć) oraz game (uruchamianie gier, wymagające 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życia z wirtualnymi urządzeniami wejściowymi. Na przykład przy realizacji możliwości podłączenia do zdalnym pulpitem protokół pozwala stworzyć dla każdego użytkownika oddzielną 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 — oferuje możliwości zarządzania kolorem oraz wsparcie dla rozszerzonego zakresu dynamicznego jasności (HDR, High Dynamic Range). Dzięki dodanemu rozszerzeniu aplikacje klienckie mogą otrzymywać informacje o właściwościach urządzeń wyjściowych związanych z przekazem kolorów i przesyłać serwerowi kompozytowemu dane o właściwościach przekazu kolorów własnej zawartości. Na serwerze kompozytowym informacje te mogą być wykorzystywane do automatycznego zarządzania kolorem podczas wyświetlania zawartości na różnych urządzeniach wyjściowych, na przykład do konwersji zawartości w sposób odpowiedni do wyświetlania na monitorach HDR. Do opisu przestrzeni kolorów używane są profile ICC.
  • 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).

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