Bol vydaný balík wayland-protocols 1.39, ktorý obsahuje sadu protokolov a rozšírení, ktoré dopĺňajú základný protokol Wayland a poskytujú možnosti potrebné na vytváranie kompozitných serverov a používateľských prostredí.
Všetky protokoly postupne prechádzajú fázami vývoja, testovania a stabilizácie. Po dokončení vývojovej fázy (kategória „unstable“) je protokol zaradený do vetvy „staging“ a oficiálne zaradený do sady wayland-protocols a po ukončení testovania je presunutý do kategórie stable. Protokoly z kategórie „staging“ sa už dajú použiť v kompozitných serveroch a klientoch, kde sa vyžaduje súvisiaca funkčnosť. Na rozdiel od kategórie „unstable“ je v „stagingu“ zakázané vykonávať zmeny, ktoré porušujú kompatibilitu, ale ak sa počas testovania zistia problémy a nedostatky, nie je vylúčené nahradenie novou významnou verziou protokolu alebo iným rozšírením Wayland.
Nová verzia pridáva ďalšiu fázu propagácie protokolu – „experimentálnu“, zameranú na zníženie bariéry pri zahrnutí protokolov do sady Wayland-Protocols, urýchlenie doručovania protokolov vývojárom a stimulovanie skorej implementácie v existujúcich projektoch. Nová fáza oslobodí vývojárov protokolov od zdĺhavých diskusií a byrokracie pred prijatím do Wayland-Protocols.
Ak na to, aby protokol vstúpil do fázy „predstavovania“, je potrebné vytvoriť podporný tím a získať určitý počet potvrdení (ACK) od účastníkov kontroly, potom vstúpiť do „experimentálnej“ fázy, absencia námietok (NACK) počas dvojtýždňového kontrolného obdobia postačuje. V „experimentálnej“ fáze je povolené vykonávať zmeny, ktoré porušujú kompatibilitu a pridávať „surové“ protokoly, ktoré je možné postupne dostať na správnu úroveň.
Do kategórie „staging“ boli pridané nasledujúce protokoly:
- ext-data-control – umožňuje privilegovaným klientom kontrolovať spracovanie údajov, napríklad implementovať správcov schránky.
- externý pracovný priestor – implementuje koncept virtualnyx rabochikh stolov a ponúka udalosti s informáciami o stave pracovných plôch, ako aj možnosť aktivácie a deaktivácie pracovných plôch. Protokol je možné použiť na vytvorenie dashboardov a indikátorov, ktoré zobrazujú zoznam dostupných virtuálnych pracovných plôch a umožňujú prepínanie medzi nimi.
Wayland-protocols v súčasnosti zahŕňa nasledujúce stabilné protokoly, ktoré sú spätne kompatibilné:
- "viewporter" - umožňuje klientovi vykonávať akcie škálovania a orezávania na okrajoch povrchu na strane servera.
- "prezentačný čas" - poskytuje zobrazenie videa.
- „xdg-shell“ je rozhranie na vytváranie a interakciu s povrchmi, ako sú okná, ktoré im umožňuje pohybovať sa po obrazovke, minimalizovať, maximalizovať, meniť veľkosť atď.
- „linux-dmabuf“ - poskytuje zdieľanie niekoľkých grafických kariet pomocou technológie DMA-BUF (umožňuje vám vytvoriť wl_buffer založený na DMA-BUF).
- "tablet" - organizácia vstupu z grafických tabletov.
Protokoly testované vo vetve „staging“:
- drm-lease – poskytuje zdroje potrebné na vytvorenie stereo obrazu s rôznymi tlmičmi pre ľavé a pravé oko pri zobrazení na prilbách pre virtuálnu realitu.
- "ext-session-lock" - definuje spôsob uzamknutia relácie, napríklad počas činnosti šetriča obrazovky alebo výstupu autentifikačného dialógu.
- "single-pixel-buffer" - umožňuje vytvárať jednopixelové vyrovnávacie pamäte, ktoré obsahujú štyri 32-bitové hodnoty RGBA.
- "xdg-activation" - umožňuje prenášať zaostrenie medzi rôznymi povrchmi prvej úrovne (napríklad pomocou xdg-aktivácie môže jedna aplikácia prepínať zaostrenie na inú).
- typ obsahu – umožňuje klientom odovzdávať kompozitné server Informácie o zobrazovanom obsahu, ktoré možno použiť na optimalizáciu správania pri zohľadnení obsahu, ako napríklad nastavenie špecifických vlastností DRM, ako napríklad „typ obsahu“. Deklarovaná je podpora pre nasledujúce typy obsahu: žiadny (žiadne informácie o dátovom type), fotografia (výstup digitálnej fotografie vyžadujúci minimálne spracovanie), video (video alebo animácia vyžadujúca presnejšiu synchronizáciu, aby sa predišlo zasekávaniu) a hra (spustenie hry vyžadujúce výstup s minimálnou latenciou).
- ext-idle-notify – Umožňuje zloženým serverom odosielať klientom upozornenia o nečinnosti používateľa, ktoré možno použiť na aktiváciu ďalších režimov úspory energie po určitom čase nečinnosti.
- tearing-control - umožňuje deaktivovať vertikálnu synchronizáciu (VSync) s vertikálnym tlmiacim impulzom v aplikáciách na celú obrazovku, ktorý sa používa na ochranu pred trhaním na výstupe. V multimediálnych aplikáciách sú artefakty spôsobené trhaním nežiadúcim efektom, ale v herných programoch môžu byť artefakty tolerované, ak ich zaobchádzanie spôsobuje ďalšie oneskorenia.
- ext-foreign-toplevel-list – Získava informácie o povrchoch umiestnených na najvyššej úrovni, ktoré vám umožňujú organizovať okná tak, aby sa ukotvili nad iným obsahom, napríklad na pripojenie vlastných panelov a spínačov okien.
- security-context - umožňuje identifikovať klientov pomocou izolácie sandboxu. Klient môže zaregistrovať nové pripojenie k zloženému serveru založenému na Wayland a pripojiť k nemu bezpečnostný kontext, po čom zložený manažér obmedzí možnosti dostupné pre vytvorené pripojenie na základe špecifikovaného kontextu zabezpečenia.
- kurzor-shape je alternatívny spôsob prispôsobenia vzhľadu kurzora na základe odovzdávania série obrázkov kurzora namiesto prichytenia k povrchu (wl_surface).
- „ext-tranient-seat“ – určené na vytváranie dočasných nezávislých relácií (sedadiel) určených na použitie s virtuálnymi vstupnými zariadeniami. Napríklad pri implementácii možnosti pripojenia k vzdialenej ploche vám protokol umožňuje vytvoriť samostatnú reláciu pre každého používateľa pomocou virtuálnej klávesnice a myši.
- "xdg-toplevel-drag" - rozširuje mechanizmus "drag & drop" o možnosť pripojiť k operácii ťahania okná najvyššej úrovne, čo možno použiť napríklad na organizáciu ťahania panelov nástrojov alebo kariet prehliadača pomocou myši. Nový protokol vám umožňuje vytvárať oddeliteľné časti okna, ktoré sa po pretiahnutí z tohto okna stanú novými oknami a možno ich pred opätovným pripojením presunúť na vrch existujúceho okna.
- "xdg-dialog" - umožňuje priradiť atribúty špecifické pre dialógy povrchom najvyššej úrovne, napríklad môžete vytvárať modálne dialógy, ktoré blokujú interakciu používateľa so zvyškom rozhrania.
- "linux-drm-syncobj" - Poskytuje nástroje na explicitnú synchronizáciu vyrovnávacích pamätí pomocou synchronizačných objektov DRM (Direct Rendering Manager). Predpokladá sa, že v rámci synchronizácie pri vykresľovaní do vyrovnávacej pamäte navrhovaný protokol zlepší prácu s ovládačmi založenými na grafických API Vulkan a OpenGL (implementácia je založená na handleroch v ovládačoch). Nový protokol umožňuje zabezpečiť, aby sa operácia vykresľovania do vyrovnávacej pamäte dokončila skôr, ako zložený manažér vykreslí vyrovnávaciu pamäť.
- alpha-modifikátor, ktorý umožňuje klientom meniť úroveň transparentnosti povrchu a operácie prenosu, aby sa zabezpečila transparentnosť na strane kompozitného servera, ktorý zase môže presmerovať tieto operácie na KMS.
- xdg-toplevel-icon - pripojí ikonu k oknu najvyššej úrovne.
- ext-image-capture-source a ext-image-copy-capture – organizovanie zachytenia obsahu zobrazeného na obrazovke.
- xdg-system-bell - umožňuje výstup systémového signálu, ktorý možno použiť napríklad ako varovanie v emulátore terminálu. Forma výstupu signálu je určená podľa uváženia kompozitného manažéra, môže to byť nielen zvuková, ale aj vizuálna odozva.
- fifo - implementuje mechanizmus FIFO (prvý dovnútra, prvý von) na spracovanie frontu aktualizácie obsahu zobrazeného povrchu. Po praktickej stránke protokol umožňuje, aby výstup čakal na dokončenie vertikálneho skenovania (vblank) namiesto použitia volaní spätného volania zakaždým, keď je pripravený zobraziť nový rámec, čo rieši problém vysokého zaťaženia GPU pri použití VSync.
- commit-timing – umožňuje vám naviazať časový limit na povrchový obsah (kompozitný server by mal odrážať zmenu obsahu, ak je to možné po určenom čase, ale nie skôr).
Protokoly vyvíjané v „nestabilnej“ vetve:
- "fullscreen-shell" - ovládanie práce v režime celej obrazovky.
- „input-method“ – spracovanie vstupných metód.
- "idle-inhibit" - blokovanie spustenia šetriča obrazovky (šetriča obrazovky).
- "input-timestamps" - časové pečiatky pre vstupné udalosti.
- "keyboard-shortcuts-inhibit" - Ovláda pripojenie klávesových skratiek a klávesových skratiek.
- "linux-explicit-synchronization" je mechanizmus špecifický pre Linux na synchronizáciu vyrovnávacích pamätí vo vzťahu k povrchu.
- „pointer-gestures“ – ovládanie z dotykových obrazoviek.
- "pointer constraints" - obmedzenia ukazovateľa (blokovanie).
- "primary-selection" - analogicky s X11 poskytuje primárnu schránku (primárny výber), z ktorej sa informácie vkladajú zvyčajne stredným tlačidlom myši.
- „relative pointer events“ – udalosti relatívneho ukazovateľa.
- "text-input" - organizácia zadávania textu.
- "xdg-foreign" je rozhranie na interakciu s povrchmi "susedného" klienta.
- "xdg-decoration" - vykresľovanie dekorácií okien na strane servera.
- "xdg-output" - dodatočné informácie o výstupe videa (používa sa na zlomkové škálovanie).
- "xwayland-keyboard-grab" - Zachytenie vstupu v aplikáciách XWayland.
Zdroj: opennet.ru
