Freigeben über


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

Weitere Informationen

IDirect3D9