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

质量级别。 有效范围介于 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

另请参阅

IDirect3DDevice9

IDirect3DDevice9::UpdateSurface