Auflösung Unabhängigkeit - Resolution independence

Bei der Auflösungsunabhängigkeit werden Elemente auf einem Computerbildschirm in vom Pixelraster unabhängigen Größen gerendert. Dies führt zu einer grafischen Benutzeroberfläche , die unabhängig von der Auflösung des Bildschirms in einer einheitlichen Größe angezeigt wird.

Konzept

Bereits 1978 führte das Satzsystem TeX aufgrund von Donald Knuth die Auflösungsunabhängigkeit in die Welt der Computer ein. Die beabsichtigte Ansicht kann ohne Artefakte über die atomare Auflösung hinaus gerendert werden, und die automatischen Satzentscheidungen sind auf jedem Computer bis zu einem Fehler kleiner als der Durchmesser eines Atoms garantiert identisch. Dieses wegweisende System verfügt über ein entsprechendes Schriftsystem , Metafont , das geeignete Schriftarten mit denselben hohen Standards für die Unabhängigkeit von Auflösungen bereitstellt.

Das terminologiegeräteunabhängige Dateiformat (DVI) ist das Dateiformat von Donald Knuths wegweisendem TeX- System. Der Inhalt einer solchen Datei kann mit jeder Auflösung ohne Artefakte interpretiert werden, selbst mit sehr hohen Auflösungen, die derzeit nicht verwendet werden.

Implementierung

Das Dialogfeld "Systemeinstellungen" von macOS 10.8.5, die nicht skalierte Benutzeroberfläche (links) und die skalierte HighDPI-Benutzeroberfläche (rechts)

Mac OS

Apple hat in früheren Versionen von macOS eine gewisse Unterstützung für die Unabhängigkeit von der Auflösung aufgenommen , die mit dem Entwicklertool Quartz Debug demonstriert werden konnte, das eine Funktion enthielt, mit der der Benutzer die Benutzeroberfläche skalieren konnte. Die Funktion war jedoch unvollständig, da einige Symbole nicht angezeigt wurden (z. B. in den Systemeinstellungen), Benutzeroberflächenelemente an ungeraden Positionen angezeigt wurden und bestimmte Bitmap- GUI- Elemente nicht reibungslos skaliert wurden. Da die Skalierungsfunktion nie abgeschlossen wurde, blieb die Benutzeroberfläche von macOS auflösungsabhängig.

Am 11. Juni 2012 stellte Apple das 2012 MacBook Pro mit einer Auflösung von 2880 × 1800 oder 5,2 Megapixeln vor - eine Verdoppelung der Pixeldichte in beiden Dimensionen. Der Laptop wurde mit einer Version von macOS ausgeliefert, die Unterstützung für die doppelte Skalierung der Benutzeroberfläche bietet. Diese Funktion wird in macOS als HighDPI-Modus bezeichnet und verwendet einen festen Skalierungsfaktor von 2, um die Benutzeroberfläche für hochauflösende Bildschirme zu vergrößern. Apple hat auch die Unterstützung für die Skalierung der Benutzeroberfläche eingeführt, indem die Benutzeroberfläche mit einer höheren oder kleineren Auflösung als die integrierte native Auflösung des Laptops gerendert und die Ausgabe auf den Laptop-Bildschirm skaliert wurde. Ein offensichtlicher Nachteil dieses Ansatzes ist entweder eine verringerte Leistung beim Rendern der Benutzeroberfläche mit einer höheren als der nativen Auflösung oder eine erhöhte Unschärfe beim Rendern mit einer niedrigeren als der nativen Auflösung. Während die Benutzeroberfläche von macOS mit diesem Ansatz skaliert werden kann, ist die Benutzeroberfläche selbst nicht auflösungsunabhängig.

Microsoft Windows

