Platform SDK: DirectX |
ここでは、C および C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectDraw Visual Basic チュートリアル」を参照すること。
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 パラメータはバック バッファへのポインタとなる。