A Wayland-Protocols 1.43 kiadása

Megjelent a wayland-protocols 1.43 csomag, amely a Wayland alapprotokollt kiegészítő protokollok és kiterjesztések gyűjteményét tartalmazza, és olyan lehetőségeket nyújt, amelyek szükségesek a kompozit szerverek és felhasználói környezetek létrehozásához.

A Wayland-Protocols 1.43 új "xdg-toplevel-tag" protokollal bővült, amely lehetővé teszi a Wayland kliens számára, hogy címkéket rendeljenek a legfelső szintű felületekhez, amelyeket a kompozit szerver a program ú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íthatja be a fő ablak és a beállítások ablak számára). Az ilyen azonosítás hasznos a pozíció, méret és tulajdonságok visszaállításához az újraindítás után, valamint a különböző típusú ablakok számára vonatkozó különleges szabályok meghatározásához.

A többi fejlesztés közül megemlítést érdemel az xdg-shell protokollba beépített információk a legfelső szintű felületek széleivel kapcsolatos műveleti korlátozásokról, amelyeket a kompozit menedzser használhat a Wayland kliens informálására a meglévő korlátozásokról, például arról, hogy az ablakok módosíthatják-e a méretüket vagy sem.

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, amelyeket virtuális bemeneti eszközökkel együtt lehet használni. Például egy távoli asztalhoz való csatlakozás lehetőségének megvalósításakor a protokoll lehetővé teszi, hogy minden felhasználó számára külön ülést hozzanak létre virtuális billentyűzettel és egérrel.
  • «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 színkezelés lehetőséget biztosít a szín kezelésére és a széles dinamikai tartomány (HDR, High Dynamic Range) támogatására. Az hozzáadott kiterjesztéssel az ügyfélalkalmazások információkat kaphatnak a színvisszaadással kapcsolatos jellemzőkről a kimeneti eszközökön, és a kompozit szervernek át tudják adni a saját tartalmuk színvisszaadási jellemzőit. A kompozitban szerveren ez az információ automatikus színkezelésre használható a tartalom megjelenítésénél különböző kimeneti eszközökön, például a tartalom átalakítására, amely megfelelő a HDR-monitorok megjelenítéséhez. A színterek leírására ICC profilok használatosak.

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

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster