DXGI_PRESENT

Le costanti DXGI_PRESENT specificano le opzioni per la presentazione dei fotogrammi all'output.

Costante/valore Descrizione
0
Presentare un frame da ogni buffer (a partire dal buffer corrente) all'output.
DXGI_PRESENT_DO_NOT_SEQUENCE
0x0000002UL
Presentare un frame dal buffer corrente all'output. Usare questo flag in modo che la presentazione possa usare la sincronizzazione verticale vuota anziché i buffer di sequenziazione nella catena in modo consueto.
Nota: Se l'applicazione chiamante imposta la costante DXGI_PRESENT_DO_NOT_SEQUENCE sulla prima operazione presente, ovvero quando non è presente alcun buffer corrente, il runtime ignora l'operazione presente e non chiama il driver.
DXGI_PRESENT_TEST
0x00000001UL
Non presentare il frame all'output. Lo stato della catena di scambio verrà testato e gli errori appropriati restituiti. DXGI_PRESENT_TEST è destinato all'uso solo quando si passa dallo stato inattiva; non usarlo per determinare quando passare allo stato di inattività perché in questo modo può lasciare la catena di scambio non in grado di uscire dalla modalità a schermo intero.
DXGI_PRESENT_RESTART
0x00000004UL
Specifica che il runtime eliminerà i regali in coda in sospeso.
DXGI_PRESENT_DO_NOT_WAIT
0x00000008UL
Specifica che il runtime avrà esito negativo nella presentazione , ovvero non riuscirà una chiamata a IDXGISwapChain1::P resent1, con il codice di errore DXGI_ERROR_WAS_STILL_DRAWING se il thread chiamante è bloccato; il runtime restituisce DXGI_ERROR_WAS_STILL_DRAWING anziché dormire finché la dipendenza non viene risolta.
Direct3D 11: Questo valore di enumerazione è supportato a partire da Windows 8.
DXGI_PRESENT_RESTRICT_TO_OUTPUT
0x00000010UL
Indica che il contenuto della presentazione verrà visualizzato solo nell'output specifico. Il contenuto non sarà visibile in altri output. Ad esempio, se l'utente tenta di spostare il contenuto video in un altro output, il contenuto video non sarà visibile.
Direct3D 11: Questo valore di enumerazione è supportato a partire da Windows 8.
Nota: Questo flag deve essere usato solo con effetto di scambio DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL o DXGI_SWAP_EFFECT_FLIP_DISCARD . L'uso di questo flag con altri effetti di scambio è deprecato e potrebbe non funzionare nelle versioni future di Windows.
DXGI_PRESENT_STEREO_PREFER_RIGHT
0x0000020UL
Indica che se la visualizzazione stereo deve essere ridotta a mono, la visualizzazione a destra viene usata anziché la visualizzazione a sinistra.
Direct3D 11: Questo valore di enumerazione è supportato a partire da Windows 8.
DXGI_PRESENT_STEREO_TEMPORARY_MONO
0x00000040UL
Indica che la presentazione deve usare il buffer sinistro come buffer mono. Un'applicazione chiama il metodo IDXGISwapChain1::IsTemporaryMonoSupported per determinare se una catena di scambio supporta "mono temporanei".
Direct3D 11: Questo valore di enumerazione è supportato a partire da Windows 8.
DXGI_PRESENT_USE_DURATION
0x00000100UL
Questo flag deve essere impostato dalle app multimediali che attualmente usano una durata di presente personalizzata (frequenza di aggiornamento personalizzata). Vedere IDXGISwapChainMedia.
Nota: Questo valore è supportato a partire da Windows 8.1.
DXGI_PRESENT_ALLOW_TEARING
0x00000200UL
L'assegnazione di strappi è un requisito di visualizzazione della frequenza di aggiornamento variabile.
Le condizioni per l'uso di DXGI_PRESENT_ALLOW_TEARING durante la presentazione sono le seguenti:
  • La catena di scambio deve essere creata con il flag di DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING .
  • L'intervallo di sincronizzazione passato a Present (o Present1) deve essere 0.
  • Il flag DXGI_PRESENT_ALLOW_TEARING non può essere usato in un'applicazione attualmente in modalità esclusiva a schermo intero (impostata chiamando SetFullscreenState(TRUE)). Può essere usato solo in modalità finestra. Per usare questo flag nelle app Win32 a schermo intero, l'applicazione deve presentare a una finestra senza bordo a schermo intero e disabilitare l'opzione a schermo intero ALT+INVIO automatico usando IDXGIFactory::MakeWindowAssociation. Le app UWP che entrano in modalità schermo intero chiamando Windows::UI::ViewManagement::ApplicationView::TryEnterFullscreen() sono finestre senza bordo a schermo intero e possono usare il flag.
