Freigeben über


IDirect3D9::CheckDeviceType-Methode (d3d9.h)

Überprüft, ob ein hardwarebeschleunigter Gerätetyp für diesen Adapter verwendet werden kann.

Syntax

HRESULT CheckDeviceType(
  [in] UINT       Adapter,
  [in] D3DDEVTYPE DevType,
  [in] D3DFORMAT  AdapterFormat,
  [in] D3DFORMAT  BackBufferFormat,
  [in] BOOL       bWindowed
);

Parameter

[in] Adapter

Typ: UINT

Ordnungszahl, die den aufzuzählenden Grafikkarte angibt. D3DADAPTER_DEFAULT ist immer der primäre Grafikkarte. Diese Methode gibt D3DERR_INVALIDCALL zurück, wenn dieser Wert der Anzahl von Grafikkarten im System entspricht oder überschreitet.

[in] DevType

Typ: D3DDEVTYPE

Mitglied des aufgezählten D3DDEVTYPE-Typs , der den zu überprüfenden Gerätetyp angibt.

[in] AdapterFormat

Typ: D3DFORMAT

Mitglied des aufgezählten D3DFORMAT-Typs , der das Format des Adapteranzeigemodus angibt, für den der Gerätetyp überprüft werden soll. Beispielsweise werden einige Geräte nur in 16-Bit-Pro-Pixel-Modi betrieben.

[in] BackBufferFormat

Typ: D3DFORMAT

Backpufferformat. Weitere Informationen zu Formaten finden Sie unter D3DFORMAT. Dieser Wert muss eines der Renderzielformate sein. Sie können GetAdapterDisplayMode verwenden, um das aktuelle Format abzurufen.

Bei Anwendungen mit Fenstern muss das Backpufferformat nicht mit dem Anzeigemodusformat übereinstimmen, wenn die Hardware die Farbkonvertierung unterstützt. Der Satz möglicher Backpufferformate ist eingeschränkt, aber die Runtime ermöglicht es, jedes gültige Backpufferformat für ein beliebiges Desktopformat anzuzeigen. Es besteht die zusätzliche Anforderung, dass das Gerät auf dem Desktop bedienbar ist, da Geräte in der Regel nicht in 8 Bits pro Pixelmodus arbeiten.

Vollbildanwendungen können keine Farbkonvertierung durchführen.

D3DFMT_UNKNOWN ist für den Fenstermodus zulässig.

[in] bWindowed

Typ: BOOL

Wert, der angibt, ob der Gerätetyp im Vollbild- oder Fenstermodus verwendet wird. Wenn true festgelegt ist, wird die Abfrage für Anwendungen mit Fenstern ausgeführt. Andernfalls sollte dieser Wert FALSE festgelegt werden.

Rückgabewert

Typ: HRESULT

Wenn das Gerät für diesen Adapter verwendet werden kann, wird D3D_OK zurückgegeben.

D3DERR_INVALIDCALL wird zurückgegeben, wenn der Adapter die Anzahl der Grafikkarten im System entspricht oder überschreitet. D3DERR_INVALIDCALL wird auch zurückgegeben, wenn CheckDeviceType ein Gerät angegeben hat, das nicht vorhanden ist.

D3DERR_NOTAVAILABLE wird zurückgegeben, wenn das angeforderte Backpufferformat nicht unterstützt wird oder wenn die Hardwarebeschleunigung für die angegebenen Formate nicht verfügbar ist.

Hinweise

Ein Hal-Gerätetyp erfordert eine Hardwarebeschleunigung. Anwendungen können CheckDeviceType verwenden, um zu bestimmen, ob die erforderliche Hardware und Treiber vorhanden sind, um ein hal-Gerät zu unterstützen.

Vollbildanwendungen sollten kein DisplayFormat angeben, das einen Alphakanal enthält. Dies führt zu einem fehlgeschlagenen Aufruf. Beachten Sie, dass im Backpuffer ein Alphakanal vorhanden sein kann, die beiden Anzeigeformate jedoch in allen anderen Aspekten identisch sein müssen. Beispiel: Wenn DisplayFormat = D3DFMT_X1R5G5B5, enthalten gültige Werte für BackBufferFormat D3DFMT_X1R5G5B5 und D3DFMT_A1R5G5B5, schließen jedoch D3DFMT_R5G6B5 aus.

Das folgende Codefragment zeigt, wie Sie CheckDeviceType verwenden können, um zu testen, ob ein bestimmter Gerätetyp für diesen Adapter verwendet werden kann.


if(SUCCEEDED(pD3Device->CheckDeviceType(D3DADAPTER_DEFAULT, 
                                        D3DDEVTYPE_HAL, 
                                        DisplayFormat, 
                                        BackBufferFormat, 
                                        bIsWindowed)))
    
     return S_OK;
// There is no HAL on this adapter using this render-target format. 
// Try again, using another format.

Dieser Code gibt S_OK zurück, wenn das Gerät auf dem Standardadapter mit dem angegebenen Oberflächenformat verwendet werden kann.

Wenn Sie CheckDeviceType verwenden, um die Kompatibilität zwischen einem vom Anzeigeformat abweichenden Backpuffer zu testen, werden entsprechende Werte zurückgegeben. Dies bedeutet, dass der Aufruf die Gerätefunktionen widerspiegelt. Wenn das Gerät nicht in das angeforderte Backpufferformat gerendert werden kann, gibt der Aufruf weiterhin D3DERR_NOTAVAILABLE zurück. Wenn das Gerät im Format gerendert werden kann, aber die Farbkonvertierung nicht ausführen kann, wird auch der Rückgabewert D3DERR_NOTAVAILABLE. Anwendungen können die Hardwareunterstützung für die Präsentation selbst ermitteln, indem sie CheckDeviceFormatConversion aufrufen. Es wird keine Softwareemulation für die Farbkonvertierung selbst angeboten.

Anforderungen

   
Zielplattform Windows
Kopfzeile d3d9.h (einschließlich D3D9.h)
Bibliothek D3D9.lib

Weitere Informationen

IDirect3D9