Avaldati Wayland-protocols 1.42 paketiväljaanne, mis sisaldab komplekti protokolle ja laiendusi, mis täiustavad põhiprotokolli Wayland ning pakuvad vajalikku funktsionaalsust komposiitserverite ja kasutajakeskkondade loomiseks.
Wayland-Protocols 1.42-s on esitatud uus «cursor-shape» protokolliversioon, mis laiendab kursori välimuse kujundamise võimalusi, lisades toe kursori kuju indikaatoritega (küsimärk) ja suuruse muutmiseks. Samuti on värskendatud «tablet» protokolli, mis pakub funktsionaalsust graafiliste pliiatsite sisestuseks. Uues tablet protokolli versioonis on lisatud toe sündmustele «bustype» ja rakendatud võimalus pöördselementidelt saadud sündmuste töötlemiseks, edastades suhtelisi muudatusi sarnaselt hiire kerimismeesani.
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).
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 vahede eksplicitseks sünkroonimiseks DRM (Direct Rendering Manager) sünkroonimise objektide abil. Eeldatakse, et sünkroonimise kontekstis võimaldab pakutud protokoll parandada koostööd Vulkan ja OpenGL graafikapiidiga töötavate draiveritega (rakendusel põhinev draiverites töötlejatel). Uus protokoll võimaldab veenduda, et puhverdamise joonistamise operatsioon on lõpetatud enne, kui komposiitmanager kuvab antud puhvri.
- 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.
- color-management — pakub värvi haldamise võimalusi ja toetab laiendatud dünaamilise helitugevuse ulatust (HDR, High Dynamic Range). Lisandiga saavad kliendirakendused teavet värviedastuse omadustega väljundseadmest ja edastavad komposiitserverile oma sisu värviedastuse omadusi. 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.
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.
Allikas: opennet.ru
