Méthode IDirect3DDevice9 ::CreateDepthStencilSurface (d3d9helper.h)

Crée une ressource de gabarit de profondeur.

Syntaxe

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
);

Paramètres

[in] Width

Type : UINT

Largeur de la surface de profondeur-gabarit, en pixels.

[in] Height

Type : UINT

Hauteur de la surface du gabarit de profondeur, en pixels.

[in] Format

Type : D3DFORMAT

Membre du D3DFORMAT type énuméré, décrivant le format de la surface profondeur-gabarit. Cette valeur doit être l’un des formats de gabarit de profondeur énumérés pour cet appareil.

[in] MultiSample

Type : D3DMULTISAMPLE_TYPE

Membre du D3DMULTISAMPLE_TYPE type énuméré, décrivant le type de mémoire tampon à échantillonnage multiple. Cette valeur doit être l’un des types multi-échantillonnage autorisés. Lorsque cette surface est passée à IDirect3DDevice9 ::SetDepthStencilSurface, son type multi-échantillonnage doit être identique à celui de la cible de rendu définie par IDirect3DDevice9 ::SetRenderTarget.

[in] MultisampleQuality

Type : DWORD

Niveau de qualité. La plage valide est comprise entre zéro et un de moins que le niveau retourné par pQualityLevels utilisé par IDirect3D9 ::CheckDeviceMultiSampleType. Le passage d’une valeur plus élevée retourne l’erreur D3DERR_INVALIDCALL. Les valeurs MultisampleQuality des cibles de rendu jumelées, des surfaces de gabarit de profondeur et du type MultiSample doivent toutes correspondre.

[in] Discard

Type : BOOL

Définissez cet indicateur sur TRUE pour activer l’abandon de z-buffer, et FALSE dans le cas contraire. Si cet indicateur est défini, le contenu de la mémoire tampon de gabarit de profondeur ne sera pas valide après avoir appelé IDirect3DDevice9 ::P resent ou IDirect3DDevice9 ::SetDepthStencilSurface avec une surface de profondeur différente.

Cet indicateur a le même comportement que la constante, D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL, dans D3DPRESENTFLAG.

[out, retval] ppSurface

Type : IDirect3DSurface9**

Adresse d’un pointeur vers une interface IDirect3DSurface9 , représentant la ressource de surface de profondeur-gabarit créée.

[in] pSharedHandle

Type : HANDLE*

Réservé. Définissez ce paramètre sur NULL. Ce paramètre peut être utilisé dans Direct3D 9 pour Windows Vista pour partager des ressources.

Valeur retournée

Type : HRESULT

Si la méthode réussit, la valeur de retour est D3D_OK. Si la méthode échoue, la valeur de retour peut être l’une des suivantes : D3DERR_NOTAVAILABLE, D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY.

Remarques

La classe de mémoire de la mémoire tampon profondeur-gabarit est toujours D3DPOOL_DEFAULT.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête d3d9helper.h (inclure D3D9.h)
Bibliothèque D3D9.lib

Voir aussi

IDirect3DDevice9

IDirect3DDevice9 ::UpdateSurface