Izsludināts Wayland-protocols 1.42 izlaidums, kas satur protokolu un paplašinājumu kopumu, kas papildina pamatu protokolu Wayland un nodrošina iespējas, kas nepieciešamas kompozīcijas serveru un lietotāja vidi izveidošanai.
Wayland-Protocols 1.42 piedāvā jaunu 'cursor-shape' protokola versiju, kas paplašina kursora ārējā izskata veidošanas iespējas, pievienojot atbalstu kursora formām ar informācijas saņemšanas indikatoriem (uzdotā zīme) un izmēra maiņu. Tāpat ir atjaunināta 'tablet' protokola versija, kas nodrošina iespējām grafisko planššu ievadei. Jaunajā tablet protokola versijā ir pievienots 'bustype' notikumu atbalsts un realizēta iespēja apstrādāt notikumus no pagriežamajiem elementiem ar relatīvo izmaiņu nodošanu, līdzīgi kā pele.
Visi protokoli secīgi pāriet attīstības, testēšanas un stabilizācijas fāzēs. Pabeidzot attīstības posmu (kategorija „unstable”), protokols tiek pārcelts uz „staging” filiāli un oficiāli tiek iekļauts wayland-protocols kopumā, pēc tam, kad testēšana ir pabeigta, tas tiek pārvietots uz stabilo kategoriju. Protokolus no „staging” kategorijas jau var izmantot kompozīto serveru un klientu izstrādē, kur ir nepieciešama attiecīgā funkcionalitāte. Atšķirībā no „unstable” kategorijas, „staging” fāzē nav atļautas izmaiņas, kas pārkāpj saderību, taču, ja testēšanas procesā tiek konstatēti problēmas un nepilnības, nav izslēgta esoša būtiska protokola versijas vai cita Wayland-paplašinājuma maiņa.
Lai paātrinātu protokolu nodošanu izstrādātājiem un veicinātu agrāku protokolu ieviešanu esošajos projektos, sākot no aizpagājušā izdevuma, tika pievienota "eksperimentālā" fāze, kurā ir atļautas izmaiņas, kas pārkāpj saderību, un "neapakšējo" protokolu pievienošana, kurus var pakāpeniski attīstīt līdz atbilstošam līmenim. Ja protokola iekļaušana "pagaidu" fāzē prasa atbalsta komandas izveidi un noteikta apstiprinājumu (ACK) skaita iegūšanu no recenzentiem, tad, lai iekļautos "eksperimentālajā" fāzē, ir pietiekami, lai divu nedēļu recenzēšanas laikā nebūtu iebildumu (NACK).
Pašlaik Wayland-protocols kopumā ietilpst šādi stabilie protokoli, kas nodrošina atpakaļejošu saderību:
- «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, kas ļauj izveidot un mijiedarboties ar virsmām kā ar logiem, ļaujot tās pārvietot pa ekrānu, minimizēt, maksimizēt, mainīt izmēru utt.
- «linux-dmabuf» — nodrošina iespējas izveidot wl_buffer uz DMA-BUF bāzes.
- «tablet» — ievade no grafiskajiem planšetdatoriem.
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 nodot kompozīcijas serverim informāciju par attēlojamo saturu, kas var tikt izmantota, lai optimizētu uzvedību atbilstoši saturam, piemēram, lai uzstādītu specifiskas DRM īpašības, piemēram, «content type». Tiek deklarēts atbalsts šādiem satura veidiem: none (nenotiek informācija par datu tipu), photo (digitālo fotogrāfiju attēlošana, kam nepieciešama minimāla apstrāde), video (video vai animācija, nepieciešama precīzāka sinhronizācija, lai novērstu aizkavēšanos) un game (spēļu palaišana, nepieciešams attēlojums ar minimālo 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, lai izveidotu pagaidu neatkarīgas sesijas (seat), kas paredzētas lietošanai kopā ar virtuālajiem ievades ierīcēm. Piemēram, īstenojot tālvadības darba galda iespēju, protokols ļauj izveidot katram lietotājam atsevišķu sesiju ar virtuālo tastatūru un peli.
- «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 veiktu skaidru buferu sinhronizāciju, izmantojot DRM (Direct Rendering Manager) sinhronizācijas objektus. Tiek paredzēts, ka piedāvātais protokols uzlabos darbu ar Vulkan un OpenGL grafisko API bāzes draiveriem, sinhronizācijas kontekstā, kad tiek attēlots buferis (realizācija balstās uz draiveru apstrādātājiem). Jaunais protokols nodrošina iespēju pārliecināties, ka attēlošanas operācija buferī ir pabeigta pirms kompozīta menedžera šī bufera attēlošanas.
- alpha-modifier, kas ļauj klientiem mainīt virsmas caurspīdīguma līmeni un pārnest caurspīdīguma nodrošināšanas operācijas uz kompozīcijas servera pusi, kas var pāradresēt šīs operācijas KMS.
- xdg-toplevel-icon — ikonas piesaiste augstākā līmeņa logam.
- ext-image-capture-source un ext-image-copy-capture — satura uztveršana, kas tiek attēlota ekrānā.
- xdg-system-bell — ļauj izvadīt sistēmas signālu, ko var izmantot, piemēram, kā brīdinājumu termināla emulatorā. Signāla iznākuma forma tiek noteikta kompozīcijas menedžera ieskatos, tas var būt ne tikai skaņa, bet arī vizuāla atbilde.
- fifo — īsteno FIFO mehānismu (pirmais ieradās — pirmais aizgāja) attēlojamās virsmas saturu atjaunošanas rindu apstrādei. Praktiski šis protokols ļauj izvadē izmantot vertikālo sinhronizāciju (vblank) gaidīšanu, kas risina problēmu ar augstu slodzi uz GPU, izmantojot VSync, vietā, kurā callback izsaukumi tiek izmantoti katras jaunā kadra gatavības laikā.
- commit-timing — ļauj piešķirt laika ierobežojumu virsmas saturam (kompozīcijas serverim jāattēlo izmaiņas saturā, cik drīz vien iespējams, noteiktā laikā, bet ne ātrāk).
- ext-data-control — ļauj privileģētiem klientiem pārvaldīt datu apstrādi, piemēram, starpniekbuferu pārvaldītāju īstenošanai.
- ext-workspace — īsteno koncepciju uz virtuālām darbvirsmām un piedāvā notikumus ar informāciju par darba virsmu stāvokli, kā arī iespējas aktivizēt un deaktīvēt darba virsmas. Protokols var tikt izmantots, lai izveidotu paneļus un indikatorus, kas parāda pieejamo virtuālo darba virsmu sarakstu un ļauj starp tām pārslēgties.
- color-management — nodrošina krāsu vadības iespējas un atbalsta paplašināto dinamisko spožuma diapazonu (HDR, High Dynamic Range). Ar pievienoto paplašinājumu klientu lietojumprogrammas var iegūt informāciju par iekārtu krāsu pārraides īpašībām un nodot kompozīcijas serverim datus par savu saturu krāsu pārraides īpašībām. Kompozīcijā serveri šī informācija var tikt izmantota automātiskai krāsu pārvaldībai saturam attēlojot uz dažādām izejas ierīcēm, piemēram, lai pārveidotu saturu, padarot to piemērotu attēlošanai HDR monitoros. Krāsu telpu aprakstīšanai tiek izmantoti ICC profili.
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.
- «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
