Grafik in Windows 7: Rückkehr der Hardwarebeschleunigung


Bild 1: 2-D-Grafik gibt es in einer fensterbasierenden Benutzeroberfläche nicht.

In einem fensterorientierten System wie Windows gibt es keine Zweidimensionalität. Zwar besteht jedes einzelne Fenster nur aus einer X- und einer Y-Achse, jedoch besitzt der Desktop eine Z-Komponente, die immer dann relevant wird, wenn sich zwei Fenster überlappen. Obwohl der Abstand auf der Z-Achse 0 beträgt, ist es entscheidend, in welcher Reihenfolge die Fenster auf der Z-Achse angeordnet sind. Daher spricht man von der Z-Order, siehe Bild 1 und Bild 2.

Dieses virtuelle Koordinatensystem nennt man auch 2,5-dimensional. Dieser Begriff ist allerdings noch mit weiteren Bedeutungen belegt. Obwohl das Koordinatensystem "flach" ist, muss man eine dritte Dimension einbeziehen. Echte Zweidimensionalität gibt es nur bei Fullscreen-Anwendungen.


Bild 2: Dieses Bild zeigt dieselben Fenster wie in Bild 1. Nur die "Z-Order" wurde vertauscht.

Bei Grafikkarten ohne jede Hardwarebeschleunigung, etwa Standard-VGA- oder ältere SVGA-Karten, stellt sich die Frage, wie man 2,5D-Fenster auf dem 2D-Bildschirm darstellt. Das linke Fenster in Bild 1 stellt einen Vollkreis dar. Da das Fenster jedoch von einem anderen zur Hälfte überlappt wird, darf nur ein Halbkreis gezeichnet werden.

Die einfachste Lösung wäre, zunächst das "unterste" Fenster komplett zu zeichnen. Danach zeichnet man nacheinander die darüberliegenden Fenster. Das ist aber überhaupt nicht praktikabel, da jede noch so kleine Änderung im sichtbaren Teils eines Fenster dazu führen würde, dass das der gesamte Desktop neu aufgebaut werden müsste.


Bild 3: Windows 1.0 kam 1985 ohne überlappende Fenster auf den Markt.

Man muss also eine andere Lösung finden, die nur den sichtbaren Teil eines Fenster zeichnet. Gleichzeitig muss gewährleistet sein, dass das API für den Programmierer so gestaltet ist, dass er einfach nur einen Kreis zeichnen kann, ohne sich darum zu kümmern, ob und wie viel von seinem Fenster sichtbar ist.

Microsoft ist an dieser Herausforderung zunächst gescheitert. Als im Jahr 1985 Windows 1.0 mit großer Verspätung erschien, unterstützte es keine überlappenden Fenster, siehe Bild 3.

Zwar konnte Windows 1.0 Dialogboxen und Menüs über andere Fenster legen, aber nur, weil die Fenster darunter eingefroren wurden. Ansonsten war es lediglich möglich, den Bildschirm in einzelne Rechtecksegmente aufzuteilen.


Bild 4: Digital Research beherrschte überlappende Fenster mit GEM (Quelle: Wikipedia).

Andere Hersteller beherrschten damals überlappende Fenster, beispielsweise Digital Research mit GEM, siehe Bild 4. Erst 1987 konnte Microsoft mit Windows 2.0 überlappende Fenster anbieten.

Bis dahin musste Steve Ballmer, damals Vice President für Sales und Marketing, persönlich sein ganzes Verkaufstalent einsetzen, damit Windows nicht durch GEM vollends vom Markt verdrängt wird.



Um nicht von GEM verdrängt zu werden, musste Steve Ballmer für Windows 1.0 persönlich sein ganzes Verkaufstalent einsetzen (Quelle: YouTube).

Themenseiten: Anwendungsentwicklung, Betriebssystem, Business-Software, Grafikchips, Microsoft, Software, Windows 7

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

2 Kommentare zu Grafik in Windows 7: Rückkehr der Hardwarebeschleunigung

Kommentar hinzufügen
  • Am 1. August 2009 um 14:09 von grep

    Sicherlich interessant, aber….
    …das "Hochlicht" ist ohne Zeifel die unvergleichliche Performance eines gewissen Herrn Ballmer.
    Ich wünschte heute würde man immer noch so Software verkaufen. Man nimmt sich einfach immer viel zu ernst.
    mfg

  • Am 25. August 2009 um 7:51 von Zockelmaniac

    Kann W7 auch den Dualspan modus
    Das ist was mir in Vista total abging
    das man in Games nur noch einen Monitor hatte anstatt 3 wie unter XP…

    warum steht davon nix im Artikel
    das Feature war für mich der Grund Vista zu deinstallieren und XP neu aufzuspielen…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *