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枚举类型的成员,描述多重采样缓冲区类型。 此值必须是允许的多重采样类型之一。 将此图面传递到 IDirect3DDevice9::SetDepthStencilSurface 时,其多重采样类型必须与 IDirect3DDevice9::SetRenderTarget 设置的呈现目标类型相同。
[in] MultisampleQuality
类型: DWORD
质量级别。 有效范围介于 0 到 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。 此参数可用于 Windows Vista 的 Direct3D 9 中 共享资源。
返回值
类型: HRESULT
如果该方法成功,则返回值D3D_OK。 如果方法失败,则返回值可以是下列值之一:D3DERR_NOTAVAILABLE、D3DERR_INVALIDCALL、D3DERR_OUTOFVIDEOMEMORY E_OUTOFMEMORY。
注解
深度模具缓冲区的内存类始终D3DPOOL_DEFAULT。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d9helper.h (包括 D3D9.h) |
Library | D3D9.lib |