Platform SDK: DirectX

ステップ 2 : 複合サーフェスの作成

[C++]

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

[Visual Basic]

チュートリアル 2 では、オフスクリーンのバック バッファ サーフェスが、バックグラウンド イメージとスプライト イメージの合成サーフェスとして使用された。このチュートリアルでは、バック バッファを複合サーフェスの部分として使用する。複合サーフェスとは DirectDraw7.CreateSurface メソッドへの単一呼び出しによって作成される一連のサーフェスを指す。CreateSurface を呼び出す際に DDSCAPS_COMPLEX フラグが設定されている場合、DirectDraw は、明示的に指定されたサーフェス以外に 1 つまたは複数のサーフェスを暗黙のうちに作成する。

複合サーフェスの中で最も便利なものの 1 つが、flipping chain である。通常、フリッピング チェーンは primary surface と 1 つ以上の back buffers. で構成される。DDSCAPS_FLIP フラグは、サーフェスがフリッピング チェーンの部分であることを示す。この方法でフリッピング チェーンを作成するには、DDSCAPS_COMPLEX フラグが必要である。

チュートリアル 2 のサンプルでは、以下の文によって、バック バッファを 1 つ持つフリッピング チェーンを作成する。

ddsd1.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
ddsd1.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE Or DDSCAPS_FLIP Or DDSCAPS_COMPLEX
ddsd1.lBackBufferCount = 1
Set primary = dd.CreateSurface(ddsd1)

次に、DDSCAPS2 型変数を作成し、DSCAPS_BACKBUFFER フラグを設定して、これがバック バッファのサーフェス記述であることを指定する。そして、作成したバックバッファを DirectDrawSurface7.GetAttachedSurface メソッドを使用して取得する。

Dim caps As DDSCAPS2
caps.lCaps = DDSCAPS_BACKBUFFER
Set backbuffer = primary.GetAttachedSurface(caps)

次項 :ステップ 3 : サーフェスの初期化