IDirect3D9 ::CheckDepthStencilMatch, méthode (d3d9helper.h)
Détermine si un format de gabarit de profondeur est compatible avec un format cible de rendu dans un mode d’affichage particulier.
Syntaxe
HRESULT CheckDepthStencilMatch(
[in] UINT Adapter,
[in] D3DDEVTYPE DeviceType,
[in] D3DFORMAT AdapterFormat,
[in] D3DFORMAT RenderTargetFormat,
[in] D3DFORMAT DepthStencilFormat
);
Paramètres
[in] Adapter
Type : UINT
Nombre ordinal indiquant l’adaptateur d’affichage à interroger. D3DADAPTER_DEFAULT est toujours l’adaptateur d’affichage principal.
[in] DeviceType
Type : D3DDEVTYPE
Membre du D3DDEVTYPE type énuméré, identifiant le type d’appareil.
[in] AdapterFormat
Type : D3DFORMAT
Membre du D3DFORMAT type énuméré, identifiant le format du mode d’affichage dans lequel l’adaptateur sera placé.
[in] RenderTargetFormat
Type : D3DFORMAT
Membre du D3DFORMAT type énuméré, identifiant le format de la surface cible de rendu à tester.
[in] DepthStencilFormat
Type : D3DFORMAT
Membre du D3DFORMAT type énuméré, identifiant le format de la surface de gabarit de profondeur à tester.
Valeur retournée
Type : HRESULT
Si le format de gabarit de profondeur est compatible avec le format cible de rendu en mode d’affichage, cette méthode retourne D3D_OK. D3DERR_INVALIDCALL peut être retourné si un ou plusieurs des paramètres n’est pas valide. Si un format de gabarit de profondeur n’est pas compatible avec la cible de rendu en mode d’affichage, cette méthode retourne D3DERR_NOTAVAILABLE.
Remarques
Cette méthode est fournie pour permettre aux applications de fonctionner avec du matériel nécessitant que certains formats de profondeur ne fonctionnent qu’avec certains formats cibles de rendu.
Le comportement de cette méthode a été modifié pour DirectX 8.1. Cette méthode porte désormais attention aux formats de gabarit de profondeur D24x8 et D32. La version précédente supposait que ces formats seraient toujours utilisables avec des cibles de rendu 32 ou 16 bits. Cette méthode retourne désormais D3D_OK pour ces formats uniquement si l’appareil est capable d’opérations de profondeur mixte.
Le fragment de code suivant montre comment utiliser CheckDeviceFormat pour valider un format de gabarit de profondeur.
BOOL IsDepthFormatOk(D3DFORMAT DepthFormat,
D3DFORMAT AdapterFormat,
D3DFORMAT BackBufferFormat)
{
// Verify that the depth format exists
HRESULT hr = pD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
AdapterFormat,
D3DUSAGE_DEPTHSTENCIL,
D3DRTYPE_SURFACE,
DepthFormat);
if(FAILED(hr)) return FALSE;
// Verify that the depth format is compatible
hr = pD3D->CheckDepthStencilMatch(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
AdapterFormat,
BackBufferFormat,
DepthFormat);
return SUCCEEDED(hr);
}
L’appel précédent retourne FALSE si DepthFormat ne peut pas être utilisé conjointement avec AdapterFormat et BackBufferFormat.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | d3d9helper.h (incluez D3D9.h) |
Bibliothèque | D3D9.lib |