Izdan je bil paket wayland-protocols različice 1.49, ki vsebuje nabor protokolov in razširitev, ki dopolnjujejo osnovni protokol Wayland in zagotavljajo zmogljivosti, potrebne za gradnjo sestavljenih strežnikov in uporabniških okolij.
V novi različici:
- Добавлен экспериментальный протокол xx-fractional-scale, предоставляющий возможность масштабирования системы логических координат, значения в которой задаются целыми числами, для повышения точности позиционирования и увеличения разрешения логических координат до отдельных пикселей. Подобная возможность решает проблему с ограниченным разрешением системы логических координат, недостаточным для позиционирования на уровне отдельных пикселей, необходимого для полноценной реализации дробного масштабирования.
- В протокол «linux-dmabuf» добавлена поддержка работы на системах с несколькими GPU. На подобных системах клиент может согласовать с композитными сервером какой из GPU следует использовать.
- В протокол color-management-v1 добавлена поддержка метаданных изображений в формате BT.2100 для применения в композитном сервере специфичных обработчиков, позволяющих корректно отображать HDR-контент, созданный для Windows.
Vsi protokoli gredo zaporedno skozi faze razvoja, testiranja in stabilizacije. Po zaključku razvojne stopnje (»nestabilna« kategorija) se protokol postavi v »uprizoritveno« vejo in uradno vključi v nabor wayland-protocols, po končanem testiranju pa se premakne v stabilno kategorijo. Protokoli iz kategorije »uprizarjanja« se že lahko uporabljajo v sestavljenih strežnikih in odjemalcih, kjer je potrebna povezana funkcionalnost. Za razliko od kategorije »nestabilno« je v »uprizoritvi« prepovedano izvajati spremembe, ki kršijo združljivost, če pa se med testiranjem odkrijejo težave in pomanjkljivosti, zamenjava z novo pomembno različico protokola ali drugo razširitvijo Wayland ni izključena.
Da bi pospešili dostavo protokolov razvijalcem in spodbudili zgodnjo implementacijo protokolov v obstoječe projekte, začenši s prejšnjo izdajo, je bila dodana "eksperimentalna" faza, ki omogoča spremembe, ki porušijo združljivost, in dodajanje "surovih" protokolov, ki jih je mogoče postopoma dvigniti na ustrezno raven. Medtem ko mora protokol sestaviti skupino za podporo in prejeti določeno število potrditev (ACK) od recenzentov, da vstopi v fazo uprizarjanja, mora v dvotedenskem obdobju pregleda prejeti samo nobenih ugovorov (NACK), da vstopi v poskusno fazo.
Zbirka protokolov wayland trenutno vključuje naslednje stabilne protokole, ki so nazaj združljivi:
- "viewporter" - omogoča odjemalcu izvajanje dejanj skaliranja in obrezovanja robov površine na strani strežnika.
- "presentation-time" - omogoča prikaz videa.
- "xdg-shell" je vmesnik za ustvarjanje in interakcijo s površinami kot okni, ki vam omogoča, da jih premikate po zaslonu, strnete, razširite, spremenite velikost itd.
- "linux-dmabuf" - zagotavlja zmožnosti za ustvarjanje wl_buffers na podlagi DMA-BUF.
- "tablet" - organizacija vnosa iz grafičnih tablic.
Protokoli, preizkušeni v veji »staging«:
- drm-lease - zagotavlja vire, potrebne za ustvarjanje stereo slike z različnimi medpomnilniki za levo in desno oko pri izhodu v slušalke za navidezno resničnost.
- "ext-session-lock" - definira način zaklepanja seje, na primer, ko se izvaja ohranjevalnik zaslona ali je prikazano pogovorno okno za preverjanje pristnosti.
- "single-pixel-buffer" - omogoča ustvarjanje medpomnilnikov ene slikovne pike, ki vključujejo štiri 32-bitne vrednosti RGBA.
- «xdg-activation» — позволяет передать фокус между разными поверхностями первого уровня (например, при помощи
xdg-activation одно приложение может переключить фокус на другое). - content-type – odjemalcem omogoča posredovanje informacij o vsebini, ki je prikazana na sestavljeni strežnik, kar se lahko uporabi za optimizacijo vedenja, ki se zaveda vsebine, kot je nastavitev posebnih lastnosti DRM, kot je "content type". Navedena je podpora za naslednje vrste vsebine: nobena (brez informacij o vrsti podatkov), fotografija (izhod digitalnih fotografij, zahteva minimalno obdelavo), video (video ali animacija, potrebna je natančnejša sinhronizacija, da se izognete zatikanju) in igra (zagon igre, izhod z minimalno zakasnitvijo).
- ext-idle-notify - Omogoča sestavljenim strežnikom pošiljanje obvestil odjemalcem o nedejavnosti uporabnikov, ki se lahko uporabijo za aktiviranje dodatnih načinov varčevanja z energijo po določenem času nedejavnosti.
- tearing-control - omogoča, da onemogočite navpično sinhronizacijo (VSync) z navpičnim dušilnim impulzom v celozaslonskih aplikacijah, ki se uporablja za zaščito pred trganjem v izpisu. V večpredstavnostnih aplikacijah so artefakti zaradi trganja nezaželen učinek, v programih za igranje iger pa so artefakti tolerirani, če obravnavanje njih povzroči dodatne zakasnitve.
- ext-foreign-toplevel-list - Pridobi informacije o površinah, postavljenih na najvišjo raven, ki vam omogočajo, da organizirate okna za priklop na drugo vsebino, na primer za pritrditev lastnih plošč in okenskih stikal.
- varnostni kontekst - omogoča identifikacijo strank z uporabo izolacije peskovnika. Odjemalec lahko registrira novo povezavo s sestavljenim strežnikom, ki temelji na Waylandu, in mu priloži varnostni kontekst, nakar bo sestavljeni upravitelj omejil zmogljivosti, ki so na voljo vzpostavljeni povezavi na podlagi podanega varnostnega konteksta.
- cursor-shape je alternativni način prilagajanja videza kazalca, ki temelji na podajanju niza slik kazalca namesto pripenjanja na površino (wl_surface).
- “ext-transient-seat” - zasnovan za ustvarjanje začasnih neodvisnih sej (sedežev), zasnovanih za uporabo z virtualnimi vhodnimi napravami. Na primer, pri izvajanju možnosti povezave z oddaljenim namizjem protokol omogoča ustvarjanje ločene seje za vsakega uporabnika z virtualno tipkovnico in miško.
- "xdg-toplevel-drag" - razširja mehanizem "povleci in spusti" z možnostjo pripenjanja oken na najvišji ravni operaciji vlečenja, ki se lahko uporablja na primer za organiziranje vlečenja orodnih vrstic ali zavihkov brskalnika z miško. Novi protokol vam omogoča, da ustvarite ločljive dele okna, ki, ko jih povlečete iz tega okna, postanejo nova okna in jih je mogoče premakniti na vrh obstoječega okna, preden jih ponovno pritrdite.
- "xdg-dialog" - omogoča, da površinam na najvišji ravni dodelite atribute, specifične za pogovorno okno, lahko na primer ustvarite modalna pogovorna okna, ki blokirajo interakcijo uporabnika s preostalim vmesnikom.
- "linux-drm-syncobj" - ponuja orodja za eksplicitno sinhronizacijo medpomnilnika z uporabo sinhronizacijskih objektov DRM (Direct Rendering Manager). Predvideva se, da bo v kontekstu sinhronizacije pri upodabljanju v medpomnilnik predlagani protokol izboljšal delo z gonilniki, ki temeljijo na grafičnih API-jih Vulkan in OpenGL (implementacija temelji na obdelovalcih v gonilnikih). Novi protokol omogoča zagotovitev, da je operacija risanja v medpomnilnik končana, preden upravitelj sestavljanja prikaže ta medpomnilnik.
- alfa-modifikator, ki odjemalcem omogoča spreminjanje stopnje preglednosti površine in prenos operacij, da se zagotovi preglednost na strani sestavljenega strežnika, ta pa lahko te operacije preusmeri na KMS.
- xdg-toplevel-icon - povežite ikono z oknom najvišje ravni.
- ext-image-capture-source in ext-image-copy-capture - organizacija zajema vsebine, prikazane na zaslonu.
- xdg-system-bell - omogoča izhod sistemskega signala, ki se lahko na primer uporabi kot opozorilo v terminalskem emulatorju. Oblika izhodnega signala je določena po presoji upravitelja kompozita; to je lahko ne le zvočni, ampak vizualni odziv.
- fifo - implementira mehanizem FIFO (prvi vstopi, prvi ven) za obdelavo čakalne vrste za posodobitev vsebine prikazane površine. S praktične strani protokol omogoča uporabo čakanja na dokončanje navpičnega skeniranja (vblank) namesto uporabe povratnih klicev vsakič, ko je pripravljen za prikaz novega okvira, kar rešuje problem visoke obremenitve GPE pri uporabi VSync.
- commit-timing - omogoča vezavo časovne omejitve na površinsko vsebino (kompozitni strežnik mora odražati spremembo vsebine, če je to mogoče, po določenem času, vendar ne prej).
- ext-data-control - Omogoča privilegiranim odjemalcem nadzor nad obdelavo podatkov, na primer za implementacijo upraviteljev odložišča.
- ext-workspace - implementira koncept virtualnih namizij in ponuja dogodke z informacijami o statusu namizij ter zmožnosti za aktiviranje in deaktiviranje namizij. Protokol je mogoče uporabiti za ustvarjanje plošč in indikatorjev, ki prikazujejo seznam razpoložljivih virtualnih namizij in omogočajo preklapljanje med njimi.
- upravljanje barv — ponuja zmožnosti za upravljanje barv in podporo za razširjen dinamični razpon svetlosti (HDR, High Dynamic Range). Z dodano razširitvijo lahko odjemalske aplikacije pridobijo informacije o barvnih lastnostih izhodnih naprav in posredujejo podatke o barvnih lastnostih lastne vsebine sestavljenemu strežniku. V sestavljenem strežniku je mogoče te informacije uporabiti za samodejno upravljanje barv pri prikazovanju vsebine na različnih izhodnih napravah, na primer za pretvorbo vsebine v predstavitev, primerno za prikaz na monitorjih HDR. ICC profili se uporabljajo za opis barvnih prostorov.
- xdg-toplevel-tag — Omogoča odjemalcem Wayland, da površinam najvišje ravni pripnejo oznake, ki jih lahko strežnik za sestavljanje uporabi za identifikacijo oken po ponovnem zagonu aplikacije (na primer, aplikacija lahko nastavi oznaki »glavno okno« in »nastavitve« za glavno okno in okno z nastavitvami). Takšna identifikacija je uporabna za obnovitev položaja, velikosti in lastnosti oken po ponovnem zagonu ter za definiranje posebnih pravil za posamezne vrste oken.
- barvna predstavitev – določa barvno predstavitev površine Wayland. Odjemalci Wayland lahko posredujejo metapodatke, potrebne za definiranje prosojnosti, barvnega modela, podvzorčenja in obsega kvantizacije, ki se uporabljajo pri pretvorbi medpomnilnika s podatki, ki ustrezajo barvnemu modelu YCbCr, v predstavitev RGB.
- ext-background-effect - uporabi učinke na polprosojne dele površine Wayland, kot je zameglitev ozadja.
- pointer-warp - Omogoča aplikaciji, da takoj premakne kazalec na določen položaj.
- xdg-session-management — возможности для восстановления состояния и позиции окон прерванного сеанса, например, после аварийного завершения композитного сервера или приложения.
Protokoli, ki se razvijajo v eksperimentalni veji:
- xx-session-management - obnovi stanje oken za prekinjene seje (na primer po zrušitvi sestavljenega upravitelja).
- xx-input-method — omogoča aplikacijam implementacijo metod vnosa besedila za sestavljene strežnike in ustvarjanje vnesenega besedila, ki ga je mogoče uporabiti na primer za ustvarjanje virtualnih tipkovnic in plasti IME (Input Method Editor) za obdelavo vnosa.
- xx-text-input – omogoča sestavljenim strežnikom izvajanje metod vnosa in pošiljanje besedila aplikacijam. Protokol standardizira interakcije med sestavljenimi strežniki in aplikacijami ter omogoča nadzor nad funkcijami, kot so prenos vhodnega besedila, obravnava dogodkov fokusa vnosa in upoštevanje posebnosti vhodnih polj (jezik, izbira besedila, vrsta vsebine).
- xx-cutouts — для получения информации о вырезах на экране (например, области под фронтальную камеру на экране смартфона).
- xx-zones — для создания и добавления окон верхнего уровня в «зоны» — окружения со своим пространством координат. Протокол позволяет организовать логическую расстановку окон, в которой каждое окно размещается относительно другого окна.
- xx-keyboard-filter — для перехвата клиентом выбранных событий клавиатуры, изменения событий ввода или блокирования передачи определённых событий в Wayland-поверхность, на которой установлен фокус ввода.
Protokoli, ki se razvijajo v "nestabilni" veji:
- “fullscreen-shell” - nadzor dela v celozaslonskem načinu.
- "input-method" - obdelava vhodnih metod.
- “idle-inhibit” - blokira zagon ohranjevalnika zaslona (ohranjevalnik zaslona).
- "input-timestamps" - časovni žigi za vhodne dogodke.
- "keyboard-shortcuts-inhibit" - nadzoruje pripenjanje bližnjic na tipkovnici in hitrih tipk.
- »linux-explicit-synchronization« je specifičen za Linux mehanizem za sinhronizacijo odbojnikov glede na površino.
- "kretnje kazalca" - nadzor z zaslonov na dotik.
- “omejitve kazalca” - omejitve kazalca (blokiranje).
- “primarni izbor” - po analogiji z X11 zagotavlja delovanje primarnega odložišča (primarni izbor), informacije iz katerega se običajno vstavijo s srednjim gumbom miške.
- “relative pointer events” - dogodki relativnega kazalca.
- “text-input” - organizacija vnosa besedila.
- “xdg-foreign” je vmesnik za interakcijo s površinami “sosednjega” odjemalca.
- "xdg-decoration" - upodabljanje okenskih okraskov na strani strežnika.
- "xdg-output" - dodatne informacije o video izhodu (uporablja se za delno skaliranje).
- "xwayland-keyboard-grab" - zajem vnosa v aplikacijah XWayland.
Vir: opennet.ru
