Ilmunud on wayland-protocols paketi 1.45 vÀljaanne, mis sisaldab protokollide ja laienduste kogumit, mis tÀiendab pÔhivalikute protokolli Wayland ning pakub funktsioone, mis on vajalikud komposiitserverite ja kasutajakeskkondade loomisel.
Wayland-Protocols 1.45 sisaldab 4 uut protokolli (kaks kategoorias âstagingâ ja kaks eksperimentealset):
- ext-background-effect â efektide rakendamine poollĂ€bipaistvatele Waylandi pindadele, nagu nĂ€iteks tausta hĂ€gustamine.
- pointer-warp â vĂ”imaldab rakendusel koheselt tĂ”sta kursori mÀÀratud positsiooni.
- session-management â akende olekute taastamine katkestatud seansside puhul (nĂ€iteks pĂ€rast komposiitmanageri rikke).
- input-method â uue protokolli arendamine tekstisisestusmeetodite kasutamiseks.
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â â mĂ”eldud ajutistele sĂ”ltumatutele seansside loomisele (seat), mis on mĂ”eldud kasutamiseks koos virtuaalsete sisendseadmetega. NĂ€iteks vĂ”imaluse rakendamisel ĂŒhenduda eemaldatud töölauale protokoll vĂ”imaldab luua iga kasutaja jaoks eraldi seansi koos 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.
- vĂ€rvihalduse â pakub vĂ”imalusi vĂ€rvi juhtimiseks ja kĂ”rge dĂŒnaamilise ulatuse (HDR, High Dynamic Range) toe jaoks. Lisatud laienduse abil saavad kliendi rakendused teavet vĂ€rviedastusomadustega vĂ€ljundseadmete kohta ning edastavad komposiitserverile andmeid oma sisu vĂ€rviedastuse omaduste kohta. Komposiitserveris vĂ”ib seda teavet kasutada vĂ€rvi automaatseks haldamiseks sisu kuvamisel erinevates vĂ€ljundseadmetes, nĂ€iteks sisu konverteerimiseks, et see sobiks HDR-monitoridel kuvamiseks. VĂ€rviruumide kirjeldamiseks kasutatakse ICC-profiile.
- xdg-toplevel-tag â vĂ”imaldab Waylandi kliente lisada silte ĂŒlemise taseme pindadele, mida komposiitserver saab kasutada akende tuvastamiseks pĂ€rast rakenduse taaskĂ€ivitamist (nĂ€iteks rakendus vĂ”ib mÀÀrata silte âpeamine akenâ ja âseadedâ peamise akna ja seadete akna jaoks). Selline tuvastamine on kasulik akende positsiooni, suuruse ja omaduste taastamiseks pĂ€rast taaskĂ€ivitamist ning ĂŒksikute aknatĂŒĂŒpide jaoks erireeglite mÀÀratlemiseks.
- color-representation â Waylandi pinna vĂ€rvi esindamise mÀÀratlemine. Waylandi kliendid saavad edastada metaandmeid, mis on vajalikud lĂ€bipaistvuse, vĂ€rvimudeli, alldiskriptsiooni ja kvantimise vahemiku mÀÀramiseks, ning rakendatakse andmepuudumise muundamisel, mis vastab YCbCr vĂ€rvimudelile, RGB esindusse.
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
