UtgÄvan av paketet wayland-protocols 1.41 har publicerats, vilket innehÄller ett set av protokoll och tillÀgg som kompletterar det grundlÀggande Wayland-protokollet och erbjuder nödvÀndiga funktioner för att bygga sammansatta servrar och anvÀndarmiljöer.
I den nya versionen har protokollet för fÀrghantering lagts till i kategorin "staging", utvecklat sedan 2014 och som erbjuder funktioner för fÀrghantering och stöd för utökat dynamiskt omfÄng av ljusstyrka (HDR, High Dynamic Range). Med det tillagda tillÀgget kan klientprogram fÄ information om de fÀrgöverföringsrelaterade egenskaperna hos utmatningsenheter och överföra information om sina egna innehÄllsfÀrgegenskaper till den sammansatta servern. I den sammansatta servern kan denna information anvÀndas för att automatiskt hantera fÀrgen vid visning av innehÄll pÄ olika utdataenheter, till exempel för att konvertera innehÄllet för att passa visning pÄ HDR-skÀrmar. ICC-profiler anvÀnds för att beskriva fÀrgrymder.
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» â avsedd för att skapa temporĂ€ra, oberoende sessioner (seat) avsedda att anvĂ€ndas tillsammans med virtuella pekdon. Till exempel, vid implementering av möjligheten att ansluta till en fjĂ€rrskrivbord, möjliggör protokollet 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 tydlig synkronisering av buffertar med hjĂ€lp av DRM (Direct Rendering Manager) synkroniseringsobjekt. Det förvĂ€ntas att det föreslagna protokollet kommer att förbĂ€ttra arbetet med drivrutiner baserade pĂ„ grafik-API:er sĂ„som Vulkan och OpenGL i samband med rendering i buffert. Det nya protokollet gör det möjligt att försĂ€kra sig om att renderingsoperationen i bufferten Ă€r slutförd innan kompositchefen 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.
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.
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.
KĂ€lla: opennet.ru
