Komponerende vindusbehandling - Compositing window manager

En sammensatt vindusbehandling , eller komponist , er en vindusbehandling som gir applikasjoner en buffer utenfor skjermen for hvert vindu. Vindusbehandleren komponerer vindusbufferne til et bilde som representerer skjermen og skriver resultatet inn i displayminnet.

Sammensatte vindusbehandlere kan utføre tilleggsbehandling på bufrede vinduer, bruke 2D- og 3D -animerte effekter som blanding , fading , skalering , rotasjon , duplisering , bøyning og forvrengning, blanding, uskarphet , omdirigering av applikasjoner og oversetting av vinduer til en av en rekke skjermer og virtuelle skrivebord . Datagrafikkteknologi gjør det mulig å gjengi visuelle effekter i sanntid, for eksempel slippskygger , forhåndsvisninger og komplekse animasjoner. Siden skjermen er dobbeltbuffret , flimrer den ikke under oppdateringer.

De mest brukte komposittvindusbehandlerne inkluderer:

Sammenligning med stabling av vindusbehandlere

Den vindusbehandleren sender hvert vindu en melding for å male selv når dette er hensiktsmessig (for eksempel når den er endret, eller når et annet vindu passerer foran den). Med en stablingsbehandling kan ommalingsprosessen bli ødelagt når et program som er tregt, ikke reagerer eller buggy ikke reagerer på meldinger i tide. Et ondsinnet program kan få systemet til å virke ustabilt ved ganske enkelt å unnlate å male vinduet på nytt. Deretter kan det oppstå ett eller flere av følgende forhold:

  • et klippet vindu maler ikke avdekkede områder på nytt, noe som resulterer i enten tomme mellomrom eller en "sti" igjen fra et annet vindu
  • deler av vinduer (for eksempel dekorative fallskygger) blir etterlatt og ikke malt ordentlig
  • musepekeren er ødelagt
  • skjermoppdateringer blir ulidelig treg
  • hele skjermen fryser til programmet enten svarer eller avsluttes

Hvis et vindu slutter å male seg selv på nytt av en administrerende manager, vil den siste ommalingen forbli vist, og vinduet kan bli nedtonet. Ofte endres tittelen for å gjenspeile statusen til vinduet som ikke svarer. Et program kan forhindre at vinduet flyttes eller ikke kartlegges, men vil vanligvis ikke forårsake problemer med ny maling.

Historie

Et av de første systemene med et sammensatt vindusystem var Commodore Amiga , utgitt i 1985. Applikasjoner kan først be om et område med minne utenfor det nåværende visningsområdet for bruk som bitmap. Amiga vindussystemet vil da bruke en rekke bits blits ved hjelp av systemets maskinvare blitter for å bygge opp et komposittmateriale av disse applikasjoner punktgrafikk - sammen med knapper og glidere - i fremviserlageret, uten at disse programmene for å trekke opp en hvilken som helst av sine punktgrafikk.

24. mars 2001 ble Mac OS X v10.0 det første vanlige operativsystemet med programvarebasert 3D-komposisjon og effekter, levert av Quartz- komponenten. Med utgivelsen av Mac OS X v10.2 og Quartz Extreme kan jobben med å komponere flytte til dedikert grafikkmaskinvare .

I 2003 demonstrerte Sun Microsystems et ambisiøst 3D -grafikksystem kalt Project Looking Glass på lag på toppen av Swing -verktøykassen. Den ble først vist på LinuxWorld Expo 2003 . Selv om Apple truet med å saksøke Sun for brudd på immaterielle rettigheter, har andre vindusforvaltere implementert noen av funksjonene i Looking Glass. Innen 2006 utvikling ble avviklet av Sun, hvis primære virksomheten ble overgangen fra grafisk orienterte Unix arbeidsstasjoner å selge bedriften stormaskiner.

Microsoft presenterte først Desktop Window Manager i Project Longhorn for Windows Hardware Engineering Conference 2003 , og demonstrerte vaklende vinduer . Alvorlige forsinkelser i utviklingen av Longhorn førte til at Microsoft ikke debuterte sin 3D-sammensatte vindusbehandling før utgivelsen av Windows Vista i januar 2007.

