Utgitt versjon av wayland-protocols 1.49, som inneholder et sett med protokoller og utvidelser som supplerer den grunnleggende Wayland-protokollen og gir funksjonalitet som er nĂždvendig for Ă„ bygge komposittservere og brukergrensesnitt.
I den nye versjonen:
- En eksperimentell protokoll, xx-fractional-scale, er lagt til, som gir mulighet for skalering av systemet av logiske koordinater, hvor verdiene angis med heltall, for Ä forbedre posisjoneringen og Þke opplÞsningen av de logiske koordinatene til individuelle pixler. Denne funksjonen lÞser problemet med den begrensede opplÞsningen av systemet for logiske koordinater, utilstrekkelig for posisjonering pÄ nivÄet av individuelle pixler, som er nÞdvendig for Ä implementere effektivt brÞkbasert skalering.
- Protokollen «linux-dmabuf» har fÄtt stÞtte for drift pÄ systemer med flere GPU-er. PÄ slike systemer kan klienten samhandle med komposittene serveren for Ä bestemme hvilken GPU som skal brukes.
- Protokollen color-management-v1 har fÄtt stÞtte for bildemetadata i BT.2100-formatet for bruk i kompositt serveren spesifikke hÄndterere, som muliggjÞr korrekt visning av HDR-innhold laget for Windows.
Alle protokoller gÄr systematisk gjennom utviklings-, test- og stabiliseringsfaser. Etter at utviklingsfasen er fullfÞrt (kategori «unstable»), plasseres protokollen i «staging»-grenen og inkluderes offisielt i settet med wayland-protocols. Etter fullfÞrt testing flyttes den til den stabile kategorien. Protokoller i «staging»-kategorien kan allerede brukes i kompositt servere og klienter hvor funksjonalitet relatert til dem kreves. I motsetning til «unstable»-kategorien er det forbudt Ä gjÞre endringer som bryter med kompatibiliteten i «staging», men hvis problemer og mangler oppdages under testing, kan en ny betydelig versjon av protokollen eller en annen Wayland-utvidelse bli innfÞrt.
For Ä fremskynde prosessen med Ä fÄ protokoller til utviklerne og stimulere tidlig implementering av protokoller i eksisterende prosjekter, ble det fra forrige utgivelse ytterligere lagt til en fase «experimental», hvor endringer som bryter kompatibilitet er tillatt, samt introduksjonen av «rÄ» protokoller, som gradvis kan utvikles til Þnsket nivÄ. Hvis det kreves dannelse av en stÞttegruppe og et bestemt antall bekreftelser (ACK) fra vurderingsdeltakere for Ä fÄ protokollen inn i «staging»-fasen, er det tilstrekkelig at det ikke er noen innvendinger (NACK) i lÞpet av en to-ukers vurderingsperiode for Ä komme inn i «experimental».
Per nÄ inneholder settet med wayland-protocols fÞlgende stabile protokoller, som sikrer bakoverkompatibilitet:
- viewporter» â lar klienten utfĂžre handlinger for skalering og beskjĂŠring av kantene til overflaten pĂ„ siden serveren.
- «presentation-time» â sikrer visning av video.
- «xdg-shell» â grensesnitt for opprettelse og interaksjon med flater som vinduer, som lar deg flytte dem pĂ„ skjermen, minimere, maksimere, endre stĂžrrelse osv.
- «linux-dmabuf» â gir muligheter for Ă„ opprette wl_buffer-er 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» â muliggjĂžr Ă„ overfĂžre fokus mellom forskjellige overflater pĂ„ fĂžrste nivĂ„ (for eksempel ved hjelp av
xdg-activation kan ett program 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 laget for Ă„ opprette midlertidige uavhengige sesjoner (seat) som er beregnet for bruk sammen med virtuelle innspillingsenheter. For eksempel, ved implementering av muligheten for Ă„ koble til en ekstern arbeidsflate, gjĂžr protokollen det mulig Ă„ opprette en egen sesjon for hver bruker med virtuelle tastatur og mus.
- «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 den foreslÄtte protokollen i synkronisering under tegning til buffer vil forbedre driften med drivere basert pÄ grafiske API-er som Vulkan og OpenGL (implementeringen er basert pÄ hÄndterere i driverne). Den nye protokollen gir mulighet for Ä sikre at tegneoperasjonen til bufferen er fullfÞrt fÞr komposisjonsmanageren viser denne bufferen.
- 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.
- 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 binding av tidsgrense til innholdet i overflaten (kompositt server mÄ vise innholdsendringen sÄ snart som mulig innen den angitte tiden, men ikke fÞr).
- ext-data-control â lar privilegerte kunder styre databehandlingen, for eksempel for Ă„ implementere utklippstavleforvaltere.
- ext-workspace â implementerer konseptet virtuelle skrivebord og tilbyr hendelser med informasjon om tilstanden til arbeidsflatene, samt muligheter for Ă„ aktivere og deaktivere arbeidsflater. Protokollen kan brukes til Ă„ opprette paneler og indikatorer som viser en liste over tilgjengelige virtuelle arbeidsflater og lar brukerne bytte mellom dem.
- color-management gir muligheter for fargehÄndtering og stÞtte for utvidet dynamisk lysstyrkeomrÄde (HDR, High Dynamic Range). Med det tilleggede utvidelsen kan klientprogrammer fÄ informasjon om fargereproduksjonsegenskapene til utgangsenheter og sende fargeegenskaper for sitt eget innhold til komposittserveren. I komposittserveren kan denne informasjonen brukes til automatisk fargehÄndtering nÄr innhold vises pÄ forskjellige utgangsenheter, for eksempel for Ä konvertere innhold for visning pÄ HDR-skjermer. ICC-profiler brukes for Ä beskrive fargesystemer.
- xdg-toplevel-tag gir Wayland-klienter mulighet til Ä knytte merker til overflater pÄ toppnivÄ som komposittserveren kan bruke for Ä identifisere vinduer etter omstart av applikasjonen (for eksempel kan applikasjonen sette merker «hovedvindu» og «innstillinger» for hovedvinduet og vinduet med innstillinger). Slik identifikasjon er nyttig for Ä gjenopprette posisjon, stÞrrelse og egenskaper ved vinduer etter omstart, samt for Ä definere spesielle regler for bestemte vindustyper.
- color-representation er definisjonen av fargerepresentasjonen til Wayland-overflaten. Wayland-klienter kan sende metadata nÞdvendig for Ä definere gjennomsiktighet, fargemodell, underprÞving og kvantisering, og som brukes nÄr bufferen med data som samsvarer med YCbCr-fargemodellen konverteres til RGB-representasjon.
- ext-background-effect â bruk av effekter pĂ„ delvis gjennomsiktige deler av Wayland-flaten, som bakgrunnsuklarhet.
- pointer-warp â lar applikasjonen umiddelbart flytte pekeren til den angitte posisjonen.
- xdg-session-management â funksjoner for Ă„ gjenopprette tilstand og posisjon til vinduer etter en avbrutt Ăžkt, for eksempel etter en krasj av komposittserveren eller applikasjonen.
Protokoller utviklet i "experimental"-grenen:
- xx-session-management â gjenoppretting av vindusstatus for avbrutte Ăžkter (for eksempel etter en krasj av komposittbehandleren).
- xx-input-method â gir applikasjoner muligheten til Ă„ implementere tekstinnmatingsmetoder for komposittservere og manipulere innskrevet tekst, som kan brukes for eksempel til Ă„ lage virtuelle tastaturer og IME-lag (Input Method Editor) for hĂ„ndtering av innmatingsprosessen.
- xx-text-input â lar komposittservere implementere innmatingsmetoder og sende tekst til applikasjoner. Protokollen standardiserer kommunikasjonen mellom komposittserveren og applikasjonene, og gjĂžr det mulig Ă„ hĂ„ndtere funksjoner som tekstoverfĂžring, behandling av hendelser om fokusendringer og hensyntagen til spesifikasjoner for inndatafelt (sprĂ„k, tekstutvalg, innholdstype).
- xx-cutouts â for Ă„ hente informasjon om utskjĂŠringer pĂ„ skjermen (for eksempel omrĂ„der under frontkameraet pĂ„ smarttelefonskjermen).
- xx-zones â for Ă„ opprette og legge til vinduer av Ăžverste nivĂ„ i "soner" â miljĂžer med sitt eget koordinatsystem. Protokollen muliggjĂžr en logisk plassering av vinduer, der hvert vindu er plassert i forhold til et annet vindu.
- xx-keyboard-filter â for Ă„ fange spesifikke tastaturhendelser valgt av klienten, endre innmatingshendelser eller blokkere overfĂžring av bestemte hendelser til Wayland-flaten der fokus er.
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.
Kilde: opennet.ru
