Udgivelsen af wayland-protocols pakken 1.45 er offentliggjort, som indeholder et sæt protokoller og udvidelser, der supplerer den grundlæggende Wayland-protokol og giver de nødvendige funktioner til opbygning af kompositservere og brugergrænseflader.
Wayland-Protocols 1.45 inkluderer 4 nye protokoller (to i kategorien «staging» og to eksperimentelle):
- ext-background-effect — anvendelse af effekter på delvist gennemsigtige dele af Wayland-overfladen, såsom baggrundsudgydelse.
- pointer-warp — giver applikationen mulighed for straks at flytte markøren til en angivet position.
- session-management — genoprettelse af vinduets tilstand for afbrudte sessioner (f.eks. efter en uventet afslutning af kompositmanageren).
- input-method — udvikling af en ny protokol til brug af tekstinputmetoder.
Alle protokoller gennemgår konsekvent udviklings-, test- og stabiliseringsfaser. Efter afslutningen af udviklingsfasen (kategori "unstable") placeres protokollen i "staging"-grenen og inkluderes officielt i wayland-protocols-sættet, og efter afslutning af testningen flyttes den til de stabile kategorier. Protokoller fra "staging"-kategorien kan allerede anvendes i kompositservere og klienter, hvor der kræves relateret funktionalitet. I modsætning til "unstable"-kategorien er ændringer, der bryder kompatibiliteten, forbudt i "staging", men ved opdagelse af problemer og mangler under testen er det ikke udelukket, at den nye betydelige version af protokollen eller en anden Wayland-udvidelse kan erstatte den.
For speeding up the delivery of protocols to developers and encouraging early implementation of protocols in existing projects, starting from the penultimate release, an 'experimental' phase has been added, allowing changes that break compatibility and the inclusion of 'raw' protocols that can gradually be refined. To move a protocol into the 'staging' phase, a support team must be formed and a specific number of acknowledgments (ACK) from review participants must be obtained, whereas to enter 'experimental,' it is sufficient to have no objections (NACK) during a two-week review period.
Currently, the set of wayland-protocols includes the following stable protocols, which ensure backward compatibility:
- "viewporter" - giver klienten mulighed for at udføre handlinger vedrørende zoomning og beskæring af kanterne af overfladen på serversiden.
- "presentation-time" - sikrer visning af video.
- xdg-shell — an interface for creating and interacting with surfaces as windows, allowing them to be moved across the screen, minimized, maximized, resized, etc.
- linux-dmabuf — provides capabilities for creating wl_buffer based on DMA-BUF.
- "tablet" - organisering af indtastning fra grafiktabletter.
Protokoller, der testes i "staging"-grenen:
- drm-lease - leverer de ressourcer, der er nødvendige for at danne et stereobillede med forskellige buffere til venstre og højre øje ved output på VR-headsets.
- "ext-session-lock" - definerer midler til at låse sessionen, f.eks. under arbejdet med skærmskærm eller output af autentificeringsdialog.
- «single-pixel-buffer» — giver mulighed for at skabe enkelt-pixel buffere, der inkluderer fire 32-bit RGBA værdier.
- «xdg-activation» — tillader overførsel af fokus mellem forskellige topniveau overflader (for eksempel kan et program ved hjælp af xdg-activation skifte fokus til et andet).
- content-type – giver mulighed for kunder at videregive oplysninger om den viste indhold til den sammensatte server, som kan anvendes til at optimere adfærden i henhold til indholdet, f.eks. ved at indstille specifikke DRM-egenskaber som "content type". Der er erklæret støtte til følgende indholdstyper: none (ingen oplysninger om datatype), photo (visning af digitale fotos, der kræver minimal behandling), video (video eller animation, der kræver mere præcis synkronisering for at undgå hak), og game (start af spil, der kræver visning med minimal forsinkelse).
- tearing-control — giver mulighed for at deaktivere vertikal synkronisering (VSync) med et rammeforbrugspuls i fuldskærmsapplikationer, der anvendes til at forhindre opståen af tearing ved output. I multimedieapplikationer er det uønsket at opleve artefakter på grund af tearing, men i spilprogrammer kan der tolereres artefakter, hvis bekæmpelse af dem medfører yderligere forsinkelser.
- ext-foreign-toplevel-list — modtagelse af oplysninger om overflader, der er placeret på det øverste niveau (toplevel), som muliggør fastgørelse af vinduer oven på andet indhold, for eksempel til tilslutning af egne paneler og vindueskontakter.
- security-context — gør det muligt at identificere klienter, der bruger sandbox-isolering. Klienten kan registrere en ny forbindelse til den sammensatte server baseret på Wayland og knytte en sikkerhedskontekst til den, hvorefter den sammensatte manager i overensstemmelse med den angivne sikkerhedskontekst vil begrænse de tilgængelige muligheder for den etablerede forbindelse.
- security-context — allows identifying clients using sandbox isolation. A client can register a new connection to the composite server based on Wayland and attach a security context to it, after which, according to the specified security context, the composite manager will restrict the capabilities available for the established connection.
- cursor-shape — en alternativ metode til at konfigurere cursorens udseende baseret på overførslen af en række cursorbilleder i stedet for at binde det til overfladen (wl_surface).
- «ext-transient-seat» — designet til at oprette midlertidige, uafhængige sessioner (seat), der er beregnet til brug sammen med virtuelle input-enheder. For eksempel ved implementering af muligheden for at tilslutte til fjerndesktop protokollen muliggør oprettelse af separate sessioner for hver bruger med virtuelle tastaturer og mus.
- «xdg-toplevel-drag» — udvider «drag & drop»-mekanismen med muligheden for at knytte topniveau-vinduer til flytteoperationen, hvilket kan bruges til at organisere træk med musen af værktøjslinjer eller browserfaner. Den nye protokol muliggør oprettelse af adskillelige dele af vinduet, der under træk fra dette vindue bliver nye vinduer og kan bevæge sig over eksisterende vinduer før genfastgørelse.
- «xdg-dialog» — tillader at tildele topniveau-flader egenskaber, der er specifikke for dialogvinduer, for eksempel kan man skabe modale dialoger, der blokerer brugerens interaktion med resten af brugergrænsefladen.
- «linux-drm-syncobj» — leverer værktøjer til eksplicit synkronisering af buffer ved hjælp af DRM (Direct Rendering Manager) synkroniseringsobjekter. Det antages, at den foreslåede protokol i konteksten af synkronisering ved rendering til buffer vil forbedre arbejdet med drivere baseret på grafik-API'er som Vulkan og OpenGL (implementeringen er baseret på behandlere i driverne). Den nye protokol giver mulighed for at sikre, at renderingoperationen til bufferen er afsluttet, før sammensætningsmanageren viser denne buffer.
- alpha-modifier, der giver klienter mulighed for at ændre niveauet af overensstemmelse af overfladen og udskyde operationer for at sikre transparens til den sammensatte server, som i sin tur kan omdirigere disse operationer til KMS.
- xdg-toplevel-icon — binder et ikon til et topniveau-vindue.
- ext-image-capture-source og ext-image-copy-capture — organiserer optagelsen af indhold vist på skærmen.
- xdg-system-bell — giver mulighed for at afgive et systemsignal, som kan bruges som en advarsel i terminalemulatorer. Signalets outputform bestemmes af sammensætningsmanageren, og det kan være ikke blot lyd, men også visuel feedback.
- fifo — implementerer en FIFO-mekanisme (først ind, først ud) til behandling af køopdateringer af det viste indhold. Praktisk set tillader protokollen ved udgang at bruge ventetid på afslutningen af den vertikale scanning (vblank) i stedet for at bruge callback-opkald ved hver klarhed til at vise et nyt billede, hvilket løser problemet med høj belastning på GPU'en ved brug af VSync.
- commit-timing – giver mulighed for at knytte et tidsbegrænsning til overfladeindholdet (den sammensatte server skal vise ændringen i indholdet inden for den angivne tid, men ikke før).
- ext-data-control — giver privilegerede kunder mulighed for at styre databehandlingen, f.eks. til implementering af udklipshåndterere.
- ext-workspace — implementerer konceptet for virtuelle skriveborde og tilbyder begivenheder med information om status for arbejdsområder samt muligheder for at aktivere og deaktivere arbejdsområder. Protokollen kan anvendes til at oprette paneler og indikatorer, der viser en liste over tilgængelige virtuelle arbejdsområder og gør det muligt at skifte imellem dem.
- color-management — giver mulighed for farvestyring og understøttelse af udvidet dynamisk lysstyrkeområde (HDR, High Dynamic Range). Med det tilføjede udvidelse kan klientapplikationer hente information om enhedsudgangens farverelaterede egenskaber og overføre data om farvegengivelse af deres eget indhold til den sammensatte server. På den sammensatte server kan disse oplysninger bruges til automatisk at styre farver ved visning af indhold på forskellige udgangsenheder, f.eks. til at konvertere indhold til et format, der er passende til visning på HDR-monitorer. ICC-profiler bruges til at beskrive farverum.
- xdg-toplevel-tag — giver Wayland-klienter mulighed for at vedhæfte tags til topniveauoverflader, som den sammensatte server kan bruge til at identificere vinduer efter genstart af applikationen (f.eks. kan applikationen angive tags 'main window' og 'settings' for hovedvinduet og indstillingsvinduet). Sådan identifikation er nyttig til at gendanne position, størrelse og egenskaber for vinduer efter genstart samt til at fastsætte specielle regler for bestemte typer vinduer.
- color-representation — definition af farvegengivelse for Wayland-overflade. Wayland-klienter kan sende metadata, der er nødvendige for at bestemme gennemsigtighed, farvemodel, sub-sampling og kvantiseringsområde, og der anvendes ved konvertering af bufferdata, der svarer til YCbCr-farvemodellen, til RGB-repræsentation.
Protokoller, der udvikles i «unstable»-grenen:
- «fullscreen-shell» — styring af arbejder i fuldskærmstilstand.
- «input-method» — behandling af inputmetoder.
- «idle-inhibit» — blokering af aktivering af screensaver.
- «input-timestamps» — tidsstempler for inputbegivenheder.
- «keyboard-shortcuts-inhibit» — kontrol af vedhæftningen af tastaturkombinationer og genveje.
- «linux-explicit-synchronization» — en Linux-specifik mekanisme til synkronisering af buffere i relation til overfladen.
- «pointer-gestures» — kontrol fra berøringsskærme.
- «pointer constraints» — begrænsninger for pegere (låsing).
- «primary-selection» — ligesom i X11 muliggør funktionalitet for primære udklipsholder (primary selection), hvor indsættelse af information normalt foretages med musens midterste knap.
- «relative pointer events» — relative events for pegere.
- «text-input» — organisering af tekstindføring.
- «xdg-foreign» — grænseflade til interaktion med 'nabo'-klientens overflader.
- «xdg-decoration» — rendering af vinduesdekorationer på serversiden.
- «xdg-output» — yderligere oplysninger om videoudgangen (anvendes til brøk-skala).
- «xwayland-keyboard-grab» — indfangning af input i XWayland-applikationer.
Kilde: opennet.ru
