UtgÄvan av wayland-protocols 1.46 har publicerats, som innehÄller en uppsÀttning protokoll och tillÀgg som kompletterar det grundlÀggande Wayland-protokollet och tillhandahÄller funktioner som Àr nödvÀndiga för att bygga kompositservrar och anvÀndarmiljöer.
I den nya versionen:
- Ett experimentellt protokoll, xx-input-method, har lagts till, vilket gör det möjligt för applikationer att implementera textinmatningsmetoder för kompositservrar och formulera inmatad text, vilket kan anvÀndas, till exempel, för att skapa virtuella tangentbord och IME-lager (Input Method Editor) för att hantera inmatning.
- Ett experimentellt protokoll, xx-text-input, har lagts till, vilket gör det möjligt för kompositservrar att implementera inmatningsmetoder och skicka text till applikationer. Protokollet standardiserar interaktionen mellan kompositservern och applikationer och möjliggör hantering av funktioner sÄsom överföring av inmatad text, hantering av fokusÀndringshÀndelser och beaktande av specifika inmatningsfÀlt (sprÄk, textmarkering, innehÄllstyp).
- Protokollen color-management-v1 och color-representation-v1 har förbÀttrats, vilket ger möjligheter för fÀrghantering, HDR-stöd och definiering av fÀrgrepresentationen för Wayland-yta.
Alla protokoll genomgÄr successivt faser av utveckling, testning och stabilisering. Efter att utvecklingsfasen Àr avslutad (kategori "unstable") flyttas protokollet till "staging"-grenen och inkluderas officiellt i sÀttet wayland-protocols, och efter att testningen har avslutats flyttas de till den stabila kategorin. Protokoll i "staging"-kategorin kan redan anvÀndas i komposit-servrar och klienter dÀr den relaterade funktionaliteten krÀvs. Till skillnad frÄn "unstable"-kategorin Àr förÀndringar som bryter kompatibilitet förbjudna i "staging", men om problem och brister identifieras under testningen, kan det hÀnda att en ny betydande version av protokollet eller en annan Wayland-utvidgning ersÀtter det.
För att pÄskynda överföringen av protokollen till utvecklarna och stimulera tidig implementering av protokollen i befintliga projekt, har en "experimental"-fas lagts till sedan den före tidigare utgÄvan, dÀr förÀndringar som bryter kompatibilitet och tillÀgg av "rÄa" protokoll tillÄts, vilka kan fÀrdigstÀllas gradvis. Om ett protokoll ska komma in i "staging"-fasen krÀvs det att en stöduppstÀllning bildas och att ett visst antal bekrÀftelser (ACK) erhÄlls frÄn granskningsdeltagare, medan det för att komma in i "experimental" rÀcker med att det inte finns nÄgra invÀndningar (NACK) under en tvÄ veckors granskningsperiod.
För nÀrvarande innehÄller setet wayland-protocols följande stabila protokoll som sÀkerstÀller bakÄtkompatibilitet:
- «viewporter» â möjliggör för klienten att utföra Ă„tgĂ€rder för att zooma och beskĂ€ra kanterna pĂ„ ytan pĂ„ serversidan.
- «presentation-time» â sĂ€kerstĂ€ller videovisning.
- «xdg-shell» â grĂ€nssnitt för att skapa och interagera med ytor som fönster, vilket möjliggör att flytta dem pĂ„ skĂ€rmen, minimera, maximera, Ă€ndra storlek osv.
- «linux-dmabuf» â ger möjligheter att skapa wl_buffer baserat pĂ„ DMA-BUF.
- «tablet» â organisering av inmatningar frĂ„n grafiska tabletter.
Protokoll som testas i «staging»-grenen:
- drm-lease â tillhandahĂ„ller resurser som krĂ€vs för att skapa stereobilder med olika buffertar för vĂ€nster och höger öga vid visning pĂ„ virtuella hjĂ€lmar.
- «ext-session-lock» â definierar medel för att lĂ„sa sessionen, till exempel under arbetet med skĂ€rmslĂ€ckaren eller vid visning av autentiseringsdialogen.
- «single-pixel-buffer» â möjliggör skapandet av enpixelbuffertar som innehĂ„ller fyra 32-bitars RGBA-vĂ€rden.
- «xdg-activation» â tillĂ„ter att byta fokus mellan olika förstapartsytor (till exempel kan ett program med hjĂ€lp av xdg-activation byta fokus till ett annat).
- content-type â möjliggör för klienter att överföra information till kompositservern om det visade innehĂ„llet, vilket kan anvĂ€ndas för att optimera beteendet med hĂ€nsyn till innehĂ„llet, till exempel genom att stĂ€lla in specifika DRM-egenskaper, sĂ„som «content type». Följande innehĂ„llstyper stöds: none (ingen information om datatyp), photo (visning av digitala foton som krĂ€ver minimal bearbetning), video (video eller animation, krĂ€ver mer exakt synkronisering för att undvika hack) och game (start av spel, krĂ€ver visning med minimal fördröjning).
- ext-idle-notify â gör det möjligt för kompositservrar att överföra notifieringar om anvĂ€ndarens inaktivitet till klienter, vilket kan anvĂ€ndas för att aktivera ytterligare energisparlĂ€gen efter viss tid av inaktivitet.
- tearing-control â möjliggör att stĂ€nga av vertikal synkronisering (VSync) i helskĂ€rmsapplikationer med bildsekvensdĂ€mpande puls, vilket anvĂ€nds för att förhindra uppkomsten av tearing i utmatningen. I multimediaapplikationer Ă€r framtrĂ€dandet av artefakter pĂ„ grund av tearing en oönskad effekt, medan det i spelapplikationer gĂ„r att acceptera, om kampen mot dem leder till extra fördröjningar.
- ext-foreign-toplevel-list â hĂ€mtar information om ytor som Ă€r placerade pĂ„ högsta nivĂ„n (toplevel) som möjliggör att fĂ€sta fönster ovanpĂ„ annat innehĂ„ll, till exempel för att ansluta egna paneler och fönstervĂ€xlare.
- security-context â möjliggör identifiering av kunder som anvĂ€nder sandbox-isolering. En klient kan registrera en ny anslutning till en sammansatt server baserad pĂ„ Wayland och koppla en sĂ€kerhetskontext till den, varefter den angivna sĂ€kerhetskontexten begrĂ€nsar de möjligheter som Ă€r tillgĂ€ngliga för den etablerade förbindelsen av kompositmanagern.
- cursor-shape â ett alternativt sĂ€tt att konfigurera utseendet pĂ„ muspekaren, baserat pĂ„ att överföra en serie muspekarsbilder istĂ€llet för att knyta dem till ytan (wl_surface).
- «ext-transient-seat» â Ă€r avsedd för att skapa temporĂ€ra oberoende sessioner (seat) som Ă€r utformade för anvĂ€ndning med virtuella inmatningsenheter. Till exempel vid implementering av möjligheten att ansluta till ett fjĂ€rrskrivbord protokollet gör det möjligt att skapa en separat session med virtuellt tangentbord och mus för varje anvĂ€ndare.
- «xdg-toplevel-drag» â utökar mekanismen för «drag & drop» med möjligheten att koppla toppnivĂ„fönster till en flyttoperation, vilket kan anvĂ€ndas, till exempel, för att organisera musdragning av verktygsfĂ€lt eller flikar i webblĂ€saren. Det nya protokollet möjliggör skapandet av löstagbara delar av fönstret, som vid dragning frĂ„n detta fönster blir nya fönster och kan flyttas ovanpĂ„ ett befintligt fönster innan de Ă„terkopplas.
- «xdg-dialog» â gör det möjligt att tilldela ytor pĂ„ högsta nivĂ„n egenskaper som Ă€r specifika för dialogfönster, till exempel kan man skapa modala dialoger som blockerar anvĂ€ndarens interaktion med resten av grĂ€nssnittet.
- «linux-drm-syncobj» â tillhandahĂ„ller verktyg för explicit synkronisering av buffertar med hjĂ€lp av DRM (Direct Rendering Manager) synkroniseringsobjekt. Det antas att den föreslagna protokollen för synkronisering vid rendering till buffert kommer att förbĂ€ttra interaktionen med drivrutiner baserade pĂ„ grafiska API:er Vulkan och OpenGL (implementationen bygger pĂ„ hanterare i drivrutinerna). Den nya protokollen möjliggör kontroll över att rendering till bufferten Ă€r avslutad innan kompositören visar denna buffert.
- alpha-modifier, vilket möjliggör för kunder att Àndra opaciteten av ytan och flytta operationerna för att sÀkerstÀlla transparens till kompositservern, som i sin tur kan vidarebefordra dessa operationer till KMS.
- xdg-toplevel-icon â kopplar en ikon till ett överliggande fönster.
- ext-image-capture-source och ext-image-copy-capture â organiserar fĂ„ngst av innehĂ„ll som visas pĂ„ skĂ€rmen.
- xdg-system-bell â tillĂ„ter att avge ett systemljud, som kan anvĂ€ndas som varning i terminalemulatorer. Utformningen av ljudsignalen bestĂ€ms av kompositören, och det kan vara inte bara ljud utan Ă€ven visuellt svar.
- fifo â implementerar en FIFO-mekanism (först in, först ut) för hantering av kön för uppdatering av innehĂ„llet pĂ„ den visade ytan. Ur ett praktiskt perspektiv möjliggör protokollet att anvĂ€nda vĂ€ntan pĂ„ att den vertikala synkroniseringen (vblank) avslutas istĂ€llet för att anvĂ€nda callback-anrop vid varje tillfĂ€lle nĂ€r en ny bild Ă€r redo att visas, vilket löser problemet med hög belastning pĂ„ GPU:n vid anvĂ€ndning av VSync.
- commit-timing â möjliggör att knyta en tidsgrĂ€ns till innehĂ„llet pĂ„ ytan (kompositservern ska visa förĂ€ndringen av innehĂ„llet inom angiven tid, men inte tidigare).
- ext-data-control â tillĂ„ter privilegierade kunder att styra databehandling, till exempel för att implementera urklippshanterare.
- ext-workspace â realiserar konceptet virtuella skrivbord och erbjuder hĂ€ndelser med information om statusen för arbetsytor, samt möjligheter att aktivera och avaktivera arbetsytor. Protokollet kan anvĂ€ndas för att skapa paneler och indikatorer som visar en lista över tillgĂ€ngliga virtuella arbetsytor och möjlighet att vĂ€xla mellan dem.
- color-management â erbjuder möjligheter för fĂ€rghantering och stöd för hög dynamisk rĂ€ckvidd (HDR, High Dynamic Range). Genom det tillagda tillĂ€gget kan klientapplikationer fĂ„ information om fĂ€rgrelaterade egenskaper hos utdataenheter och skicka data om fĂ€rgprofilen för eget innehĂ„ll till kompositservern. PĂ„ kompositservern kan denna information anvĂ€ndas för att automatiskt hantera fĂ€rg nĂ€r innehĂ„llet visas pĂ„ olika utdataenheter, till exempel för att konvertera innehĂ„llet för presentation som Ă€r lĂ€mplig för visning pĂ„ HDR-skĂ€rmar. För att beskriva fĂ€rgrymder anvĂ€nds ICC-profiler.
- xdg-toplevel-tag â gör det möjligt för Wayland-klienter att fĂ€sta taggar pĂ„ ytor i toppklass, som kompositservern kan anvĂ€nda för att identifiera fönster efter att applikationen har startats om (t.ex. kan applikationen tilldela taggarna «main window» och «settings» för huvudfönstret och instĂ€llningsfönstret). SĂ„dan identifiering Ă€r anvĂ€ndbar för att Ă„terstĂ€lla position, storlek och egenskaper hos fönster efter omstart, samt för att definiera speciella regler för olika typer av fönster.
- color-representation â definition av fĂ€rgrepresentation för Wayland-yta. Wayland-klienter kan överföra metadata som behövs för att bestĂ€mma transparens, fĂ€rgmodell, subprovning och kvantisering, samt som tillĂ€mpas vid konvertering av bufferten med data som motsvarar fĂ€rgmodellen YCbCr till RGB-representation.
- ext-background-effect â tillĂ€mpning av effekter pĂ„ genomskinliga delar av Wayland-yta, sĂ„som oskĂ€rpa av bakgrunden.
- pointer-warp â gör att applikationen omedelbart kan flytta pekaren till en angiven position.
Protokoll som utvecklas i "experimentell" gren:
- xx-session-management â Ă„terstĂ€llning av fönsterstatus för avbrutna sessioner (till exempel efter en crash av komposithanteraren).
Protokollen som utvecklas i "unstable"-grenen:
- "fullscreen-shell" â hantering av arbete i helskĂ€rmslĂ€ge.
- "input-method" â hantering av inmatningsmetoder.
- "idle-inhibit" â blockering av skĂ€rmslĂ€ckare.
- "input-timestamps" â tidsstĂ€mplar för inmatningsevent.
- "keyboard-shortcuts-inhibit" â hantering av kopplingar för tangentbordsgenvĂ€gar och snabbkommandon.
- "linux-explicit-synchronization" â en Linux-specifik mekanism för buffertsynkronisering kopplad till ytan.
- "pointer-gestures" â hantering av pekskĂ€rmsrörelser.
- "pointer constraints" â begrĂ€nsningar för pekare (blockering).
- "primary-selection" â pĂ„ liknande sĂ€tt som X11 möjliggör arbete med primĂ€r urklipp (primary selection), dĂ€r information vanligtvis klistras in med musens mittknapp.
- "relative pointer events" â relativa pekarevent.
- "text-input" â organiserad textinmatning.
- "xdg-foreign" â grĂ€nssnitt för interaktion med ytor frĂ„n en "grann"-klient.
- "xdg-decoration" â rendering av fönsterdekorationer pĂ„ serversidan.
- "xdg-output" â ytterligare information om videoutgĂ„ng (anvĂ€nds för brĂ„kdelad skalning).
- "xwayland-keyboard-grab" â fĂ„ngst av inmatning i XWayland-applikationer.
KĂ€lla: opennet.ru
