Поделиться через


Метод 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

Член перечисленного типа D3DMULTISAMPLE_TYPE , описывающий тип буфера с несколькими выборками. Это значение должно быть одним из разрешенных многопримерных типов. Когда эта поверхность передается в IDirect3DDevice9::SetDepthStencilSurface, ее тип multisample должен совпадать с типом целевого объекта отрисовки, заданного IDirect3DDevice9::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 d3d9.h (включая D3D9.h)
Библиотека D3D9.lib

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

IDirect3DDevice9

IDirect3DDevice9::UpdateSurface