Das GDI- System in Windows ist pixelbasiert und daher nicht auflösungsunabhängig. Scale - up der Benutzeroberfläche, Microsoft Windows unterstützt hat eine benutzerdefinierte Angabe DPI seit der Systemsteuerung von Windows 95 . (In Windows 3.1 ist die DPI-Einstellung abhängig von der Treiberinformationsdatei an die Bildschirmauflösung gebunden.) Wenn eine benutzerdefinierte System-DPI angegeben wird, wird die im Betriebssystem integrierte Benutzeroberfläche skaliert. Windows enthält auch APIs, mit denen Anwendungsentwickler Anwendungen entwerfen können, die ordnungsgemäß skaliert werden können.

GDI + in Windows XP fügt auflösungsunabhängiges Text-Rendering hinzu. Die Benutzeroberfläche in Windows-Versionen bis Windows XP ist jedoch nicht vollständig DPI-fähig, da Anzeigen mit sehr hohen Auflösungen und hohen Pixeldichten in diesem Zeitraum nicht verfügbar waren. Windows Vista und Windows 7 lassen sich bei höheren DPIs besser skalieren.

Windows Vista bietet außerdem Unterstützung für Programme, die sich über eine Manifestdatei oder die Verwendung einer API gegenüber dem Betriebssystem als hochauflösend ausweisen. Für Programme, die sich nicht als DPI-fähig deklarieren, unterstützt Windows Vista eine Kompatibilitätsfunktion namens DPI-Virtualisierung, sodass Systemmetriken und Benutzeroberflächenelemente Anwendungen so angezeigt werden, als würden sie mit 96 DPI ausgeführt, und der Desktop Window Manager skaliert dann das resultierende Anwendungsfenster um der DPI-Einstellung zu entsprechen. Windows Vista behält die Skalierungsoption im Windows XP-Stil bei, die bei Aktivierung die DPI-Virtualisierung (verschwommenen Text) für alle Anwendungen weltweit deaktiviert.

Windows Vista führt auch Windows Presentation Foundation ein . WPF-Anwendungen sind vektorbasiert, nicht pixelbasiert und auflösungsunabhängig ausgelegt.

Windows 7 bietet die Möglichkeit, die DPI zu ändern, indem nur eine Abmeldung und kein vollständiger Neustart durchgeführt wird, und macht dies zu einer Einstellung pro Benutzer. Darüber hinaus liest Windows 7 die Monitor-DPI aus der EDID und stellt den DPI-Wert automatisch so ein, dass er der physischen Pixeldichte des Monitors entspricht, es sei denn, die effektive Auflösung beträgt weniger als 1024 x 768.

In Windows 8 wird im DPI-Änderungsdialog nur der DPI-Skalierungsprozentsatz angezeigt, und die Anzeige des unformatierten DPI-Werts wurde entfernt. In Windows 8.1 wird die globale Einstellung zum Deaktivieren der DPI-Virtualisierung (nur XP-Skalierung verwenden) entfernt. Bei Pixeldichten von mehr als 120 PPI (125%) ist die DPI-Virtualisierung für alle Anwendungen aktiviert, ohne dass ein DPI-fähiges Flag (Manifest) in der EXE gesetzt ist. Windows 8.1 behält eine anwendungsspezifische Option zum Deaktivieren der DPI-Virtualisierung einer App bei. Windows 8.1 bietet außerdem die Möglichkeit, dass jede Anzeige eine unabhängige DPI-Einstellung verwendet, die jedoch automatisch für jede Anzeige berechnet wird. Windows 8.1 verhindert, dass ein Benutzer die DPI-Virtualisierung einer Anwendung zwangsweise aktiviert. Wenn eine Anwendung fälschlicherweise behauptet, DPI-fähig zu sein, sieht sie auf hochauflösenden Displays in 8.1 zu klein aus, und ein Benutzer kann dies nicht korrigieren.

Windows 10 bietet eine manuelle Steuerung der DPI für einzelne Monitore. Darüber hinaus bringt Windows 10 Version 1703 die GDI-Skalierung im XP-Stil unter der Option "System (erweitert)" zurück. Diese Option kombiniert die Textwiedergabe von GDI + mit einer höheren Auflösung mit der üblichen Skalierung anderer Elemente, sodass der Text gestochen scharfer erscheint als im normalen Virtualisierungsmodus "System".

