Перечисление DXGI_SWAP_CHAIN_FLAG (dxgi.h)

Параметры поведения цепочки буферов.

Синтаксис

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 в цепочке буферов или поверхности.
Это позволит приложению вызывать IDXGISurface1::GetDC в 0-м обратном буфере или поверхности.

Этот флаг неприменим для 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 resent или IDXGISwapChain1::P resent1 для успешного выполнения.


Direct3D 11: Это значение перечисления поддерживается начиная с Windows 8.
DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT
Значение: 64
Установите этот флаг, чтобы создать объект с ожиданием, который можно использовать, чтобы гарантировать, что отрисовка не начнется во время представления кадра. При использовании этого флага задержку цепочки буферов необходимо задать с помощью API IDXGISwapChain2::SetMaximumFrameLatency вместо IDXGIDevice1::SetMaximumFrameLatency.

Этот флаг не поддерживается в полноэкранном режиме, если API отрисовки не является Direct3D 12.

Примечание Это значение перечисления поддерживается начиная с Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER
Значение: 128
Установите этот флаг, чтобы создать цепочку буферов в слое переднего плана для многоуровневой отрисовки. Этот флаг можно использовать только с цепочками буферов CoreWindow , которые создаются с помощью CreateSwapChainForCoreWindow. Приложения не должны создавать цепочки буферов переднего плана, если 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 resent и флаги DXGI_PRESENT .

ПРИМЕЧАНИЕ

IDXGISwapChain::ResizeBuffers нельзя использовать для добавления или удаления этого флага.

DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS
Значение: 4096

Комментарии

Это перечисление используется структурой DXGI_SWAP_CHAIN_DESC и методом IDXGISwapChain::ResizeTarget .

Это перечисление также используется структурой DXGI_SWAP_CHAIN_DESC1 .

Вам не нужно задавать DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY для цепочек буферов, создаваемых в полноэкранном режиме с помощью метода IDXGIFactory::CreateSwapChain , так как эти цепочки буферов уже ведут себя так, как если бы DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY задано. То есть представленное содержимое недоступно для удаленного доступа или через API дублирования рабочего стола.

Цепочки буферов, создаваемые с помощью методов IDXGIFactory2::CreateSwapChainForHwnd, IDXGIFactory2::CreateSwapChainForCoreWindow и IDXGIFactory2::CreateSwapChainForComposition , не защищаются, если DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY не задано, и защищаются, если задано DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY . При защите цепочек буферов предотвращается выскабливание экрана, а в полноэкранном режиме содержимое недоступно через API дублирования рабочего стола.

При вызове IDXGISwapChain::ResizeBuffers для изменения обратного буфера цепочки буферов можно сбросить или изменить все флаги DXGI_SWAP_CHAIN_FLAG .

Требования

Требование Значение
Заголовок dxgi.h

См. также раздел

Перечисления DXGI