Oppløsningsuavhengighet - Resolution independence

Oppløsningsuavhengighet er der elementene på en dataskjerm blir gjengitt i størrelser uavhengig av pikselrutenettet , noe som resulterer i et grafisk brukergrensesnitt som vises i en jevn størrelse, uavhengig av skjermoppløsningen.

Konsept

Allerede i 1978 introduserte typesettingssystemet TeX på grunn av Donald Knuth oppløsningsuavhengighet i datamaskinens verden. Den tiltenkte visningen kan gjengis utover atomoppløsningen uten gjenstander, og de automatiske typesettingsbeslutningene er garantert identiske på hvilken som helst datamaskin, opp til en feil mindre enn diameteren til et atom. Dette banebrytende systemet har en tilsvarende skriftsystem, Metafont , som gir passende skrifter av samme høye krav til oppløsning uavhengighet.

Terminologienhetens uavhengige filformat (DVI) er filformatet til Donald Knuths banebrytende TeX- system. Innholdet i en slik fil kan tolkes i alle oppløsninger uten gjenstander, selv i svært høye oppløsninger som ikke er i bruk for øyeblikket.

Gjennomføring

Dialogboksen macOS 10.8.5 Systemvalg, ikke-skalert UI (venstre) og skalert HighDPI UI (høyre)

Mac os

Apple inkluderte litt støtte for oppløsningsuavhengighet i tidlige versjoner av macOS , som kunne demonstreres med utviklerverktøyet Quartz Debug som inkluderte en funksjon som lar brukeren skalere grensesnittet. Men funksjonen var ufullstendig, så noen ikoner ikke vises (for eksempel i Systemvalg), ble elementer i brukergrensesnittet vises på ulike stillinger og visse bitmap grafiske elementer ble ikke skalert jevnt. Fordi skaleringsfunksjonen aldri ble fullført, forble macOSs brukergrensesnitt oppløsningsavhengig.

11. juni 2012 introduserte Apple MacBook Pro 2012 med en oppløsning på 2880 × 1800 eller 5,2 megapiksler - dobling av pikseltettheten i begge dimensjoner. Den bærbare datamaskinen ble levert med en versjon av macOS som ga støtte for å skalere brukergrensesnittet dobbelt så stort som det tidligere har vært. Denne funksjonen kalles HighDPI-modus i macOS, og den bruker en fast skaleringsfaktor på 2 for å øke størrelsen på brukergrensesnittet for høy-DPI-skjermer. Apple introduserte også støtte for skalering av brukergrensesnittet ved å gjengi brukergrensesnittet på høyere eller mindre oppløsning som den bærbare datamaskinens innebygde, opprinnelige oppløsning og skalere utdataene til den bærbare skjermen. En åpenbar ulempe med denne tilnærmingen er enten en redusert ytelse når du gjengir brukergrensesnittet med en høyere oppløsning enn opprinnelig eller økt uskarphet når du gjengir lavere enn opprinnelig oppløsning. Selv om macOS brukergrensesnitt kan skaleres ved hjelp av denne tilnærmingen, er brukergrensesnittet ikke selv oppløsningsuavhengig.

Microsoft Windows

The GDI -systemet i Windows er pikselbasert og dermed ikke oppløsning-uavhengig. For å skalere opp brukergrensesnittet har Microsoft Windows støttet å spesifisere en tilpasset DPI fra kontrollpanelet siden Windows 95 . (I Windows 3.1 er DPI-innstillingen knyttet til skjermoppløsningen, avhengig av driverinformasjonsfilen.) Når et tilpasset system-DPI er spesifisert, skaleres det innebygde brukergrensesnittet i operativsystemet opp. Windows inkluderer også APIer for applikasjonsutviklere for å designe applikasjoner som skaleres ordentlig.

GDI + i Windows XP legger til oppløsningsuavhengig tekstgjengivelse, men brukergrensesnittet i Windows-versjoner opp til Windows XP er ikke helt høy-DPI klar, da skjermer med svært høye oppløsninger og høye pikseltettheter ikke var tilgjengelige i den tidsrammen. Windows Vista og Windows 7 skaleres bedre ved høyere DPIer.

Windows Vista legger også til støtte for programmer for å erklære seg overfor operativsystemet at de er høy-DPI klar over en manifestfil eller bruker en API. For programmer som ikke erklærer seg DPI-bevisste, støtter Windows Vista en kompatibilitetsfunksjon kalt DPI-virtualisering, slik at systemberegninger og UI-elementer presenteres for applikasjoner som om de kjører ved 96 DPI, og Desktop Window Manager skalerer deretter det resulterende applikasjonsvinduet for å matche DPI-innstillingen. Windows Vista beholder alternativet for skalering av Windows XP-stil, som når det er aktivert, slår av DPI-virtualisering (uskarp tekst) for alle applikasjoner globalt.

Windows Vista introduserer også Windows Presentation Foundation . WPF-applikasjoner er vektorbaserte, ikke pikselbaserte og er designet for å være oppløsningsuavhengige.

