Platform SDK: DirectX |
ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「DirectDraw C/C++ チュートリアル」を参照すること。
チュートリアル 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)