Bol zverejnený výstup balíka wayland-protocols 1.41, ktorý obsahuje sadu protokolov a rozšírení dopĺňajúcich základný protokol Wayland a poskytujúcich možnosti nevyhnutné na vybudovanie kompozitných serverov a používateľských prostredí.
V novej verzii bol do kategórie „staging“ pridaný protokol color-management, vyvíjaný od roku 2014 a ponúkajúci možnosti pre správu farieb a podporu rozšíreného dynamického rozsahu jasu (HDR, High Dynamic Range). Pomocou pridaného rozšírenia môžu klientské aplikácie získavať informácie o vlastnostiach zariadení výstupu súvisiacich s reprodukciou farieb a prenášať kompozitnému serveru údaje o vlastnostiach reprodukcie farieb vlastného obsahu. V kompozitnom serveri tieto informácie môžu byť použité na automatickú správu farieb pri zobrazení obsahu na rôznych výstupných zariadeniach, napríklad na konverziu obsahu na formát vhodný na zobrazenie na HDR monitoroch. Na popis farebných priestorov sa používajú profily ICC.
V súčasnosti obsahuje súbor wayland-protocols nasledujúce stabilné protokoly, ktoré zabezpečujú spätnú kompatibilitu:
- „viewporter“ — umožňuje klientovi vykonávať akcie priblíženia a orezu okrajov povrchu na strane servera.
- „presentation-time“ — zabezpečuje zobrazenie videa.
- „xdg-shell“ — rozhranie na vytváranie a interakciu s plochami ako s oknami, umožňujúce ich presúvať po obrazovke, minimalizovať, maximalizovať, meniť ich veľkosť atď.
- „linux-dmabuf“ — poskytuje možnosti na vytváranie wl_buffer-ov na báze DMA-BUF.
- „tablet“ — organizácia vstupu z grafických tabletov.
Protokoly, ktoré sú testované vo vetve „staging“:
- drm-lease — poskytuje zdroje potrebné na vytvorenie stereoscénického obrazu s rôznymi buframi pre ľavé a pravé oko pri výstupe na virtuálne helmy.
- „ext-session-lock“ — definuje prostriedky na zamknutie relácie, napríklad počas aktivity ochrany obrazovky alebo zobrazenia autentifikačného dialógu.
- „single-pixel-buffer“ — umožňuje vytvárať jednopixelové buffery, ktoré obsahujú štyri 32-bitové hodnoty RGBA.
- „xdg-activation“ — umožňuje preniesť fokus medzi rôznymi povrchmi prvej úrovne (napríklad pomocou xdg-activation môže jedna aplikácia prepnúť fokus na inú).
- content-type — umožňuje zákazníkom poskytnúť kompozičnému serveru informácie o zobrazenom obsahu, ktoré môžu byť použité na optimalizáciu správania sa s ohľadom na obsah, ako napríklad na nastavenie špecifických DRM vlastností, ako je „content type“. Je deklarovaná podpora nasledujúcich typov obsahu: none (žiadne informácie o type dát), photo (zobrazenie digitálnych fotografií, ktoré vyžaduje minimálne spracovanie), video (video alebo animácia, vyžaduje presnejšiu synchronizáciu, aby sa vylúčilo trhanie) a game (spustenie hier, vyžaduje zobrazenie s minimálnym oneskorením).
- ext-idle-notify — umožňuje kompozitným serverom prenášať klientom upozornenia o nečinnosti používateľa, čo môže byť využité na aktiváciu dodatočných režimov úspory energie po určitom čase nečinnosti.
- tearing-control — umožňuje vypnúť vertikálne synchronizovanie (VSync) s impulzom na potlačenie snímkov v aplikáciách na celú obrazovku, čo sa používa na ochranu pred roztrhnutím (tearing) pri zobrazovaní. V multimediálnych aplikáciách sa objavovanie artefaktov z roztrhnutia považuje za nežiaduci efekt, avšak v herných programoch sa s artefaktmi dá vyrovnať, ak ich potlačenie vedie k dodatočným oneskoreniam.
- ext-foreign-toplevel-list — poskytuje informácie o povrchách umiestnených na najvyššej úrovni (toplevel), ktoré umožňujú organizovať pripnuté okná nad iným obsahom, napríklad na pripojenie vlastných panelov a prepínačov okien.
- security-context — umožňuje identifikovať zákazníkov používajúcich izoláciu sandbox. Zákazník môže zaregistrovať nové pripojenie k kompozitnému serveru založenému na Wayland a pripojiť k nemu bezpečnostný kontext, po ktorom kompozitný manažér obmedzí možnosti dostupné pre nastavené pripojenie podľa zadaného bezpečnostného kontextu.
- cursor-shape — alternatívny spôsob nastavenia vzhľadu kurzora, ktorý je založený na odosielaní série obrázkov kurzora namiesto viazania na povrch (wl_surface).
- «ext-transient-seat» — určený na vytváranie dočasných nezávislých relácií (seat), ktoré sú navrhnuté na použitie s virtuálnymi vstupnými zariadeniami. Napríklad, pri implementácii možnosti pripojenia k vzdialenej pracovnej ploche protokol umožňuje vytvoriť pre každého používateľa samostatnú reláciu s virtuálnou klávesnicou a myšou.
- «xdg-toplevel-drag» — rozširuje mechanizmus „drag & drop“ o možnosť pripojenia okien najvyššej úrovne k operácii presúvania, čo sa môže využiť napríklad na organizovanie presúvania panelov nástrojov alebo kariet prehliadača myšou. Nový protokol umožňuje vytvárať odpojiteľné časti okna, ktoré pri presúvaní z tohto okna sa stávajú novými oknami a môžu byť presúvané nad existujúcim oknom pred opätovným pripojením.
- «xdg-dialog» — umožňuje priradiť povrchom najvyššej úrovne vlastnosti špecifické pre dialógové okná, napríklad je možné vytvárať modálne dialógy, ktoré blokujú interakciu používateľa s ostatnou časťou rozhrania.
- „linux-drm-syncobj“ – poskytuje nástroje pre explicitnú synchronizáciu búferov pomocou DRM (Direct Rendering Manager) synchronizačných objektov. Predpokladá sa, že v kontexte synchronizácie pri vykresľovaní do búfera umožní navrhnutý protokol zlepšiť spoluprácu s ovládačmi na základe grafických API Vulkan a OpenGL (implementácia sa zakladá na spracovateľoch v ovládačoch). Nový protokol umožňuje overiť, že operácia vykreslenia do búfera bola dokončená skôr, ako zložený správca zobrazí tento búfer.
- alpha-modifier, ktorý umožňuje klientom meniť úroveň priehľadnosti povrchu a presúvať operácie zabezpečenia priehľadnosti na stranu zloženého servera, ktorý môže tieto operácie preposlať KMS.
- xdg-toplevel-icon – pripájanie ikony k oknu najvyššej úrovne.
- ext-image-capture-source a ext-image-copy-capture – organizácia zachytávania obsahu, ktorý sa zobrazuje na obrazovke.
- xdg-system-bell – umožňuje generovať systémový signál, ktorý môže byť použitý napríklad ako varovanie v emulátoroch terminálov. Forma výstupu signálu sa určuje podľa zloženého správcu, môže to byť nielen zvuk, ale aj vizuálny reakcia.
- fifo – implementuje FIFO mechanizmus (prvý prišiel – prvý odišiel) spracovania fronty aktualizácie obsahu zobrazeného povrchu. Z praktického hľadiska protokol umožňuje pri výstupe využívať čakanie na dokončenie vertikálneho zosnímania (vblank) namiesto vyžadovania callbackov pri každej pripravenosti na zobrazenie nového snímku, čo rieši problém s vysokou záťažou na GPU pri používaní VSync.
- commit-timing – umožňuje priradiť časové obmedzenie k obsahu povrchu (zložený server by mal zobraziť zmenu obsahu, ak je to možné, v rámci určeného času, ale nie skôr).
- ext-data-control — umožňuje privilegovaným klientom spravovať spracovanie údajov, napríklad na implementáciu správcu schránky.
- ext-workspace — realizuje koncept virtuálnych pracovných plôch a ponúka udalosti s informáciami o stave pracovných plôch, ako aj možnosti na aktiváciu a deaktiváciu pracovných plôch. Protokol môže byť použitý na vytváranie panelov a indikátorov, ktoré zobrazujú zoznam dostupných virtuálnych pracovných plôch a umožňujú prechod medzi nimi.
Protokoly, ktoré sa vyvíjajú v pobočke „unstable“:
- „fullscreen-shell“ – riadenie práce v režime celej obrazovky.
- „input-method“ – spracovanie metód vstupu.
- „idle-inhibit“ – blokovanie spustenia screensaveru (uzamknutie obrazovky).
- „input-timestamps“ – časové pečiatky pre udalosti vstupu.
- „keyboard-shortcuts-inhibit“ – správa pripojenie klávesových kombinácií a klávesových skratiek.
- „linux-explicit-synchronization“ – špecifický pre Linux mechanizmus synchronizácie búferov vzhľadom na povrch.
- „pointer-gestures“ – správa z dotykových obrazoviek.
- „pointer constraints“ – obmedzenia ukazovateľov (blokovanie).
- „primary-selection“ – analogicky s X11 zabezpečuje prácu primárneho schránkového systému (primary selection), vkladanie informácií z ktorého sa obvykle vykonáva stredným tlačidlom myši.
- „relative pointer events“ – relatívne udalosti ukazovateľov.
- „text-input“ – organizácia vkladania textu.
- „xdg-foreign“ – rozhranie interakcie so „susednými“ povrchmi klienta.
- „xdg-decoration“ – vykresľovanie dekorácií okien na strane servera.
- „xdg-output“ – dodatočné informácie o videovýstupe (používa sa na zlomkové priblíženie).
- „xwayland-keyboard-grab“ – uchopenie vstupu v aplikáciách XWayland.
Všetky protokoly postupne prechádzajú fázami vývoja, testovania a stabilizácie. Po dokončení fázy vývoja (kategória „unstable“) je protokol umiestnený do vetvy „staging“ a oficiálne zaradený do súboru wayland-protocols, a po dokončení testovania je presunutý do kategórie stabilných. Protokoly z kategórie „staging“ je možné už využívať v kompozitných serveroch a klientoch, kde je potrebná funkčnosť s nimi spojená. Na rozdiel od kategórie „unstable“ je v „staging“ zakázané vykonávať zmeny, ktoré narušujú kompatibilitu, no v prípade zistenia problémov a nedostatkov počas testovania nie je vylúčená výmena za novú významnú verziu protokolu alebo iné Wayland-rozšírenie.
Pre urýchlenie prenosu protokolov k vývojárom a stimuláciu skorého zavedenia protokolov do existujúcich projektov bola od predchádzajúceho vydania pridaná dodatočná fáza „experimental“, v ktorej sú povolené zmeny narušujúce kompatibilitu a pridávanie „surových“ protokolov, ktoré je možné postupne zdokonaľovať. Ak je na to, aby sa protokol dostal do fázy „staging“, potrebné vytvoriť tím podpory a získať určitý počet potvrdení (ACK) od recenzentov, pre vstup do fázy „experimental“ stačí, aby počas dvojtýždňového recenzného obdobia neboli vznesené žiadne námietky (NACK).
Zdroj: opennet.ru
