Bol si zverejnený vydanie balíka wayland-protocols 1.46, ktorý obsahuje súbor protokolov a rozšírení rozširujúcich základný protokol Wayland a poskytujúcich funkcie potrebné na vytvorenie kompozitných serverov a používateľských prostredí.
V novej verzii:
- Bol pridaný experimentálny protokol xx-input-method, ktorý umožňuje aplikáciám implementovať metódy textového vstupu pre kompozitné servery a tvoriť zadaný text, čo môže byť použité napríklad na vytvorenie virtuálnych klávesníc a IME-vrstiev (Input Method Editor) na spracovanie vstupu.
- Bol pridaný experimentálny protokol xx-text-input, ktorý umožňuje kompozitným serverom implementovať metódy vstupu a posielať text do aplikácií. Protokol štandardizuje interakciu medzi kompozitným serverom a aplikáciami a umožňuje spravovať funkcie, ako je prenos zadaného textu, spracovanie udalostí o zmene vstupného zamerania a zohľadnenie špecifík vstupných polí (jazyk, výber textu, typ obsahu).
- Povýšené protokoly color-management-v1 a color-representation-v1, poskytujúce možnosti pre správu farieb, podporu HDR a definovanie farebného zobrazenia Wayland povrchu.
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).
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 sedení (seat), ktoré sú navrhnuté na použitie spoločne s virtuálnymi vstupnými zariadeniami. Napríklad pri realizácii možnosti pripojenia k diaľkovej pracovnej ploche protokol umožňuje vytvoriť pre každého používateľa samostatné sedenie 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 na explicitnú synchronizáciu bufferov pomocou objektov synchronizácie DRM (Direct Rendering Manager). Predpokladá sa, že v kontexte synchronizácie pri vykresľovaní do bufferu navrhnutý protokol umožní lepšiu prácu s ovládačmi na báze 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 vykresľovania do bufferu je dokončená skôr, ako kompozičný manažér zobrazuje tento buffer.
- 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.
- color-management — poskytuje možnosti pre správu farieb a podporu rozšíreného dynamického rozsahu jasnosti (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 prenosom farieb a prenášať kompozitnému serveru údaje o vlastnostiach prenosu farieb vlastného obsahu. V kompozitnom serveri sa tieto informácie môžu použiť na automatické riadenie farieb pri zobrazovaní obsahu na rôznych výstupných zariadeniach, napríklad na konverziu obsahu na formát vhodný na zobrazenie na HDR-monitoroch. Na opis farebných priestorov sa používajú profily ICC.
- xdg-toplevel-tag — umožňuje Wayland-klientom pripojiť tagy k povrchom najvyššej úrovne, ktoré môže kompozitný server použiť na identifikáciu okien po reštartovaní aplikácie (napríklad aplikácia môže nastaviť tagy "hlavné okno" a "nastavenia" pre hlavné okno a okno s nastaveniami). Takáto identifikácia je užitočná na obnovenie polohy, veľkosti a vlastností okien po reštartovaní, ako aj na určenie osobitných pravidiel pre jednotlivé typy okien.
- color-representation — definícia farebného zobrazenia povrchu Wayland. Klienti Wayland môžu prenášať metadata potrebné na určenie transparentnosti, farebného modelu, subdiscretizácie a rozsahu kvantizácie, a aplikované pri konverzii buffera s údajmi zodpovedajúcimi farebnému modelu YCbCr na zobrazenie RGB.
- ext-background-effect — aplikácia efektov na polopriehľadné časti Wayland povrchu, ako je rozmazanie pozadia.
- pointer-warp — umožňuje aplikácii okamžite presunúť kurzor na zadanú pozíciu.
Protokoly vyvíjané v vetve „experimental“:
- xx-session-management — obnovenie stavu okien pre prerušené relácie (napr. po havárii kompozitného správcu).
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.
Zdroj: opennet.ru
