IDirect3D9::CheckDepthStencilMatch-Methode (d3d9.h)
Bestimmt, ob ein Tiefenschablonenformat mit einem Renderzielformat in einem bestimmten Anzeigemodus kompatibel ist.
Syntax
HRESULT CheckDepthStencilMatch(
[in] UINT Adapter,
[in] D3DDEVTYPE DeviceType,
[in] D3DFORMAT AdapterFormat,
[in] D3DFORMAT RenderTargetFormat,
[in] D3DFORMAT DepthStencilFormat
);
Parameter
[in] Adapter
Typ: UINT
Ordnungszahl, die die abzufragende Grafikkarte angibt. D3DADAPTER_DEFAULT ist immer der primäre Grafikkarte.
[in] DeviceType
Typ: D3DDEVTYPE
Member des aufgezählten D3DDEVTYPE-Typs , der den Gerätetyp identifiziert.
[in] AdapterFormat
Typ: D3DFORMAT
Member des aufgezählten D3DFORMAT-Typs , der das Format des Anzeigemodus identifiziert, in dem der Adapter platziert wird.
[in] RenderTargetFormat
Typ: D3DFORMAT
Member des aufgezählten D3DFORMAT-Typs , der das Format der zu testenden Renderzieloberfläche identifiziert.
[in] DepthStencilFormat
Typ: D3DFORMAT
Member des aufgezählten D3DFORMAT-Typs , der das Format der zu prüfenden Tiefenschablonenoberfläche identifiziert.
Rückgabewert
Typ: HRESULT
Wenn das Tiefenschablonenformat mit dem Renderzielformat im Anzeigemodus kompatibel ist, gibt diese Methode D3D_OK zurück. D3DERR_INVALIDCALL können zurückgegeben werden, wenn mindestens einer der Parameter ungültig ist. Wenn ein Tiefenschablonenformat nicht mit dem Renderziel im Anzeigemodus kompatibel ist, gibt diese Methode D3DERR_NOTAVAILABLE zurück.
Hinweise
Diese Methode wird bereitgestellt, damit Anwendungen mit Hardware arbeiten können, die erfordert, dass bestimmte Tiefenformate nur mit bestimmten Renderzielformaten funktionieren können.
Das Verhalten dieser Methode wurde für DirectX 8.1 geändert. Diese Methode achtet nun auf die Tiefenschablonenformate D24x8 und D32. In der vorherigen Version wurde davon ausgegangen, dass diese Formate immer mit 32- oder 16-Bit-Renderzielen verwendet werden können. Diese Methode gibt jetzt nur dann D3D_OK für diese Formate zurück, wenn das Gerät vorgänge mit gemischter Tiefe ausführen kann.
Das folgende Codefragment zeigt, wie Sie CheckDeviceFormat verwenden können, um ein Tiefenschablonenformat zu überprüfen.
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);
}
Der vorherige Aufruf gibt FALSE zurück, wenn DepthFormat nicht in Verbindung mit AdapterFormat und BackBufferFormat verwendet werden kann.
Anforderungen
Zielplattform | Windows |
Kopfzeile | d3d9.h (einschließlich D3D9.h) |
Bibliothek | D3D9.lib |