Utgivelsen av Wayland-protokollene 1.38 er publisert, som inneholder et sett med protokoller og utvidelser som supplerer den grunnleggende Wayland-protokollen og gir nĂždvendige muligheter for Ă„ bygge komposittservere og brukergrensesnitt.
Alle protokoller gĂ„r gjennom tre faser â utvikling, testing og stabilisering. Etter fullfĂžring av utviklingsfasen (kategori «unstable») settes protokollen inn i «staging»-grenen og inkluderes offisielt i settet med wayland-protocols, og etter fullfĂžrt testing flyttes den til stabil kategori. Protokoller i «staging»-kategorien kan allerede brukes i komposittservere og klienter hvor tilhĂžrende funksjonalitet er nĂždvendig. I motsetning til kategorien «unstable» er det i «staging» forbudt Ă„ gjĂžre endringer som bryter med kompatibiliteten, men ved oppdagelse av problemer og mangler under testing kan det bli aktuelt Ă„ bytte ut protokollen med en ny betydelig versjon eller et annet Wayland-utvidelse.
I den nye versjonen er fÞlgende protokoller lagt til kategorien «staging»:
- xdg-system-bell â lar deg sende et systemsignal, som kan brukes som en advarsel i terminalemulatorer for eksempel. Formen pĂ„ signalutgangen bestemmes av komposittadministratoren, og det kan ikke bare vĂŠre lyd, men ogsĂ„ visuell respons.
- fifo â implementerer FIFO-mekanismen (fĂžrst inn, fĂžrst ut) for behandlingen av kĂžen for oppdatering av innholdet pĂ„ visningsflaten. Praktisk sett gjĂžr protokollen det mulig Ă„ bruke venting til vertikal uttoning (vblank) ved utdata fremfor Ă„ bruke callback-anrop ved hver klarhet for Ă„ vise et nytt bilde, noe som lĂžser problemet med hĂžy belastning pĂ„ GPU ved bruk av VSync.
- commit-timing â lar binde et tidsbegrensning til innholdet pĂ„ flaten (komposittserveren mĂ„ vise endringen i innholdet sĂ„ raskt som mulig innen den angitte tiden, men ikke fĂžr).
For tiden inneholder wayland-protocols fĂžlgende stabile protokoller, som sikrer bakoverkompatibilitet:
- «viewporter» â lar klienten utfĂžre handlinger for skalering og beskjĂŠring av kantene pĂ„ overflater pĂ„ serversiden.
- «presentation-time» â sikrer visning av video.
- «xdg-shell» â et grensesnitt for oppretting og interaksjon med flater som vinduer, som lar dem flyttes pĂ„ skjermen, minimeres, maksimeres, endres i stĂžrrelse osv.
- «linux-dmabuf» â muliggjĂžr deling av flere grafikkort ved hjelp av DMA-BUF-teknologi (lar deg opprette wl_buffer basert pĂ„ DMA-BUF).
- «tablet» â organisering av inngang fra grafiske tegnebrett.
Protokoller som testes i «staging»-grenen:
- drm-lease â gir ressursene som trengs for Ă„ lage et stereobilde med forskjellige buffere for venstre og hĂžyre Ăžye ved utdata pĂ„ virtual reality-headset.
- «ext-session-lock» â definerer midler for Ă„ lĂ„se sesjonen, for eksempel under drift av skjermsparer eller visning av autentiseringsdialog.
- «single-pixel-buffer» â lar deg opprette enkeltpikselbuffere som inkluderer fire 32-bits RGBA-verdier.
- «xdg-activation» â gir muligheten til Ă„ overfĂžre fokus mellom forskjellige toppnivĂ„overflater (for eksempel kan ett program med xdg-activation skifte fokus til et annet).
- content-type â lar klienter sende til komposittserveren server informasjon om den viste innholdet som kan brukes til Ă„ optimalisere oppfĂžrselen med tanke pĂ„ innholdet, for eksempel ved Ă„ angi spesifikke DRM-egenskaper, som «content type». Det er bekreftet stĂžtte for fĂžlgende innholdstyper: none (ingen informasjon om datatypen), photo (utgang av digitale bilder, som krever minimal behandling), video (video eller animasjon, som krever mer presis synkronisering for Ă„ unngĂ„ hakking) og game (start av spill, som krever utgang med minimal forsinkelse).
- ext-idle-notify â gir komposittservere muligheten til Ă„ sende varsler til klienter om brukerens inaktivitet, som kan brukes til Ă„ aktivere ekstra strĂžmsparingsmoduser etter en viss tid med inaktivitet.
- tearing-control â lar deg deaktivere vertikal synkronisering (VSync) med frame-dropping-puls i fullskjermsprogrammer, brukt for Ă„ hindre tearing ved visning. I multimediaapplikasjoner er dannelsen av artefakter som fĂžlge av tearing en uĂžnsket effekt, men i spillprogrammer kan det aksepteres hvis kampen mot dem fĂžrer til ekstra forsinkelser.
- ext-foreign-toplevel-list â henter informasjon om overflater plassert pĂ„ det aller Ăžverste nivĂ„et (toplevel), som muliggjĂžr festing av vinduer over annet innhold, for eksempel for Ă„ koble til egne paneler og vindusskiftere.
- security-context â lar identifisere klienter som bruker sandbox-isolering. Klienten kan registrere en ny tilkobling til en Wayland-basert komposittserver og koble til sikkerhetskontexten, hvoretter kompositthĂ„ndtereren i henhold til den angitte sikkerhetskonteksten vil begrense mulighetene tilgjengelig for den etablerte tilkoblingen.
- cursor-shape â en alternativ mĂ„te Ă„ tilpasse utseendet til musepekeren pĂ„, basert pĂ„ Ă„ sende en serie musepekerbilder i stedet for Ă„ knytte til overflaten (wl_surface).
- «ext-transient-seat» â er designet for Ă„ opprette midlertidige, uavhengige seter (seats), beregnet for bruk med virtuelle inndat enheter. For eksempel ved implementering av muligheten til Ă„ koble til fjerntilgang til skrivebordet protokollen muliggjĂžr oppretting av en egen Ăžkt med virtuelle tastatur og mus for hver bruker.
- «xdg-toplevel-drag» â utvider «drag & drop» mekanismen med muligheten for Ă„ feste vinduer pĂ„ Ăžverste nivĂ„ til flyttingen, som kan brukes til Ă„ for eksempel organisere dra-og-slipp av verktĂžylinjer eller nettleserfaner. Den nye protokollen lar deg opprette frakoblede deler av vinduet som under draing blir til nye vinduer og kan flyttes over eksisterende vinduer fĂžr de blir festet igjen.
- «xdg-dialog» â lar deg tilordne kjennetegn spesifikke for dialogvinduer til overflaten pĂ„ Ăžverste nivĂ„, for eksempel kan du lage modale dialoger som blokkerer brukerens interaksjon med resten av grensesnittet.
- «linux-drm-syncobj» â gir verktĂžy for eksplisitt synkronisering av buffere ved hjelp av DRM (Direct Rendering Manager) synkroniseringsobjekter. Det antas at i sammenheng med synkronisering ved tegning til en buffer, vil den foreslĂ„tte protokollen forbedre arbeidet med drivere basert pĂ„ grafiske API-er Vulkan og OpenGL (implementasjonen er basert pĂ„ hĂ„ndterere i driverne). Den nye protokollen gir muligheten til Ă„ forsikre seg om at tegneoperasjonen i bufferet er fullfĂžrt fĂžr sammenslĂ„ingsadministratoren viser bufferet.
- alpha-modifier, som lar klienter endre nivÄet av gjennomsiktighet pÄ overflaten og utsette gjennomsiktighetsoperasjoner til komposittserveren, som igjen kan videresende disse operasjonene til KMS.
- xdg-toplevel-icon â binding av ikon til vinduet pĂ„ Ăžverste nivĂ„.
- ext-image-capture-source og ext-image-copy-capture â organisering av opptak av innhold som vises pĂ„ skjermen.
Protokoller utviklet i 'unstable'-grenen:
- 'fullscreen-shell' â styring av fullskjermsmodus.
- 'input-method' â hĂ„ndtering av inndatametoder.
- 'idle-inhibit' â blokkering av oppstart av skjermsparer.
- 'input-timestamps' â tidsstempler for inndatahendelser.
- 'keyboard-shortcuts-inhibit' â styring av vedheft av tastatursnarveier og hurtigtaster.
- 'linux-explicit-synchronization' â Linux-spesifikk mekanisme for synkronisering av buffere relatert til flaten.
- 'pointer-gestures' â styring fra berĂžringsskjermer.
- 'pointer constraints' â begrensninger for pekeenheter (blokkering).
- 'primary-selection' â pĂ„ samme mĂ„te som X11, gir det mulighet for Ă„ arbeide med primĂŠr utklippstavle (primary selection), hvor innsending av informasjon vanligvis skjer med midterste museknapp.
- 'relative pointer events' â relative pekeevent.
- 'text-input' â organisering av tekstinngang.
- 'xdg-foreign' â grensesnitt for interaksjon med 'nabo' klientens flater.
- 'xdg-decoration' â rending av vindusdekorasjoner pĂ„ serversiden.
- 'xdg-output' â tilleggsinformasjon om videoutgang (brukes for brĂžk stĂžrrelse).
- 'xwayland-keyboard-grab' â fangst av inndata i XWayland-applikasjoner.
Det kan ogsĂ„ nevnes tilbudet fra ansatte i Valve om Ă„ legge til en ny fase for fremming av nye Wayland-protokoller â «experimental», som vil redusere barrierene for Ă„ inkludere protokoller i settet av Wayland-Protocols og fremskynde deres implementering. I dag kreves det for at en protokoll skal komme inn i staging-fasen at en stĂžtteteam dannes og et bestemt antall bekreftelser (ACK) innhentes fra anmeldere. I «experimental» foreslĂ„s det Ă„ akseptere protokoller ikke gjennom innhenting av bekreftelser, men basert pĂ„ fravĂŠr av innvendinger (NACK) i lĂžpet av en to ukers anmeldelsesperiode. Hvis nĂždvendig, kan anmeldelser ogsĂ„ forlenge diskusjonen med ytterligere to uker ved Ă„ angi status «WAIT».
I «experimental»-fasen foreslÄs det ogsÄ Ä tillate endringer som bryter med kompatibiliteten og Ä legge til «rÄ» protokoller som kan gradvis utvikles til Þnsket nivÄ. PÄ denne mÄten vil «experimental»-fasen tillate rask overlevering av nye prototypers protokoller til utviklerne, stimulere deres implementering i eksisterende prosjekter og fÄ tilbakemelding fra brukerne. Den foreslÄtte prosessen bÞr frita protokollutviklerne fra langvarige diskusjoner og byrÄkrati fÞr de blir tatt opp i Wayland-Protocols. For eksempel har de protokollene xdg-system-bell, fifo og commit-timing som ble tatt opp i denne utgivelsen vÊrt diskutert i over et Är.
Kilde: opennet.ru
