KÀes on Wayland-protokollide 1.43 vÀljaanne, mis sisaldab protokollide ja laiendite kogumit, mis tÀiendavad pÔhiprotokolli Wayland ja pakuvad vÔimalusi, mis on vajalikud komposiitserverite ja kasutajakeskkondade loomiseks.
Wayland-Protocols 1.43-sse on lisatud uus protokoll «xdg-toplevel-tag», mis vĂ”imaldab Wayland-klientidel kinnitada sildid ĂŒlemise taseme pindadele, mida komposiitserver saab kasutada akende tuvastamiseks pĂ€rast rakenduse taaskĂ€ivitamist (nĂ€iteks rakendus vĂ”ib seada sildid «peamine aken» ja «seaded» peamise akna ja seadeakna jaoks). Selline tuvastamine on kasulik akende asukoha, suuruse ja omaduste taastamiseks pĂ€rast taaskĂ€ivitamist, samuti erireeglite mÀÀramiseks eri tĂŒĂŒpi akende jaoks.
Teistest tĂ€iustustest tasub mĂ€rkida, et xdg-shell protokolli on lisatud teavet ĂŒlemise taseme pinna servadega tehingute piirangute kohta, mida komposiitmĂ€nedĆŸer saab kasutada Wayland-klientide teavitamiseks kehtivatest piirangutest, nĂ€iteks kas aknad vĂ”ivad oma suurust muuta vĂ”i mitte.
KĂ”ik protokollid lĂ€bivad arendamise, testimise ja stabiliseerimise etapid. PĂ€rast arendusetapi (kategooria "unstable") lĂ”petamist pannakse protokoll "staging" harusse ja see lisatakse ametlikult wayland-protokollide kogusse, ning pĂ€rast testimise lĂ”petamist liigutatakse see stabiilsete kategooria alla. Protokolle kategooriast "staging" saab juba kasutada komposiitserverites ja klientides, kus on vajalikud nendega seotud funktsioonid. Erinevalt kategooriast "unstable" on kategoorias "staging" keelatud teha muudatusi, mis rikuvad ĂŒhilduvust, kuid kui testimise kĂ€igus tuvastatakse probleeme ja puudujÀÀke, ei ole vĂ€listatud olulise uue protokolli versiooni vĂ”i muu Wayland-pikenduse asendamine.
Protokoogide arendamise kiirusel ja olemasolevatesse projektidesse varajase rakendamise julgustamiseks on alates eelmisest vĂ€ljaandest lisatud "experimental" etapp, kus on lubatud teha ĂŒhilduvust rikkuvaid muudatusi ja lisada "toored" protokollid, mida saab jĂ€rk-jĂ€rgult viia nĂ”utud tasemele. Kui protokolli viimine "staging" etappi nĂ”uab tugimeeskonna vormimist ja teatud arvu kinnituste (ACK) kogumist ĂŒlevaatajate osalistelt, siis "experimental" etappi pÀÀsemiseks piisab kahe nĂ€dala ĂŒlevaatusperioodi jooksul vastuvĂ€idete (NACK) puudumisest.
Praegu kuuluvad wayland-protocols komplekti jĂ€rgmised stabiilsed protokollid, mis tagavad tagasiside ĂŒhilduvuse:
- âviewporterâ â vĂ”imaldab kliendil teostada mÔÔtkava ja pindade servade lĂ”ikamise toiminguid serveri poolel.
- âpresentation-timeâ â tagab video kuvamise.
- «xdg-shell» â liides, mis vĂ”imaldab luua ja suhelda pindadega nagu akendega, vĂ”imaldades neid ekraanil liigutada, minimeerida, maksimeerida, suurust muuta jne.
- «linux-dmabuf» â pakub vĂ”imalusi wl_bufferite loomiseks DMA-BUF-i pĂ”hjal.
- âtabletâ â sisenemine graafikaplaneedi kaudu.
Protokollid, mis on testimisel âstagingâ harus:
- drm-lease â pakub ressursse, mis on vajalikud stereopildi loomisel, kasutades erinevaid puhvireid vasaku ja parema silma jaoks virtuaalsete prillide kuvamiseks.
- «ext-session-lock» â mÀÀrab seansilist lukustamise mehhanismi, nĂ€iteks ekraanilooja töö ajal vĂ”i autentimisdialooge avades.
- «single-pixel-buffer» â lubab luua ĂŒhe piksliga puhver, mis sisaldab nelja 32-bitist RGBA vÀÀrtust.
- «xdg-activation» â vĂ”imaldab fookuse edastamist erinevate esmaklassiliste pindade vahel (nĂ€iteks xdg-activation abil saab ĂŒks rakendus suunata tĂ€helepanu teisele).
- content-type â vĂ”imaldab klientidel edastada koostööpinnale teavet kuvatava sisu kohta, mida saab kasutada sisu jĂ€rgi kĂ€itumise optimeerimiseks, nĂ€iteks spetsiifiliste DRM-omaduste nagu «content type» seadmiseks. Toetatud on jĂ€rgmist tĂŒĂŒpi sisu: none (pole teavet andmete tĂŒĂŒbi kohta), photo (digitaalsete fotode kuvamine, mis vajab minimaalset töötlemist), video (video vĂ”i animatsioon, vajab tĂ€psemat sĂŒnkroniseerimist, et vĂ€ltida kaadrikadu) ja game (mĂ€ngude kĂ€ivitamine, vajab vĂ€ljundit minimaalsete viivitustega).
- ext-idle-notify â vĂ”imaldab komposiitserveritel edastada klientidele teateid kasutaja mitteaktiivsuse kohta, mida saab kasutada tĂ€iendavate energiasÀÀstureĆŸiimide aktiveerimiseks pĂ€rast teatavat aega mitteaktiivsust.
- tearing-control â lubab tĂ€ielikult ekraanil rakendustes keelata vertikaalse sĂŒnkroonimise (VSync) kaadri hÀÀldavate impulssidega, mida kasutatakse rebendite (tearing) vĂ€ltimiseks kuvamisel. Multimeedia rakendustes rebendite tĂ”ttu tekkivad artefaktid on soovimatu efekt, kuid mĂ€ngurakendustes on artefaktidega vĂ”imalik leppida, kui nende vastu vĂ”itlemine toob kaasa lisaviivitusi.
- ext-foreign-toplevel-list â vĂ”imaldab saada teavet ĂŒlalmise (toplevel) pindade kohta, mis vĂ”imaldavad korraldada akende kinnitamist muu sisu kohal, nĂ€iteks oma paneelide ja akna lĂŒlitite ĂŒhendamiseks.
- security-context â vĂ”imaldab tuvastada kliente, kes kasutavad sandbox-isoleerimist. Klient saab registreerida uue ĂŒhenduse Waylandi pĂ”hisel komposiitserveriga ja kinnitada sellele turvakonteksti, mille jĂ€rel komposiitmanager piirdub turvakonteksti alusel seatud piirangutega loodud ĂŒhenduse jaoks.
- cursor-shape â alternatiivne meetod kursori vĂ€limuse kohandamiseks, mis pĂ”hineb sarja kursori piltide edastamisel, mitte pinna (wl_surface) sidumisel.
- «ext-transient-seat» â mĂ”eldud ajutiste iseseisvate seansside (seat) loomiseks, mis on mĂ”eldud koos virtuaalsete sisendseadmetega kasutamiseks. NĂ€iteks, kui rakendatakse vĂ”imalust ĂŒhenduda kaug töölaudaga, vĂ”imaldab protokoll luua iga kasutaja jaoks eraldi seansi virtuaalse klaviatuuri ja hiirega.
- «xdg-toplevel-drag» â laiendab «drag & drop» mehhanismi vĂ”imalusega kinnitada ĂŒlemise taseme aknaid liikumisoperatsioonile, mida saab kasutada nĂ€iteks tööriistaribade vĂ”i brauseri vahekaartide lohistamiseks. Uus protokoll vĂ”imaldab luua lahti ĂŒhendatavaid aknaosi, mis lohistamise korral muutuvad uuteks aken ja vĂ”ivad liikuda olemasoleva akna kohal enne uuesti kinnitamist.
- «xdg-dialog» â vĂ”imaldab mÀÀrata ĂŒlemise taseme pindadele dialoogide jaoks spetsiifilisi omadusi, nĂ€iteks saab luua modaalsete dialooge, mis blokeerivad kasutaja interaktsiooni ĂŒlejÀÀnud liidesega.
- «linux-drm-syncobj» â pakub tööriistu, et teostada selget sĂŒnkroniseerimist puhversalvestuse jaoks DRM (Direct Rendering Manager) sĂŒnkroonimisseente abil. Eeldatakse, et joonistamise sĂŒnkroniseerimise kontekstis lubab pakutud protokoll paremalt töötada Vulkan ja OpenGL graafikate API-des pĂ”hinevate draiveritega (rakendamine toetub draiverite kĂ€itlejatele). Uus protokoll annab vĂ”imaluse veenduda, et joonistamisoperatsioon puhversalvestusse on lĂ”petatud enne, kui koostööhaldur kuvab selle puhversalvestuse.
- alpha-modifier, mis vÔimaldab klientidel muuta pinna lÀbipaistvuse taset ning viia lÀbipaistvuse tagamise operatsioonid komposiitserveri poole, mis omakorda saab need operatsioonid KMS-ile edastada.
- xdg-toplevel-icon â ĂŒlemise taseme akna ikooni sidumine.
- ext-image-capture-source ja ext-image-copy-capture â sisu haaramise korraldamine, mis kuvatakse ekraanil.
- xdg-system-bell â vĂ”imaldab edastada sĂŒsteemi signaali, mida saab nĂ€iteks kasutada hoiatuseks terminali emulaatoris. Signaali edastamise vorm mÀÀratakse komposiitmanagingeri otsusega, see vĂ”ib olla mitte ainult heli, vaid ka visuaalne tagasiside.
- fifo â rakendab FIFO-mehhanismi (esimene tuli â esimene lĂ€ks) kuvapinna sisu uuendamise jĂ€rjekorra töötlemiseks. Praktiliselt vĂ”imaldab protokoll oodata vertikaalse sĂŒvendi (vblank) lĂ”ppemist, mitte kasutada callback-kĂ”nesid iga kord, kui uus kaader on valmis kuvamiseks, lahendades probleemid kĂ”rge GPU koormusega VSync'i kasutamise korral.
- commit-timing â vĂ”imaldab siduda ajapiirangu pinnasisu muutustega (komposiitserver peab kuvama sisu muutuse vĂ”imalikult kiiresti ettenĂ€htud aja jooksul, kuid mitte varem).
- ext-data-control â vĂ”imaldab privileege omavatel klientidel hallata andmete töötlemist, nĂ€iteks lĂ”ikehaldurite rakendamiseks.
- ext-workspace â viib ellu kontseptsiooni virtuaalsetele töölauale ja pakub sĂŒndmusi töölauaseisundi kohta, samuti vĂ”imalusi töölauade aktiveerimiseks ja deaktiveerimiseks. Protokolli saab kasutada paneelide ja indikaatorite loomiseks, mis kuvavad loetelu saadaolevatest virtuaalsetest töölauadest ja vĂ”imaldavad nende vahel vahetada.
- vĂ€rvihaldus â pakub vĂ”imalusi vĂ€rvi juhtimiseks ja ulatusliku eraldusvĂ”ime toe (HDR, High Dynamic Range) toeks. Lisanduvate laienduste abil saavad kliendi rakendused teavet ĂŒhendatud vĂ€rvide omaduste kohta vĂ€ljundseadmetes ja edastavad komposiitserverile andmeid oma sisu vĂ€rviedastuse omaduste kohta. Komposiitserveris serveris seda teavet saab kasutada vĂ€rvi automaatseks juhtimiseks sisu kuvamisel erinevates vĂ€ljundseadmetes, nĂ€iteks sisu konverteerimiseks, mis sobib HDR-monitoritel kuvamiseks. VĂ€rviruume kirjeldatakse ICC profiilide abil.
Protokollid, mis arendatakse «unstable» haru raames:
- «fullscreen-shell» â tĂ€ieliku ekraani reĆŸiimi haldamine.
- «input-method» â sisestusmeetodite töötlemine.
- «idle-inhibit» â ekraanilooja (screensaver) kĂ€ivitamise blokeerimine.
- «input-timestamps» â ajatempli tĂ€histamine sisendi sĂŒndmustele.
- «keyboard-shortcuts-inhibit» â klaviatuuri kombinatsioonide ja otsetee haldamine.
- «linux-explicit-synchronization» â Linuxile spetsiifiline puhverdamise sĂŒnkroonimise mehhanism pinnaga sidumisel.
- «pointer-gestures» â juhtimine puutetundlikelt ekraanidelt.
- «pointer constraints» â nĂ€idikute piirangud (blokkeerimine).
- «primary-selection» â sarnaselt X11-le vĂ”imaldab see primaarse lĂ”ikepuhvri (primary selection) töötlust, mille sisu sisestamine toimub tavaliselt keskklahvi abil.
- «relative pointer events» â suhtelised nĂ€idiku sĂŒndmused.
- «text-input» â teksti sisestamise korraldamine.
- «xdg-foreign» â liidese interaktsioon kĂ”rvalise kliendi pinnaga.
- «xdg-decoration» â akna dekoratsioonide joonistamine serveripoolsel poolel.
- «xdg-output» â tĂ€iendavad andmed videovĂ€ljundi kohta (kasutatakse murdosa suurenduseks).
- «xwayland-keyboard-grab» â sisendi haaramine XWaylandi rakendustes.
Allikas: opennet.ru
