enumerazione DXGI_SWAP_CHAIN_FLAG (dxgi.h)

Opzioni per il comportamento della catena di scambio.

Sintassi

typedef enum DXGI_SWAP_CHAIN_FLAG {
  DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1,
  DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2,
  DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 4,
  DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT = 8,
  DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER = 16,
  DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY = 32,
  DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT = 64,
  DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER = 128,
  DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO = 256,
  DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO = 512,
  DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED = 1024,
  DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING = 2048,
  DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS = 4096
} ;

Costanti

 
DXGI_SWAP_CHAIN_FLAG_NONPREROTATED
Valore: 1
Impostare questo flag per disattivare la rotazione automatica delle immagini; ovvero, non eseguire una rotazione quando si trasferisce il contenuto del buffer anteriore al monitor.
Usare questo flag per evitare una penalità della larghezza di banda quando un'applicazione prevede di gestire la rotazione. Questa opzione è valida solo durante la modalità schermo intero.
DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH
Valore: 2
Impostare questo flag per consentire a un'applicazione di cambiare modalità chiamando IDXGISwapChain::ResizeTarget.
Quando si passa dalla modalità finestra a schermo intero, la modalità di visualizzazione (o la risoluzione del monitoraggio) verrà modificata in modo che corrisponda alle dimensioni della finestra dell'applicazione.
DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE
Valore: 4
Impostare questo flag per abilitare il rendering di un'applicazione usando GDI in una catena di scambio o in una superficie.
Ciò consentirà all'applicazione di chiamare IDXGISurface1::GetDC nel 0° buffer nascosto o in una superficie.

Questo flag non è applicabile per Direct3D 12.
DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT
Valore: 8
Impostare questo flag per indicare che la catena di scambio potrebbe contenere contenuto protetto; pertanto, il sistema operativo supporta la creazione della catena di scambio solo quando viene usata la protezione hardware e driver. Se il driver e l'hardware non supportano la protezione del contenuto, la chiamata alla creazione di una risorsa per la catena di scambio ha esito negativo.

Direct3D 11: Questo valore di enumerazione è supportato a partire da Windows 8.
DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER
Valore: 16
Impostare questo flag per indicare che le risorse condivise create all'interno della catena di scambio devono essere protette tramite il meccanismo del driver per limitare l'accesso alle superfici condivise.

Direct3D 11: Questo valore di enumerazione è supportato a partire da Windows 8.
DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY
Valore: 32
Impostare questo flag per limitare il contenuto presentato alle visualizzazioni locali. Di conseguenza, il contenuto presentato non è accessibile tramite accesso remoto o tramite le API di duplicazione desktop.

Questo flag supporta le funzionalità di protezione del contenuto della finestra di Windows. Le applicazioni possono usare questo flag per proteggere il contenuto della finestra su schermo dall'acquisizione o dalla copia tramite un set specifico di funzionalità e API del sistema operativo pubblico.

Se usi questo flag con catene di scambio HWND o IWindow in cui un altro processo ha creato HWND, il proprietario di HWND deve usare la funzione SetWindowDisplayAffinity in modo appropriato per consentire chiamate a IDXGISwapChain::P resent o IDXGISwapChain1::P resent1 .


Direct3D 11: Questo valore di enumerazione è supportato a partire da Windows 8.
DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT
Valore: 64
Impostare questo flag per creare un oggetto waitable che è possibile usare per garantire che il rendering non inizi mentre è ancora in corso la presentazione di un frame. Quando si usa questo flag, la latenza della swapchain deve essere impostata con l'API IDXGISwapChain2::SetMaximumFrameLatency anziché IDXGIDevice1::SetMaximumFrameLatency.

Questo flag non è supportato in modalità schermo intero, a meno che l'API di rendering non sia Direct3D 12.

