次の方法で共有


IDirect3DDevice9::CreateDepthStencilSurface メソッド

IDirect3DDevice9::CreateDepthStencilSurface メソッド

深度ステンシル リソースを作成する。

構文

HRESULT CreateDepthStencilSurface(      
    UINT Width,
    UINT Height,
    D3DFORMAT Format,
    D3DMULTISAMPLE_TYPE MultiSample,
    DWORD MultisampleQuality,
    BOOL Discard,
    IDirect3DSurface9** ppSurface,
    HANDLE* pHandle
);

パラメータ

  • Width
    [in] 深度ステンシル サーフェイスの幅 (ピクセル単位)。

  • Height
    [in] 深度ステンシル サーフェイスの高さ (ピクセル単位)。

  • Format
    [in] D3DFORMAT 列挙型のメンバ。深度ステンシル サーフェイスのフォーマットを記述する。この値は、そのデバイスに対して列挙された深度ステンシル フォーマットの 1 つでなければならない。

  • MultiSample
    [in] D3DMULTISAMPLE_TYPE 列挙型のメンバ。マルチサンプリング バッファ タイプを記述する。この値は、使用できるマルチサンプリング タイプの 1 つでなければならない。このサーフェイスを IDirect3DDevice9::SetDepthStencilSurface に渡すときは、マルチサンプリング タイプが、IDirect3DDevice9::SetRenderTarget で設定されたレンダリング ターゲットのものと同じでなければならない。

  • MultisampleQuality
    [in] 品質レベル。有効範囲は、0 から、IDirect3D9::CheckDeviceMultiSampleType で使う pQualityLevels に返されるレベルから 1 を引いた値までである。これより大きな値を渡すと、エラー D3DERR_INVALIDCALL が返される。ペアにされたレンダリング ターゲットと深度ステンシル サーフェイスの MultisampleQuality 値、 MultiSample タイプが、すべて一致している必要がある。

  • Discard
    [in] このフラグは、z バッファの破棄を有効にする場合は TRUE に、それ以外の場合は FALSE に設定する。

    このフラグを設定した場合、異なる深度サーフェイスで IDirect3DDevice9::Present または IDirect3DDevice9::SetDepthStencilSurface を呼び出すと、深度ステンシル バッファの内容が無効になる。

    このフラグは、D3DPRESENTFLAG の定数 D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL と同じ動作をする。

  • ppSurface
    [out, retval] 作成された深度ステンシル サーフェイス リソースを表す IDirect3DSurface9 インターフェイスへのポインタのアドレス。

  • pHandle
    [in] 予約済み。このパラメータは NULL に設定する。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、次のいずれかの値を返す。

D3DERR_NOTAVAILABLE このデバイスは、照会されたマルチサンプル タイプをサポートしていない。
D3DERR_INVALIDCALL メソッドの呼び出しが無効である。たとえば、メソッドのパラメータに無効な値が設定されている場合などである。
D3DERR_OUTOFVIDEOMEMORY Microsoft® Direct3D® が処理を行うのに十分なディスプレイ メモリがない。
E_OUTOFMEMORY Direct3D が呼び出しを完了するための十分なメモリを割り当てることができなかった。

注意

深度ステンシル バッファのメモリ クラスは、常に D3DPOOL_DEFAULT である。

参照

IDirect3DDevice9::UpdateSurface