Android

Seit Android 1.6 "Donut" (September 2009) unterstützt Android mehrere Bildschirmgrößen und -dichten. Android drückt Layoutabmessungen und -position über das dichteunabhängige Pixel oder "dp" aus, das als ein physisches Pixel auf einem 160-dpi-Bildschirm definiert ist. Zur Laufzeit übernimmt das System bei Bedarf eine transparente Skalierung der dp-Einheiten auf der Grundlage der tatsächlichen Dichte des verwendeten Bildschirms.

Um die Erstellung zugrunde liegender Bitmaps zu erleichtern, kategorisiert Android Ressourcen basierend auf Bildschirmgröße und -dichte:

Illustration, wie Android tatsächliche Größen und Dichten grob auf allgemeine Größen und Dichten abbildet.

X Fenstersystem

Die Druckereinstellungen des GNOME 3.10 Control Centers sind nicht skaliert (links) und skaliert (rechts).

Die Xft- Bibliothek, die Schriftart-Rendering-Bibliothek für das X11-System, hat eine dpi-Einstellung, die standardmäßig 75 ist. Dies ist lediglich ein Wrapper um das FC_DPI-System in fontconfig, reicht jedoch aus, um den Text in Xft-basierten Anwendungen zu skalieren. Der Mechanismus wird auch von Desktop-Umgebungen erkannt, um eine eigene DPI festzulegen, normalerweise in Verbindung mit der EDID-basierten DisplayWidthMM- Familie von Xlib- Funktionen. Letzteres wurde in Xorg Server 1.7 unwirksam gemacht. Seitdem sind EDID-Informationen nur noch XRandR ausgesetzt .

Im Jahr 2013 begann die GNOME- Desktop-Umgebung mit den Bemühungen, die Unabhängigkeit der Auflösung ("Hi-DPI" -Unterstützung) für verschiedene Teile des Grafikstapels zu verbessern. Der Entwickler Alexander Larsson schrieb zunächst über Änderungen, die in den Themen GTK + , Kairo , Wayland und GNOME erforderlich sind . Am Ende der BoF-Sitzungen auf der GUADEC 2013 erwähnte GTK + -Entwickler Matthias Clasen, dass die Hi-DPI-Unterstützung in GTK 3.10 nach Abschluss der Arbeiten an Kairo "ziemlich vollständig" sein würde. Seit Januar 2014 wird die Hi-DPI-Unterstützung für Clutter und GNOME Shell fortgesetzt.

Gtk unterstützt die Skalierung aller UI-Elemente nach ganzzahligen Faktoren und des gesamten Textes nach nicht negativen reellen Zahlenfaktoren. Ab 2019 ist die fraktionierte Skalierung der Benutzeroberfläche durch Vergrößern und Verkleinern experimentell.

Andere

Obwohl dies nicht mit einer echten Auflösungsunabhängigkeit zusammenhängt, verwenden einige andere Betriebssysteme GUIs , die sich an geänderte Schriftgrößen anpassen können. Ab Microsoft Windows 95 wurde die Marlett TrueType- Schriftart verwendet, um einige Fenstersteuerelemente (Schließen, Maximieren, Minimieren, Ändern der Größe von Handles) auf beliebige Größen zu skalieren. AmigaOS ab Version 2.04 (1991) konnte seine Fenstersteuerelemente an jede Schriftgröße anpassen.

Videospiele sind oft auflösungsunabhängig. Ein frühes Beispiel ist Another World for DOS , das Polygone zum Zeichnen seines 2D-Inhalts verwendete und später mit denselben Polygonen mit einer viel höheren Auflösung neu erstellt wurde. 3D-Spiele sind auflösungsunabhängig, da die Perspektive für jedes Bild berechnet wird und daher die Auflösung variieren kann.

Siehe auch

Verweise

Externe Links