Wayland-protocols-pakken 1.48 er blevet udgivet og indeholder et sæt protokoller og udvidelser, der supplerer den centrale Wayland-protokol og giver de nødvendige funktioner til at bygge sammensatte servere og brugermiljøer.
I den nye version:
- Protokollen xdg-session-management er blevet føjet til staging-kategorien, hvilket giver mulighed for at gendanne tilstanden og positionen af vinduer fra en afbrudt session i Wayland-baserede miljøer, for eksempel efter at en sammensat server eller et program går ned.
- Tekstinputprotokollen er blevet udvidet, hvilket giver composite-servere mulighed for at implementere inputmetoder og sende tekst til applikationer. For eksempel er no_emoji-flaget blevet tilføjet til emoji-fri input, understøttelse af yderligere handlinger ud over tekstindsættelse er blevet implementeret, sprogflaget er blevet tilføjet til overførsel af sproginformation, anmodninger om at vise og skjule inputpanelet er blevet tilføjet, og preedit_hint-flaget er blevet tilføjet til tilpasning af præredigeringsstilen.
- Tilføjet eksperimentel xx-cutouts-protokol til at indhente information om udskæringer på skærmen (for eksempel området under frontkameraet på smartphoneskærmen).
- En eksperimentel xx-zones-protokol er blevet tilføjet til oprettelse og tilføjelse af vinduer på øverste niveau til "zoner" - miljøer med deres eget koordinatrum. Denne protokol muliggør en logisk arrangement af vinduer, hvor hvert vindue er placeret i forhold til hvert andet vindue.
- Tilføjet en eksperimentel protokol, xx-keyboard-filter, for at give klienten mulighed for at opfange udvalgte tastaturhændelser, ændre inputhændelser eller blokere bestemte hændelser fra at blive sendt til den fokuserede Wayland-overflade.
Alle protokoller gennemgår sekventielt udviklings-, test- og stabiliseringsfaser. Efter afslutningen af udviklingsfasen ("ustabil"-kategorien) placeres en protokol i "staging"-grenen og inkluderes officielt i wayland-protocols-pakken. Når testen er afsluttet, flyttes den til den stabile kategori. Protokoller i "staging"-kategorien kan derefter bruges i kompositter. servere og klienter, der kræver relateret funktionalitet. I modsætning til kategorien "ustabil" forbyder "staging" ændringer, der bryder kompatibiliteten. Hvis der opdages problemer eller mangler under test, kan en erstatning med en ny, betydelig protokolversion eller en anden Wayland-udvidelse dog ikke udelukkes.
For at fremskynde leveringen af protokoller til udviklere og for at tilskynde til tidlig implementering af protokoller i eksisterende projekter, startende med den tidligere udgivelse, blev der tilføjet en "eksperimentel" fase, som giver mulighed for ændringer, der bryder kompatibiliteten, og tilføjelse af "rå" protokoller, der gradvist kan bringes til det rette niveau. Mens en protokol skal danne et supportteam og modtage et vist antal anerkendelser (ACK'er) fra korrekturlæsere for at gå ind i iscenesættelsesfasen, behøver den kun at modtage ingen indsigelser (NACK'er) i løbet af den to-ugers gennemgangsperiode for at gå ind i den eksperimentelle fase.
Wayland-protokollerne indeholder i øjeblikket følgende stabile protokoller, som er bagudkompatible:
- "viewporter" - giver klienten mulighed for at udføre handlinger på skalering og beskæring af kanterne på overfladen på siden server.
- "præsentationstid" - giver videovisning.
- "xdg-shell" er en grænseflade til at skabe og interagere med overflader som vinduer, så du kan flytte dem rundt på skærmen, kollapse, udvide, ændre størrelse osv.
- "linux-dmabuf" - giver muligheder for at skabe wl_buffere baseret på DMA-BUF.
- "tablet" - organisering af input fra grafiske tablets.
Protokoller testet i "iscenesættelse"-grenen:
- drm-lease - giver de nødvendige ressourcer til at generere et stereobillede med forskellige buffere til venstre og højre øje, når der udsendes til virtual reality-headset.
- "ext-session-lock" - definerer et middel til at låse en session, for eksempel mens pauseskærmen kører, eller godkendelsesdialogen vises.
- "single-pixel-buffer" - giver dig mulighed for at oprette enkelt-pixel buffere, der inkluderer fire 32-bit RGBA-værdier.
- "xdg-activation" - giver dig mulighed for at overføre fokus mellem forskellige overflader på første niveau (f.eks. ved hjælp af xdg-aktivering kan en applikation skifte fokus til en anden).
- indholdstype - tillader klienter at sende sammensatte server Information om det viste indhold, der kan bruges til at optimere indholdsbevidst adfærd, f.eks. indstilling af specifikke DRM-egenskaber såsom "indholdstype". Understøttelse af følgende indholdstyper er angivet: ingen (ingen datatypeinformation), foto (digitalt fotooutput, der kræver minimal behandling), video (video eller animation, der kræver mere præcis synkronisering for at undgå hakken) og spil (spilstart, der kræver output med minimal latenstid).
- ext-idle-notify - Tillader sammensatte servere at sende meddelelser til klienter om brugerinaktivitet, som kan bruges til at aktivere yderligere strømbesparende tilstande efter en vis tids inaktivitet.
- tearing-control - giver dig mulighed for at deaktivere vertikal synkronisering (VSync) med en vertikal dæmpningsimpuls i fuldskærmsapplikationer, der bruges til at beskytte mod rivning i output. I multimedieapplikationer er artefakter på grund af rivning en uønsket effekt, men i spilprogrammer kan artefakter tolereres, hvis håndteringen af dem forårsager yderligere forsinkelser.
- ext-foreign-toplevel-list - Henter information om overflader placeret på øverste niveau, som giver dig mulighed for at organisere vinduer til at docke oven på andet indhold, for eksempel for at vedhæfte dine egne paneler og vindueskontakter.
- security-context - giver dig mulighed for at identificere klienter ved hjælp af sandbox isolation. En klient kan registrere en ny forbindelse til en Wayland-baseret sammensat server og knytte en sikkerhedskontekst til den, hvorefter den sammensatte administrator vil begrænse de tilgængelige muligheder for den etablerede forbindelse baseret på den angivne sikkerhedskontekst.
- cursor-shape er en alternativ måde at tilpasse markørens udseende på, baseret på at sende en række markørbilleder i stedet for at snappe til en overflade (wl_surface).
- "ext-transient-seat" - designet til at skabe midlertidige uafhængige sessioner (sæder) designet til brug med virtuelle inputenheder. For eksempel, når du implementerer muligheden for at oprette forbindelse til et eksternt skrivebord, giver protokollen dig mulighed for at oprette en separat session for hver bruger med et virtuelt tastatur og en mus.
- "xdg-toplevel-drag" - udvider "træk og slip"-mekanismen med mulighed for at vedhæfte vinduer på øverste niveau til en trækoperation, som for eksempel kan bruges til at organisere træk af værktøjslinjer eller browserfaner med musen. Den nye protokol giver dig mulighed for at oprette aftagelige dele af et vindue, der, når de trækkes fra det vindue, bliver til nye vinduer og kan flyttes oven på det eksisterende vindue, før de sættes fast igen.
- "xdg-dialog" - giver dig mulighed for at tildele dialogspecifikke attributter til overflader på øverste niveau, for eksempel kan du oprette modale dialoger, der blokerer brugerinteraktion med resten af grænsefladen.
- "linux-drm-syncobj" - giver værktøjer til eksplicit buffersynkronisering ved hjælp af DRM (Direct Rendering Manager) synkroniseringsobjekter. Det antages, at i forbindelse med synkronisering ved gengivelse til en buffer, vil den foreslåede protokol forbedre arbejdet med drivere baseret på Vulkan og OpenGL grafik API'er (implementeringen er baseret på handlere i driverne). Den nye protokol gør det muligt at sikre, at en tegningsoperation til en buffer er fuldført, før sammensætningsmanageren viser denne buffer.
- alpha-modifier, som tillader klienter at ændre niveauet af gennemsigtighed af overfladen og overføre operationer for at sikre gennemsigtighed til siden af den sammensatte server, som igen kan omdirigere disse operationer til KMS.
- xdg-toplevel-icon - binder ikonet til vinduet på øverste niveau.
- ext-image-capture-source og ext-image-copy-capture - organiserer optagelsen af indhold, der vises på skærmen.
- xdg-system-bell - giver dig mulighed for at udsende et systemsignal, som for eksempel kan bruges som en advarsel i en terminalemulator. Formen af signaludgangen bestemmes efter den sammensatte managers skøn, det kan ikke kun være en lyd, men en visuel reaktion.
- fifo - implementerer en FIFO (først ind, først ud) mekanisme til at behandle indholdsopdateringskøen på den viste overflade. På den praktiske side tillader protokollen output at vente på, at vertikal scanning er fuldført (vblank) i stedet for at bruge tilbagekaldskald, hver gang den er klar til at vise en ny ramme, hvilket løser problemet med høj GPU-belastning ved brug af VSync.
- commit-timing - giver dig mulighed for at binde en tidsgrænse til overfladeindholdet (den sammensatte server skal afspejle indholdsændringen, hvis det er muligt efter det angivne tidspunkt, men ikke tidligere).
- ext-data-control - Giver privilegerede klienter mulighed for at kontrollere databehandling, for eksempel at implementere klippebordsadministratorer.
- eksternt arbejdsområde — implementerer konceptet virtuelle skriveborde og tilbyder begivenheder med information om desktops tilstand, samt muligheden for at aktivere og deaktivere desktops. Protokollen kan bruges til at oprette dashboards og indikatorer, der viser en liste over tilgængelige virtuelle desktops og tillader skift mellem dem.
- farvestyring — giver muligheder for farvestyring og understøttelse af High Dynamic Range (HDR). Denne udvidelse giver klientprogrammer mulighed for at indhente oplysninger om farverelaterede egenskaber for outputenheder og sende data om farveegenskaberne for deres eget indhold til den sammensatte server. I sammensat tilstand, server Disse oplysninger kan bruges til automatisk farvestyring ved visning af indhold på forskellige outputenheder, for eksempel til at konvertere indhold til en præsentation, der er egnet til visning på HDR-skærme. ICC-profiler bruges til at beskrive farverum.
- xdg-toplevel-tag — Giver Wayland-klienter mulighed for at vedhæfte tags til overflader på øverste niveau, som compositing-serveren kan bruge til at identificere vinduer, efter at programmet er genstartet (for eksempel kan et program angive tags af typen "hovedvindue" og "indstillinger" for hovedvinduet og indstillingsvinduet). En sådan identifikation er nyttig til at gendanne vinduers position, størrelse og egenskaber efter en genstart og til at definere særlige regler for individuelle vinduestyper.
- farverepræsentation — definerer farverepræsentationen af Wayland-overfladen. Wayland-klienter kan overføre metadata, der er nødvendige for at definere gennemsigtighed, farvemodel, undersampling og kvantiseringsområde, og som bruges ved konvertering af en buffer med data svarende til YCbCr-farvemodellen til en RGB-repræsentation.
- ext-background-effect - anvender effekter på semi-transparente dele af en Wayland-overflade, såsom baggrundssløring.
- pointer-warp - Tillader et program øjeblikkeligt at flytte markøren til en bestemt position.
Protokoller under udvikling i den eksperimentelle gren:
- xx-session-management - gendanner Windows-tilstanden for afbrudte sessioner (for eksempel efter et nedbrud af Composite Manager).
- xx-input-method — tillader applikationer at implementere tekstinputmetoder til sammensatte tekster servere og generere den indtastede tekst, som f.eks. kan bruges til at oprette virtuelle tastaturer og IME-lag (Input Method Editor) til behandling af input.
- xx-text-input — tillader composite-servere at implementere inputmetoder og sende tekst til applikationer. Protokollen standardiserer interaktion mellem composite server og applikationer, og giver dig mulighed for at administrere funktioner som at sende inputtekst, håndtere ændring af inputfokus og tage højde for specifikke detaljer i inputfelter (sprog, tekstvalg, indholdstype).
Protokoller, der udvikles i den "ustabile" gren:
- "fullscreen-shell" - kontrol af arbejde i fuldskærmstilstand.
- "input-metode" - behandling af inputmetoder.
- "idle-inhibit" - blokering af lanceringen af pauseskærmen (pauseskærm).
- "input-tidsstempler" - tidsstempler for inputhændelser.
- "keyboard-shortcuts-inhibit" - styrer vedhæftning af tastaturgenveje og genvejstaster.
- "linux-eksplicit-synkronisering" er en Linux-specifik mekanisme til synkronisering af overfladebundne buffere.
- "pointer-gestures" - kontrol fra touchskærme.
- "pointer constraints" - pointer constraints (blokering).
- "primært valg" - analogt med X11 sikrer det driften af det primære udklipsholder (primært valg), hvorfra information normalt indsættes med den midterste museknap.
- "relative pointer events" - relative pointer events.
- "tekst-input" - organisering af tekstinput.
- "xdg-foreign" er en grænseflade til at interagere med overfladerne på den "nabo" klient.
- "xdg-decoration" - gengivelse af vinduesdekorationer på serversiden.
- "xdg-output" - yderligere information om videooutput (bruges til fraktioneret skalering).
- "xwayland-keyboard-grab" - optag input i XWayland-applikationer.
Kilde: opennet.ru