Å implementere compositing under X Window System krevde noe redesign, som skjedde trinnvis. Metacity 2.8.4 ble utgitt i august 2004. Den første mye publiserte vinduet for komposittvinduer for X var imidlertid Xfwm , utgitt i januar 2005. 26. januar 2005 ble Compiz utgitt, og introduserte fullt akselerert 3D-kompositt til Linux-plattformen. KDE 's KWin støtter også sammensetting.

Komposisjon og 3D -effekter i operativsystemer

Ved sammensetting kan 3D -effekter brukes på Windows for å gi 3D -skrivebordseffekter. Moderne komposittvindusbehandlere bruker 3D -maskinvareakselerasjon. Compositing window manager -programvare kommuniserer med grafikkmaskinvare via programmeringsgrensesnitt som OpenGL eller Direct3D .

De tidligste utbredte implementeringene ved bruk av denne teknikken ble utgitt for Mac i Mac OS X 10.2, og for Linux i en Luminocity -prototype . For øyeblikket inkluderer vindusbehandlere som bruker OpenGL Compiz, KWin og Quartz Compositor, mens Desktop Window Manager for øyeblikket bruker DirectX 9. OpenGL støttes ikke fullt ut i maskinvare, så ytelsen til OpenGL-basert komposisjon bør fortsette å bli ettersom maskinvaren blir bedre.

Linux

Stable vindusbehandlere som kjører på X -serveren krevde en chroma -tasting eller grønn screening -forlengelse . Compositing ble introdusert ved hjelp av "Composite" -utvidelsen . Komponerende ledere bruker maskinvareakselerasjon gjennom denne utvidelsen, hvis tilgjengelig.

Ubuntu 8.04 Hardy Heron kjører Compiz's Shift Switcher i Flip -modus.

Under Linux og UNIX krevde muligheten til å gjøre full 3D-akselerert komposisjon grunnleggende endringer i X11 for å bruke maskinvareakselerasjon. Opprinnelig begynte det å dukke opp en rekke modifiserte X11 -implementeringer designet rundt OpenGL , inkludert Xgl . Innføringen av AIGLX ville eliminere behovet for å bruke Xgl, og tillate vindusbehandlere å gjøre 3D -akselerert komposisjon på en standard X -server, samtidig som det gir mulighet for direkte gjengivelse . For tiden støtter NVIDIA , Intel og ATI -kort AIGLX .

Compiz introduserte en kubeeffekt, som lar brukeren se opptil 6 virtuelle skrivebord samtidig. Hvert skrivebord konverteres til en overflatestruktur på kuben, som kan roteres etter ønske. Compiz viser et stort utvalg av 2D- og 3D -effekter og har relativt lave maskinvarekrav. I 2012 ble Compiz inkludert i Ubuntu Linux, og ble aktivert automatisk når støttet maskinvare og drivere var tilgjengelige og brukeren ikke hadde valgt 2D -modus.

Mutter (Metacity + Clutter ) har erstattet Metacity som standard vindusbehandling for GNOME . Den er omtalt i GNOME Shell -komponenten i GNOME 3.0. Den bruker skjermmotoren Clutter, som har blitt portet til alle større operativsystemer, netbooks og smarttelefoner .

Siden versjon 4 har KDEs vindusbehandler KWin kompositteringsfunksjoner. KWin har mye av den samme funksjonaliteten som også finnes i Compiz .

Java

Prosjektet Looking Glass var en vindusbehandler som kombinerer 3D-gjengivelse og cross-platform Java programmeringsspråk. Den er nå inaktiv og utgitt under GNU General Public License . Den Granular Linux live-cd distribusjon inkluderer Looking Glass som en valgfri vindusbehandler.

I kjølvannet av at det ble avviklet, har noen av funksjonene, for eksempel omslagskifte og miniatyrbilder forhåndsvisninger, funnet veien til andre vindusbehandlere. De mer originale funksjonene inkluderer vindus vipping, tosidige vinduskarmer og parallakse rullende bakgrunner.

AmigaOS 4 og MorphOS

Mens de er i stand til å kjøre på 3D-kompatibel maskinvare, er AmigaOS 4 og MorphOS designet for å kjøre på gamle eldre Amiga datamaskiner, starter med Amiga 1200 . Som sådan har deres vindusbehandlere stort sett planleggende gjengivelsesfunksjoner som inkluderer sammensatt lagdeling, alfa -blanding, gradienter, høy oppløsning og flere skrivebord ("skjermer") som delvis kan klippe hverandre.

Microsoft Windows

