IDirect3DDevice9Ex::ResetEx-Methode (d3d9.h)

Setzt den Typ, die Größe und das Format der Swapchain zurück, wobei alle anderen Oberflächen persistent sind.

Syntax

HRESULT ResetEx(
  [in, out] D3DPRESENT_PARAMETERS *pPresentationParameters,
  [in, out] D3DDISPLAYMODEEX      *pFullscreenDisplayMode
);

Parameter

[in, out] pPresentationParameters

Typ: D3DPRESENT_PARAMETERS*

Zeiger auf eine D3DPRESENT_PARAMETERS-Struktur , die die neuen Präsentationsparameter beschreibt. Dieser Wert darf nicht NULL sein.

Wenn Sie in den Vollbildmodus wechseln, versucht Direct3D, ein Desktopformat zu finden, das dem Backpufferformat entspricht, sodass back buffer und front buffer format identisch sind (um die Notwendigkeit der Farbkonvertierung zu vermeiden).

Wenn diese Methode Folgendes zurückgibt:

  • BackBufferCount, BackBufferWidth und BackBufferHeight sind auf Null festgelegt.
  • BackBufferFormat ist nur für den Fenstermodus auf D3DFORMAT festgelegt. Im Vollbildmodus muss ein Format angegeben werden.

[in, out] pFullscreenDisplayMode

Typ: D3DDISPLAYMODEEX*

Zeiger auf eine D3DDISPLAYMODEEX Struktur, die die Eigenschaften des gewünschten Anzeigemodus beschreibt. Dieser Wert muss für Vollbildanwendungen bereitgestellt werden, kann aber für Anwendungen mit Fenstern NULL sein.

Rückgabewert

Typ: HRESULT

Die Methode kann folgendes zurückgeben: D3D_OK, D3DERR_DEVICELOST oder D3DERR_DEVICEHUNG (siehe D3DERR).

Wenn diese Methode D3DERR_DEVICELOST oder D3DERR_DEVICEHUNG zurückgibt, kann die Anwendung nur IDirect3DDevice9Ex::ResetEx, IDirect3DDevice9Ex::CheckDeviceState aufrufen oder den Schnittstellenzeiger freigeben. jeder andere API-Aufruf führt zu einer Ausnahme.

Hinweise

Wenn ein Aufruf von IDirect3DDevice9Ex::ResetEx fehlschlägt, wird das Gerät in den Zustand "Lost" versetzt (wie der Rückgabewert D3DERR_DEVICELOST aus einem Aufruf von IDirect3DDevice9Ex::CheckDeviceState). Weitere Informationen zur Verwendung von IDirect3DDevice9Ex:CheckDeviceState and Lost Device Behavior Changes finden Sie unter IDirect3DDevice9Ex::ResetEx im Kontext verlorener Geräte.

Im Gegensatz zu früheren Versionen von DirectX führt das Aufrufen von IDirect3DDevice9Ex::ResetEx nicht dazu, dass Oberflächen, Texturen oder Zustandsinformationen verloren gehen.

Pixel-Shader und Vertex-Shader überleben IDirect3DDevice9Ex::ResetEx-Aufrufe für Direct3D 9. Sie müssen nicht explizit von der Anwendung neu erstellt werden.

Es gibt zwei verschiedene Arten von Swapchains: Vollbild- oder Fenster. Wenn die neue Swapchain im Vollbildmodus ausgeführt wird, wird der Adapter in den Anzeigemodus versetzt, der der neuen Größe entspricht.

Anwendungen können davon ausgehen, dass während dieses Anrufs Nachrichten an sie gesendet werden (z. B. bevor dieser Aufruf zurückgegeben wird). Anwendungen sollten Vorsichtsmaßnahmen treffen, um Direct3D zu diesem Zeitpunkt nicht aufzurufen.

Ein Aufruf von IDirect3DDevice9Ex::ResetEx schlägt fehl, wenn in einem anderen Thread aufgerufen wird als der, der zum Erstellen des zurückgesetzten Geräts verwendet wurde.

D3DFMT_UNKNOWN kann beim Aufrufen von IDirect3D9Ex::CreateDeviceEx, IDirect3DDevice9Ex::ResetEx und IDirect3DDevice9::CreateAdditionalSwapChain für das Backpufferformat im Fenstermodus angegeben werden. Dies bedeutet, dass die Anwendung nicht das aktuelle Desktopformat abfragen muss, bevor IDirect3D9Ex::CreateDeviceEx für den Fenstermodus aufgerufen wird. Für den Vollbildmodus muss das Backpufferformat angegeben werden. Wenn BackBufferCount gleich 0 (BackBufferCount = 0) festgelegt wird, entsteht ein Backpuffer.

Wenn Sie versuchen, mehr als einen Grafikkarte in einer Gruppe zurückzusetzen, legen Sie pPresentationParameters so fest, dass er auf ein Array von D3DPRESENT_PARAMETERS Strukturen verweist, eine für jede Anzeige in der Adaptergruppe.

Wenn ein Mehrkopfgerät mit D3DCREATE_ADAPTERGROUP_DEVICE erstellt wurde, erfordert IDirect3DDevice9Ex::ResetEx ein Array von D3DPRESENT_PARAMETERS Strukturen, wobei jede Struktur eine Vollbildanzeige angeben muss. Um zurück in den Fenstermodus zu wechseln, muss die Anwendung das Gerät zerstören und ein Gerät ohne Mehrere Kopf im Fenstermodus neu erstellen.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d9.h
Bibliothek D3D9.lib

Weitere Informationen

IDirect3DDevice9Ex