Vydání Wayland-Protocols 1.39 s podporou experimentálních protokolů

Bylo zveřejněno vydání balíčku wayland-protocols 1.39, které obsahuje sadu protokolů a rozšíření, které doplňují základní protokol Wayland a poskytují funkce potřebné pro budování kompozitních serverů a uživatelských prostředí.

Všechny protokoly procházejí fázemi vývoje, testování a stabilizace. Po dokončení fáze vývoje (kategorie „unstable“) je protokol umístěn do větve „staging“ a oficiálně zařazen do sady wayland-protocols, a po dokončení testování je přesunut do kategorie stabilních. Protokoly z kategorie „staging“ lze již použít v kompozičních serverech a klientech, kde je požadována související funkčnost. Na rozdíl od kategorie „unstable“ jsou v „staging“ zakázány změny narušující kompatibilitu, avšak v případě odhalení problémů a nedostatků během testování není vyloučena výměna za novou významnou verzi protokolu nebo jiné Wayland rozšíření.

V nové verzi byla přidána další fáze propagace protokolů - „experimentální“, zaměřená na snížení překážky pro zapojení protokolů do sady Wayland-Protocols, urychlení předávání protokolů k vývojářům a podpoření brzké implementace v existujících projektech. Nová fáze umožní zbavit vývojáře protokolů dlouhých diskuzí a průtahů před zařazením do Wayland-Protocols.

Pokud pro zařazení protokolu do fáze „staging“ je třeba vytvořit tým podpory a získat určité množství potvrzení (ACK) od účastníků revize, pak pro zařazení do „experimentální“ fáze stačí absence námitek (NACK) během dvoutýdenního období revize. Ve fázi „experimentální“ jsou povoleny změny, které narušují kompatibilitu, a přidání „syrových“ protokolů, které lze postupně zdokonalovat.

Do kategorie „staging“ byly přidány protokoly:

  • ext-data-control — umožňuje privilegovaným klientům řídit zpracování dat, například pro implementaci správců schránky.
  • ext-workspace — implementuje koncept virtuálních pracovních ploch a nabízí události s informacemi o stavu pracovních ploch a také možnosti pro aktivaci a deaktivaci pracovních ploch. Protokol může být použit k vytváření panelů a ukazatelů, které zobrazují seznam dostupných virtuálních pracovních ploch a umožňují mezi nimi přepínat.

V současné době zahrnuje sada wayland-protocols následující stabilní protokoly, které zajišťují zpětnou kompatibilitu:

  • "viewporter" — umožňuje klientovi provádět akce ohledně měnění velikosti a ořezávání okrajů plochy na straně serveru.
  • „presentation-time“ — zajišťuje zobrazení videa.
  • „xdg-shell“ — rozhraní pro vytváření a interakci s plochami jako okny, což umožňuje jejich přesouvání po obrazovce, minimalizaci, maximalizaci, změnu velikosti atd.
  • „linux-dmabuf“ - umožňuje sdílení více grafických karet pomocí technologie DMA-BUF (umožňuje vytvořit wl_buffer na základě DMA-BUF).
  • "tablet" — organizace vstupu z grafických tabletů.