Selv om vindusbehandleren i Windows 2000 utfører komposisjon, utfører den ikke transformasjoner som en per-piksel alfa. Få kommersielle applikasjoner utnyttet alfa -blanding; freeware -programmer var blant de første som eksperimenterte med det, om enn gjennom valgfrie innstillinger. Compositing ble introdusert med Desktop Window Manager i Windows Vista .

Windows Vista og Windows 7 lar brukeren deaktivere Desktop Window Manager ved å velge innstillingene for grunnleggende utseende i Windows. I tillegg deaktiveres det automatisk av Windows for å utføre maskinvareoverlegg via filteret Overlay Mixer .

Brukervennlighet og øye godteri

Den sammensatte tilnærmingen gjør det lettere å implementere en rekke funksjoner som gjør brukergrensesnittet mer tilgjengelig, enklere å bruke eller med øyekonfektelementer.

Forstørrelsesglass

Forstørrelseseffekten i Compiz (klikk på bildet for å se i skala).

Vektorgrafikk , for eksempel TrueType- fonter og 3D-akselererte elementer, kan utvides uten forringelse (vanligvis på grunn av aliasing ). En forstørrelsesglass forstørrer et område av skjermen, noe som gjør deler av teksten lettere å lese - enten for å forhindre belastning av øyne , for synshemmede eller bare på avstand. Zoomeffekter som fiskeøyeforstørreren og zoom -skrivebordseffekter gir denne funksjonaliteten.

Live forhåndsvisning

En forhåndsvisning av et vindu kan vises i et popup- miniatyrbilde når brukeren holder musepekeren på den tilhørende oppgavelinjeknappen . Dette lar brukeren identifisere og administrere flere programmer som kjører samtidig.

Bytte vindu

Grunnleggende vindusbytte i Xgl.

Windows med lignende navn og ikoner har en tendens til å forårsake forvirring, spesielt når tittellinjene overlapper hverandre. plasseringen av hvert slikt vindu på oppgavelinjen må huskes. Når det er mange åpne vinduer på denne måten, må brukeren ofte ty til prøving og feiling-ved å klikke på hver oppgavelinjeknapp én etter én-før han fortsetter. Med vindusbytte kan du raskt forhåndsvise flere vinduer samtidig ved å midlertidig omorganisere dem mot en dekorativ bakgrunn. Etter at et valg er gjort, blir vinduene deretter restaurert til sitt opprinnelige arrangement.

Valget begynner når brukeren enten går inn i en hurtigtastkombinasjon , flytter musepekeren til et hotspot på skjermen , eller i noen situasjoner bruker musens rullehjul . Elementer navigeres ved hjelp av tastaturet eller musen. Et element velges ved å enten slippe hurtigtasten, trykke Enter -tasten eller klikke på den med musen.

Vend bytte

Vend bytte i Compiz.

Vippebryteren er en forbedring av Alt-Tab- byttefunksjonen. Løpende vinduer er ordnet i en stabel-ligner en velger i flip-stil i en jukeboks fra 1950-tallet , eller en Rolodex . I noen systemer kan brukeren trykke Alt-Shift-Tab for å navigere bakover. Visuelle overganger brukes på hvert element mens du navigerer.

Vanlige implementeringer av flip -bytte inkluderer Flip 3D i Windows og Shift Switcher i Compiz.

Deksel bytte

Dekselbryter i KWin.

Cover -bytte er som flip -switch med noen få, for det meste visuelle, forskjeller. I stedet for en stabel med utvalget øverst, vises to symmetriske stabler med gjeldende utvalg foran og i midten (ligner funksjonen for å vippe vinduet i Looking Glass).

Cover Flow er en implementering av cover switch i macOS. Nyere versjoner bruker uskarphet for å understreke ikke-valgte elementer. Cover Flow er også implementert i annen programvare utgitt av Apple, for eksempel iTunes .

Dette kalles også "flick-book view".

Ring bytte

Ringebytte i Compiz Fusion.

Ringbytte er som flip -switch, bortsett fra at vinduene beveger seg i en sirkel, med gjeldende valg foran, vanligvis nederst. De fleste sammensatte vindusbehandlere inkluderer denne funksjonen ut av esken , og tredjepartsapplikasjoner , for eksempel 3d-desktop , er også tilgjengelige.

Gruppering

