Byl vydán balíček wayland-protocols verze 1.49, který obsahuje sadu protokolů a rozšíření, jež doplňují základní protokol Wayland a poskytují funkce potřebné pro vytváření kompozitních serverů a uživatelských prostředí.
V nové verzi:
- Byl přidán experimentální protokol xx-fractional-scale. Umožňuje škálování logických souřadnicových systémů založených na celočíselných číslech pro zlepšení přesnosti polohování a zvýšení rozlišení logických souřadnic až na jednotlivé pixely. Tato funkce řeší omezené rozlišení logických souřadnicových systémů, které je nedostatečné pro polohování na úrovni pixelů, jež je nezbytné pro plnou implementaci zlomkového škálování.
- Protokol „linux-dmabuf“ byl aktualizován pro podporu systémů s více grafickými procesory (multi-GPU). Na takových systémech může klient vyjednávat kompozitní server která grafická karta by se měla použít.
- Protokol správy barev v1 byl aktualizován, aby podporoval metadata obrázků BT.2100 pro použití v kompozitních server specifické obslužné programy, které umožňují správné zobrazení HDR obsahu vytvořeného pro Windows.
Všechny protokoly postupně procházejí fázemi vývoje, testování a stabilizace. Po dokončení fáze vývoje (kategorie „nestabilní“) je protokol umístěn do větve „staging“ a oficiálně zahrnut do sady wayland-protocols. Po dokončení testování je přesunut do kategorie stable. Protokoly v kategorii „staging“ lze poté použít v kompozitních protokolech. servery a klienty, kteří vyžadují související funkce. Na rozdíl od kategorie „nestabilní“ kategorie „připravování na testování“ zakazuje změny, které narušují kompatibilitu. Pokud se však během testování objeví problémy nebo nedostatky, nelze vyloučit nahrazení novou, významnou verzí protokolu nebo jiným rozšířením Waylandu.
Pro urychlení dodání protokolů vývojářům a podporu včasné implementace protokolů ve stávajících projektech byla počínaje předchozí verzí přidána „experimentální“ fáze, která umožňuje změny, které narušují kompatibilitu, a přidávání „surových“ protokolů, které lze postupně přivést na správnou úroveň. Zatímco protokol musí vytvořit podpůrný tým a obdržet určitý počet potvrzení (ACK) od recenzentů, aby mohl vstoupit do fáze přípravy, potřebuje pouze během dvoutýdenního období kontroly obdržet žádné námitky (NACK), aby mohl vstoupit do experimentální fáze.
Sada wayland-protocols aktuálně obsahuje následující stabilní protokoly, které jsou zpětně kompatibilní:
- viewporter" - umožňuje klientovi provádět akce na změnu měřítka a oříznutí okrajů povrchu na boku server.
- "presentation-time" - poskytuje zobrazení videa.
- "xdg-shell" je rozhraní pro vytváření a interakci s plochami jako okny, které vám umožňuje přesouvat je po obrazovce, sbalit, rozbalit, změnit velikost atd.
- "linux-dmabuf" - poskytuje možnosti pro vytváření wl_bufferů založených na DMA-BUF.
- "tablet" - organizace vstupu z grafických tabletů.
Protokoly testované ve větvi „staging“:
- drm-lease – poskytuje prostředky nezbytné pro generování stereo obrazu s různými buffery pro levé a pravé oko při výstupu do náhlavních souprav pro virtuální realitu.
- "ext-session-lock" - definuje způsob uzamčení relace, například když je spuštěn spořič obrazovky nebo je zobrazen autentizační dialog.
- "single-pixel-buffer" - umožňuje vytvářet jednopixelové vyrovnávací paměti, které obsahují čtyři 32bitové hodnoty RGBA.
- „xdg-activation“ – umožňuje přesouvat fokus mezi různými povrchy první úrovně (například pomocí
xdg-activation (jedna aplikace může přepnout fokus na jinou). - typ obsahu - umožňuje klientům předávat kompozitní server Informace o zobrazovaném obsahu, které lze použít k optimalizaci chování s ohledem na obsah, například nastavení specifických vlastností DRM, jako je například „typ obsahu“. Je deklarována podpora pro následující typy obsahu: žádný (žádné informace o datovém typu), fotografie (výstup digitální fotografie vyžadující minimální zpracování), video (video nebo animace vyžadující přesnější synchronizaci, aby se zabránilo zasekávání) a hra (spuštění hry vyžadující výstup s minimální latencí).
- ext-idle-notify – Umožňuje kompozitním serverům zasílat klientům oznámení o nečinnosti uživatele, což lze použít k aktivaci dalších úsporných režimů po určité době nečinnosti.
- tearing-control - umožňuje deaktivovat vertikální synchronizaci (VSync) s vertikálním tlumícím impulsem v celoobrazovkových aplikacích, sloužící k ochraně proti trhání na výstupu. V multimediálních aplikacích jsou artefakty způsobené trháním nežádoucím efektem, ale v herních programech lze artefakty tolerovat, pokud se s nimi zachází další zpoždění.
- ext-foreign-toplevel-list – Získává informace o površích umístěných na nejvyšší úrovni, což vám umožňuje uspořádat okna tak, aby se ukotvila nad jiným obsahem, například pro připojení vlastních panelů a přepínačů oken.
- security-context - umožňuje identifikovat klienty pomocí izolace sandboxu. Klient může zaregistrovat nové připojení ke kompozitnímu serveru založenému na Wayland a připojit k němu kontext zabezpečení, načež správce kompozitu omezí možnosti dostupné pro vytvořené připojení na základě zadaného kontextu zabezpečení.
- kurzor-shape je alternativní způsob přizpůsobení vzhledu kurzoru, založený na předávání série obrázků kurzoru namísto přichycení k povrchu (wl_surface).
- „ext-tranient-seat“ – navržený k vytvoření dočasných nezávislých relací (sedadel) navržených pro použití s virtuálními vstupními zařízeními. Například při implementaci možnosti připojení ke vzdálené ploše vám protokol umožňuje vytvořit samostatnou relaci pro každého uživatele pomocí virtuální klávesnice a myši.
- "xdg-toplevel-drag" - rozšiřuje mechanismus "drag & drop" o možnost připojit k operaci přetažení okna nejvyšší úrovně, což lze použít například k organizaci přetahování panelů nástrojů nebo karet prohlížeče pomocí myši. Nový protokol umožňuje vytvářet oddělitelné části okna, které se po přetažení z tohoto okna stanou novými okny a lze je přesunout nad stávající okno, než budou znovu připojeny.
- "xdg-dialog" - umožňuje přiřadit atributy specifické pro dialog povrchům nejvyšší úrovně, například můžete vytvářet modální dialogy, které blokují interakci uživatele se zbytkem rozhraní.
- "linux-drm-syncobj" - poskytuje nástroje pro explicitní synchronizaci vyrovnávací paměti pomocí synchronizačních objektů DRM (Direct Rendering Manager). Předpokládá se, že v rámci synchronizace při renderování do bufferu navržený protokol zlepší práci s ovladači založenými na grafických API Vulkan a OpenGL (implementace je založena na handlerech v ovladačích). Nový protokol umožňuje zajistit, aby operace kreslení do vyrovnávací paměti byla dokončena dříve, než správce skládání tuto vyrovnávací paměť zobrazí.
- alpha-modifikátor, který klientům umožňuje měnit úroveň průhlednosti povrchu a přenášet operace, aby byla zajištěna průhlednost na stranu kompozitního serveru, který zase může přesměrovat tyto operace na KMS.
- xdg-toplevel-icon - svázat ikonu s oknem nejvyšší úrovně.
- ext-image-capture-source a ext-image-copy-capture – organizace zachyceného obsahu zobrazeného na obrazovce.
- xdg-system-bell - umožňuje výstup systémového signálu, který lze použít například jako varování v emulátoru terminálu. Forma výstupu signálu je určena podle uvážení správce kompozitu, může to být nejen zvuková, ale i vizuální odezva.
- fifo - implementuje mechanismus FIFO (first in, first out) pro zpracování fronty aktualizace obsahu zobrazeného povrchu. Po praktické stránce protokol umožňuje, aby výstup používal čekání na dokončení vertikálního skenování (vblank) namísto použití zpětných volání pokaždé, když je připraven zobrazit nový snímek, což řeší problém velkého zatížení GPU při použití VSync.
- commit-timing – umožňuje vázat časový limit na povrchový obsah (kompozitní serveru by se měla zobrazit změna obsahu pokud možno po uplynutí stanovené doby, ale ne dříve).
- ext-data-control – Umožňuje privilegovaným klientům řídit zpracování dat, například implementovat správce schránky.
- ext-workspace — implementuje koncept virtuální desktopy a nabízí události s informacemi o stavu desktopů a také možnost aktivace a deaktivace desktopů. Protokol lze použít k vytvoření dashboardů a indikátorů, které zobrazují seznam dostupných virtuálních desktopů a umožňují mezi nimi přepínání.
- správa barev — poskytuje funkce pro správu barev a podporu rozšířeného dynamického rozsahu jasu (HDR, High Dynamic Range). S přidaným rozšířením mohou klientské aplikace získávat informace o vlastnostech souvisejících s barvami výstupních zařízení a předávat data o vlastnostech souvisejících s barvami vlastního obsahu kompozitnímu serveru. Na kompozitním serveru lze tyto informace použít k automatické správě barev při zobrazování obsahu na různých výstupních zařízeních, například k převodu obsahu na prezentaci vhodnou pro zobrazení na monitorech HDR. Profily ICC se používají k popisu barevných prostorů.
- xdg-toplevel-tag — Umožňuje klientům Waylandu připojit k povrchům nejvyšší úrovně tagy, které může kompoziční server použít k identifikaci oken po restartu aplikace (například aplikace může nastavit tagy „hlavní okno“ a „nastavení“ pro hlavní okno a okno nastavení). Taková identifikace je užitečná pro obnovení polohy, velikosti a vlastností oken po restartu a pro definování speciálních pravidel pro jednotlivé typy oken.
- barevná reprezentace — definuje barevnou reprezentaci povrchu Waylandu. Klienti Waylandu mohou předávat metadata potřebná k definování průhlednosti, barevného modelu, podvzorkování a rozsahu kvantizace a používat je při převodu vyrovnávací paměti s daty odpovídajícími barevnému modelu YCbCr na reprezentaci RGB.
- ext-background-effect – aplikuje efekty na poloprůhledné části povrchu Waylandu, například rozostření pozadí.
- pointer-warp - Umožňuje aplikaci okamžitě přesunout ukazatel na zadanou pozici.
- xdg-session-management — funkce pro obnovení stavu a pozice oken přerušené relace, například po havárii kompozitního serveru nebo aplikace.
Protokoly vyvíjené v experimentální větvi:
- xx-session-management - obnovuje stav oken pro přerušené relace (například po havárii kompozitního správce).
- xx-input-method — umožňuje aplikacím implementovat metody zadávání textu pro kompozitní servery a generovat zadaný text, který lze použít například k vytváření virtuálních klávesnic a vrstev IME (Input Method Editor) pro zpracování vstupu.
- xx-text-input — umožňuje kompozitním serverům implementovat metody vstupu a odesílat text do aplikací. Protokol standardizuje interakce mezi kompozitními servery a aplikacemi a umožňuje kontrolu nad funkcemi, jako je přenos vstupního textu, zpracování událostí vstupního fokusu a zohlednění specifik vstupních polí (jazyk, výběr textu, typ obsahu).
- xx-cutouts — pro získání informací o výřezech na obrazovce (například oblast pod předním fotoaparátem na obrazovce smartphonu).
- xx-zones — pro vytváření a přidávání oken nejvyšší úrovně do „zón“ – prostředí s vlastním souřadnicovým prostorem. Protokol umožňuje logické uspořádání oken, ve kterém je každé okno umístěno vzhledem ke všem ostatním oknům.
- xx-keyboard-filter — pro klienta, který chce zachytit vybrané události klávesnice, upravit vstupní události nebo blokovat předávání určitých událostí do zaostřeného povrchu Waylandu.
Protokoly vyvíjené v „nestabilní“ větvi:
- „fullscreen-shell“ - ovládání práce v režimu celé obrazovky.
- "input-method" - zpracování vstupních metod.
- „idle-inhibit“ - blokování spuštění spořiče obrazovky (spořiče obrazovky).
- "input-timestamps" - časové značky pro vstupní události.
- "keyboard-shortcuts-inhibit" - ovládá připojení klávesových zkratek a horkých kláves.
- „linux-explicit-synchronization“ je specifické pro Linux mechanismus pro synchronizaci vyrovnávacích pamětí vzhledem k povrchu.
- "ukazatel-gesta" - ovládání z dotykových obrazovek.
- „pointer constraints“ - omezení ukazatele (blokování).
- „primární výběr“ - analogicky s X11 zajišťuje provoz primární schránky (primárního výběru), informace ze které se obvykle vkládají prostředním tlačítkem myši.
- „relative pointer events“ – události relativního ukazatele.
- „text-input“ - organizace vkládání textu.
- „xdg-foreign“ je rozhraní pro interakci s povrchy „sousedního“ klienta.
- "xdg-decoration" - vykreslování dekorací oken na straně serveru.
- "xdg-output" - další informace o video výstupu (používá se pro zlomkové škálování).
- "xwayland-keyboard-grab" - zachycení vstupu v aplikacích XWayland.
Zdroj: opennet.ru
