WinG
Microsoft WinG | |
---|---|
Basisdaten | |
Entwickler | Microsoft Corporation |
Erscheinungsjahr | 1994 |
Aktuelle Version | 1.0 (21.09.1994) |
Betriebssystem | ab Windows 3.1 und ab Microsoft Windows NT 3.5 |
Kategorie | Programmierschnittstelle |
Lizenz | MS-EULA |
Sonstiges | Systemvoraussetzung 80386 CPU oder besser |
WinG (sprich: Win Gee) ist eine Grafik-Programmierschnittstelle für Windows 3.1 und Windows 95, 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. Sie ist als 16-Bit- und 32-Bit-Version verfügbar und erlaubte somit auch die Entwicklung von vollwertigen 32-Bit-Win32-Spielen.
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.[1] 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.
Verwendung
Zu den ersten Spielen die WinG verwendet haben zählen Doom für Windows und Pinball.[2] Weitere Spiele sind bspw. Civilization 2.
WinG Heute
Unter einem modernen Windows kann man seit Windows 95 die Funktion CreateDIBSection()
verwenden und StretchBlt()
und BitBlt()
darauf anwenden um im Wesentlichen die gleiche Funktionalität von WinG unter einem modernen Windows zu erhalten.[3] Für eine Ausgabe, in der Hardwarebeschleunigung verwendet werden soll, sind modernere APIs wie bspw. Direct2D zuständig.
Weblinks
Einzelnachweise
- ↑ Video Game Newsroom Time Machine: OpenGL vs. Direct3D - Servan Keondjian & Casey Muratori (ab 0:21:39) auf YouTube, 7. Juni 2023, abgerufen am 25. Februar 2024 (Laufzeit: 133:29 min).
- ↑ "Spiele-Schnittstelle WinG für Windpws 95" PC Professionell 9/95 S. 156
- ↑ Video Game Newsroom Time Machine: OpenGL vs. Direct3D - Servan Keondjian & Casey Muratori (ab 0:25:44) auf YouTube, 7. Juni 2023, abgerufen am 25. Februar 2024 (WinG Fähigkeit unter einem modernen Windows Betriebssystem; Laufzeit: 133:29 min).