Po štirih mesecih razvoja je bila izdana stabilna izdaja protokola Wayland 1.26, mehanizma za medprocesno komunikacijo in knjižnic. Veja 1.26 je na ravni API in ABI nazaj združljiva z izdajami 1.x in vsebuje predvsem popravke hroščev ter manjše posodobitve protokola. Delo projekta je distribuirano pod licenco MIT. Referenčni kompozit strežnik Weston, ki ponuja kodo in delujoče primere za uporabo Waylanda v namiznih in vgrajenih okoljih, je razvit v ločenem razvojnem ciklu.
Večje spremembe v protokolu:
- Dodan je bil dogodek wl_pointer.warp, ki omogoča prejemanje obvestil o novem položaju kazalca brez obravnave dogodka wl_pointer.motion, ki ga ustvari uporabnikova aktivnost.
- Dodana je bila zahteva wl_fixes.ack_global_remove, ki je zasnovana tako, da pošlje potrditev sestavljenemu upravljalniku, da je odjemalec ustavil obdelavo dogodka, da se preprečijo pogoji tekmovanja pri odstranjevanju globalnih dogodkov. Ko odjemalec prejme potrditev vseh odjemalcev, lahko sestavljeni upravljalnik odstrani upravljalnik, povezan z dogodkom na svoji strani.
- Dodana je funkcija wl_display_remove_socket_fd() za odstranjevanje vtičnic, ki so bile predhodno dodane prek klica wl_display_add_socket_fd().
- V načinu odpravljanja napak WAYLAND_DEBUG se čas beleži v formatu "HH:MM:ss.xxxxxx", kar poenostavi razčlenjevanje in primerjavo dnevnikov.
Razširitve protokolov, dodane od prejšnje izdaje Waylanda, ki dopolnjujejo osnovni protokol Wayland in so na voljo v ločenem naboru Wayland-Protocols:
- xx-fractional-scale — za skaliranje logičnega koordinatnega sistema, v katerem so vrednosti podane kot cela števila, za izboljšanje natančnosti pozicioniranja in povečanje ločljivosti logičnih koordinat do posameznih slikovnih pik. Ta funkcija rešuje problem omejene ločljivosti logičnega koordinatnega sistema, ki ni zadostna za pozicioniranje na ravni posameznih slikovnih pik, kar je potrebno za popolno izvedbo frakcijskega skaliranja.
- xx-izrezi — za pridobitev informacij o izrezih na zaslonu (na primer območje pod sprednjo kamero na zaslonu pametnega telefona).
- xx-zones – za ustvarjanje in dodajanje oken najvišje ravni v »cone« – okolja z lastnim koordinatnim prostorom. Protokol omogoča logično razporeditev oken, pri kateri je vsako okno postavljeno glede na vsako drugo okno.
- xx-keyboard-filter — za odjemalca, da prestreže izbrane dogodke tipkovnice, spremeni dogodke vnosa ali blokira posredovanje določenih dogodkov osredotočeni površini Wayland.
- Protokol xdg-session-management je bil dodan v kategorijo uprizarjanja, ki omogoča obnovitev stanja in položaja oken iz prekinjene seje v okoljih, ki temeljijo na protokolu Wayland, na primer po sestavljenem sesutju. strežnika ali aplikacije.
- Protokol »linux-dmabuf« je bil posodobljen za podporo sistemov z več grafičnimi procesorji. V takih sistemih se lahko odjemalec pogaja o kompozitnih strežnik kateri grafični procesor naj se uporabi.
- Protokol za upravljanje barv v1 je bil posodobljen za podporo metapodatkov slik BT.2100 za uporabo v kompozitnih strežnika posebni upravljavci, ki omogočajo pravilen prikaz HDR vsebine, ustvarjene za Windows.
Pomembni dogodki, povezani z Waylandom od izida zadnje številke:
- Cimet ima popolno podporo za Wayland.
- V knjižnici ANGLE, ki se uporablja v Chromu in Android, dodana je bila podpora za Wayland.
- KDE pri uporabi Waylanda implementira podporo za obnovitev seje in protokol Wayland xx-fractional-scale-v2 za delno skaliranje.
- Za okolja, ki temeljijo na Waylandu, je bila ustvarjena različica gonilnika Synaptics X.Org.
- Začelo se je preverjanje pripravljenosti platform za vizualne učinke in animacijo za zamenjavo X11 z Waylandom.
- Začelo se je testiranje sestavljenega strežnika Xfwl4 iz projekta Xfce.
- Uporabniški vmesnik Unityja je bil poustvarjen z uporabo Wayfire in Libadwaita.
- Posodobljeni sestavljeni strežniki in namizna okolja: COSMIC 1.3.0, Weston 16, Phosh 0.56, Nourish 1.0.0, miracle-wm 0.10, KDE Plasma 6.7, labwc 0.20, Sway 1.2, Wayland Maker 0.8, Hyprland 0.55, Niri 26.04, LXQt 2.4.0, Cage 0.3.
Spomnimo se, da je Wayland protokol za interakcijo med strežnikom za sestavljanje in aplikacijami, ki se izvajajo na njem. Odjemalci svoja okna upodabljajo neodvisno v ločenem medpomnilniku in posredujejo informacije o posodobitvah strežniku za sestavljanje. strežnika, ki združuje vsebino posameznih medpomnilnikov aplikacij za ustvarjanje končnega izhoda, pri čemer upošteva morebitne nianse, kot sta prekrivanje oken in prosojnost. Z drugimi besedami, sestavljeni strežnik ne ponuja API-ja za upodabljanje posameznih elementov, temveč deluje samo na predhodno upodobljenih oknih, s čimer se odpravi dvojno medpomnjenje pri uporabi knjižnic visoke ravni, kot sta GTK in Qt, ki opravljajo delo sestavljanja vsebine oken.
Wayland rešuje številne varnostne težave X11 v strežniku X.Org, saj za razliko od slednjega izolira vhod in izhod za vsako okno, ne dovoljuje odjemalcu dostopa do vsebine oken drugih odjemalcev in ne dovoljuje prestrezanja vhodnih dogodkov, povezanih z drugimi okni (XLibre XServer implementira razširitev X11 Xnamespace, ki zagotavlja izolacijo odjemalca z ločevanjem na ravni imenskega prostora). Podpora za neposredno delo z Waylandom je implementirana za večino platform, ki se uporabljajo v Linux grafične knjižnice, vključno z GTK, Qt, SDL, FLTK, wxWidgets, Clutter in EFL (Enlightenment Foundation Library).
Interakcija s strojno opremo v Waylandu/Westonu, kot so inicializacija, preklapljanje video načina (DRM modesetting) in upravljanje pomnilnika (GEM za i915 in TTM za Radeon in Nouveau) za grafične kartice, se lahko izvaja neposredno prek modula na ravni jedra, kar odpravlja potrebo po privilegijih superuporabnika. Za zagotovitev izvajanja standardnih aplikacij X11 v okolju, ki temelji na Waylandu, se uporablja komponenta XWayland (Device-Dependent X) DDX, ki deluje podobno kot Xwin in Xquartz za Win32 in... macOS.
Vir: opennet.ru