Windows 7 legger til muligheten til å endre DPI ved å bare logge av, ikke en full omstart, og gjør det til en innstilling per bruker. I tillegg leser Windows 7 skjermen DPI fra EDID og setter automatisk DPI-verdien til å matche skjermens fysiske pikseltetthet, med mindre den effektive oppløsningen er mindre enn 1024 x 768.

I Windows 8 vises bare DPI-skaleringsprosenten i DPI-endringsdialogen, og visningen av den rå DPI-verdien er fjernet. I Windows 8.1 blir den globale innstillingen for å deaktivere DPI-virtualisering (bare bruk XP-stil skalering) fjernet. Ved pikseltettheter høyere enn 120 PPI (125%) er DPI-virtualisering aktivert for alle applikasjoner uten et DPI-kjent flagg (manifest) satt i EXE. Windows 8.1 beholder et alternativ per applikasjon for å deaktivere DPI-virtualisering av en app. Windows 8.1 legger også til muligheten for hver skjerm til å bruke en uavhengig DPI-innstilling, selv om den automatisk beregner dette for hver skjerm. Windows 8.1 forhindrer en bruker fra å aktivere DPI-virtualisering av et program med makt. Derfor, hvis et program feilaktig hevder å være DPI-bevisst, vil det se for lite ut på høy-DPI-skjermer i 8.1, og en bruker kan ikke rette det.

Windows 10 legger til manuell kontroll over DPI for individuelle skjermer. I tillegg bringer Windows 10 versjon 1703 tilbake GDI-skalering i XP-stil under et "System (Enhanced)" -alternativ. Dette alternativet kombinerer GDI + 's tekstgjengivelse med en høyere oppløsning med vanlig skalering av andre elementer, slik at teksten ser skarpere ut enn i normal "System" virtualiseringsmodus.

Android

Siden Android 1.6 "Donut" (september 2009) har Android gitt støtte for flere skjermstørrelser og tettheter. Android uttrykker layoutdimensjoner og posisjon via tetthetsuavhengig piksel eller "dp" som er definert som en fysisk piksel på en 160 dpi skjerm. Ved kjøretid håndterer systemet gjennomsiktig enhver skalering av dp-enhetene, etter behov, basert på den faktiske tettheten til skjermen som er i bruk.

For å hjelpe til med å lage underliggende bitmaps, kategoriserer Android ressurser basert på skjermstørrelse og tetthet:

Illustrasjon av hvordan Android omtrent kartlegger faktiske størrelser og tettheter til generaliserte størrelser og tettheter.

X Window System

Den GNOME 3.10 Kontrollsenter skriverinnstillinger, ikke-skalert (venstre) og skalert (til høyre)

Den Xft bibliotek, skriftgjengivelse biblioteket for X11-systemet, har en dpi innstilling som standard til 75. Dette er bare en wrapper rundt FC_DPI system i Fontconfig, men det er nok for skalering av tekst i Xft-baserte applikasjoner. Mekanismen oppdages også av skrivebordsmiljøer for å sette sin egen DPI, vanligvis i forbindelse med den EDID-baserte DisplayWidthMM- familien av Xlib- funksjoner. Sistnevnte har blitt gjort ineffektiv i Xorg Server 1.7; siden da er EDID-informasjon bare eksponert for XRandR .

I 2013 startet GNOME- skrivebordsmiljøet arbeidet med å bringe oppløsningsuavhengighet ("hi-DPI" -støtte) for forskjellige deler av grafikkstakken. Utvikler Alexander Larsson skrev opprinnelig om endringer som kreves i GTK + , Cairo , Wayland og GNOME-temaene. På slutten av BoF-øktene på GUADEC 2013 nevnte GTK + -utvikler Matthias Clasen at hi-DPI-støtte ville være "ganske komplett" i GTK 3.10 når arbeidet med Kairo var fullført. Fra januar 2014 er hi-DPI-støtte for Clutter og GNOME Shell pågående arbeid.

Gtk støtter skalering av alle brukergrensesnittelementer etter heltalsfaktorer, og all tekst med ikke-negative reelle tallfaktorer. Fra og med 2019 er fraksjonell skalering av brukergrensesnittet ved å skalere opp og deretter ned eksperimentell.

Annen

Selv om det ikke er relatert til ekte oppløsningsuavhengighet, bruker noen andre operativsystemer GUI-er som er i stand til å tilpasse seg endrede skriftstørrelser. Microsoft Windows 95 og fremover brukte Marlett TrueType- fonten for å skalere noen vinduskontroller (lukk, maksimer, minimer, endre størrelse på håndtakene) til vilkårlige størrelser. AmigaOS fra versjon 2.04 (1991) klarte å tilpasse vinduskontrollene til alle skriftstørrelser.

Videospill er ofte oppløsningsuavhengige; et tidlig eksempel er Another World for DOS , som brukte polygoner for å tegne 2D-innholdet og ble senere omgjort med de samme polygonene i en mye høyere oppløsning. 3D-spill er oppløsningsuavhengige siden perspektivet beregnes hver ramme, og det kan variere oppløsningen.

Se også

Referanser

Eksterne linker