IDXGISwapChain ::SetFullscreenState, méthode (dxgi.h)

Définit l’état d’affichage sur Fenêtré ou plein écran.

Syntaxe

HRESULT SetFullscreenState(
  BOOL        Fullscreen,
  IDXGIOutput *pTarget
);

Paramètres

Fullscreen

Type : BOOL

Valeur booléenne qui spécifie s’il faut définir l’état d’affichage sur fenêtré ou en mode plein écran. TRUE pour le mode plein écran et FALSE pour les fenêtres.

pTarget

Type : [in, facultatif] IDXGIOutput*

Si vous passez TRUE au paramètre Fullscreen pour définir l’état d’affichage sur plein écran, vous pouvez éventuellement définir ce paramètre vers un pointeur vers une interface IDXGIOutput pour la cible de sortie qui contient la chaîne d’échange. Si vous définissez ce paramètre sur NULL, DXGI choisit la sortie en fonction de l’appareil de la chaîne d’échange et de l’emplacement de la fenêtre de sortie. Si vous passez FALSE à Fullscreen, vous devez définir ce paramètre sur NULL.

Valeur retournée

Type : HRESULT

Cette méthode retourne l’une de ces valeurs.

  • S_OK si l’action a réussi et que la chaîne d’échange a été placée dans l’état demandé.
  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE si l’action a échoué. Lorsque cette erreur est retournée, votre application peut continuer à s’exécuter en mode fenêtré et essayer de basculer ultérieurement en mode plein écran. Il existe de nombreuses raisons pour lesquelles une chaîne d’échange en mode fenêtré ne peut pas basculer en mode plein écran. Voici quelques exemples.
    • L’application s’exécute sur Terminal Server.
    • La fenêtre de sortie est obclée.
    • La fenêtre de sortie n’a pas de focus clavier.
    • Une autre application est déjà en mode plein écran.
  • DXGI_STATUS_MODE_CHANGE_IN_PROGRESS est retourné si une transition en mode plein écran/fenêtré se produit lors de l’appel de cette API.
  • Autres codes d’erreur si vous n’avez plus de mémoire ou si vous rencontrez une autre erreur inattendue ; ces codes peuvent être traités comme des erreurs difficiles et non continuables.

Remarques

DXGI peut modifier l’état d’affichage d’une chaîne d’échange en réponse aux demandes de l’utilisateur final ou du système.

Nous vous recommandons de créer une chaîne d’échange fenêtré et d’autoriser l’utilisateur final à modifier la chaîne d’échange en mode plein écran via SetFullscreenState ; Autrement dit, ne définissez pas le membre fenêtré de DXGI_SWAP_CHAIN_DESC sur FALSE pour forcer la chaîne d’échange à être en plein écran. Toutefois, si vous créez la chaîne d’échange en mode plein écran, fournissez également à l’utilisateur final une liste des modes d’affichage pris en charge, car une chaîne d’échange créée avec un mode d’affichage non pris en charge peut rendre l’affichage noir et empêcher l’utilisateur final de voir quoi que ce soit. En outre, nous vous recommandons de disposer d’un écran de confirmation du délai d’attente ou d’un autre mécanisme de secours lorsque vous autorisez l’utilisateur final à modifier les modes d’affichage.

Remarques pour les applications du Windows Store

Si une application du Windows Store appelle SetFullscreenState pour définir l’état d’affichage en plein écran, SetFullscreenState échoue avec DXGI_ERROR_NOT_CURRENTLY_AVAILABLE.

Vous ne pouvez pas appeler SetFullscreenState sur une chaîne d’échange que vous avez créée avec IDXGIFactory2 ::CreateSwapChainForComposition.

Pour le modèle de présentation inversée, après avoir fait passer l’état d’affichage en mode plein écran, vous devez appeler ResizeBuffers pour vous assurer que votre appel à IDXGISwapChain1 ::P resent1 réussit.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête dxgi.h
Bibliothèque DXGI.lib

Voir aussi

IDXGISwapChain