énumération DXGI_SWAP_CHAIN_FLAG (dxgi.h)

Options pour le comportement de la chaîne d’échange.

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

Constantes

 
DXGI_SWAP_CHAIN_FLAG_NONPREROTATED
Valeur : 1
Définissez cet indicateur pour désactiver la rotation automatique des images ; Autrement dit, n’effectuez pas de rotation lors du transfert du contenu de la mémoire tampon frontale vers le moniteur.
Utilisez cet indicateur pour éviter une pénalité de bande passante lorsqu’une application s’attend à gérer la rotation. Cette option est valide uniquement en mode plein écran.
DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH
Valeur : 2
Définissez cet indicateur pour permettre à une application de changer de mode en appelant IDXGISwapChain ::ResizeTarget.
Lorsque vous passez du mode fenêtré au mode plein écran, le mode d’affichage (ou la résolution du moniteur) est modifié pour correspondre aux dimensions de la fenêtre d’application.
DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE
Valeur : 4
Définissez cet indicateur pour permettre à une application de s’afficher à l’aide de GDI sur une chaîne d’échange ou une surface.
Cela permet à l’application d’appeler IDXGISurface1 ::GetDC sur la mémoire tampon 0 ou une surface.

Cet indicateur ne s’applique pas à Direct3D 12.
DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT
Valeur : 8
Définissez cet indicateur pour indiquer que la chaîne d’échange peut contenir du contenu protégé ; par conséquent, le système d’exploitation prend en charge la création de la chaîne d’échange uniquement lorsque la protection du pilote et du matériel est utilisée. Si le pilote et le matériel ne prennent pas en charge la protection du contenu, l’appel à la création d’une ressource pour la chaîne d’échange échoue.

Direct3D 11 : Cette valeur d’énumération est prise en charge à partir de Windows 8.
DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER
Valeur : 16
Définissez cet indicateur pour indiquer que les ressources partagées créées dans la chaîne d’échange doivent être protégées à l’aide du mécanisme du pilote pour restreindre l’accès aux surfaces partagées.

Direct3D 11 : Cette valeur d’énumération est prise en charge à partir de Windows 8.
DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY
Valeur : 32
Définissez cet indicateur pour limiter le contenu présenté aux affichages locaux. Par conséquent, le contenu présenté n’est pas accessible via l’accès à distance ou via les API de duplication du bureau.

Cet indicateur prend en charge les fonctionnalités de protection du contenu des fenêtres de Windows. Les applications peuvent utiliser cet indicateur pour protéger leur propre contenu de fenêtre à l’écran contre la capture ou la copie via un ensemble spécifique de fonctionnalités et d’API du système d’exploitation public.

Si vous utilisez cet indicateur avec des chaînes d’échange fenêtrées (HWND ou IWindow) où un autre processus a créé le HWND, le propriétaire du HWND doit utiliser la fonction SetWindowDisplayAffinity de manière appropriée afin de permettre aux appels à IDXGISwapChain ::P resent ou IDXGISwapChain1 ::P resent1 de réussir.


Direct3D 11 : Cette valeur d’énumération est prise en charge à partir de Windows 8.
DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT
Valeur : 64
Définissez cet indicateur pour créer un objet d’attente que vous pouvez utiliser pour vous assurer que le rendu ne commence pas tant qu’une image est toujours présentée. Lorsque cet indicateur est utilisé, la latence de la chaîne d’échange doit être définie avec l’API IDXGISwapChain2 ::SetMaximumFrameLatency au lieu d’IDXGIDevice1 ::SetMaximumFrameLatency.

Cet indicateur n’est pas pris en charge en mode plein écran, sauf si l’API de rendu est Direct3D 12.

Note Cette valeur d’énumération est prise en charge à partir de Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER
Valeur : 128
Définissez cet indicateur pour créer une chaîne d’échange dans la couche de premier plan pour le rendu multi-plan. Cet indicateur ne peut être utilisé qu’avec les chaînes d’échange CoreWindow , qui sont créées avec CreateSwapChainForCoreWindow. Les applications ne doivent pas créer de chaînes d’échange au premier plan si IDXGIOutput2 ::SupportsOverlays indique que la prise en charge matérielle des superpositions n’est pas disponible.

