Megjelent a wayland-protocols 1.46 csomag, amely a Wayland alap protokollját kiegészítő protokollok és bővítmények gyűjteményét tartalmazza, amelyek szükségesek kompozit szerverek és felhasználói környezetek létrehozásához.
Az új verzióban:
- Hozzáadva egy kísérleti xx-input-method protokoll, amely lehetővé teszi az alkalmazások számára, hogy szövegbeviteli módszereket valósítsanak meg kompozit szervereken, és kezeljék a begépelt szöveget, ami például virtuális billentyűzetek és IME-k (Szövegbeviteli Módszer Szerkesztő) létrehozására használható.
- Hozzáadva egy kísérleti xx-text-input protokoll, amely lehetővé teszi a kompozit szerverek számára, hogy beviteli metódusokat valósítsanak meg és szöveget küldjenek az alkalmazásoknak. A protokoll standardizálja az interakciót a kompozit szerver és az alkalmazások között, lehetővé téve olyan funkciók kezelését, mint a beírt szöveg átadása, a fókuszváltozási események kezelése és a beviteli mezők sajátosságainak figyelembevétele (nyelv, szöveg kijelölése, tartalom típusa).
- Fejlesztették a color-management-v1 és color-representation-v1 protokollokat, amelyek lehetőséget biztosítanak a színkezelésre, HDR támogatásra és a Wayland felület színábrázolásának meghatározására.
Minden protokoll fokozatosan átmegy a fejlesztés, tesztelés és stabilizálás fázisain. A fejlesztési szakasz (unstable kategória) befejezését követően a protokoll átkerül a „staging” ágba, és hivatalosan is beépül a wayland-protocols készletbe, majd a tesztelési fázis befejezése után stabil kategóriába kerül. A „staging” kategóriában lévő protokollokat már alkalmazni lehet a kompozit szervereken és klienseken, ahol a megfelelő funkciókra van szükség. A „staging” kategóriában a kompatibilitást sértő módosítások tiltottak, de ha tesztelés során problémák vagy hiányosságok merülnek fel, nem zárható ki a protokoll jelentős új verziójának vagy más Wayland-kiterjesztésének cseréje.
A protokollok fejlesztőkhez való gyorsabb eljuttatásának érdekében, valamint a protokollok korai megvalósításának ösztönzésére, a két korábbi kiadás óta egy „experimental” fázis is bevezetésre került, amely lehetővé teszi a kompatibilitás megsértését és a „nyers” protokollok hozzáadását, amelyeket fokozatosan el lehet juttatni a megfelelő szintre. Ha egy protokoll „staging” fázisba való eljutásához szükséges a támogatói csapat kialakítása és egy bizonyos számú jóváhagyás (ACK) beszerzése a véleményező résztvevőktől, akkor az „experimental” fázisba való belépéshez elegendő, ha a véleményezés során két héten belül nincs ellenvélemény (NACK).
Jelenleg a wayland-protocols csomag a következő stabil protokollokat tartalmazza, amelyek biztosítják a visszafelé kompatibilitást:
- „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.
- A «xdg-shell» - egy felületek létrehozására és azokkal való interakcióra szolgáló felület, amely lehetővé teszi azok mozgatását a képernyőn, minimalizálását, maximalizálását, méretezését stb.
- A «linux-dmabuf» - lehetőséget biztosít wl_buffer-ek létrehozására DMA-BUF alapján.
- A «tablet» - a grafikus táblagépekről történő bevitt adatok kezelését jelenti.
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).
- A content-type - lehetővé teszi az ügyfelek számára, hogy a kompozit szervernek információkat adjanak át a megjelenítendő tartalomról, melyek felhasználhatóak a tartalomhoz igazodó viselkedés optimalizálására, például specifikus DRM-tulajdonságok beállítására, mint például a «content type». Az alábbi tartalomtípusok támogatása van bejelentve: none (nincs információ az adatok típusáról), photo (digitális fényképek megjelenítése, amely minimális feldolgozást igényel), video (videó vagy animáció, amely pontosabb szinkronizálást igényel a megakadások elkerülése érdekében) és game (játékok indítása, amely minimális késleltetést igényel).
- 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.
- "ext-transient-seat" — ideiglenes független ülések (seat) létrehozására szolgál, amelyek virtuális bemeneti eszközökkel együtt használhatók. Például, amikor a lehetővé teszik a csatlakozást 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.
- «xdg-toplevel-drag» — bővíti a „drag & drop” mechanizmust azzal a lehetőséggel, hogy a legfelső szintű ablakokat a mozgatási művelethez csatolhatják, ami például a panelek vagy a böngésző füljeinek egérrel történő áthúzására használható. Az új protokoll lehetővé teszi a leválasztható ablakelemek létrehozását, amelyek amikor ezen ablakból áthúzásra kerülnek, új ablakokká válnak és az aktuális ablak felett mozgathatók, mielőtt újra csatlakoznának.
- «xdg-dialog» — lehetővé teszi a legfelső szintű felületek számára dialógusablak-specifikus tulajdonságok hozzárendelését, például létrehozva modális dialógusokat, amelyek blokkolják a felhasználó interakcióját a felhasználói felület többi részével.
- A «linux-drm-syncobj» — eszközöket biztosít a bufferek explicit szinkronizálásához DRM (Direct Rendering Manager) szinkronizáló objektumok segítségével. Feltételezhető, hogy a bufferek rajzolásakor a javasolt protokoll javítja a Vulkan és OpenGL grafikus API-k alapú illesztőprogramok kezelését (az implementáció az illesztőprogramok kezelőin alapul). Az új protokoll lehetővé teszi, hogy megbizonyosodjunk arról, hogy a bufferekbe való rajzolási művelet befejeződött, mielőtt a kompozit menedzser ezt a buffert megjelenítené.
- alpha-modifier, amely lehetővé teszi az ügyfelek számára a felület átlátszósági szintjének megváltoztatását, és megvalósítja az átlátszósági műveletek kompozit szerver oldalra történő áthelyezését, ami viszont átirányíthatja ezeket a műveleteket a KMS-nek.
- xdg-toplevel-icon — ikon hozzárendelése a legfelső szintű ablakhoz.
- ext-image-capture-source és ext-image-copy-capture — a képernyőn megjelenített tartalom rögzítésének megszervezése.
- xdg-system-bell — lehetővé teszi a rendszerszelvényt, amely például figyelmeztetésként használható terminálemulátorban. A jelzés kimeneti formája a kompozit menedzser döntésétől függ, ez lehet nemcsak hang, hanem vizuális visszajelzés is.
- fifo — megvalósítja a FIFO-m mechanismus (első be — első ki) a megjelenített felület tartalmának frissítési sorának kezeléséhez. Gyakorlatilag a protokoll lehetővé teszi a várakozást a függőleges elértékelés (vblank) befejezésére ahelyett, hogy callback hívásokat használnánk, amikor új keretet kell megjeleníteni, ami megoldja a GPU magas terheltségének problémáját a VSync használatakor.
- commit-timing — lehetővé teszi, hogy időkorlátot hozzárendeljünk a felület tartalmához (a kompozit szervernek lehetőség szerint az adott időn belül kell megjelenítenie a tartalomváltozást, de nem korábban).
- ext-data-control — lehetővé teszi a jogosult ügyfelek számára az adatok feldolgozásának kezelését, például a vágólapkezelők megvalósításához.
- ext-workspace — megvalósítja a koncepciót vagy azok képernyőre történő áthelyezésére az egérrel való húzással a drag&drop módban. Új funkcióként bevezetésre került a virtuális asztalok rögzítése, amely lehetővé teszi a szükséges számú asztal nyitva tartását, függetlenül attól, hogy üresek-e vagy sem. és eseményeket kínál az asztalok állapotáról, valamint lehetőségeket a munkaterületek aktiválására és deaktiválására. A protokoll alkalmazható panelek és mutatók létrehozására, amelyek megjelenítik a rendelkezésre álló virtuális munkaasztalok listáját, és lehetővé teszik közöttük a váltást.
- A color-management lehetőségeket biztosít a színkezelésre és a széles dinamikatartományú fényerő támogatására (HDR, High Dynamic Range). Az újonnan hozzáadott bővítmény segítségével az ügyfélalkalmazások információt kaphatnak a színátvitellel kapcsolatos kimeneti eszközök jellemzőiről, és adatokat adhatnak a kompozit szervernek a saját tartalmuk színátviteli jellemzőiről. A kompozit szerver ezen információt felhasználhatja a szín automatikus kezelésére különböző kimeneti eszközökön, például a tartalom HDR monitorokon való megjelenítésére alkalmas formába történő konvertálásra. A színtér leírására ICC profilokat használnak.
- xdg-toplevel-tag — lehetővé teszi a Wayland-ügyfelek számára, hogy címkéket társítsanak a felső szintű felületekhez, amelyeket a kompozit szerver az alkalmazás újraindítása után az ablakok azonosítására használhat (például az alkalmazás A „fő ablak” és a „beállítások” címkéket állíthat be a fő ablakhoz és a beállításokat tartalmazó ablakhoz). Az ilyen azonosítás hasznos az ablakok pozíciójának, méretének és tulajdonságainak helyreállításában az újraindítás után, valamint egyedi szabályok meghatározásában az ablakok különféle típusaihoz.
- color-representation — a Wayland-felület színképviseletének meghatározása. A Wayland-ügyfelek átadhatják a transzparencia, a színmodell, az aldiszkrétizálás és a kvantálási tartomány meghatározásához szükséges metadatákat, amelyek alkalmazandók a YCbCr színmodellhez tartozó adatok megszorításakor RGB képviseletre való átalakításkor.
- ext-background-effect — hatások alkalmazása a Wayland felületének átlátszó részein, például a háttér elmosásán.
- pointer-warp — lehetővé teszi az alkalmazás számára, hogy pillanatok alatt áthelyezze a kurzort a megadott pozícióba.
A „kísérleti” ágon fejlesztett protokollok:
- xx-session-management — az ablakok állapotának helyreállítása megszakított ülésekhez (például a kompozit menedzser összeomlása után).
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.
- 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
