DXGI_SWAP_CHAIN_FLAG列舉 (dxgi.h)

交換鏈結行為的選項。

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

常數

 
DXGI_SWAP_CHAIN_FLAG_NONPREROTATED
值: 1
將此旗標設定為關閉自動影像旋轉;也就是說,將前端緩衝區的內容傳送至監視器時,請勿執行旋轉。
當應用程式預期處理旋轉時,請使用此旗標來避免頻寬損失。 此選項只有在全螢幕模式期間才有效。
DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH
值: 2
藉由呼叫 IDXGISwapChain::ResizeTarget,將此旗標設定為讓應用程式切換模式。
從視窗切換為全螢幕模式時,將會變更顯示模式 (或監視解析度) ,以符合應用程式視窗的維度。
DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE
值: 4
設定此旗標可讓應用程式在交換鏈結或介面上使用 GDI 轉譯。
這可讓應用程式在第0個後端緩衝區或介面上呼叫 IDXGISurface1::GetDC

此旗標不適用於 Direct3D 12。
DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT
值: 8
設定此旗標以指出交換鏈結可能包含受保護的內容;因此,只有在使用驅動程式和硬體保護時,操作系統才支援建立交換鏈結。 如果驅動程式和硬體不支援內容保護,則呼叫來建立交換鏈結的資源會失敗。

Direct3D 11: 從 Windows 8 開始,支援此列舉值。
DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER
值: 16
設定此旗標,指出交換鏈結內建立的共用資源必須使用驅動程式的機制來保護共用介面。

Direct3D 11: 從 Windows 8 開始,支援此列舉值。
DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY
值: 32
將此旗標設定為將呈現的內容限制為本機顯示器。 因此,呈現的內容無法透過遠端訪問或 桌面重複 API 存取。

此旗標支援 Windows 的視窗內容保護功能。 應用程式可以使用此旗標來保護自己的螢幕視窗內容,以防止透過一組特定的公用操作系統功能和 API 擷取或複製。

如果您使用此旗標搭配視窗化 (HWND 或 IWindow) 交換鏈結,其中另一個進程建立 HWND,HWND 的擁有者必須使用 SetWindowDisplayAffinity 函式,以便允許呼叫 IDXGISwapChain::P resentIDXGISwapChain1::P resent1 才能成功。


Direct3D 11: 從 Windows 8 開始,支援此列舉值。
DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT
值: 64
將此旗標設定為建立可等候的物件,以確保在畫面仍在呈現時,轉譯不會開始。 使用此旗標時,交換鏈的延遲必須設定為 IDXGISwapChain2::SetMaximumFrameLatency API,而不是 IDXGIDevice1::SetMaximumFrameLatency

除非轉譯 API 為 Direct3D 12,否則全螢幕模式不支援此旗標。

注意從 Windows 8.1 開始,支援此列舉值。
DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER
值: 128
設定此旗標,以在前景圖層中建立多平面轉譯的交換鏈結。 此旗標只能與使用 CreateSwapChainForCoreWindow 建立的 CoreWindow 交換鏈結搭配使用。 如果 IDXGIOutput2::SupportsOverlays 表示無法使用重疊的硬體支援,則應用程式不應該建立前景交換鏈結。

請注意, IDXGISwapChain::ResizeBuffers 無法用來新增或移除此旗標。

注意從 Windows 8.1 開始,支援此列舉值。
DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO
值: 256
設定此旗標以建立全螢幕視訊的交換鏈結。

注意從 Windows 8.1 開始,支援此列舉值。
DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO
值: 512
設定此旗標以建立 YUV 影片的交換鏈結。

注意從 Windows 8.1 開始,支援此列舉值。
DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED
值: 1024
指出應該建立交換鏈結,讓所有基礎資源都可以受到硬體保護。 如果不支援硬體內容保護,資源建立將會失敗。

此旗標具有下列限制:


  • 此旗標只能用於交換效果 DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL


注意 使用此旗標建立交換鏈結並不會自動保證會針對基礎配置啟用硬體保護。 某些實作需要先初始化DRM元件,才能保證保護。

 

注意從 Windows 10 開始,支援此列舉值。
DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING
值: 2048
當應用程式呈現系結至全螢幕無框線視窗的交換鏈結時,需要啟用支援可變重新整理率的顯示器,才能正常運作。 Win32 應用程式可以透過呼叫 SetFullscreenState (TRUE) ,但 Win32 開發人員的建議方法是改用這個卸除旗標,以全螢幕獨佔模式達成終止。 此旗標需要使用 DXGI_SWAP_EFFECT_FLIP_* 交換效果。

若要檢查此功能的硬體支援,請參閱 IDXGIFactory5::CheckFeatureSupport。 如需使用資訊,請參閱 IDXGISwapChain::P resentDXGI_PRESENT 旗標。

注意

IDXGISwapChain::ResizeBuffers 無法用來新增或移除此旗標。

DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS
值: 4096

備註

這個列舉是由 DXGI_SWAP_CHAIN_DESC 結構和 IDXGISwapChain::ResizeTarget 方法使用。

DXGI_SWAP_CHAIN_DESC1 結構也會 使用此列舉。

您不需要針對使用IDXGIFactory::CreateSwapChain方法在全螢幕模式中建立的交換鏈結設定DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY,因為這些交換鏈結已經像設定DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY一樣。 也就是說,無法透過遠端訪問或 透過桌面重複 API 存取呈現的內容。

使用 IDXGIFactory2::CreateSwapChainForHwndIDXGIFactory2::CreateSwapChainForCoreWindowIDXGIFactory2::CreateSwapChainForComposition 方法建立的交換鏈結,如果未設定 DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY 且設定 DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY 則受到保護。 當交換鏈結受到保護時,會防止螢幕擷取,而且在全螢幕模式中,無法透過 桌面重複 API 存取呈現的內容。

當您呼叫 IDXGISwapChain::ResizeBuffers 來變更交換鏈結的後台緩衝區時,您可以重設或變更所有 DXGI_SWAP_CHAIN_FLAG 旗標。

規格需求

需求
標頭 dxgi.h

另請參閱

DXGI 列舉