Po keturių mėnesių kūrimo išleista stabili „Wayland 1.26“ protokolo, tarpprocesinio ryšio mechanizmo ir bibliotekų versija. 1.26 šaka yra suderinama su 1.x versijomis API ir ABI lygmeniu ir joje daugiausia yra klaidų pataisymų bei nedidelių protokolo atnaujinimų. Projekto darbai platinami pagal MIT licenciją. Nuorodų kompozicija. serverio „Weston“, teikiantis kodą ir veikimo pavyzdžius, kaip naudoti „Wayland“ darbalaukio ir įterptosiose aplinkose, kuriamas atskirame kūrimo cikle.
Pagrindiniai protokolo pakeitimai:
- Pridėtas įvykis „wl_pointer.warp“, kuris leidžia gauti pranešimus apie naują rodyklės padėtį neapdorojant vartotojo veiklos sugeneruoto įvykio „wl_pointer.motion“.
- Pridėta užklausa „wl_fixes.ack_global_remove“, skirta patvirtinti sudėtiniam tvarkytuvui, kad klientas nustojo apdoroti įvykį, siekiant išvengti lenktynių šalinant visuotinius įvykius. Gavęs patvirtinimą iš visų klientų, sudėtinis tvarkyklė gali pašalinti su įvykiu susietą tvarkyklę savo pusėje.
- Pridėta funkcija wl_display_remove_socket_fd(), skirta pašalinti lizdus, anksčiau pridėtus naudojant wl_display_add_socket_fd() iškvietimą.
- WAYLAND_DEBUG derinimo režime laikas registruojamas formatu „HH:MM:ss.xxxxxx“, todėl žurnalų analizė ir palyginimas yra paprastesni.
Nuo ankstesnės „Wayland“ versijos pridėti protokolo plėtiniai, kurie papildo pagrindinį „Wayland“ protokolą ir pateikiami atskirame „Wayland-Protocols“ rinkinyje:
- xx-trupmeninis-skalė – loginės koordinačių sistemos, kurioje reikšmės nurodomos kaip sveikieji skaičiai, mastelio keitimui, siekiant pagerinti padėties nustatymo tikslumą ir padidinti loginių koordinačių skiriamąją gebą iki atskirų pikselių. Ši funkcija išsprendžia ribotos loginės koordinačių sistemos skiriamosios gebos problemą, kuri nepakankama padėties nustatymui atskirų pikselių lygmenyje, kuris yra būtinas norint visiškai įgyvendinti trupmeninį mastelį.
- xx-iškirpimai – gauti informacijos apie ekrano iškirpimus (pvz., sritį po priekine kamera išmaniojo telefono ekrane).
- xx zonos – skirtos kurti ir pridėti aukščiausio lygio langus prie „zonų“ – aplinkų su savo koordinačių erdve. Protokolas leidžia logiškai išdėstyti langus, kai kiekvienas langas yra išdėstytas kiekvieno kito lango atžvilgiu.
- xx-klaviatūros-filtras – klientui, kad jis perimtų pasirinktus klaviatūros įvykius, modifikuotų įvesties įvykius arba blokuotų tam tikrų įvykių perdavimą į fokusuotą „Wayland“ paviršių.
- Į etapų kategoriją pridėtas protokolas „xdg-session-management“, suteikiantis galimybę atkurti langų būseną ir padėtį po pertrauktos sesijos aplinkose, pagrįstose „Wayland“ protokolu, pavyzdžiui, po sudėtinio gedimo. serveris arba paraiškas.
- „Linux-dmabuf“ protokolas buvo atnaujintas, kad palaikytų sistemas su keliais GPU. Tokiose sistemose klientas gali derėtis dėl sudėtinio serveris kurį GPU reikėtų naudoti.
- „Color-management-v1“ protokolas buvo atnaujintas, kad palaikytų BT.2100 vaizdo metaduomenis, skirtus naudoti sudėtiniuose formatuose. serveris specialios tvarkyklės, leidžiančios teisingai rodyti sukurtą HDR turinį Windows.
Svarbūs įvykiai, susiję su Wayland nuo paskutinio numerio išleidimo:
- Cinamonas visiškai palaiko Waylandą.
- „Chrome“ naudojamoje ANGLE bibliotekoje ir AndroidPridėtas Wayland palaikymas.
- KDE, naudodama „Wayland“, įdiegia sesijos atkūrimo palaikymą ir „xx-fractional-scale-v2 Wayland“ protokolą trupmeniniam mastelio keitimui.
- „Synaptics X.Org“ tvarkyklės prievadas buvo sukurtas „Wayland“ pagrindu veikiančioms aplinkoms.
- Pradėtas VFX ir animacijos platformų pasirengimo X11 pakeitimui į Wayland patikrinimas.
- Pradėtas „Xfce“ projekto „Xfwl4“ sudėtinio serverio testavimas.
- „Unity“ vartotojo sąsaja buvo atkurta naudojant „Wayfire“ ir „Libadwaita“.
- Atnaujinti sudėtiniai serveriai ir darbalaukio aplinkos: 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.
Prisiminkime, kad „Wayland“ yra protokolas, skirtas sąveikai tarp komponavimo serverio ir jame veikiančių programų. Klientai savo langus pateikia atskirai atskirame buferyje, perduodami atnaujinimo informaciją komponavimo serveriui. serveris, kuris sujungia atskirų programų buferių turinį, kad sugeneruotų galutinę išvestį, atsižvelgdamas į galimus niuansus, tokius kaip langų persidengimas ir skaidrumas. Kitaip tariant, sudėtinis serveris nepateikia API atskirų elementų atvaizdavimui, o veikia tik su iš anksto atvaizduotais langais, todėl naudojant aukšto lygio bibliotekas, tokias kaip GTK ir Qt, kurios tvarko langų turinio komponavimo darbą, išvengiama dvigubo buferizavimo.
„Wayland“ išsprendžia daugelį „X11“ saugumo problemų „X.Org Server“, nes, skirtingai nei pastarasis, jis izoliuoja kiekvieno lango įvestį ir išvestį, neleidžia klientui pasiekti kitų klientų langų turinio ir neleidžia perimti su kitais langais susijusių įvesties įvykių („XLibre XServer“ įgyvendina „X11“ plėtinį „Xnamespace“, kuris užtikrina kliento izoliaciją atskyrus jį vardų erdvės lygmeniu). Palaikymas tiesioginiam darbui su „Wayland“ įdiegtas daugumoje platformų, naudojamų... Linux grafikos bibliotekos, įskaitant GTK, Qt, SDL, FLTK, wxWidgets, Clutter ir EFL (Apšvietos fondo biblioteka).
Sąveika su „Wayland“ / „Weston“ aparatine įranga, pvz., inicijavimas, vaizdo režimo perjungimas (DRM režimo nustatymas) ir atminties valdymas (GEM, skirtas „i915“, ir TTM, skirtas „Radeon“ ir „Nouveau“), vaizdo plokštėms, gali būti atliekama tiesiogiai per branduolio lygio modulį, todėl nereikia supervartotojo teisių. Siekiant užtikrinti standartinių X11 programų vykdymą „Wayland“ aplinkoje, naudojamas „XWayland“ (įrenginiui priklausantis X) DDX komponentas, kuris veikia panašiai kaip „Xwin“ ir „Xquartz“, skirti „Win32“. macOS.
Šaltinis: opennet.ru
