WinG
WinG (sprich: Win Gee) ist eine Grafik-Programmierschnittstelle für Windows 3.1, die bis Windows 98 Second Edition unterstützt wurde und anschließend komplett in die Graphics Device Interface (GDI) übernommen wurde. Grund für ihre Entwicklung waren Unzulänglichkeiten in der GDI.
Hintergrund
Die GDI wurde mit dem Gedanken entwickelt, Grafik unabhängig vom tatsächlich verwendeten Ausgabegerät darstellen zu können. So ist es beispielsweise möglich, mit demselben Quelltext eine Grafik zu drucken oder auf den Bildschirm auszugeben. Mittels entsprechender GDI-Treiber werden die Grafikdaten umgewandelt und in einer gerätespezifischen Umgebung, dem sogenannten Device Context (DC), in einem Bildspeicher (Framebuffer) gespeichert. Von dort aus können sie dann direkt von der jeweiligen Hardware angesprochen werden. Für Animationen ist dieser Ansatz jedoch nicht geeignet, da die Bilddaten sehr häufig aktualisiert werden müssen und die Umwandlung in einen geräteabhängigen Kontext zeitaufwendig ist. Hinzu kommt, dass es nicht möglich ist, Informationen aus dem Kontext wieder auszulesen, da die Daten dort in einem Hardware-abhängigen Format vorliegen und das Auslesen keinen Sinn hätte.
Diese Problematik wird von WinG mit Hilfe von device-independent Bitmaps (DIB), also geräteunabhängigen Bildern umgangen, die in einem WinGDC abgelegt werden. Diese besitzen zwar nicht die Möglichkeit, direkt auf andere Ausgabegeräte umgeleitet zu werden, aber die zeitaufwendige Konvertierung in ein natives Format ist nicht notwendig, und die Pixel können wieder ausgelesen werden.
Details
WinG wurde maßgeblich dafür entwickelt, Grafikanwendungen für Windows populärer zu machen. DOS besaß den großen Vorteil, dass man ohne Probleme direkt auf den Grafikspeicher zugreifen konnte, was unter Windows ohne WinG nicht möglich war. Mit BitBlt() und StretchBlt() führte die API einige Blitting-Operationen ein, die die Anzeige von Bildern und Grafiken erleichtern sollte. Zusammen mit den GDI-Aufrufen, zu denen WinG vollständig kompatibel ist, war es erstmals auch unter Windows möglich, komplexere Grafik-Algorithmen wie Double Buffering, Dirty Rectangles, Overdraw, und Fast Scrolling zu realisieren.
Nach der Installation führt WinG einen grafischen Performanz-Test durch, in dem es eine Reihe von Funktionsaufrufe an die Grafikkarte durchführt und deren Zeit misst. Auf dem Bildschirm ist für einige Zeit ein Muster mit verschlungenen roten Linien zu sehen, die sich hin- und herbewegen. Wenn der Test abgeschlossen ist, werden die schnellsten Funktionen, die keine Artefakte verursachen, gespeichert, so dass der Test nur einmal ausgeführt werden muss.
Mit dem wachsenden Erfolg von DirectDraw wurde WinG zunehmend unbedeutender und wurde mit dem Release von DirectX 6.0 vollständig in die GDI-Bibliothek eingegliedert. Als indirekte Nachfolger können GDI+ und die Windows Graphics Foundation gesehen werden.