A apărut versiunea 1.31 a pachetului wayland-protocols, care conține un set de protocoale și extensii ce extind capabilitățile protocolului de bază Wayland și oferă funcționalitățile necesare pentru construirea serverelor de compunere și a mediilor de utilizator.
Toate protocoalele trec consecutiv prin trei etape — dezvoltare, testare și stabilizare. La finalizarea etapei de dezvoltare (categoria „unstable”), protocolul este mutat în ramura „staging” și inclus oficial în pachetul wayland-protocols, iar după finalizarea testării, acesta este mutat în categoria stabilă. Protocoalele din categoria „staging” pot fi deja utilizate în serverele compozite și clienții care necesită funcționalitatea asociată acestora. Spre deosebire de categoria „unstable”, în „staging” nu sunt permise modificări care ar compromite compatibilitatea, dar, în cazul descoperirii problemelor și neajunsurilor în timpul testării, nu este exclusă înlocuirea cu o version semnificativă nouă a protocolului sau cu altă extensie Wayland.
Noua versiune a fost publicată la o săptămână după lansarea Wayland-Protocols 1.30, care a inclus suport pentru protocolul tearing-control pentru dezactivarea sincronizării verticale. În versiunea 1.31, protocolul fractional-scale a fost adăugat în categoria „staging”, permițând managerului de compunere să transmită valori de scalare fracționate pentru suprafețe, oferindu-i clientului posibilitatea de a defini dimensiunea mai precisă a bufferelor pentru obiectele wp_viewport, comparativ cu transmiterea informațiilor rotunjite despre scalare. Implementările protocolului fractional-scale sunt disponibile pentru wlroots, KWin și glfw.
În prezent, pachetul wayland-protocols conține următoarele protocoale stabile, care asigură compatibilitatea inversă:
- viewporter» — permite clientului să efectueze acțiuni de scalare și decupare a marginilor suprafeței pe partea de server.
- „presentation-time” — asigură redarea video.
- „xdg-shell” — interfața de creare și interacțiune cu suprafețele ca fiind feronci, ceea ce permite mutarea, minimizarea, maximizarea, redimensionarea etc.
Protocoalele aflate în testare în ramura „staging”:
- drm-lease — oferă resursele necesare pentru a forma o imagine stereoscopică cu diferite buffere pentru ochiul stâng și drept atunci când este redat pe căști de realitate virtuală.
- «ext-session-lock» — definește mijloacele de blocare a sesiunii, de exemplu, în timpul activării ecranului sau afișării unui dialog de autentificare.
- «single-pixel-buffer» — permite crearea de buffere cu un singur pixel, incluzând patru valori de 32 de biți RGBA.
- «xdg-activation» — permite transferul focalizării între diferite suprafețe de nivel înalt (de exemplu, prin xdg-activation, o aplicație poate comuta focalizarea pe alta).
- content-type — permite clienților să transmită informații despre conținutul afișat, care pot fi utilizate pentru a optimiza comportamentul în funcție de conținut, de exemplu, setarea unor proprietăți DRM specifice, cum ar fi „tipul de conținut”. Suportul este declarat pentru următoarele tipuri de conținut: none (fără informații despre tipul de date), photo (afișarea fotografiilor digitale, care necesită o procesare minimă), video (video sau animație, necesită o sincronizare mai precisă pentru a evita întârzierile) și game (lansarea jocurilor, necesită o redare cu întârziere minimă). server ext-idle-notify — oferă serverelor de compunere capacitatea de a trimite clienților notificări despre inactivitatea utilizatorului, care pot fi utilizate pentru a activa moduri suplimentare de economisire a energiei după o perioadă definită de inactivitate.
- tearing-control — permite dezactivarea sincronizării verticale (VSync) în aplicațiile pe ecran complet cu pulsul de umbrire a cadrelor, utilizat pentru a preveni apariția rupturilor la redare (tearing). În aplicațiile multimedia, apariția artefactelor din cauza rupturilor este un efect nedorit, însă în programele de jocuri, artefactele pot fi tolerate dacă combaterea lor duce la întârzieri suplimentare.
- ext-foreign-toplevel-list — obținerea de informații despre suprafețele plasate la cel mai înalt nivel (toplevel), care permit organizarea fixării feroneriilor deasupra altui conținut, de exemplu, pentru a conecta propriile panouri și întrerupătoare de feronerie.
Programele dezvoltate în ramura «unstable»:
- «fullscreen-shell» — gestionarea muncii în modul pe ecran complet.
- «input-method» — procesarea metodelor de introducere.
- «idle-inhibit» — blocarea activării screensaver-ului (saver de ecran).
- «input-timestamps» — timpi pentru evenimentele de intrare.
- «keyboard-shortcuts-inhibit» — gestionarea atașării combinațiilor de taste și a comenzilor rapide.
- „linux-dmabuf” — partajarea a mai multor plăci video prin tehnologia dma-buf.
- «linux-explicit-synchronization» — mecanism de sincronizare a bufferelor specific Linux, legat de suprafață.
- «pointer-gestures» — gestionarea gesturilor de pe ecranele tactile.
- «pointer constraints» — restricții pentru indicatoare (blocare).
- «primary-selection» — similar cu X11, oferă funcționalitatea bufferului de schimb primar (primary selection), din care inserarea informației se face de obicei cu a treia buton al mouse-ului.
- «relative pointer events» — evenimente relative pentru indicatoare.
- «tablet» — suport pentru input de pe tablete.
- «text-input» — organizarea introducerii de text.
- «xdg-foreign» — interfața de interacțiune cu suprafețele clientului «vecin».
- «xdg-decoration» — redarea decorațiunilor ferestrei pe partea serverului.
- «xdg-output» — informații suplimentare despre ieșirea video (utilizat pentru scalarea fracționată).
- «xwayland-keyboard-grab» — captarea intrării în aplicațiile XWayland.
Sursa: opennet.ro