Nota Questo valore di enumerazione è supportato a partire da Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER
Valore: 128
Impostare questo flag per creare una catena di scambio nel livello in primo piano per il rendering multiplano. Questo flag può essere usato solo con le catene di scambio CoreWindow , create con CreateSwapChainForCoreWindow. Le app non devono creare catene di scambio in primo piano se IDXGIOutput2::SupportsOverlays indica che il supporto hardware per le sovrimpressioni non è disponibile.

Si noti che IDXGISwapChain::ResizeBuffers non può essere usato per aggiungere o rimuovere questo flag.

Nota Questo valore di enumerazione è supportato a partire da Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO
Valore: 256
Impostare questo flag per creare una catena di scambio per il video a schermo intero.

Nota Questo valore di enumerazione è supportato a partire da Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO
Valore: 512
Impostare questo flag per creare una catena di scambio per il video YUV.

Nota Questo valore di enumerazione è supportato a partire da Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED
Valore: 1024
Indica che la catena di scambio deve essere creata in modo che tutte le risorse sottostanti possano essere protette dall'hardware. La creazione delle risorse avrà esito negativo se la protezione del contenuto hardware non è supportata.

Questo flag presenta le restrizioni seguenti:


  • Questo flag può essere usato solo con effetto di scambio DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL.


Nota La creazione di una catena di scambio con questo flag non garantisce automaticamente che la protezione hardware venga abilitata per l'allocazione sottostante. Alcune implementazioni richiedono che i componenti DRM vengano inizializzati prima di qualsiasi garanzia di protezione.

 

Nota Questo valore di enumerazione è supportato a partire da Windows 10.
DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING
Valore: 2048
Il supporto dell'interruzione è un requisito per abilitare le visualizzazioni che supportano le frequenze di aggiornamento variabili per funzionare correttamente quando l'applicazione presenta una catena di scambio associata a una finestra senza bordi a schermo intero. Le app Win32 possono già ottenere lo strappo in modalità esclusiva a schermo intero chiamando SetFullscreenState(TRUE), ma l'approccio consigliato per gli sviluppatori Win32 consiste nell'usare questo flag di strappo. Questo flag richiede l'uso di un effetto di scambio DXGI_SWAP_EFFECT_FLIP_* .

Per verificare il supporto hardware di questa funzionalità, vedere IDXGIFactory5::CheckFeatureSupport. Per informazioni sull'utilizzo, vedere IDXGISwapChain::P resent e i flag DXGI_PRESENT .

NOTA

IDXGISwapChain::ResizeBuffers non può essere usato per aggiungere o rimuovere questo flag.

DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS
Valore: 4096

Commenti

Questa enumerazione viene usata dalla struttura DXGI_SWAP_CHAIN_DESC e dal metodo IDXGISwapChain::ResizeTarget .

Questa enumerazione viene utilizzata anche dalla struttura DXGI_SWAP_CHAIN_DESC1 .

Non è necessario impostare DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY per le catene di scambio create in modalità schermo intero con il metodo IDXGIFactory::CreateSwapChain perché tali catene di scambio si comportano già come se DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY sia impostato. Ovvero, il contenuto presentato non è accessibile dall'accesso remoto o tramite le API di duplicazione desktop.

Le catene di scambio create con i metodi IDXGIFactory2::CreateSwapChainForHwnd, IDXGIFactory2::CreateSwapChainForCoreWindow e IDXGIFactory2::CreateSwapChainForComposition non sono protette se DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY non è impostato e sono protette se è impostato DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY . Quando le catene di scambio sono protette, viene impedito lo scraping dello schermo e, in modalità schermo intero, il contenuto presentato non è accessibile tramite le API di duplicazione desktop.

Quando chiami IDXGISwapChain::ResizeBuffers per modificare il buffer nascosto della catena di scambio, puoi reimpostare o modificare tutti i flag DXGI_SWAP_CHAIN_FLAG .

Requisiti

Requisito Valore
Intestazione dxgi.h

Vedi anche

Enumerazioni DXGI