Graphics Device Interface
グラフィックスデバイスインタフェースは、グラフィカルオブジェクトを表現し、プリンタやモニタなどの出力デバイスに転送するために使用されるMicrosoft WindowsのAPIです。
GDI は、線や曲線の描画、フォントのレンダリング、パレットの操作などのタスクを担当します。GDI は、ウィンドウやメニューなどの描画には直接責任を持ちません。他のシステムには、MacintoshのQuickDrawやGNOME/GTKのGDK/Xlibなど、GDIに似たコンポーネントがあります。
おそらく、ハードウェアに直接アクセスするよりもGDIの最も重要な機能は、スケーリング機能とターゲットデバイスの抽象化です。GDIを使用すると、スクリーンやプリンタなどの複数のデバイスに描画し、それぞれのケースで適切な再現を期待することが非常に簡単にできます。この機能は、Microsoft Windows用のすべてのアプリケーションの中心にあります。
高速なグラフィックス描画を必要としないシンプルなゲームではGDIを使用します。しかし、GDIはフレームバッファとの同期の概念を持たず、3D用のラスタライズを欠いているため、適切なアニメーションを行うことができません。現代のゲームは通常、代わりにDirectXやOpenGLを使用しており、プログラマーは現代のハードウェアの機能を使用できるようになっています。
質問と回答
Q: GDI(Graphics Device Interface)とは何ですか?
A: Graphics Device Interface (GDI) は Microsoft Windows の API で、グラフィックオブジェクトを表現し、プリンタやモニタなどの出力デバイスに送信するために使用されます。
Q: GDIはどのようなタスクを担当しますか?
A: GDIは、線や曲線の描画、フォントのレンダリング、パレットの処理などのタスクを担当します。
Q: GDIはどのようなタスクを担当しないのですか?
A: GDIは、ウィンドウやメニューなどの描画を直接担当しません。そのタスクは、GDIの上に構築された別のサブシステムに予約されています。
Q: GDIに似たコンポーネントを持つ他のシステムには何がありますか?
A: GDIに似たコンポーネントを持つ他のシステムには、MacintoshのQuickDrawとGNOME/GTKのGDK/Xlibがあります。
Q: ハードウェアに直接アクセスする方法と比較して、GDIの最も重要な機能は何ですか?
A: GDIがハードウェアに直接アクセスする方法と比較して最も重要な能力は、そのスケーリング能力とターゲットデバイスの抽象化です。
Q: Microsoft WindowsのWhat You See Is What You Getアプリケーションの中心は何ですか?
A: スクリーンやプリンターなど複数のデバイスに描画し、それぞれのケースで適切な再現を期待する機能は、Microsoft WindowsのすべてのWhat You See Is What You Getアプリケーションの中心にあります。
Q:最近のゲームにおけるGDIの主な欠点は何ですか?
A: 最近のゲームにおけるGDIの主な欠点は、フレームバッファと同期する概念がなく、3D用のラスタライズがないため、適切なアニメーションを行うことができないということです。最近のゲームでは、代わりにDirectXやOpenGLを使用することが多く、プログラマは最新のハードウェアの機能を使用することが可能です。