Objavljen je paket wayland-protocols verzije 1.48 koji sadrži skup protokola i proširenja koja nadopunjuju osnovni Wayland protokol i pružaju mogućnosti potrebne za izgradnju složenih poslužitelja i korisničkih okruženja.
U novoj verziji:
- Protokol xdg-session-management dodan je u kategoriju staging-a, pružajući mogućnost vraćanja stanja i položaja prozora iz prekinute sesije u okruženjima temeljenim na Waylandu, na primjer nakon pada složenog poslužitelja ili aplikacije.
- Protokol za unos teksta je proširen, omogućujući kompozitnim poslužiteljima implementaciju metoda unosa i slanje teksta aplikacijama. Na primjer, dodana je zastavica no_emoji za unos bez emojija, implementirana je podrška za dodatne radnje osim umetanja teksta, dodana je zastavica jezika za prijenos informacija o jeziku, dodani su zahtjevi za prikazivanje i skrivanje ploče za unos te je dodana zastavica preedit_hint za prilagodbu stila prethodnog uređivanja.
- Dodan je eksperimentalni protokol xx-cutouts za dobivanje informacija o izrezima na zaslonu (na primjer, područje ispod prednje kamere na zaslonu pametnog telefona).
- Dodan je eksperimentalni protokol xx-zones za stvaranje i dodavanje prozora najviše razine u "zone" - okruženja s vlastitim koordinatnim prostorom. Ovaj protokol omogućuje logičan raspored prozora, pri čemu je svaki prozor pozicioniran u odnosu na svaki drugi prozor.
- Dodan je eksperimentalni protokol, xx-keyboard-filter, koji omogućuje klijentu presretanje odabranih događaja tipkovnice, izmjenu događaja unosa ili blokiranje prosljeđivanja određenih događaja fokusiranoj Wayland površini.
Svi protokoli sekvencijalno prolaze kroz faze razvoja, testiranja i stabilizacije. Nakon završetka faze razvoja (kategorija "nestabilno"), protokol se smješta u granu "priprema" i službeno uključuje u paket wayland-protocols. Nakon što je testiranje završeno, premješta se u stabilnu kategoriju. Protokoli u kategoriji "priprema" tada se mogu koristiti u kompozitnim protokolima. poslužitelji i klijente kojima je potrebna povezana funkcionalnost. Za razliku od kategorije "nestabilno", "priprema" zabranjuje promjene koje narušavaju kompatibilnost. Međutim, ako se tijekom testiranja otkriju problemi ili nedostaci, ne može se isključiti zamjena novom, značajnom verzijom protokola ili drugim Wayland proširenjem.
Kako bi se ubrzala isporuka protokola programerima i potaknula rana implementacija protokola u postojeće projekte, počevši od prethodnog izdanja, dodana je "eksperimentalna" faza koja omogućuje izmjene koje narušavaju kompatibilnost i dodavanje "sirovih" protokola koji se postupno mogu dovesti na odgovarajuću razinu. Dok protokol treba formirati tim za podršku i primiti određeni broj potvrda (ACK-ova) od recenzenata da bi ušao u fazu postavljanja, potrebno mu je samo da ne prima prigovore (NACK-ove) tijekom dvotjednog perioda pregleda da bi ušao u eksperimentalnu fazu.
Paket wayland-protocols trenutno uključuje sljedeće stabilne protokole, koji su kompatibilni sa prethodnim verzijama:
- "viewporter" - omogućuje klijentu izvođenje radnji skaliranja i obrezivanja rubova površine sa strane poslužitelja.
- "presentation-time" - osigurava video prikaz.
- "xdg-shell" je sučelje za stvaranje i interakciju s površinama kao što su prozori, omogućujući vam da ih pomičete po zaslonu, sažimate, širite, mijenjate veličinu itd.
- "linux-dmabuf" - pruža mogućnosti za stvaranje wl_buffers na temelju DMA-BUF.
- "tablet" - organizacija unosa s grafičkih tableta.
Protokoli testirani u grani "staging":
- drm-lease - pruža resurse potrebne za generiranje stereo slike s različitim međuspremnicima za lijevo i desno oko prilikom izlaza na slušalice virtualne stvarnosti.
- "ext-session-lock" - definira način zaključavanja sesije, na primjer, dok je pokrenut čuvar zaslona ili je prikazan dijaloški okvir za provjeru autentičnosti.
- "single-pixel-buffer" - omogućuje stvaranje međuspremnika od jednog piksela koji uključuju četiri 32-bitne RGBA vrijednosti.
- “xdg-aktivacija” - omogućuje vam prijenos fokusa između različitih površina prve razine (na primjer, pomoću xdg-aktivacije, jedna aplikacija može prebaciti fokus na drugu).
- tip sadržaja - omogućuje klijentima prosljeđivanje kompozitnih podataka poslužitelja Informacije o prikazanom sadržaju koje se mogu koristiti za optimizaciju ponašanja svjesnog sadržaja, kao što je postavljanje specifičnih DRM svojstava kao što je "vrsta sadržaja". Deklarisana je podrška za sljedeće vrste sadržaja: nijedan (bez informacija o vrsti podataka), fotografija (digitalni foto izlaz koji zahtijeva minimalnu obradu), video (video ili animacija, koji zahtijevaju precizniju sinkronizaciju kako bi se izbjeglo mucanje) i igra (pokretanje igre, koje zahtijeva izlaz s minimalnom latencijom).
- ext-idle-notify - Omogućuje kompozitnim poslužiteljima slanje obavijesti klijentima o neaktivnosti korisnika, što se može koristiti za aktiviranje dodatnih modova za uštedu energije nakon određenog vremena neaktivnosti.
- tearing-control - omogućuje vam da onemogućite vertikalnu sinkronizaciju (VSync) s okomitim prigušnim pulsom u aplikacijama preko cijelog zaslona, koji se koristi za zaštitu od trganja u izlazu. U multimedijskim aplikacijama, artefakti zbog kidanja su nepoželjni učinak, ali u programima za igranje, artefakti se mogu tolerirati ako rješavanje njih uzrokuje dodatna kašnjenja.
- ext-foreign-toplevel-list - Dohvaća informacije o površinama postavljenim na najvišoj razini, koje vam omogućuju organiziranje prozora za pristajanje na drugi sadržaj, na primjer, za pričvršćivanje vlastitih ploča i prozorskih prekidača.
- sigurnosni kontekst - omogućuje identifikaciju klijenata pomoću izolacije sandboxa. Klijent može registrirati novu vezu na kompozitni poslužitelj temeljen na Waylandu i priložiti mu sigurnosni kontekst, nakon čega će kompozitni upravitelj ograničiti mogućnosti dostupne uspostavljenoj vezi na temelju navedenog sigurnosnog konteksta.
- cursor-shape je alternativni način za prilagodbu izgleda kursora, temeljen na prosljeđivanju niza slika kursora umjesto prianjanja na površinu (wl_surface).
- “ext-transient-seat” - dizajniran za stvaranje privremenih neovisnih sesija (sjedala) dizajniranih za korištenje s virtualnim ulaznim uređajima. Na primjer, kada implementirate mogućnost povezivanja s udaljenom radnom površinom, protokol vam omogućuje stvaranje zasebne sesije za svakog korisnika s virtualnom tipkovnicom i mišem.
- "xdg-toplevel-drag" - proširuje "drag & drop" mehanizam s mogućnošću pripajanja prozora najviše razine operaciji povlačenja, što se može koristiti, na primjer, za organiziranje povlačenja alatnih traka ili kartica preglednika pomoću miša. Novi protokol vam omogućuje stvaranje odvojivih dijelova prozora koji, kada se povuku iz tog prozora, postaju novi prozori i mogu se premjestiti na vrh postojećeg prozora prije ponovnog pričvršćivanja.
- "xdg-dialog" - omogućuje vam dodjeljivanje atributa specifičnih za dijalog površinama najviše razine, na primjer, možete stvoriti modalne dijaloge koji blokiraju interakciju korisnika s ostatkom sučelja.
- "linux-drm-syncobj" - pruža alate za eksplicitnu sinkronizaciju međuspremnika pomoću DRM (Direct Rendering Manager) sinkronizacijskih objekata. Pretpostavlja se da će u kontekstu sinkronizacije prilikom renderiranja u međuspremnik predloženi protokol poboljšati rad s upravljačkim programima koji se temelje na Vulkan i OpenGL grafičkim API-jima (implementacija se temelji na rukovateljima u upravljačkim programima). Novi protokol omogućuje da se osigura da je operacija crtanja u međuspremniku dovršena prije nego što upravitelj sastavljanja prikaže taj međuspremnik.
- alpha-modifier, koji klijentima omogućuje promjenu razine transparentnosti površine i prijenos operacija kako bi se osigurala transparentnost na stranu kompozitnog poslužitelja, koji zauzvrat može preusmjeriti te operacije na KMS.
- xdg-toplevel-icon - veže ikonu za prozor najviše razine.
- ext-image-capture-source i ext-image-copy-capture - organizacija snimanja sadržaja prikazanog na ekranu.
- xdg-system-bell - omogućuje vam izlaz signala sustava, koji se može koristiti, na primjer, kao upozorenje u emulatoru terminala. Oblik izlaznog signala određuje upravitelj kompozita; to može biti ne samo zvuk, već i vizualni odgovor.
- fifo - implementira FIFO (prvi ušao, prvi izašao) mehanizam za obradu reda čekanja za ažuriranje sadržaja prikazane površine. S praktične strane, protokol omogućuje korištenje izlaza čekanjem da se okomito skeniranje završi (vblank) umjesto korištenja povratnih poziva svaki put kada je spreman za prikaz novog okvira, što rješava problem velikog opterećenja GPU-a kada se koristi VSync.
- commit-timing - omogućuje vam vezanje vremenskog ograničenja za površinski sadržaj (kompozitni poslužitelj bi trebao odražavati promjenu sadržaja ako je moguće nakon navedenog vremena, ali ne ranije).
- ext-data-control - Omogućuje privilegiranim klijentima kontrolu obrade podataka, na primjer za implementaciju upravitelja međuspremnika.
- vanjski radni prostor — implementira koncept virtualna radna mjesta i nudi događaje s informacijama o stanju radnih površina, kao i mogućnost aktiviranja i deaktiviranja radnih površina. Protokol se može koristiti za izradu nadzornih ploča i indikatora koji prikazuju popis dostupnih virtualnih radnih površina i omogućuju prebacivanje između njih.
- upravljanje bojama — pruža mogućnosti upravljanja bojama i podršku za visoki dinamički raspon (HDR). Ovo proširenje omogućuje klijentskim aplikacijama dobivanje informacija o svojstvima izlaznih uređaja vezanim uz boju i prosljeđivanje podataka o svojstvima boja vlastitog sadržaja kompozitnom poslužitelju. U kompozitnom načinu rada, poslužitelja Ove se informacije mogu koristiti za automatsko upravljanje bojama prilikom prikazivanja sadržaja na raznim izlaznim uređajima, na primjer za pretvaranje sadržaja u prezentaciju prikladnu za prikaz na HDR monitorima. ICC profili koriste se za opisivanje prostora boja.
- xdg-toplevel-tag — Omogućuje Wayland klijentima da dodaju oznake površinama najviše razine koje kompozitni poslužitelj može koristiti za identifikaciju prozora nakon ponovnog pokretanja aplikacije (na primjer, aplikacija može postaviti oznake "glavni prozor" i "postavke" za glavni prozor i prozor postavki). Takva identifikacija je korisna za vraćanje položaja, veličine i svojstava prozora nakon ponovnog pokretanja te za definiranje posebnih pravila za pojedine vrste prozora.
- prikaz boja — definira prikaz boja Wayland površine. Wayland klijenti mogu proslijediti metapodatke potrebne za definiranje transparentnosti, modela boja, poduzorkovanja i raspona kvantizacije, a koriste se pri pretvaranju međuspremnika s podacima koji odgovaraju YCbCr modelu boja u RGB prikaz.
- ext-background-effect - primjenjuje efekte na poluprozirne dijelove Wayland površine, poput zamućenja pozadine.
- pointer-warp - Omogućuje aplikaciji trenutno pomicanje pokazivača na određenu poziciju.
Protokoli koji se razvijaju u eksperimentalnoj grani:
- xx-session-management - vraća stanje prozora za prekinute sesije (na primjer, nakon pada složenog upravitelja).
- xx-input-method — omogućuje aplikacijama implementaciju metoda unosa teksta za kompozitne znakove poslužitelji i oblikuju uneseni tekst, što se može koristiti, na primjer, za stvaranje virtualnih tipkovnica i IME slojeva (Input Method Editor) za obradu unosa.
- xx-text-input — omogućuje kompozitnim poslužiteljima implementaciju metoda unosa i slanje teksta aplikacijama. Protokol standardizira interakciju između kompozitnih poslužitelja i aplikacija te vam omogućuje upravljanje mogućnostima kao što su prijenos ulaznog teksta, rukovanje događajima promjene fokusa unosa i uzimanje u obzir specifičnosti ulaznih polja (jezik, odabir teksta, vrsta sadržaja).
Protokoli koji se razvijaju u "nestabilnoj" grani:
- “fullscreen-shell” - kontrola rada na cijelom zaslonu.
- "input-method" - obrada ulaznih metoda.
- “idle-inhibit” - blokiranje pokretanja čuvara zaslona (čuvar zaslona).
- "input-timestamps" - vremenske oznake za ulazne događaje.
- "keyboard-shortcuts-inhibit" - kontrolira privitak tipkovničkih prečaca i prečaca.
- "linux-explicit-synchronization" je specifičan za Linux mehanizam za sinkronizaciju međuspremnika u odnosu na površinu.
- “pokazivačke geste” - upravljanje s ekrana osjetljivih na dodir.
- “pointer constraints” - ograničenja pokazivača (blokiranje).
- “primary-selection” - analogno X11, osigurava rad primarnog međuspremnika (primarni odabir), informacije iz kojeg se obično ubacuju srednjom tipkom miša.
- “relative pointer events” - događaji relativnog pokazivača.
- “text-input” - organizacija unosa teksta.
- “xdg-foreign” je sučelje za interakciju s površinama “susjednog” klijenta.
- "xdg-decoration" - renderiranje ukrasa prozora na strani poslužitelja.
- "xdg-output" - dodatne informacije o video izlazu (koristi se za frakcijsko skaliranje).
- "xwayland-keyboard-grab" - snimanje unosa u XWayland aplikacijama.
Izvor: opennet.ru
