Platform SDK: DirectX

ステップ 4.2 : サーフェスの作成

[Visual Basic]

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

[C++]

DDSURFACEDESC2 構造体に情報が埋め込まれたら、その構造体と、DirectDrawCreateEx 関数で作成した DirectDraw オブジェクトへのポインタ g_pDD, を使用して、IDirectDraw7::CreateSurface メソッドを呼び出す。次に例を示す。

hRet = g_pDD->CreateSurface(&ddsd, &g_pDDSPrimary, NULL);
if (hRet != DD_OK)
{ 
// g_pDDSPrimary は新しいサーフェスへのポインタとなる。
} 
else
{ 
//  サーフェスが作成されなかった。
return FALSE;
} 
 

呼び出しが成功した場合、g_pDDSPrimary パラメータは CreateSurface が返すプライマリ サーフェスへのポインタとなる。

プライマリ サーフェスへのポインタが利用可能になると、バック バッファへのポインタを取得するために IDirectDrawSurface7::GetAttachedSurface メソッドを使用できる。次に例を示す。

ZeroMemory(&ddscaps, sizeof(ddscaps));
ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
hRet = g_pDDSPrimary->GetAttachedSurface(&ddscaps, &g_pDDSBack);
if (hRet != DD_OK)
{ 
    // g_pDDSBack はバック バッファへのポインタとなる。
} 
else 
{ 
    return FALSE; 
} 
 

サーフェスのプライマリ サーフェスのアドレスを提供し、DDSCAPS_BACKBUFFER フラグでその能力値を設定することにより、IDirectDrawSurface7::GetAttachedSurface の呼び出しが成功した場合に、g_pDDSBack パラメータはバック バッファへのポインタとなる。

次項 :ステップ 5 : サーフェスへの書き込み