DirectDrawはDirectXの最も中核を為す機能のひとつで、主にグラフィック描画に関するファンクションを提供する物です。
ハードウェアアクセラレーションに対応しており、
DirectDrawに対応したドライバと組み合わせることによって今までのWindowsアプリケーションでは実現しえなかった高速描画が可能となります。
昨今のWindowsゲームがコンシューマ並みの動作をするようになったのも、この機能があってこそと言えます。
主に使うオブジェクトは以下の通りです。
オブジェクト名 | 概要 | 関連オブジェクト
| IDirectDraw
| DirectDrawを実行する上で中心となるオブジェクトです。
グラフィックを扱う上での制御モード、スクリーンモード等を制御する事を目的としています。
| -
|
IDirectDrawSurface
| グラフィックを実際に描画する領域と、それを制御するファンクションをまとめたものです。
実際にウィンドゥに展開する領域もこのオブジェクトの管理下に置かれる事になります。
| IDirectDraw
|
IDirectDrawPalette
| 主に256色環境下で使用するオブジェクトです。
従来のWindowsパレットシステムと異なり、256色の全てをDirectDrawのために提供する事ができます。
| IDirectDrawSurface
|
IDirectDrawClipper
| サーフェイスに描画する上でのクリッピングを行います。
ウィンドゥ表示モードにおいては、他のアプリケーションとの整合を図るために使用する事もできます。
| IDirectDrawSurface
|
IDirectDrawを中心として、全てのオブジェクトが密接に関わりを持っています。
以下のようなツリー構造になります。
IDirectDraw | ━ | IDirectDrawSurface(プライマリ) | ┳ | IDirectDrawSurface(作業バッファ1)
|
| | | ┣ | IDirectDrawSurface(作業バッファ2)
|
| | | ┣ | IDirectDrawSurface(…)
|
| | | : |
|
| | | ┣ | IDirectDrawPalette
|
| | | ┗ | IDirectDrawClipper
|
IDirectDrawSurfaceがたくさんありますし、プライマリという新しいコトバが出てきました。
これについては後程詳しく説明するとしましょう。