IDirect3DDevice9::CreateDepthStencilSurface 方法 (d3d9helper.h)

建立深度樣板資源。

語法

HRESULT CreateDepthStencilSurface(
  [in]          UINT                Width,
  [in]          UINT                Height,
  [in]          D3DFORMAT           Format,
  [in]          D3DMULTISAMPLE_TYPE MultiSample,
  [in]          DWORD               MultisampleQuality,
  [in]          BOOL                Discard,
  [out, retval] IDirect3DSurface9   **ppSurface,
  [in]          HANDLE              *pSharedHandle
);

參數

[in] Width

類型: UINT

深度樣板表面的寬度,以像素為單位。

[in] Height

類型: UINT

深度樣板表面的高度,以像素為單位。

[in] Format

類型: D3DFORMAT

D3DFORMAT列舉型別的成員,描述深度樣板介面的格式。 此值必須是此裝置的其中一個列舉深度樣板格式。

[in] MultiSample

類型: D3DMULTISAMPLE_TYPE

描述多重取樣緩衝區類型的 D3DMULTISAMPLE_TYPE 列舉型別成員。 此值必須是其中一個允許的多重取樣類型。 當此表面傳遞至 IDirect3DDevice9::SetDepthStencilSurface 時,其多重取樣類型必須與 IDirect3DDevice9::SetRenderTarget 所設定的轉譯目標相同。

[in] MultisampleQuality

類型: DWORD

質量等級。 有效範圍介於零到一個小於 IDirect3D9::CheckDeviceMultiSampleType 所傳回的 pQualityLevels 所傳回的層級之間。 傳遞較大的值會傳回錯誤D3DERR_INVALIDCALL。 配對轉譯目標、深度樣板和 MultiSample 類型的 MultisampleQuality 值必須全部相符。

[in] Discard

類型: BOOL

將此旗標設定為 TRUE 以啟用 z 緩衝區捨棄,否則為 FALSE 。 如果設定此旗標,深度樣板緩衝區的內容在呼叫 IDirect3DDevice9::P resentIDirect3DDevice9::SetDepthStencilSurface 並具有不同深度表面之後,將會無效。

此旗標的行為與 D3DPRESENTFLAG中的常數D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL相同。

[out, retval] ppSurface

類型: IDirect3DSurface9**

IDirect3DSurface9 介面指標的位址,代表建立的深度樣板介面資源。

[in] pSharedHandle

類型: HANDLE*

保留的。 將此參數設定為 NULL。 此參數可用於 Direct3D 9,讓 Windows Vista 共用資源

傳回值

類型: HRESULT

如果方法成功,傳回值會D3D_OK。 如果方法失敗,傳回值可以是下列其中一項:D3DERR_NOTAVAILABLE、D3DERR_INVALIDCALL、D3DERR_OUTOFVIDEOMEMORY E_OUTOFMEMORY。

備註

深度樣板緩衝區的記憶體類別一律D3DPOOL_DEFAULT。

規格需求

需求
目標平台 Windows
標頭 d3d9helper.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

IDirect3DDevice9

IDirect3DDevice9::UpdateSurface