Platform SDK: DirectX

ステップ 3 : 変数の初期化

[C++]

ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「DirectDraw C/C++ チュートリアル」を参照すること。

[Visual Basic]

Form_Load イベントで呼び出される最初のプロシージャは、init プロシージャである。このプロシージャは DirectDraw オブジェクトを作成する。これを実行するには、DirectX7 オブジェクトの DirectX7.DirectDrawCreate メソッドを呼び出し、返されたオブジェクトを、DirectDraw7 クラスのオブジェクト変数として宣言した DirectDraw に設定する。チュートリアル 1 のブリット サンプルでは、これを次の文で実行する。

Set objDD = objDX.DirectDrawCreate("")

このメソッドは文字列引数を 1 つだけ必要とし、空の文字列を渡すとアクティブ ディスプレイ ドライバを指定する。

次に、DirectDraw オブジェクトの DirectDraw7.SetCooperativeLevel メソッドを呼び出して、アプリケーションの動作を指定する必要がある。チュートリアル 1 のブリット サンプルは正規ウィンドウ アプリケーションとして実行され、次の文によって実行する。

Call objDD.SetCooperativeLevel (Me.hwnd, DDSCL_NORMAL)

これでサーフェス作成の準備が完了した。実際にサーフェス オブジェクトを作成する前に、DDSURFACEDESC2 型のメンバを設定して、サーフェスの記述を作成する必要がある。この型のメンバの 1 つとして、ネスト型の ddscaps がある。DDSURFACEDESC2lFlags メンバを DDSD_CAPS に設定することで、この型において ddscaps メンバが有効であることを記述することができる。これは、次の文によって実行される。

ddsd1.lFlags = DDSD_CAPS

次に、この型の記述がプライマリ サーフェス用であることを指定する。これは次の文で実行される。

ddsd1.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE

サーフェスの記述を作成したら、セット サーフェスの記述を引数として DirectDraw オブジェクトから CreateSurface メソッドを呼び出し、実際にサーフェス オブジェクトを作成する。チュートリアル 1 のブリット サンプルでは、これは次の文で実行される。

Set objDDPrimSurf = objDD.CreateSurface(ddsd1)

次のサーフェスの作成でもこのサーフェス オブジェクト作成のステップを繰り返すが、そのときは DDSCAPS_OFFSCREENPLAIN フラグをセットして、そのサーフェスがオーバーレイ、テクスチャ、z バッファ、フロントバッファ、バックバッファ、またはアルファ サーフェス以外のオフスクリーン サーフェスであることを指定する。このステップは、平面サーフェスを指定する。次に、CreateSurfaceFromFile メソッドを DirectDraw オブジェクトから呼び出す。このメソッドは、サーフェス オブジェクトを作成してビットマップをサーフェスにロードする。ビットマップの位置は FindMediaDir プロシージャで指定する。これらのステップは、以下の文で示される。

FindMediaDir "lake.bmp"

ddsd2.lFlags = DDSD_CAPS
ddsd2.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
Set objDDSurf = objDD.CreateSurfaceFromFile("lake.bmp", ddsd2)

DirectDrawClipper オブジェクトを作成するには、DirectDraw7.CreateClipper メソッドを呼び出す。クリッパー、つまり DirectDrawClipper オブジェクトを使用して、境界矩形で表されるサーフェスの選択部分にブリットできる。チュートリアル 1 では、Picture1 ピクチャ ボックス コントロールへのブリットについて説明する。これは以下の文で実行される。

Set ddClipper = objDD.CreateClipper(0)
ddClipper.SetHWnd Picture1.hWnd
objDDPrimSurf.SetClipper ddClipper

すべての変数とオブジェクトを初期化したら、bInit 変数を True に設定して blt サブルーチンを呼び出す。

次項 :ステップ 4 :サーフェスのブリット