IDirect3DDevice9::CreateDepthStencilSurface 方法 (d3d9.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 列舉型別成員。 此值必須是其中一個允許的多重取樣類型。 當此表面傳遞至 IDirect3DDevice9::SetDepthStencilSurface 時,其多重取樣類型必須與 IDirect3DDevice9::SetRenderTarget 所設定的轉譯目標相同。
[in] MultisampleQuality
類型: DWORD
質量等級。 有效範圍介於零到一個小於 IDirect3D9::CheckDeviceMultiSampleType 所傳回的 pQualityLevels 所傳回的層級之間。 傳遞較大的值會傳回錯誤D3DERR_INVALIDCALL。 配對轉譯目標、深度樣板和 MultiSample 類型的 MultisampleQuality 值必須全部相符。
[in] Discard
類型: BOOL
將此旗標設定為 TRUE 以啟用 z 緩衝區捨棄,否則為 FALSE 。 如果設定此旗標,深度樣板緩衝區的內容在呼叫 IDirect3DDevice9::P resent 或 IDirect3DDevice9::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 |
標頭 | d3d9.h (包含 D3D9.h) |
程式庫 | D3D9.lib |