Pusstījus pēc sešu mēnešu izstrādes ir publicēta wayland-protocols 1.34 pakotne, kas satur protokolu un paplašinājumu kopumu, kas papildina pamata Wayland protokola iespējas un nodrošina funkcijas, kas nepieciešamas kompozīciju serveru un lietotāja vidēm.
Visi protokoli secīgi iziet trīs posmus — izstrāde, testēšana un stabilizācija. Pabeidzoties izstrādes posmam (kategorija «unstable»), protokols tiek pārvietots uz «staging» nozari un oficiāli iekļauts Wayland-protocols komplektā, bet pēc testēšanas pabeigšanas tas tiek pārvietots uz stabilo kategoriju. Protokoli no «staging» kategorijas jau var tikt izmantoti kompozīta serveros un klientos, kur nepieciešama saistītā funkcionalitāte. Atšķirībā no «unstable» kategorijas, «staging» ir aizliegts veikt izmaiņas, kas pārkāpj saderību, taču, ja testēšanas laikā tiek atklāti trūkumi, izslēgts nav jaunas ievērojamas protokola versijas vai cita Wayland paplašinājuma nomaiņa.
Jaunajā versijā piedāvāti vairāki jauni protokoli, kas iekļauti «staging» kategorijā:
- «xdg-toplevel-drag» — paplašina «drag & drop» mehānismu ar iespēju pievienot augstākā līmeņa logus pārvietošanas operācijai, ko var izmantot, piemēram, lai organizētu rīkjoslu vai pārlūkprogrammas cilņu pārvilkšanu ar peles palīdzību. Jaunais protokols ļauj izveidot atvienojamas loga daļas, kas, pārvilkta no šī loga, kļūst par jauniem logiem un var pārvietoties virs esošā loga, pirms tiek atkārtoti pievienotas.
- «xdg-dialog» — ļauj piešķirt augstākā līmeņa virsmām dialogu logiem specifiskus parametrus, piemēram, var izveidot modālos dialogus, kas bloķē lietotāja mijiedarbību ar pārējo interfeisu.
- «linux-drm-syncobj» — sniedz rīkus, lai skaidri sinhronizētu buferus, izmantojot DRM (Direct Rendering Manager) sinhronizācijas objektus. Tiek pieņemts, ka šis protokols, kas paredzēts sinhronizēšanai buferu attēlošanas procesā, uzlabos darbu ar Vulkan un OpenGL grafiskajiem API pamata vadītājiem (implementācija balstās uz vadītāju apstrādātājiem). Jaunais protokols ļauj pārliecināties, ka attēlošanas operācija buferī ir pabeigta pirms kompozīcija menedžers attēlo šo buferi.
Šobrīd wayland-protocols iekļauj šādus stabilus protokolus, kuros nodrošināta atpakaļsaderība:
- «viewporter» — ļauj klientam veikt darbības par mērogošanu un malas apgriešanu virsmas pusē servera.
- «presentation-time» — nodrošina video attēlošanu.
- «xdg-shell» — interfeiss virsmu izveidei un mijiedarbībai kā ar logiem, kas ļauj tās pārvietot pa ekrānu, minimizēt, maksimizēt, mainīt izmēru utt.
- «linux-dmabuf» — nodrošina vairāku grafisko karšu koplietošanu, izmantojot DMA-BUF tehnoloģiju (ļauj izveidot wl_buffer, pamatojoties uz DMA-BUF).
Protokoli, kas tiek testēti «staging» atzarā:
- drm-lease — nodrošina resursus, kas nepieciešami stereoskāras attēla veidošanai ar dažādiem buferiem kreisajam un labajam acs attēlam virtuālās realitātes brillēm.
- «ext-session-lock» — nosaka sesiju bloķēšanas līdzekļus, piemēram, ekrāna aizsargprogrammas laikā vai autentifikācijas dialoga izvadē.
- «single-pixel-buffer» — ļauj izveidot vienas pikseļa buferus, kas sastāv no četriem 32-bitu RGBA vērtībām.
- «xdg-activation» — ļauj pārnest fokusu starp dažādām pirmā līmeņa virsmām (piemēram, ar xdg-activation viena lietojumprogramma var pārsūtīt fokusu uz citu).
- content-type — ļauj klientiem pārsūtīt kompozītmateriāla serverim informāciju par attēlotajiem materiāliem, ko var izmantot, lai optimizētu uzvedību attiecībā uz saturu, piemēram, specifisku DRM īpašību noteikšanai, piemēram, «content type». Ir paziņota atbalsta sniegšana šādiem satura veidiem: none (nav informācijas par datu tipiem), photo (digitālo fotoattēlu attēlošana, kam nepieciešama minimāla apstrāde), video (video vai animācija, kas prasa precīzāku sinhronizāciju, lai novērstu aizkavēšanos) un game (spēļu uzsākšana, kas prasa attēlošanu ar minimālu aizturi).
- ext-idle-notify — ļauj kompozītu serveriem nosūtīt klientiem paziņojumus par lietotāja neaktivitāti, ko var izmantot, lai aktivizētu papildu enerģijas taupīšanas režīmus pēc noteikta neaktivitātes laika.
- tearing-control — ļauj atslēgt vertikālo sinhronizāciju (VSync) pilnekrāna lietojumprogrammās ar kadru iznīcināšanas impulsu, kas tiek izmantots, lai novērstu asarošanu attēlā. Multimediālos lietojumos asarošanas artefaktu parādīšanās ir nevēlams efekts, bet spēļu programmās šo artefaktu klātbūtne ir pieņemama, ja to novēršana noved pie papildu aiztures.
- ext-foreign-toplevel-list — iegūst informāciju par virsotnēm, kas izvietotas augstākajā līmenī (toplevel), kas ļauj organizēt logu piesaisti virs cita satura, piemēram, savienojot savas paneļus un logu slēdzējus.
- security-context — ļauj identificēt klientus, kas izmanto sand-box izolāciju. Klients var reģistrēt jaunu savienojumu ar kompozītu serveri, kas balstās uz Wayland, un pievienot tam drošības kontekstu, pēc kura, pamatojoties uz norādīto drošības kontekstu, kompozītu menedžeris ierobežos iespējas, kas pieejamas iestatītajam savienojumam.
- cursor-shape — alternatīvs veids, kā pielāgot kursora izskatu, balstoties uz kursora attēlu sērijas pārsūtīšanu, nevis piesaistot to virsotnei (wl_surface).
- „ext-transient-seat” — paredzēts pagaidu neatkarīgu sesiju (seat) izveidei, kas paredzēta lietošanai ar virtuālajiem ievades ierīcēm. Piemēram, iespējo piekļuvi attālinātam darbvirsmai protokols ļauj katram lietotājam izveidot atsevišķu sesiju ar virtuālo tastatūru un peli.
Protokoli, kas tiek izstrādāti «unstable» zarā:
- «fullscreen-shell» — pilnekrāna režīma vadība.
- «input-method» — ievades metožu apstrāde.
- «idle-inhibit» — ekrāna saudzētāja (screensaver) palaišanas bloķēšana.
- «input-timestamps» — ievades notikumu un laika zīmes.
- «keyboard-shortcuts-inhibit» — kontroles taustiņu kombināciju un īsceļu piesaistes.
- «linux-explicit-synchronization» — Linux specifisks buferu sinhronizācijas mehānisms, kas saistīts ar virsmu.
- «pointer-gestures» — kontrole no skārienekrāniem.
- «pointer constraints» — rādītāju ierobežojumi (bloķēšana).
- «primary-selection» — līdzīgi kā X11 nodrošina primārā starpbuferu (primary selection) darbību, informācijas ielīmēšana parasti notiek ar vidējo peles pogu.
- «relative pointer events» — relatīvie rādītāju notikumi.
- tablet — atbalsts ievadam no planšetdatoriem.
- «text-input» — tekstu ievades organizācija.
- «xdg-foreign» — interfeiss mijiedarbībai ar «kaimiņu» klienta virsmām.
- «xdg-decoration» — logu noformējuma atveidošana servera pusē.
- «xdg-output» — papildu informācija par video izeju (izmanto, lai veiktu daļēju mērogošanu).
- «xwayland-keyboard-grab» — ievades uztveršana XWayland lietotnēs.
Avots: opennet.lv
