Метод 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 ее тип multisample должен совпадать с типом целевого объекта отрисовки, заданного IDirect3Device9::SetRenderTarget.

[in] MultisampleQuality

Тип: DWORD

Уровень качества. Допустимый диапазон от нуля до одного меньше, чем уровень, возвращаемый pQualityLevels, используемый IDirect3D9::CheckDeviceMultiSampleType. Передача большего значения возвращает D3DERR_INVALIDCALL ошибки. Значения MultisampleQuality для парных целевых объектов отрисовки, поверхностей трафарета глубины и типа MultiSample должны совпадать.

[in] Discard

Тип: BOOL

Установите для этого флага значение TRUE , чтобы включить отмену z-буфера, в противном случае — FALSE . Если этот флаг установлен, содержимое буфера трафарета глубины будет недопустимым после вызова IDirect3DDevice9::P resent или IDirect3DDevice9::SetDepthStencilSurface с другой поверхностью глубины.

Поведение этого флага совпадает с поведением константы D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL в D3DPRESENTFLAG.

[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
Header d3d9helper.h (включая D3D9.h)
Библиотека D3D9.lib

См. также раздел

IDirect3DDevice9

IDirect3DDevice9::UpdateSurface