KÀidatud on wayland-protocols paketi 1.41 vÀljaanne, mis sisaldab protokollide ja laienduste kogumit, mis tÀiendab pÔhivÔrguprotokolli Wayland ja pakub vÔimalusi, mis on vajalikud komposiitserverite ja kasutajakeskkondade loomisel.
Uues versioonis on kategooriasse "staging" lisatud vĂ€rvihalduse protokoll, mida on arendatud alates 2014. aastast ja mis pakub vĂ”imalusi vĂ€rvihalduseks ning laieneva dĂŒnaamilise helgema vahemiku toetamiseks (HDR, High Dynamic Range). Lisatud laienduse abil saavad kliendirakendused teavet vĂ€rviedastamise omaduste kohta vĂ€ljundseadmetes ja edastada komposiitserverile andmed oma sisendi vĂ€rviedastuse omaduste kohta. Komposiit- 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.
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» â annab tööriistu sĂŒnkroonimiseks ja puhverdamiseks DRM (Direct Rendering Manager) sĂŒnkroonimisobjektide abil. Arvatakse, et sĂŒnkroonimise kontekstis puhvri joonistamisel vĂ”imaldab pakutud protokoll parandada koostööd Vulkan- ja OpenGL-pĂ”histe graafika API-de draiveritega (rakendus pĂ”hineb draiverites olevatel töötlejatel). Uus protokoll vĂ”imaldab veenduda, et puhvri joonistamise operatsioon on lĂ”petatud enne, kui koostamise haldur kuvab selle puhvri.
- 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.
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.
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.
Allikas: opennet.ru