Notez qu’IDXGISwapChain ::ResizeBuffers ne peut pas être utilisé pour ajouter ou supprimer cet indicateur.

Note Cette valeur d’énumération est prise en charge à partir de Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO
Valeur : 256
Définissez cet indicateur pour créer une chaîne d’échange pour la vidéo en plein écran.

Note Cette valeur d’énumération est prise en charge à partir de Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO
Valeur : 512
Définissez cet indicateur pour créer une chaîne d’échange pour la vidéo YUV.

Note Cette valeur d’énumération est prise en charge à partir de Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED
Valeur : 1024
Indique que la chaîne d’échange doit être créée de telle sorte que toutes les ressources sous-jacentes puissent être protégées par le matériel. La création de ressources échoue si la protection du contenu matériel n’est pas prise en charge.

Cet indicateur présente les restrictions suivantes :


  • Cet indicateur ne peut être utilisé qu’avec un effet d’échange DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL.


Note La création d’une chaîne d’échange à l’aide de cet indicateur ne garantit pas automatiquement que la protection matérielle sera activée pour l’allocation sous-jacente. Certaines implémentations nécessitent que les composants DRM soient initialisés avant toute garantie de protection.

 

Note Cette valeur d’énumération est prise en charge à partir de Windows 10.
DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING
Valeur : 2048
La prise en charge de la déchirure est requise pour permettre aux affichages qui prennent en charge les taux d’actualisation variables de fonctionner correctement lorsque l’application présente une chaîne d’échange liée à une fenêtre sans bordure plein écran. Les applications Win32 peuvent déjà obtenir la déchirure en mode exclusif plein écran en appelant SetFullscreenState(TRUE), mais l’approche recommandée pour les développeurs Win32 consiste à utiliser cet indicateur de déchirement à la place. Cet indicateur nécessite l’utilisation d’un effet d’échange DXGI_SWAP_EFFECT_FLIP_* .

Pour case activée la prise en charge matérielle de cette fonctionnalité, reportez-vous à IDXGIFactory5 ::CheckFeatureSupport. Pour plus d’informations sur l’utilisation, consultez IDXGISwapChain ::P resent et les indicateurs de DXGI_PRESENT .

REMARQUE

IDXGISwapChain ::ResizeBuffers ne peut pas être utilisé pour ajouter ou supprimer cet indicateur.

DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS
Valeur : 4096

Remarques

Cette énumération est utilisée par la structure DXGI_SWAP_CHAIN_DESC et la méthode IDXGISwapChain ::ResizeTarget .

Cette énumération est également utilisée par la structure DXGI_SWAP_CHAIN_DESC1 .

Vous n’avez pas besoin de définir DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY pour les chaînes d’échange que vous créez en mode plein écran avec la méthode IDXGIFactory ::CreateSwapChain , car ces chaînes d’échange se comportent déjà comme si DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY était défini. Autrement dit, le contenu présenté n’est pas accessible par l’accès à distance ou par le biais des API de duplication du bureau.

Les chaînes d’échange que vous créez avec les méthodes IDXGIFactory2 ::CreateSwapChainForHwnd, IDXGIFactory2 ::CreateSwapChainForCoreWindow et IDXGIFactory2 ::CreateSwapChainForComposition ne sont pas protégées si DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY n’est pas défini et sont protégées si DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY est défini. Lorsque les chaînes d’échange sont protégées, le raclage d’écran est empêché et, en mode plein écran, le contenu présenté n’est pas accessible via les API de duplication du bureau.

Lorsque vous appelez IDXGISwapChain ::ResizeBuffers pour modifier la mémoire tampon arrière de la chaîne d’échange, vous pouvez réinitialiser ou modifier tous les indicateurs DXGI_SWAP_CHAIN_FLAG .

Configuration requise

Condition requise Valeur
En-tête dxgi.h

Voir aussi

Énumérations DXGI