Bol vydaný balík wayland-protocols 1.36, ktorý obsahuje sadu protokolov a rozšírení, ktoré dopĺňajú možnosti základného protokolu Wayland a poskytujú možnosti potrebné na budovanie kompozitných serverov a používateľských prostredí.
Všetky protokoly dôsledne prechádzajú tromi fázami – vývojom, testovaním a stabilizáciou. Po ukonč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 funkčnosť s nimi spojená. 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.
V novej verzii:
- Protokol xdg-toplevel-icon bol pridaný do kategórie „staging“ a bol navrhnutý tak, aby spájal ikonu s oknom najvyššej úrovne.
- Protokoly ext-image-capture-source a ext-image-copy-capture boli pridané do kategórie „staging“ na organizáciu zachytávania obsahu zobrazeného na obrazovke.
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-transient-seat“ je určený na vytváranie dočasných nezávislých relácií (miest) určených na použitie s virtuálnymi vstupnými zariadeniami. Napríklad pri implementácii možnosti pripojenia k vzdialená pracovná plocha Protokol umožňuje vytvorenie samostatnej relácie s virtuálnou klávesnicou a myšou pre každého používateľa.
- "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.
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
