Välja on antud Wayland-Protokollide 1.41 paketiväljaanne, mis sisaldab protokollide ja laiendite kogumit, mis täiendab põhiprotokolli Wayland ning pakkuda komposiitserverite ja kasutajakeskkondade loomiseks vajalikke funktsioone.
Uues versioonis on kategooriasse 'staging' lisatud värvihalduse protokoll, mis on arendamisel alates 2014. aastast ja pakub värvihalduse ning HDR-i (High Dynamic Range) toe võimalusi. Lisatud laiendi abil saavad kliendi rakendused teavet värviedastusega seotud väljundseadmete omaduste kohta ning edastavad komposiitserverile andmeid oma sisu värviedastusomaduste kohta. Komposiit- serveril seda teavet saab kasutada automaatseks värvi juhtimiseks sisu kuvamisel erinevates väljundseadmetes, näiteks sisu konvertimiseks, et see sobiks HDR-monitori kuvamiseks. Värviruume kirjeldatakse ICC-profiilide abil.
Praegu kuuluvad wayland-protocols komplekti järgmised stabiilsed protokollid, mis tagavad tagurpidi ühilduvuse:
- „viewporter” — võimaldab kliendil teostada serveri poolelt pindade skaleerimist ja servade kärpimist.
- «presentation-time» — tagab video esitamise.
- «xdg-shell» — liidese loomine ja suhtlemine pindadega kui akendega, võimaldades neid ekraanil liigutada, minimeerida, maksimeerida, suurust muuta jne.
- «linux-dmabuf» — võimaldab luua wl_buffer-e, mis põhinevad DMA-BUF-il.
- «tablet» — sisendi korraldamine graafilistelt tahvelarvutilt.
Protokollid, mida katsetatakse «staging» harus:
- drm-lease — pakub ressursid, mis on vajalikud stereopildi kujundamiseks erinevate puhversüsteemidega vasaku ja parema silma jaoks virtuaalreaalsuse peakomplektide jaoks.
- «ext-session-lock» — määratleb seansi lukustamise vahendid, näiteks ekraanisäästja töö ajal või autentimisdialooge kuvates.
- «single-pixel-buffer» — võimaldab luua ühe piksliga puhversüsteeme, mis sisaldavad nelja 32-bitist RGBA väärtust.
- «xdg-activation» — võimaldab edastada fookust erinevate esmaklassiliste pindade vahel (näiteks võib üks rakendus kasutada xdg-activation'i, et suunata fookus teisele).
- content-type — võimaldab klientidel edastada ühendatud serverile teavet kuvatava sisu kohta, mida saab kasutada sisu põhjaliku käitumise optimeerimiseks, näiteks konkreetsete DRM-omaduste, nagu "content type", seadistamiseks. Toetatakse järgmisi sisu tüüpe: none (ei ole andmeid andmetüübi kohta), photo (digitaalsete fotode esitus, mis nõuab minimaalset töötlemist), video (video või animatsioon, mis vajab täpsemat sünkroniseerimist, et vältida viivitusi) ja game (mängude käivitamine, mis vajab minimaalset hilinemist).
- ext-idle-notify — võimaldab komposiitserveritel edastada klientidele teateid kasutaja mitteaktiivsuse kohta, mida saab kasutada täiendavate energiasäästurežiimide aktiveerimiseks teatud aja jooksul mitteaktiivsuse korral.
- tearing-control — võimaldab välja lülitada vertikaalse sünkroniseerimise (VSync) kaaderpideva impulsi tõttu, mida kasutatakse lõhenemise (tearing) vältimiseks. Multimeedia rakendustes on lõhenemisest tingitud artefaktid ebasoovitav nähtus, kuid mängurakendustes on artefaktidega võimalik leppida, kui nende kõrvaldamine toob kaasa täiendavaid viivitusi.
- ext-foreign-toplevel-list — teabe saamine kõige kõrgemal tasemel (toplevel) asuvatest pindadest, mis võimaldavad akende kinnitamist teise sisu peale, näiteks oma paneelide ja akna lülitite ühendamiseks.
- security-context — võimaldab tuvastada kliente, kes kasutavad sandbox-isolatsiooni. Klient saab registreerida uue ühenduse Waylandi-põhise komposiitserveriga ja kinnitada sellele turvakonteksti, mille alusel piirab komposiitjuht vastavalt määratud turvakontekstile selle ühenduse võimalusi.
- cursor-shape — alternatiivne viis kursori välimuse seadmiseks, mis põhineb kursori piltide seeria edastamisel, mitte pinnaga (wl_surface) sidumisel.
- «ext-transient-seat» — on loodud ajutiste iseseisvate sessioonide (seat) loomiseks, mida saab kasutada koos virtuaalsete sisendseadmetega. Näiteks, kui rakendada kaugdesktopi ühendamise võimalust, võimaldab protokoll igale kasutajale eraldi sessiooni loomist virtuaalse klaviatuuri ja hiirega.
- «xdg-toplevel-drag» — laiendab „drag & drop” mehhanismi võimalusega kinnitada kõrgema taseme aknaid liikumise operatsiooni juurde, mida saab kasutada näiteks tööriistaribade või brauseri vahelehtede hiirega tõmbamiseks. Uus protokoll võimaldab luua eralduvaid akna osi, mis tõukamise korral muutuvad uuteks akendeks ja võivad liikuda olemasoleva akna kohal enne, kui need uuesti kinnitatakse.
- «xdg-dialog» — võimaldab määrata kõrgema taseme pindadele dialoogidele spetsiifilisi atribuute, näiteks saab luua modaaldialooge, mis blokeerivad kasutaja interaktsiooni ülejäänud kasutajaliidese osadega.
- «linux-drm-syncobj» — pakub tööriistu selgeks synchroniseerimiseks bufferite kasutades DRM (Direct Rendering Manager) synchroniseerimisobjekte. Eeldatakse, et pakkuda kitsenearvestuse tõhusust Vulkan ja OpenGL graafikalisüsteemidele (implmentatsioon tugineb draiverite käitlejatele). Uus protokoll annab võimaluse veenduda, et bufferisse renderdamise operatsioon on lõpule viidud enne, kui komposiitmenedžer kuvab antud bufferi.
- alpha-modifier, mis võimaldab klientidel muuta pinna läbipaistvuse taset ja suunata läbipaistvuse tagamise toimingud komposiitserverisse, mis omakorda võib need toimingud edasi suunata KMS-ile.
- xdg-toplevel-icon — ikooni seostamine ülemise taseme aknaga.
- ext-image-capture-source ja ext-image-copy-capture — sisu haaramise korraldamine, mis kuvatakse ekraanil.
- xdg-system-bell — võimaldab kuvada süsteemi signaali, mida saab kasutada näiteks terminaliemulaatorite hoiatamiseks. Signaali väljundivorm sõltub komposiitide haldurist, see võib olla mitte ainult heli, vaid ka visuaalne tagasiside.
- fifo — rakendab FIFO-mehhanismi (esimene sisse - esimene välja) sisu värskendamise järjekorra töötlemiseks. Praktilisest küljest võimaldab protokoll väljundi korral kasutada vertikaalse skaneerimise (vblank) lõpulewaitingut, mitte callback-kutseid iga kord, kui uus kaader on valmis kuvamiseks, mis lahendab GPU ülekoormuse probleemi VSync'i kasutamisel.
- commit-timing — võimaldab siduda ajapiirangu sisu pinnaga (komposiitserver peab muutuste sisu kuvama võimalikult kiiresti pärast määratud aega, kuid mitte varem).
- ext-data-control — võimaldab privileege saanud klientidel hallata andmete töötlemist, näiteks lõikelauahalduse rakendamiseks.
- ext-workspace — rakendab kontseptsiooni virtuaalsed töölaudade ja pakub teavet töölaudade oleku kohta ning võimalusi töölaudade aktiveerimiseks ja deaktiveerimiseks. Protokolli saab kasutada paneelide ja indikaatorite loomiseks, mis kuvavad saadaval olevate virtuaalsete töölaudade loendit ja võimaldavad nende vahel vahetada.
Protokollid, mida arendatakse 'unstable' harus:
- «fullscreen-shell» — täisekraanirežiimi juhtimine.
- «input-method» — sisendmeetodite töötlemine.
- «idle-inhibit» — ekraanisäästja (screensaver) käivitamise blokeerimine.
- «input-timestamps» — sisendi sündmuste ajatempli märgid.
- «keyboard-shortcuts-inhibit» — klahvikombinatsioonide ja otsetee juhtimine.
- «linux-explicit-synchronization» — Linuxile spetsiifiline puhverite sünkroniseerimise mehhanism, mis on seotud pinna(tilde)ga.
- «pointer-gestures» — juhtimine puutetundlikelt ekraanidelt.
- «pointer constraints» — näidikute piirangud (blokeerimine).
- «primary-selection» — nagu X11, toetab primaarset lõikelauasüsteemi (primary selection), mille sisu sisestamine toimub tavaliselt hiire keskmise nupuga.
- «relative pointer events» — suhtelised pointer'i sündmused.
- «text-input» — teksti sisestamise korraldamine.
- «xdg-foreign» — liidese suhtlemine naaber kliendi pindadega.
- «xdg-decoration» — akende kaunistuste joonistamine serveri küljes.
- «xdg-output» — täiendavad andmed video väljundi kohta (kasutatakse jagatud skaleerimise puhul).
- «xwayland-keyboard-grab» — sisendi haaramine XWayland rakendustes.
Kõik protokollid läbivad järjestikku arendus-, testimis- ja stabiliseerimisfaasid. Pärast arendusstaadiumi lõppemist (kategooria „unstable”) paigutatakse protokoll „staging” haru ja see lisatakse ametlikult wayland-protocols komplekti. Pärast testimise lõpetamist liigutatakse see stabiilsete kategooriasse. Protokolle, mis kuuluvad kategooriasse „staging”, saab juba kasutada komposiitserverites ja klientides, kus on vajalik seotud funktsionaalsus. Erinevalt kategooriast „unstable” on „staging’is” kehtestatud muudatuste tegemise piirangud, mis rikuvad ühilduvust. Kuid testimise käigus ilmnenud probleemide ja puuduste korral ei ole välistatud, et protokoll asendatakse uue olulisema versiooniga või mõne muu Waylandi laiendusega.
Protokollide arendajatele edastamise kiirendamiseks ja varase rakendamise soodustamiseks olemasolevates projektides on alates eelmisest väljaandest lisatud etapp «experimental», kus lubatakse muutusi, mis rikuvad ühilduvust, ning tooreid protokolle, mida saab järk-järgult täiustada. Kui protokoll peab etappi «staging» jõudmiseks nõudma toetav meeskond ja teatud arv kinnitusi (ACK) ülevaatajatelt, siis etappi «experimental» pääsemiseks piisab kahe nädala jooksul overvaatamise ajal vastuväidete puudumisest (NACK).
Allikas: opennet.ru
