UtgÄvan av paketet wayland-protocols 1.49 har presenterats, vilket innehÄller en uppsÀttning protokoll och tillÀgg som kompletterar det grundlÀggande Wayland-protokollet och tillhandahÄller nödvÀndiga funktioner för att bygga kompositservere och anvÀndarmiljöer.
I den nya versionen:
- Den experimentella protokollen xx-fractional-scale har lagts till, vilket ger möjlighet att skala systemet för logiska koordinater, dÀr vÀrden anges som heltal, för att öka noggrannheten i positioneringen och höja upplösningen pÄ logiska koordinater till enskilda pixlar. Denna funktion löser problemet med den begrÀnsade upplösningen i systemet för logiska koordinater, vilket inte Àr tillrÀckligt för positionering pÄ nivÄn för enskilda pixlar, vilket Àr nödvÀndigt för fullstÀndig implementering av brÄkdelarnas skalning.
- Protokollet "linux-dmabuf" har fÄtt stöd för drift pÄ system med flera GPU:er. PÄ sÄdana system kan klienten samordna med kompositören servern vilken GPU som ska anvÀndas.
- Protokollet color-management-v1 har fÄtt stöd för bildmetadata i formatet BT.2100 för anvÀndning i komposit servern specifika hanterare som möjliggör korrekt visning av HDR-innehÄll som skapats för Windows.
Alla protokoll genomgÄr konsekvent faser av utveckling, testning och stabilisering. Efter att utvecklingsfasen (kategorin "unstable") har avslutats placeras protokollet i "staging"-grenen och inkluderas officiellt i paketet wayland-protocols, och efter att testerna har slutförts flyttas det till den stabila kategorin. Protokoll i kategorin "staging" kan redan tillÀmpas i komposit. servrar och kunder dÀr relaterad funktionalitet krÀvs. Till skillnad frÄn kategorin "instabil" i "staging" Àr det förbjudet att göra Àndringar som bryter mot kompatibiliteten, men om problem och brister upptÀcks under testning, kan det inte uteslutas att en ny betydande version av protokollet eller ett annat Wayland-tillÀgg byts ut.
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» â tillĂ„ter klienten att utföra Ă„tgĂ€rder för att skala och beskĂ€ra kanterna av ytan pĂ„ sidan servern.
- «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 fokus överförs mellan olika ytor av första nivĂ„n (till exempel, med hjĂ€lp av
xdg-activation kan ett program skifta fokus till ett annat). - content-type â lĂ„ter klienter skicka till kompositen servern Information about displayed content that can be used to optimize behavior based on content, for example, specifying specific DRM features such as 'content type'. Support is declared for the following content types: none (no information about data types), photo (output of digital photos, requiring minimal processing), video (video or animation, requiring more precise synchronization to eliminate stuttering), and game (running games, requiring output with minimal delay).
- 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 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 â gör det möjligt att koppla en tidsbegrĂ€nsning till innehĂ„llet pĂ„ en yta (kompositören server bör visa Ă€ndringen av innehĂ„llet sĂ„ nĂ€ra angiven tid som möjligt, 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.
- xdg-session-management â möjligheter för att Ă„terstĂ€lla tillstĂ„nd och position av fönster efter en avbruten session, till exempel efter en krasch av kompositservern eller applikationen.
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).
- xx-input-method â ger möjligheter för program att implementera textinmatningsmetoder för kompositservrar och att generera 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.
- xx-text-input â gör det möjligt för kompositservrar att implementera indata metoder och skicka text till applikationer. Protokollet standardiserar interaktionen mellan kompositservern och applikationerna, och gör det möjligt att hantera funktioner som överföring av inmatad text, bearbetning av hĂ€ndelser för Ă€ndrad fokus och hantering av specifika inmatningsfĂ€lt (sprĂ„k, textmarkering, innehĂ„llstyp).
- xx-cutouts â för att hĂ€mta information om utskĂ€rningar pĂ„ skĂ€rmen (till exempel omrĂ„den under den frĂ€mre kameran pĂ„ en smartphone).
- xx-zones â för att skapa och lĂ€gga till fönster överst i "zoner" â miljöer med eget koordinatsystem. Protokollet gör det möjligt att organisera en logisk arrangemang av fönster, dĂ€r varje fönster placeras relativt till ett annat fönster.
- xx-keyboard-filter â för att fĂ„nga klientens valda tangentbordshĂ€ndelser, Ă€ndra inmatningshĂ€ndelser eller blockera överföringen av vissa hĂ€ndelser till Wayland-yta dĂ€r fokus Ă€r instĂ€llt.
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