Protokoly testované ve větvi „staging“:

  • drm-lease — poskytuje prostředky potřebné k vytvoření stereofonního obrazu s různými vyrovnávacími paměťmi pro levé a pravé oko při výstupu na virtuální brýle.
  • „ext-session-lock“ — určuje prostředky pro blokaci sezení, například během činnosti spořiče obrazovky nebo zobrazení dialogu pro autentifikaci.
  • „single-pixel-buffer“ — umožňuje vytvářet jednopixelové vyrovnávací paměti obsahující čtyři 32bitové hodnoty RGBA.
  • „xdg-activation“ — umožňuje přenést fokus mezi různými plochami první úrovně (např. pomocí xdg-activation může jedna aplikace přepnout fokus na jinou).
  • content-type — umožňuje klientům předat kompozitnímu serveru informace o zobrazovaném obsahu, které mohou být využity k optimalizaci chování s ohledem na obsah, například k nastavení specifických DRM vlastností, jako je „content type. Byla deklarována podpora následujících typů obsahu: none (žádné informace o typu dat), photo (výstup digitálních fotografií, vyžadující minimální zpracování), video (video nebo animace, vyžadující přesnější synchronizaci, aby se vyloučila trhání) a game (spouštění her, vyžadující výstup s minimální latencí).
  • ext-idle-notify — dává možnost kompozitním serverům předávat klientům oznámení o neaktivitě uživatele, což může být využito k aktivaci dalších režimů úspor energie po určité době neaktivity.
  • tearing-control — umožňuje vypnout vertikální synchronizaci (VSync) s rámcovým hlemýžděm ve fullscreen aplikacích, používanou k ochraně proti trhání při vykreslování. V multimediálních aplikacích je výskyt artefaktů z trhání nežádoucím efektem, ale v herních programech lze s artefakty smířit, pokud boj proti nim přináší dodatečné zpoždění.
  • ext-foreign-toplevel-list — získání informací o površích umístěných na nejvyšší úrovni (toplevel), které umožňují organizovat uchycení oken nad jiným obsahem, například pro připojení vlastních panelů a přepínačů oken.
  • security-context — umožňuje identifikaci klientů využívajících sandboxovou izolaci. Klient může zaregistrovat nové připojení k kompozitnímu serveru založenému na Waylandu a připojit k němu bezpečnostní kontext, po kterém kompoziční správce podle zadaného bezpečnostního kontextu omezí možnosti dostupné pro ustanovené spojení.
  • cursor-shape — alternativní způsob nastavení vzhledu kurzoru, založený na posílání série obrazů kurzoru místo vazby na povrch (wl_surface).
  • «ext-transient-seat» — určen pro vytváření dočasných nezávislých sezení (seat), navržených pro použití s virtuálními vstupními zařízeními. Například při realizaci možnosti připojení k vzdálené ploše protokol umožňuje vytvoření samostatného sezení s virtuální klávesnicí a myší pro každého uživatele.
  • «xdg-toplevel-drag» — rozšiřuje mechanismus „drag & drop“ o možnost připojení horních úrovňových oken k operaci přesunutí, což může být využito například pro organizaci přetahování myší panelů nástrojů nebo záložek prohlížeče. Nový protokol umožňuje vytváření odpojovatelných částí okna, které při přetahování z tohoto okna se stávají novými okny a mohou se pohybovat nad existujícím oknem před opětovným připojením.
  • «xdg-dialog» — umožňuje přiřazovat povrchům horní úrovně specifické vlastnosti pro dialogová okna, například lze vytvářet modální dialogy, které blokují interakci uživatele s ostatními částmi rozhraní.
  • „linux-drm-syncobj“ - poskytuje nástroje pro explicitní synchronizaci bufferů pomocí objektů synchronizace DRM (Direct Rendering Manager). Předpokládá se, že v kontextu synchronizace při vykreslování do bufferu umožní navržený protokol zlepšit práci s ovladači založenými na grafických API Vulkan a OpenGL (implementace je založena na zpracovatelích v ovladačích). Nový protokol dává možnost zajistit, že operace vykreslování do bufferu byla dokončena dříve, než kompoziční manažer tento buffer zobrazí.
  • alpha-modifier, který umožňuje klientům měnit úroveň průhlednosti povrchu a delegovat operace zajištění průhlednosti na stranu kompozičního serveru, který je může předat KMS.
  • xdg-toplevel-icon — vazba ikony na vrchní okno.
  • ext-image-capture-source a ext-image-copy-capture — organizace záznamu obsahu vykreslovaného na obrazovce.
  • xdg-system-bell — umožňuje vyvolat systémový signál, který může být například použit jako varování v emulátoru terminálů. Forma vyvolání signálu je na uvážení kompozičního manažera, může to být nejen zvuk, ale i vizuální reakce.
  • fifo — implementuje FIFO mechanismus (first in, first out) zpracování fronty pro aktualizaci obsahu zobrazované plochy. Z praktického hlediska protokol umožňuje očekávání dokončení vertikální synchronizace (vblank) místo používání callback volání při každé přípravě k zobrazení nového snímku, což řeší problém s vysokým zatížením GPU při používání VSync.
  • commit-timing — umožňuje připojit časové omezení k obsahu plochy (kompoziční server by měl zobrazit změnu obsahu co nejdříve po určeném čase, ale ne dříve).

Protokoly vyvíjené ve větvi „unstable“:

  • „fullscreen-shell“ — správa provozu v režimu celé obrazovky.
  • „input-method“ — zpracování metod vkládání.
  • „idle-inhibit“ — blokace spuštění spořiče obrazovky.
  • „input-timestamps“ — časové značky pro události vstupu.
  • „keyboard-shortcuts-inhibit“ — správa přiřazení klávesových zkratek a horkých kláves.
  • „linux-explicit-synchronization“ — specifický pro Linux mechanismus synchronizace vyrovnávacích pamětí vázaný na plochu.
  • „pointer-gestures“ — správa příkazů z dotykových obrazovek.
  • „pointer constraints“ — omezení ukazatelů (blokace).
  • „primary-selection“ — analogicky k X11 zajišťuje funkčnost primární schránky (primary selection), jejíž informace se obvykle vkládají prostředními tlačítky myši.
  • „relative pointer events“ — relativní události ukazatelů.
  • „text-input“ — organizace textového vkládání.
  • „xdg-foreign“ — rozhraní pro interakci s plochami „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

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster