Condividi tramite


Metodo IDirect3DDevice9Ex::ResetEx (d3d9.h)

Reimposta il tipo, le dimensioni e il formato della catena di scambio con tutte le altre superfici persistenti.

Sintassi

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

Parametri

[in, out] pPresentationParameters

Tipo: D3DPRESENT_PARAMETERS*

Puntatore a una struttura D3DPRESENT_PARAMETERS , che descrive i nuovi parametri della presentazione. Questo valore non può essere NULL.

Quando si passa alla modalità schermo intero, Direct3D tenterà di trovare un formato desktop che corrisponda al formato del buffer nascosto, in modo che i formati di buffer nascosto e buffer anteriore siano identici (per eliminare la necessità di conversione dei colori).

Quando termina, questo metodo:

  • BackBufferCount, BackBufferWidth e BackBufferHeight sono impostati su zero.
  • BackBufferFormat è impostato su D3DFORMAT solo per la modalità finestra; una modalità schermo intero deve specificare un formato.

[in, out] pFullscreenDisplayMode

Tipo: D3DDISPLAYMODEEX*

Puntatore a una struttura D3DDISPLAYMODEEX che descrive le proprietà della modalità di visualizzazione desiderata. Questo valore deve essere specificato per le applicazioni a schermo intero, ma può essere NULL per le applicazioni con finestra.

Valore restituito

Tipo: HRESULT

Il metodo può restituire: D3D_OK, D3DERR_DEVICELOST o D3DERR_DEVICEHUNG (vedere D3DERR).

Se questo metodo restituisce D3DERR_DEVICELOST o D3DERR_DEVICEHUNG, l'applicazione può chiamare solo IDirect3DDevice9Ex::ResetEx, IDirect3DDevice9Ex::CheckDeviceState o rilasciare il puntatore all'interfaccia; qualsiasi altra chiamata API causerà un'eccezione.

Commenti

Se una chiamata a IDirect3DDevice9Ex::ResetEx ha esito negativo, il dispositivo verrà inserito nello stato perso (come indicato da un valore restituito di D3DERR_DEVICELOST da una chiamata a IDirect3DDevice9Ex::CheckDeviceState). Per altre informazioni sull'uso di IDirect3DDevice9Ex::ResetEx::CheckDeviceState e Perdita del comportamento del dispositivo , vedere IDirect3DDevice9Ex::ResetEx nel contesto dei dispositivi persi.

A differenza delle versioni precedenti di DirectX, la chiamata a IDirect3DDevice9Ex::ResetEx non causa la perdita di superfici, trame o informazioni sullo stato.

I pixel shader e i vertex shader sopravvivono alle chiamate IDirect3DDevice9Ex::ResetEx per Direct3D 9. Non è necessario che vengano ricreati in modo esplicito dall'applicazione.

Esistono due tipi diversi di catene di scambio: a schermo intero o finestrato. Se la nuova catena di scambio è a schermo intero, l'adattatore verrà posizionato nella modalità di visualizzazione corrispondente alle nuove dimensioni.

Le applicazioni possono aspettarsi che i messaggi vengano inviati durante questa chiamata (ad esempio, prima che venga restituita questa chiamata); le applicazioni devono adottare precauzioni per non chiamare in Direct3D in questo momento.

Una chiamata a IDirect3DDevice9Ex::ResetEx avrà esito negativo se viene chiamato su un thread diverso da quello usato per creare il dispositivo da reimpostare.

D3DFMT_UNKNOWN può essere specificato per il formato del buffer nascosto in modalità finestra quando si chiama IDirect3D9Ex::CreateDeviceEx, IDirect3DDevice9Ex::ResetEx e IDirect3DDevice9::CreateAdditionalSwapChain. Ciò significa che l'applicazione non deve eseguire query sul formato desktop corrente prima di chiamare IDirect3D9Ex::CreateDeviceEx per la modalità finestra. Per la modalità schermo intero, è necessario specificare il formato del buffer nascosto. Se si imposta BackBufferCount su zero (BackBufferCount = 0) viene restituito un buffer nascosto.

Quando si tenta di reimpostare più schede di visualizzazione in un gruppo, impostare pPresentationParameters in modo che punti a una matrice di strutture D3DPRESENT_PARAMETERS , una per ogni visualizzazione nel gruppo di adattatori.

Se un dispositivo multihead è stato creato con D3DCREATE_ADAPTERGROUP_DEVICE, IDirect3DDevice9Ex::ResetEx richiede una matrice di strutture D3DPRESENT_PARAMETERS in cui ogni struttura deve specificare una visualizzazione a schermo intero. Per tornare alla modalità finestra, l'applicazione deve eliminare definitivamente il dispositivo e ricreare un dispositivo non a più teste in modalità finestra.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d9.h
Libreria D3D9.lib

Vedi anche

IDirect3DDevice9Ex