Freigeben über


DXGI_SWAP_CHAIN_FLAG-Enumeration (dxgi.h)

Optionen für das Swap-Chain-Verhalten.

Syntax

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
} ;

Konstanten

 
DXGI_SWAP_CHAIN_FLAG_NONPREROTATED
Wert: 1
Legen Sie dieses Flag fest, um die automatische Bildrotation zu deaktivieren. Das heißt, führen Sie keine Drehung aus, wenn Sie den Inhalt des Frontpuffers auf den Monitor übertragen.
Verwenden Sie dieses Flag, um eine Bandbreitenstrafe zu vermeiden, wenn eine Anwendung eine Rotation erwartet. Diese Option ist nur im Vollbildmodus gültig.
DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH
Wert: 2
Legen Sie dieses Flag fest, damit eine Anwendung den Modus wechseln kann, indem Sie IDXGISwapChain::ResizeTarget aufrufen.
Beim Wechsel vom Fenstermodus in den Vollbildmodus wird der Anzeigemodus (oder die Monitorauflösung) so geändert, dass er den Dimensionen des Anwendungsfensters entspricht.
DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE
Wert: 4
Legen Sie dieses Flag fest, damit eine Anwendung mithilfe von GDI auf einer Swapchain oder einer Oberfläche rendern kann.
Dadurch kann die Anwendung IDXGISurface1::GetDC auf dem 0. Backpuffer oder einer Oberfläche aufrufen.

Dieses Flag gilt nicht für Direct3D 12.
DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT
Wert: 8
Legen Sie dieses Flag fest, um anzugeben, dass die Swapchain geschützte Inhalte enthalten kann. Daher unterstützt das Betriebssystem die Erstellung der Swapchain nur, wenn Treiber- und Hardwareschutz verwendet wird. Wenn der Treiber und die Hardware den Schutz von Inhalten nicht unterstützen, schlägt der Aufruf zum Erstellen einer Ressource für die Swap chain fehl.

Direct3D 11: Dieser Enumerationswert wird ab Windows 8 unterstützt.
DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER
Wert: 16
Legen Sie dieses Flag fest, um anzugeben, dass freigegebene Ressourcen, die innerhalb der Swapchain erstellt werden, mithilfe des Mechanismus des Treibers zum Einschränken des Zugriffs auf freigegebene Oberflächen geschützt werden müssen.

Direct3D 11: Dieser Enumerationswert wird ab Windows 8 unterstützt.
DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY
Wert: 32
Legen Sie dieses Flag fest, um präsentierten Inhalt auf die lokalen Anzeigen zu beschränken. Daher ist der Zugriff auf die präsentierten Inhalte nicht über den Remotezugriff oder über die Desktopduplizierungs-APIs möglich.

Dieses Flag unterstützt die Fensterinhaltsschutzfeatures von Windows. Anwendungen können dieses Flag verwenden, um ihre eigenen Inhalte im Bildschirmfenster davor zu schützen, über einen bestimmten Satz von Features und APIs des öffentlichen Betriebssystems erfasst oder kopiert zu werden.

Wenn Sie dieses Flag mit Windows-Swapketten (HWND oder IWindow) verwenden, in denen ein anderer Prozess den HWND erstellt hat, muss der Besitzer des HWND die SetWindowDisplayAffinity-Funktion entsprechend verwenden, damit Aufrufe von IDXGISwapChain::P resent oder IDXGISwapChain1::P resent1 erfolgreich sein können.


Direct3D 11: Dieser Enumerationswert wird ab Windows 8 unterstützt.
DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT
Wert: 64
Legen Sie dieses Flag fest, um ein wartebares Objekt zu erstellen, mit dem Sie sicherstellen können, dass das Rendering nicht beginnt, während ein Frame noch angezeigt wird. Wenn dieses Flag verwendet wird, muss die Latenz der Swapchain mit der IDXGISwapChain2::SetMaximumFrameLatency-API anstelle von IDXGIDevice1::SetMaximumFrameLatency festgelegt werden.

Dieses Flag wird im Vollbildmodus nicht unterstützt, es sei denn, die Render-API ist Direct3D 12.

Hinweis Dieser Enumerationswert wird ab Windows 8.1 unterstützt.
DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER
Wert: 128
Legen Sie dieses Flag fest, um eine Swapchain in der Vordergrundebene für das Rendering mit mehreren Ebenen zu erstellen. Dieses Flag kann nur mit CoreWindow-Swapketten verwendet werden, die mit CreateSwapChainForCoreWindow erstellt werden. Apps sollten keine Vordergrund-Swapchains erstellen, wenn IDXGIOutput2::SupportsOverlays angibt, dass die Hardwareunterstützung für Überlagerungen nicht verfügbar ist.