Brukeren kan gruppere vinduer sammen, slik at bare ett vindu om gangen er synlig i hver gruppe. I Compiz blir vindusrammen vendt for å indikere når det aktive vinduet i gruppen har blitt endret.

Avdekke

macOS viser en forhåndsvisning av hvert vindu på skjermen ved å flise dem. Andre systemer med lignende funksjonalitet (Microsoft Windows, Compiz, KWin, tredjepartsapplikasjoner) omtales som Exposé-kloner. Hurtigtasten for å aktivere Exposé er ikke Alt-Tab, men heller F3.

Misjonskontroll

Mac OS X 10.7 kombinerer flere andre sammensettingsfunksjoner utviklet av Apple - for eksempel Exposé, Dashboard og Spaces - i et større program som heter Mission Control .

Widget -motorer

På MacOS "widgets" (single purpose applets kan) som en klokke, notatblokk og kalkulator vises ved å trykke en hurtigtast . Widgetmotorer fremskynder arbeidet ved å holde vanlige widgets tilgjengelige mens de er lite påtrengende. De håndteres av Dashboard -programmet i macOS.

Compiz starter med et tomt widgetlag, slik at brukeren kan legge til applikasjoner ved å klikke på dem. En rekke widgets støttes, inkludert Screenlets , gDesklets og SuperKaramba .

Windows Vista tilbyr gadgets som brukeren kan plassere på Windows Sidepanel (Sidepanel -gadgets), en Windows Live -startside (Web -gadgets) eller en ekstern skjerm, for eksempel brukerens mobiltelefon ( SideShow -gadgets ). Windows -sidefeltet var en synlig partisjon i Windows Vista, og ble eliminert i Windows 7, sammen med sidefelt -gadgets som ble endret til skrivebordsmoduler .

Overganger og andre effekter

Før sammensetting av vindusbehandlere ble utviklet, ville vinduer umiddelbart hoppe inn og ut av syne, noe som ikke stemmer overens med grensesnittmetaforen (og med en fysisk kontorinnstilling ). Noen systemer som Classic Mac OS unngikk dette problemet med ZoomRects , og animerte vinduene til å "zoome" mot sin endelige posisjon. Men på de fleste systemer kan det plutselige utseendet og forsvinningen av GUI -elementer virke forvirrende eller til og med kaotisk for uerfarne brukere. Visuelle overganger gir kontekst og hjelper til med å skille årsakssammenhenger mellom GUI -elementer. I stedet for bare å forsvinne, kan et vindu forsvinne eller synlig krympe til oppgavelinjen. En rullegardinmeny som har blitt klikket på kan jevnt stråle utover fra menylinjen, noe som gjør det lettere å bestemme opprinnelsen og formålet.

Gradvise og naturlige overganger kan være spesielt nyttige for eldre eller synshemmede brukere som merker endringer på skjermen saktere og med mindre klarhet. For eksempel kan en uerfaren bruker impulsivt klikke på en meny som ble aktivert ved et uhell, og få ham til å miste arbeid. Den korte forsinkelsen som er nødvendig for å vise en visuell overgang, kan gi brukeren nok tid til å ta en bevisst beslutning og unngå slike feil.

Brukergrensesnittfasader

Metisse implementerer brukergrensesnittfasader, et system som gir brukerne enkle måter å tilpasse, omkonfigurere og rekombinere eksisterende grafiske grensesnitt, ved bruk av direkte manipulasjonsteknikker .

Liste over sammensatte vindusbehandlere

Liste over frittstående sammensatte ledere

  • xcompmgr - et minimalt alternativ til Compiz
  • Compton- en feilrettet gaffel av dcompmgr, som er en gaffel med xcompmgr. (Ikke vedlikeholdt siden 2017.)
  • Picom -en lett komponist for X11. Det er en gaffel av Compton.
  • Cairo Compmgr (Cairo Composite Manager)-et sammensatt tillegg for eksisterende vindusbehandlere. Den bruker Kairo , et vektorgrafikkbibliotek som også brukes i GTK+ .
  • Unagi Compositing Manager - en komposittbehandling som kan brukes sammen med en eksisterende vindusbehandling. Den bruker XCB -biblioteket. (Ikke vedlikeholdt siden 2014.)
  • MCompositor - brukes på MeeGo -telefoner .

Operativsystemer med sammensatte vindusbehandlere

Se også

Referanser

Eksterne linker