Metodo IDXGISwapChain::P resent (dxgi.h)
Presenta un'immagine sottoposta a rendering all'utente.
Sintassi
HRESULT Present(
UINT SyncInterval,
UINT Flags
);
Parametri
SyncInterval
Tipo: UINT
Intero che specifica come sincronizzare la presentazione di una cornice con lo spazio vuoto verticale.
Per il modello bit-block transfer (bitblt) (DXGI_SWAP_EFFECT_DISCARD o DXGI_SWAP_EFFECT_SEQUENTIAL), i valori sono:
- 0 - La presentazione viene eseguita immediatamente, non esiste alcuna sincronizzazione.
- Da 1 a 4 : sincronizzare la presentazione dopo l'n° verticale vuoto.
- 0 - Annullare il tempo rimanente nel frame presentato in precedenza e ignorare questo frame se viene accodato un frame più recente.
- Da 1 a 4: sincronizzare la presentazione per almeno n spazi vuoti verticali.
Se l'area di aggiornamento supera più di un output (ognuno rappresentato da IDXGIOutput), Present esegue la sincronizzazione con l'output contenente il sotto rettangolo secondario più grande dell'area client della finestra di destinazione.
Flags
Tipo: UINT
Valore intero contenente le opzioni di presentazione della catena di scambio. Queste opzioni sono definite dalle costanti DXGI_PRESENT .
Valore restituito
Tipo: HRESULT
I possibili valori restituiti includono: S_OK, DXGI_ERROR_DEVICE_RESET o DXGI_ERROR_DEVICE_REMOVED (vedere DXGI_ERROR), DXGI_STATUS_OCCLUDED (vedere DXGI_STATUS) o D3DDDIERR_DEVICEREMOVED.
Commenti
A partire da Direct3D 11.1, prendere in considerazione l'uso di IDXGISwapChain1::P resent1 perché è quindi possibile usare rettangoli dirty e il rettangolo di scorrimento nella presentazione della catena di scambio e, di conseguenza, usare meno larghezza di banda di memoria e di conseguenza meno potenza di sistema. Per altre info sull'uso di rettangoli dirty e del rettangolo di scorrimento nella presentazione della catena di scambio, vedi Uso di rettangoli dirty e rettangolo di scorrimento nella presentazione della catena di scambio.
Per ottenere prestazioni ottimali quando si capovolgono i buffer della catena di scambio in un'applicazione a schermo intero, vedere Hint per le prestazioni dell'applicazione a schermo intero.
Poiché la chiamata a Present potrebbe causare l'attesa del thread di rendering sul thread message-pump, prestare attenzione quando si chiama questo metodo in un'applicazione che usa più thread. Per altri dettagli, vedere Considerazioni sul multithreading.
Differenze tra Direct3D 9 e Direct3D 10: Specificare DXGI_PRESENT_TEST nel parametro Flags è analogo a IDirect3DDevice9::TestCooperativeLevel in Direct3D 9. |
Per le catene di scambio dei modelli di presentazione capovolte create con il valore DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL o DXGI_SWAP_EFFECT_DISCARD impostato, una presentazione con esito positivo rimuove il buffer nascosto 0 (in genere impostato da OMSetRenderTargets) dalla pipeline grafica, tranne quando si passa il flag DXGI_PRESENT_DO_NOT_SEQUENCE nel parametro Flags .
Per informazioni sul modo in cui i valori dei dati cambiano quando si presenta il contenuto nella schermata, vedere Conversione dei dati per lo spazio dei colori.
Capovolgere la coda del modello di presentazione
Si supponga che i fotogrammi seguenti con valori di intervallo di sincronizzazione vengano accodati dal meno recente (A) al più recente (E) prima di chiamare Present.R: 3, B: 0, C: 0, D: 1, E: 0
Quando si chiama Present, il runtime mostra il frame A solo per un intervallo vuoto verticale. Il runtime termina il frame A in anticipo a causa dell'intervallo di sincronizzazione 0 nel frame B. Il runtime mostra quindi frame D per un intervallo vuoto verticale e quindi frame E fino a quando non si invia una nuova presentazione. Il runtime elimina i fotogrammi B e C.
Visualizzazione della frequenza di aggiornamento variabile
È un requisito di frequenza di aggiornamento variabile che indica che l'operazione di disinstallazione è abilitata. Il metodo CheckFeatureSupport può essere usato per determinare se questa funzionalità è disponibile e per impostare i flag necessari fare riferimento alle descrizioni di DXGI_PRESENT_ALLOW_TEARING e DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING e viene visualizzata la frequenza di aggiornamento variabile.Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | dxgi.h |
Libreria | DXGI.lib |