
WinG(ウィンジーと発音)は、Windows 3.xオペレーティングシステム上でより高速なグラフィック性能を提供するために設計されたアプリケーション プログラミング インターフェイスです。当初は、ゲーム開発者が MS-DOS ゲームをWindowsに簡単に移植できるようにするための手段として位置づけられていました。[ 1 ] WinG はすぐにDirectXに取って代わられ、廃止されました。
WinGは2つの問題を解決しました。WinGが解決した最初の問題は、Windows 3.xがデバイス非依存ビットマップに基づくデバイスコンテキスト(DC)の作成をサポートしておらず、実際のディスプレイデバイスのみをサポートしていたことです。グラフィックスデバイスインターフェイス(GDI)DCの大きな制限の1つは、書き込み専用だったことです。一度書き込まれたデータは取り出すことができませんでした。2つ目の問題は、すべてのGDI描画がWindows 3.xのビデオドライバで実装されていたことです。これにはビットマップの描画も含まれていました。
DirectXの開発者の一人であるアレックス・セント・ジョンは、 2000年のインタビューで次のように述べている。
WinG は、研究グループのクリス・ヘッカーが開発していた技術で、当時はマイクロソフトの小規模なスカンクワークス・プロジェクトの一つで、非常に目立たず、型破りなものでした。基本的には、壊れた Windows ドライバーを修正して、より高速で快適に動作するようにするものでした。これを使用することで、実際に、DOS とほぼ同じ速度で Windows 上で DOOM を実行できるビデオ API を作成することができました。[ 2 ]
マイクロソフトは1994年のゲーム開発者会議でWinGを発表し、 id SoftwareによるDoomの移植版でデモを行った。[ 3 ] WinGは1994年9月21日に出荷された。 [ 4 ] WinGは興味深いものではあったが、基本的にはメモリにビットマップを描画し、描画後にフレームを出力するという方式に基づいていた。その結果、WinGは非推奨となり、DirectXが開発された。しかし、Windows NT 3.5とWindows 95では、DIBに基づいてDCを作成するためのCreateDIBSectionが導入され、ビデオドライバも最終的に改良された。
WinG は WinGDC と呼ばれる新しいタイプのデバイス コンテキストを導入し[ 5 ] 、プログラマーは wingdib.drv ドライバーを使用してデバイス非依存ビットマップ(DIB)を使用して直接読み書きできるようになりました。プログラマーは DIB を WinGDC に書き込み、画像データの個々のビットにもアクセスできました。これにより、高速スクロール、オーバードロー、ダーティ矩形、ダブルバッファリング、その他のアニメーション技術を可能にする高速グラフィックスアルゴリズムを記述することができました。WinG は、グラフィックス データを物理グラフィックス デバイス メモリにブリットする際のパフォーマンスが大幅に向上しました。WinG は DIB フォーマットを使用していたため、元の GDI API 呼び出しと WinG 呼び出しを混在させることができました。[ 5 ]
WinGは、DIBを描画する最適な方法を決定するために、プログラムの初回実行時にグラフィックハードウェア/ドライバのプロファイリングテストも実行します。このテストでは、赤い曲線で埋め尽くされたウィンドウが表示され、パフォーマンステスト中は曲線の一部が揺れ動きます。WinGが最適な方法を決定すると、その結果はプロファイルに保存されます。
WinG の標準サポート (Win32 とは別の API として) は、Windows 98 Second Edition ( DirectX 6を統合) で廃止されました。これは、WinG がラップしていた Win32 API (CreateDIBSection を含む) をそのまま渡すだけだったためです。WinG DLL はアプリケーションに同梱されることがあり、その場合は wing.dll、wing32.dll、wingde.dll、wingdib.drv、wingpal.wnd の各ファイルをsystem32ディレクトリ (32 ビット Windows の場合) またはSysWOW64ディレクトリ (64 ビット Windows の場合) にコピーするだけで、システム全体でのサポートを回復できました。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)