La chiamata di Present (o Present1) con questo flag e non soddisfa le condizioni precedenti genera un errore DXGI_ERROR_INVALID_CALL restituito all'applicazione chiamante.

Commenti

Le opzioni di presentazione vengono fornite durante la chiamata IDXGISwapChain::P resent o IDXGISwapChain1::P resent1. I buffer vengono specificati nella descrizione della catena di scambio (vedere DXGI_SWAP_CHAIN_DESC o DXGI_SWAP_CHAIN_DESC1).

DXGI_PRESENT_RESTART è valido solo per catene di scambio di modelli a capovolgimento e schermo intero. Le applicazioni possono usare DXGI_PRESENT_RESTART per ripristinare gli errori nella riproduzione, nonché per eliminare le presentazioni in coda in precedenza. L'eliminazione delle presentazioni in coda in precedenza è utile se tali presentazioni in coda sono scenari finestrati. In particolare, la presentazione in coda in precedenza potrebbe aver assunto che la finestra sia una dimensione precedente, ovvero un'operazione di ridimensionamento eseguita dopo l'invio.

DXGI_PRESENT_RESTRICT_TO_OUTPUT è valido solo per le catene di scambio che specificavano un determinato output per limitare il contenuto a quando tali catene di scambio sono state create (IDXGIFactory2::CreateSwapChainForHwnd). Se non è presente alcun output da limitare, il flag non è valido.

DXGI_PRESENT_STEREO_PREFER_RIGHT indica che se lo stereo presente deve essere ridotto a mono l'occhio destro deve essere usato anziché l'occhio sinistro (predefinito). È possibile usare questo flag se un lato è di qualità superiore , ad esempio se la coppia stereo viene sintetizzata da un'immagine standard.

DXGI_PRESENT_STEREO_TEMPORARY_MONO indica che il presente deve usare il buffer sinistro come buffer mono. È possibile usare questo flag per evitare di aggiornare il buffer corretto quando un'applicazione non ha temporaneamente contenuto stereo. È consigliabile usare questo flag ogni volta che è possibile perché consente un'ottimizzazione significativa dal sistema operativo e in alcune circostanze può evitare artefatti di modifica della modalità visibile.

È consigliabile usare il flag DXGI_PRESENT_STEREO_TEMPORARY_MONO in preferenza per passare a una catena di scambio mono per la maggior parte delle applicazioni che si prevede userà di nuovo stereo. È necessario bilanciare l'uso di questo flag nelle applicazioni che sono estremamente lunghe o che raramente visualizzano stereo contro lo svantaggio della memoria inutilizzata.

Nota

Le applicazioni a schermo intero che passano a una catena di scambio mono causano una modifica della modalità che in genere presenta artefatti visibili (ad esempio, "flashing"). Tuttavia, mono temporaneo potrebbe non essere supportato per catene di scambio a schermo intero.

 

I flag di DXGI_PRESENT_STEREO_PREFER_RIGHT e DXGI_PRESENT_STEREO_TEMPORARY_MONO si applicano solo alle catene di scambio stereo. Se li si usa quando si presentano catene di scambio mono, si verifica un'operazione non valida.

Se si usa il flag DXGI_PRESENT_STEREO_TEMPORARY_MONO quando si presenta una catena di scambio stereo che non supporta mono temporanea, si verifica un errore, la catena di scambio non viene visualizzata e la presentazione restituisce DXGI_ERROR_INVALID_CALL.

Requisiti

Requisito Valore
Intestazione
DXGI.h

Vedi anche

Costanti DXGI