Fél év fejlesztés után megjelent a wayland-protocols 1.33 csomag, amely egy protokoll- és kiterjesztéskészletet tartalmaz, amely kiegészíti a Wayland alap protokoll képességeit, és biztosítja a kompozit szerverek és felhasználói környezetek létrehozásához szükséges funkciókat.
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 verzióban a „linux-dmabuf” protokoll átkategorizálásra került stabil protokollá, amely lehetővé teszi több grafikus kártya megosztását a DMA-BUF technológia segítségével (lehetővé teszi a wl_buffer létrehozását DMA-BUF alapján). Új „ext-transient-seat” protokoll is hozzáadásra került, amely a „staging” kategóriába került. Az új protokoll használható független ideiglenes ülések (seat) létrehozásához, amelyek virtuális bemeneti eszközökkel működnek együtt, amelyeket a „virtual_keyboard_unstable_v1” és a „wlr_virtual_pointer_unstable_v1” protokollok valósítanak meg. Például a csatlakozási lehetőség megvalósításakor. távoli asztalhoz a protokoll lehetővé teszi, hogy minden felhasználó számára külön ülést hozzanak létre a virtuális billentyűzet és egér 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 a kliens számára, hogy méretezési és felületi vágási műveleteket végezzen a szerver oldalon.
- 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.
- ext-foreign-toplevel-list — információt nyújt a legfelső szinten elhelyezett felületekről (toplevel), amelyek lehetővé teszik az ablakok más tartalom felett történő rögzítését, például saját panelek és ablakváltók csatlakoztatására.
- security-context — lehetővé teszi a sandbox-izolációt használó kliensek azonosítását. A kliens új kapcsolatot tud regisztrálni a Wayland alapú kompozit szerverhez, és hozzá tudja rendelni a biztonsági kontextust, amely alapján a kompozit menedzser korlátozza az adott kapcsolat számára elérhető lehetőségeket.
- cursor-shape — alternatív módja a kurzor megjelenésének beállítására, amely alapján egy kurzor képkockasorozatot küldenek a felülethez (wl_surface) való hozzárendelés helyett.
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-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
