Megjelent a wayland-protocols 1.31 csomag, amely tartalmaz egy protokoll- és kiterjesztéskészletet, amely kiegészíti az alap Wayland protokoll képességeit, és biztosítja azokat a funkciókat, amelyek szükségesek kompozit szerverek és felhasználói környezetek létrehozásához.
Az összes protokoll három fázison halad át — fejlesztés, tesztelés és stabilizálás. A fejlesztési szakasz befejezése után (az "unstable" kategória) a protokoll a "staging" ágba kerül, és hivatalosan is bekerül a wayland-protocols készletbe, majd a tesztelés befejezése után stabil kategóriába kerül. A "staging" kategóriába tartozó protokollok már alkalmazhatók kompozit szervereken és klienseken, ahol a hozzájuk kapcsolódó funkciókra van szükség. A "staging" kategóriában a kompatibilitást sértő módosítások nem engedélyezettek, de ha a tesztelés során problémák és hiányosságok merülnek fel, nem zárható ki a protokoll új, jelentős verziójának vagy más Wayland-kiterjesztésnek a bevezetése.
Az új változat a Wayland-Protocols 1.30 kiadása után egy héttel jelent meg, amelyben hozzáadták a tearing-control protokoll támogatását a függőleges szinkronizálás letiltásához. Az 1.31-es verzióban a 'staging' kategóriába került a fractional-scale protokoll, amellyel a kompozit menedzser nem egész számú felület-arányokat tud továbbítani, lehetővé téve a kliens számára, hogy pontosabb méreteket határozzon meg a wp_viewport objektumok pufferjeihez képest, mint a kerekített arányok továbbítása. A fractional-scale protokoll implementációi elérhetők a wlroots, KWin és glfw számára.
Jelenleg a wayland-protocols a következő stabil protokollokat tartalmazza, amelyek visszafelé kompatibilis módon működnek:
- viewporter" — lehetővé teszi az ügyfél számára, hogy tevékenységeket végezzen a felület méretezésére és a szélek levágására az oldalon a szerver.
- A «presentation-time» - az videó megjelenítését biztosítja.
- „xdg-shell” – felületek létrehozásához és interakciókhoz használt interfész mint ablak, lehetővé téve azok képernyőn való mozgatását, minimalizálását, maximalizálását, méretezését, stb.
A «staging» ágban tesztelt protokollok:
- A drm-lease - a szükséges erőforrásokat biztosítja a bal és jobb szem számára különböző pufferek révén a háromdimenziós képek megjelenítéséhez virtuális valóság sisakokban.
- A «ext-session-lock» - a munkamenet zárolásához szükséges eszközöket határozza meg, például a képernyővédő működése vagy az azonosító párbeszédpanel megjelenítése során.
- A «single-pixel-buffer» - lehetővé teszi egypixeles pufferek létrehozását, amelyek négy 32 bites RGBA értéket tartalmaznak.
- A «xdg-activation» - lehetővé teszi a fókusz átvitelét különböző első szintű felületek között (például a xdg-activation révén egy alkalmazás fókuszt válthat egy másikra).
- content-type — lehetővé teszi a kliensek számára, hogy átadják a kompozitnak szerverhez az aktuális tartalomra vonatkozó információkat, amelyek felhasználhatók a folyamat optimalizálására a tartalom figyelembevételével, például specifikus DRM-jellemzők, mint a "content type" beállítására. A következő tartalomtípusok támogatását hirdetik: none (nincs adat a típusra), photo (digitális fényképek megjelenítése, minimális feldolgozást igényel), video (videó vagy animáció, pontosabb szinkronizálás szükséges a megbicsaklások elkerüléséhez) és game (játékok indítása, minimális késleltetés szükséges a megjelenítéshez).
- A ext-idle-notify - lehetőséget biztosít a kompozit szerverek számára, hogy értesítéseket küldjenek az ügyfeleknek a felhasználói inaktivitásról, amely az energiatakarékos üzemmódok aktiválására használható egy adott időszak inaktivitás után.
- tearing-control — lehetővé teszi a függőleges szinkronizálás (VSync) kikapcsolását a teljes képernyős alkalmazásokban, amelyet a megjelenítéskor fellépő szakadások (tearing) megakadályozására használnak. A multimédia alkalmazásokban a szakadások okozta artefaktumok nemkívánatos hatásnak számítanak, azonban játékprogramokban az artefaktumok elfogadhatóak, ha a küzdelem velük késleltetéseket okoz.
A 'unstable' ágon fejlesztett protokollok:
- A 'fullscreen-shell' a teljes képernyős üzemmódban való működés kezelésére szolgál.
- A 'input-method' a bevitel módszereinek kezelését végzi.
- A 'idle-inhibit' megakadályozza a képernyővédő elindulását.
- A 'input-timestamps' időbélyegeket ad az input eseményekhez.
- A 'keyboard-shortcuts-inhibit' a billentyűkombinációk és gyorsgombok használatát korlátozza.
- A «linux-dmabuf» lehetővé teszi több grafikus kártya megosztását a dma-buf technológia segítségével.
- A 'linux-explicit-synchronization' egy Linux-specifikus mechanizmus a bufferek felületekhez való szinkronizálására.
- A 'pointer-gestures' az érintőképernyők működését kezeli.
- A 'pointer constraints' a mutatók korlátozásait (lezárva) kezeli.
- A 'primary-selection' az X11-hez hasonlóan kezeli az elsődleges vágólapot, amelyből az információk általában a középső egérgombbal illeszthetőek be.
- A 'relative pointer events' a relatív mutatóeseményeket támogatja.
- „tablet” – táblagépről történő bevitel támogatása.
- A 'text-input' a szöveg bevitelének megszervezését végzi.
- A 'xdg-foreign' interfészt biztosít a 'szomszédos' kliens felületeivel való interakcióra.
- A 'xdg-decoration' az ablakok díszítéseit a szerver oldalán rajzolja meg.
- A 'xdg-output' további információkat nyújt a video kimenetről (történetelemzéshez használják).
- A 'xwayland-keyboard-grab' az XWayland alkalmazásokban történő bevitel elfogását végzi.
Forrás: opennet.ru
