Megjelent a wayland-protocols 1.39 csomag, amely egy sor protokollt és bővítményt tartalmaz, amelyek kiegészítik az alap Wayland protokollt, és biztosítják az összetett szerverek és felhasználói környezetek felépítéséhez szükséges képességeket.
Minden protokoll egymás után megy keresztül a fejlesztési, tesztelési és stabilizálási fázisokon. A fejlesztési szakasz (az „instabil” kategória) befejezése után 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 a stabil kategóriába kerül. A „staging” kategóriából származó protokollok már használhatók összetett szerverekben és kliensekben, ahol ehhez kapcsolódó funkcionalitás szükséges. Ellentétben az „instabil” kategóriával, a „staging”-ben tilos a kompatibilitást sértő változtatásokat végrehajtani, de ha a tesztelés során problémákat, hiányosságokat észlelnek, nem kizárt a protokoll új jelentős verziójával vagy más Wayland-kiterjesztéssel történő csere.
Az új verzió egy további protokoll-promóciós fázist ad hozzá – „kísérleti”, amelynek célja, hogy csökkentse a protokollok Wayland-Protocols készletbe való felvételének akadályait, felgyorsítsa a protokollok fejlesztőkhöz való eljuttatását, és ösztönözze a korai megvalósítást a meglévő projektekben. Az új szakasz megszabadítja a protokollfejlesztőket a hosszadalmas vitáktól és a bürokráciától, mielőtt elfogadnák őket a Wayland-protokollokba.
Ha ahhoz, hogy egy protokoll a „staging” fázisba kerüljön, szükség van egy támogató csoport kialakítására és bizonyos számú elismerés (ACK) megérkezésére a felülvizsgálat résztvevőitől, akkor a „kísérleti” fázisba való belépéshez a kifogások hiánya. (NACK) a kéthetes felülvizsgálati időszak alatt elegendő. A „kísérleti” fázisban megengedett a kompatibilitást sértő változtatások végrehajtása, valamint a „nyers” protokollok hozzáadása, amelyeket fokozatosan a megfelelő szintre lehet hozni.
A következő protokollok kerültek a „staging” kategóriába:
- ext-data-control – Lehetővé teszi a privilegizált ügyfelek számára az adatfeldolgozás vezérlését, például a vágólapkezelők megvalósítását.
- ext-workspace — megvalósítja a koncepciót virtuális asztalok és eseményeket kínál az asztalok állapotáról, valamint lehetővé teszi az asztalok aktiválását és inaktiválását. A protokoll segítségével olyan irányítópultok és indikátorok hozhatók létre, amelyek megjelenítik az elérhető virtuális asztalok listáját, és lehetővé teszik a közöttük való váltást.
Jelenleg a wayland-protokollok a következő stabil protokollokat tartalmazzák, amelyek visszafelé kompatibilitást biztosítanak:
- "viewporter" - lehetővé teszi a kliens számára, hogy méretezési és felületi élvágási műveleteket hajtson végre a szerver oldalon.
- "bemutató-idő" - videomegjelenítést biztosít.
- Az „xdg-shell” felületek ablakként való létrehozására és interakciójára szolgáló felület, amely lehetővé teszi a felületek mozgatását a képernyőn, kicsinyítést, bővítést, átméretezést stb.
- „linux-dmabuf” - több videokártya megosztását biztosítja DMA-BUF technológiával (lehetővé teszi a DMA-BUF alapú wl_buffer létrehozását).
- "táblagép" - grafikus táblák bevitelének megszervezése.
A „staging” ágban tesztelt protokollok:
- drm-lease – biztosítja a szükséges erőforrásokat a sztereó kép generálásához különböző pufferekkel a bal és a jobb szem számára a virtuális valóság fejhallgatóira való kimenetkor.
- "ext-session-lock" - meghatározza a munkamenet zárolásának módját, például a képernyővédő futása vagy a hitelesítési párbeszédpanel megjelenítése közben.
- "single-pixel-buffer" – lehetővé teszi egy pixeles pufferek létrehozását, amelyek négy 32 bites RGBA értéket tartalmaznak.
- „xdg-activation” - lehetővé teszi a fókusz átvitelét a különböző első szintű felületek között (például az xdg-aktiválás használatával az egyik alkalmazás átválthat egy másikra).
- content-type – lehetővé teszi az ügyfelek számára az összetett objektumok átadását szerver Információk a megjelenített tartalomról, amelyek felhasználhatók a tartalomérzékeny viselkedés optimalizálására, például bizonyos DRM-tulajdonságok, például a „tartalomtípus” beállítására. A következő tartalomtípusok támogatása deklarált: nincs (nincs adattípus-információ), fotó (minimális feldolgozást igénylő digitális fotókimenet), videó (videó vagy animáció, amely pontosabb szinkronizálást igényel az akadozás elkerülése érdekében), és játék (játékindítás, minimális késleltetésű kimenetet igényel).
- ext-idle-notify – Lehetővé teszi az összetett szerverek számára, hogy értesítéseket küldjenek a klienseknek a felhasználói inaktivitásról, amely további energiatakarékos módok aktiválására használható bizonyos inaktivitási idő után.
- szakadásvezérlés - lehetővé teszi a függőleges szinkronizálás (VSync) letiltását függőleges csillapító impulzussal teljes képernyős alkalmazásokban, a kimenet elszakadása elleni védelem érdekében. A multimédiás alkalmazásokban a szakadásból eredő műtermékek nemkívánatos hatást jelentenek, de a játékprogramokban a műtermékek tolerálhatók, ha a velük való foglalkozás további késéseket okoz.
- ext-foreign-toplevel-list – Információkat kér le a legfelső szinten elhelyezett felületekről, amelyek lehetővé teszik az ablakok rendszerezését, hogy más tartalom fölé dokkoljanak, például saját panelek és ablakkapcsolók csatlakoztatásához.
- biztonsági kontextus – lehetővé teszi az ügyfelek azonosítását a sandbox izoláció segítségével. A kliens regisztrálhat egy új kapcsolatot egy Wayland-alapú összetett kiszolgálóhoz, és biztonsági környezetet csatolhat hozzá, majd az összetett menedzser korlátozza a létrehozott kapcsolat számára elérhető képességeket a megadott biztonsági kontextus alapján.
- A cursor Shape egy alternatív módja a kurzor megjelenésének testreszabásának, amely a kurzorképek sorozatának átadásán alapul, ahelyett, hogy egy felületre illesztené (wl_surface).
- „ext-transient-seat” – ideiglenes független munkamenetek (ülések) létrehozására szolgál, amelyeket virtuális beviteli eszközökkel való használatra terveztek. Például a távoli asztalhoz való csatlakozás lehetőségének megvalósításakor a protokoll lehetővé teszi, hogy minden egyes felhasználó számára külön munkamenetet hozzon létre virtuális billentyűzettel és egérrel.
- "xdg-toplevel-drag" - kiterjeszti a "drag & drop" mechanizmust a legfelső szintű ablakok húzási művelethez való csatolásának lehetőségével, amely felhasználható például eszköztárak vagy böngészőlapok egérrel való húzásának megszervezésére. Az új protokoll lehetővé teszi egy ablak leválasztható részeinek létrehozását, amelyek az ablakból való kihúzáskor új ablakokká válnak, és áthelyezhetők a meglévő ablak tetejére, mielőtt újra csatolnák őket.
- "xdg-dialog" - lehetővé teszi párbeszédpanel-specifikus attribútumok hozzárendelését a legfelső szintű felületekhez, például olyan modális párbeszédpaneleket hozhat létre, amelyek blokkolják a felhasználói interakciót a felület többi részével.
- "linux-drm-syncobj" – Eszközöket biztosít a pufferek explicit szinkronizálásához DRM (Direct Rendering Manager) szinkronizálási objektumok használatával. Feltételezhető, hogy a pufferbe való rajzoláskor végzett szinkronizálással összefüggésben a javasolt protokoll javítani fogja a Vulkan és OpenGL grafikus API-kon alapuló illesztőprogramokkal való munkát (a megvalósítás az illesztőprogramokban lévő kezelőkön alapul). Az új protokoll lehetővé teszi annak biztosítását, hogy a pufferbe történő megjelenítési művelet befejeződjön, mielőtt az összetett kezelő megjeleníti a puffert.
- alfa-módosító, amely lehetővé teszi az ügyfelek számára, hogy módosítsák a felület átláthatóságának szintjét, és a műveletek átvitelét biztosítsák az átláthatóság biztosítása érdekében az összetett szerver oldalára, amely viszont átirányíthatja ezeket a műveleteket a KMS-re.
- xdg-toplevel-icon – az ikont a legfelső szintű ablakhoz köti.
- ext-image-capture-source és ext-image-copy-capture - a képernyőn megjelenő tartalom rögzítésének megszervezése.
- xdg-system-bell - lehetővé teszi egy rendszerjel kiadását, amely például figyelmeztetésként használható egy terminálemulátorban. A jelkimenet formáját az összetett menedzser belátása szerint határozza meg, ez nem csak hang, hanem vizuális válasz is lehet.
- fifo - FIFO (first in, first out) mechanizmust valósít meg a megjelenített felület tartalomfrissítési sorának feldolgozására. Gyakorlati szempontból a protokoll lehetővé teszi, hogy a kimenet megvárja a függőleges szkennelés befejezését (vblank), ahelyett, hogy visszahívást használna minden alkalommal, amikor készen áll egy új keret megjelenítésére, ami megoldja a magas GPU terhelés problémáját a VSync használatakor.
- commit-timing - lehetővé teszi időkorlát kötését a felületi tartalomhoz (az összetett szervernek lehetőség szerint a megadott idő után, de nem korábban kell tükröznie a tartalom változását).
Az „instabil” ágban fejlesztés alatt álló protokollok:
- „teljes képernyős shell” - a munka vezérlése teljes képernyős módban.
- "input-method" - beviteli módszerek feldolgozása.
- „idle-inhibit” - a képernyővédő (képernyővédő) elindításának blokkolása.
- "input-timestamps" - időbélyegek a bemeneti eseményekhez.
- "keyboard-shortcuts-inhibit" - vezérli a billentyűparancsok és gyorsbillentyűk csatolását.
- A "linux-explicit-synchronization" egy Linux-specifikus mechanizmus a felülethez kötött pufferek szinkronizálására.
- „mutató gesztusok” – vezérlés az érintőképernyőkről.
- “pointer constraints” - mutató kényszerek (blokkolás).
- „elsődleges kiválasztás” - az X11-hez hasonlóan biztosítja az elsődleges vágólap működését (elsődleges kiválasztás), amelyből az információkat általában a középső egérgombbal illesztjük be.
- „relatív mutató események” – relatív mutató események.
- „szövegbevitel” – a szövegbevitel megszervezése.
- Az „xdg-foreign” egy interfész a „szomszédos” kliens felületeivel való interakcióhoz.
- "xdg-decoration" - ablakdekorációk megjelenítése a szerver oldalon.
- "xdg-output" - további információ a videó kimenetről (a töredékes skálázáshoz használatos).
- "xwayland-keyboard-grab" - rögzítés bemenet az XWayland alkalmazásokban.
Forrás: opennet.ru
