UtgÄvan av paketet wayland-protocols 1.45 har offentliggjorts, vilket innehÄller en uppsÀttning protokoll och tillÀgg som kompletterar det grundlÀggande Wayland-protokollet och tillhandahÄller funktioner som behövs för att bygga kompositservrar och anvÀndarmiljöer.
Wayland-Protocols 1.45 innehÄller 4 nya protokoll (tvÄ i kategorin «staging» och tvÄ experimentella):
- 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.
- session-management â Ă„terstĂ€llande av fönsterstatus för avbrutna sessioner (t.ex. efter en kraschar av kompositmanagern).
- input-method â utveckling av ett nytt protokoll för anvĂ€ndning av textinmatningsmetoder.
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.
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
