Etter et halvt Är med utvikling er utgivelsen av wayland-protocols 1.34 offentliggjort, som inneholder et sett med protokoller og utvidelser som komplementerer funksjonene til den grunnleggende Wayland-protokollen og gir de nÞdvendige funksjonene for Ä bygge komposittservere og brukermiljÞer.
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 det foreslÄtt flere nye protokoller, plassert i kategorien «staging»:
- «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.
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).
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.
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.
- «tablet» â stĂžtte for inndata fra nettbrett.
- '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.
Kilde: opennet.ru