Beachten Sie, dass IDXGISwapChain::ResizeBuffers nicht zum Hinzufügen oder Entfernen dieses Flags verwendet werden kann.

Hinweis Dieser Enumerationswert wird ab Windows 8.1 unterstützt.
DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO
Wert: 256
Legen Sie dieses Flag fest, um eine Swapchain für Vollbildvideos zu erstellen.

Hinweis Dieser Enumerationswert wird ab Windows 8.1 unterstützt.
DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO
Wert: 512
Legen Sie dieses Flag fest, um eine Swapchain für YUV-Video zu erstellen.

Hinweis Dieser Enumerationswert wird ab Windows 8.1 unterstützt.
DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED
Wert: 1024
Gibt an, dass die Swap chain so erstellt werden soll, dass alle zugrunde liegenden Ressourcen durch die Hardware geschützt werden können. Die Ressourcenerstellung schlägt fehl, wenn der Schutz von Hardwareinhalten nicht unterstützt wird.

Dieses Flag hat die folgenden Einschränkungen:


  • Dieses Flag kann nur mit auslagerungseffekten DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL verwendet werden.


Hinweis Das Erstellen einer Swap chain mit diesem Flag garantiert nicht automatisch, dass der Hardwareschutz für die zugrunde liegende Zuordnung aktiviert wird. Für einige Implementierungen ist es erforderlich, dass die DRM-Komponenten zuerst initialisiert werden, bevor eine Schutzgarantie gewährt wird.

 

Hinweis Dieser Enumerationswert wird ab Windows 10 unterstützt.
DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING
Wert: 2048
Die Unterstützung von Tearing ist erforderlich, um Anzeigen zu aktivieren, die variable Aktualisierungsraten unterstützen, um ordnungsgemäß zu funktionieren, wenn die Anwendung eine Swap chain darstellt, die an ein randloses Vollbildfenster gebunden ist. Win32-Apps können bereits das Tearing im exklusiven Vollbildmodus erreichen, indem sie SetFullscreenState(TRUE) aufrufen, aber der empfohlene Ansatz für Win32-Entwickler besteht darin, stattdessen dieses Tearing-Flag zu verwenden. Dieses Flag erfordert die Verwendung eines DXGI_SWAP_EFFECT_FLIP_* -Auslagerungseffekts.

Informationen zur Hardwareunterstützung dieses Features finden Sie unter IDXGIFactory5::CheckFeatureSupport. Nutzungsinformationen finden Sie unter IDXGISwapChain::P resent und die DXGI_PRESENT-Flags .

HINWEIS

IDXGISwapChain::ResizeBuffers kann nicht verwendet werden, um dieses Flag hinzuzufügen oder zu entfernen.

DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS
Wert: 4096

Hinweise

Diese Enumeration wird von der DXGI_SWAP_CHAIN_DESC-Struktur und der IDXGISwapChain::ResizeTarget-Methode verwendet.

Diese Enumeration wird auch von der DXGI_SWAP_CHAIN_DESC1-Struktur verwendet.

Sie müssen nicht DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY für Swap chains festlegen, die Sie mit der IDXGIFactory::CreateSwapChain-Methode im Vollbildmodus erstellen, da sich diese Swapchain-Ketten bereits so verhalten, als ob DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY festgelegt ist. Das heißt, auf präsentierten Inhalt kann nicht über den Remotezugriff oder über die Desktopduplizierungs-APIs zugegriffen werden.

Swapchains, die Sie mit den Methoden IDXGIFactory2::CreateSwapChainForHwnd, IDXGIFactory2::CreateSwapChainForCoreWindow und IDXGIFactory2::CreateSwapChainForComposition erstellen, sind nicht geschützt, wenn DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY nicht festgelegt ist und geschützt ist, wenn DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY festgelegt ist. Wenn Swapchains geschützt sind, wird das Screen Scraping verhindert, und im Vollbildmodus ist der Zugriff auf präsentierten Inhalte nicht über die Desktopduplizierungs-APIs möglich.

Wenn Sie IDXGISwapChain::ResizeBuffers aufrufen, um den Backpuffer der Swap chain zu ändern, können Sie alle DXGI_SWAP_CHAIN_FLAG-Flags zurücksetzen oder ändern.

Anforderungen

Anforderung Wert
Header dxgi.h

Weitere Informationen

DXGI-Enumerationen