> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XDisplayTryEnableHdrMode

> XDisplayTryEnableHdrMode

# XDisplayTryEnableHdrMode

Tente d'activer le mode HDR (High Dynamic Range) pour l'affichage connecté.

## Syntaxe

```cpp theme={null}
XDisplayHdrModeResult XDisplayTryEnableHdrMode(  
         XDisplayHdrModePreference displayModePreference,  
         XDisplayHdrModeInfo* displayHdrModeInfo  
)  
```

### Paramètres

*displayModePreference*   \_In\_\
Type : [XDisplayHdrModePreference](/fr/reference/system/xdisplay/enums/xdisplayhdrmodepreference)

Énumération utilisée pour privilégier soit le HDR, soit une fréquence d'images améliorée jusqu'à 120 Hz, lorsque le téléviseur connecté ne prend pas en charge les deux.

*displayHdrModeInfo*   \_Out\_opt\_\
Type : [XDisplayHdrModeInfo\*](/fr/reference/system/xdisplay/structs/xdisplayhdrmodeinfo)

Si le mode HDR est activé, valeurs de luminance minimale et maximale du mappage de tons pour l'affichage connecté.

### Valeur de retour

Type : [XDisplayHdrModeResult](/fr/reference/system/xdisplay/enums/xdisplayhdrmoderesult)

Si la fonction réussit, la valeur de retour est définie sur **XDisplayHdrModeResult::Enabled** si le mode HDR est activé, ou sur **XDisplayHdrModeResult::Disabled** si le mode HDR n'est pas activé. Si la fonction échoue, la valeur de retour est définie sur **XDisplayHdrModeResult::Unknown**.

## Remarques

<Note>Il n'est pas sûr d'appeler cette fonction sur un thread soumis à des contraintes de temps. Pour plus d'informations, consultez [Threads soumis à des contraintes de temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Le paramètre *displayModePreference* permet de privilégier le HDR *ou* les fréquences d'actualisation de 120 Hz pour les téléviseurs qui ne prennent pas en charge les deux simultanément.

Dans l'exemple ci-dessous, le développeur tente d'activer le mode HDR pour le titre actuel, en indiquant une préférence pour le HDR plutôt qu'une fréquence d'images plus élevée (dans le cas où les deux ne peuvent pas être obtenus).

```cpp theme={null}
const XDisplayHdrModeResult result = XDisplayTryEnableHdrMode( 
    XDisplayHdrModePreference::PreferHdr, 
    &displayModeHdrInfo); 

switch (result) 
{ 
  case XDisplayHdrModeResult::Unknown: 
    // HDR is currently in an unknown state. 
    break; 
  case XDisplayHdrModeResult::Enabled: 
    // HDR is currently enabled. 
    break; 
  case XDisplayHdrModeResult::Disabled: 
    // HDR is currently disabled. 
    break; 
}
```

Les titres doivent utiliser [XDisplayHdrModePreference::PreferHdr](/fr/reference/system/xdisplay/enums/xdisplayhdrmodepreference) dans les cas suivants :

* Votre titre implémente uniquement le HDR et ne prend pas du tout en charge le 120 Hz.
* L'utilisateur final a défini un paramètre dans le jeu indiquant qu'il ne souhaite pas de fréquence d'actualisation de 120 Hz, ou qu'il préfère le HDR, par exemple une préférence pour la qualité plutôt que pour les performances.
* Le titre se trouve dans un mode de jeu dans lequel la fréquence d'actualisation de 120 Hz n'est pas prise en charge.

Les titres doivent utiliser [XDisplayHdrModePreference::PreferRefreshRate](/fr/reference/system/xdisplay/enums/xdisplayhdrmodepreference) dans le cas suivant :

* Vous prenez en charge le 120 Hz et vous ou l'utilisateur final avez indiqué qu'il est préféré pour le scénario actuel (par exemple, en définissant **Privilégier les performances** dans un paramètre ou un mode de jeu).

Appelez **XDisplayTryEnableHdrMode** une deuxième fois avec une préférence différente dans le cas suivant :

* Un changement a modifié votre préférence. Le plus souvent, l'utilisateur a modifié le paramètre dans le jeu, passant de **Privilégier la qualité** à **Privilégier les performances**.

<Note>N'appelez pas **XDisplayTryEnableHdrMode** en basculant d'un mode à l'autre à chaque image ; n'effectuez de changement qu'en présence d'un déclencheur spécifique.</Note>

Après avoir appelé **XDisplayTryEnableHdrMode**, appelez [IDXGIOutput::GetDisplayModeList](https://learn.microsoft.com/windows/win32/api/dxgi/nf-dxgi-idxgioutput-getdisplaymodelist) pour vérifier la prise en charge du 120 Hz.

La fonction **XDisplayTryEnableHdrMode** retourne une valeur d'énumération **XDisplayHdrModeResult** qui indique si la fonction peut activer le mode HDR pour l'affichage connecté. Si **XDisplayHdrModeResult::Enabled** est retourné, la fonction fournit également une structure [XDisplayHdrModeInfo](/fr/reference/system/xdisplay/structs/xdisplayhdrmodeinfo) qui contient des informations sur le mode HDR de l'affichage, notamment les valeurs de luminance minimale et maximale du mappage de tons pour le mode HDR. Par défaut, si le mode HDR est activé, la fonction **XDisplayTryEnableHdrMode** retourne les valeurs suivantes pour les membres de **XDisplayHdrModeInfo** :

| Membre | Valeur |
| - | - |
| minToneMapLuminance | 0.01 |
| maxToneMapLuminance | 1000 |
| maxFullFrameToneMapLuminance | 1000 |

Pour plus d'informations sur les valeurs de luminance HDR et le mappage de tons, consultez la présentation [For a Better HDR Gaming Experience](https://www.hgig.org/doc/ForBetterHDRGaming.pdf) sur le site web du [HDR Gaming Interest Group](https://www.hgig.org/).

L'exemple suivant tente d'activer le mode HDR pour l'affichage connecté. Si [XDisplayHdrModeInfo::Enabled](/fr/reference/system/xdisplay/enums/xdisplayhdrmoderesult) est retourné, le mode HDR est activé pour l'affichage et le jeu utilise les valeurs de luminance de la structure [XDisplayHdrModeInfo](/fr/reference/system/xdisplay/structs/xdisplayhdrmodeinfo) retournée pour s'initialiser en mode HDR ; sinon, le mode HDR est indisponible ou désactivé, et le jeu s'initialise en mode SDR (Standard Dynamic Range).

```cpp theme={null}
void Game::InitializeHDRMode() 
{
    // Attempt to enable HDR mode, then initialize based on the 
    // result of the attempt.
    XDisplayHdrModeInfo displayModeHdrInfo;

    if (XDisplayHdrModeResult::Enabled == XDisplayTryEnableHdrMode(XDisplayHdrModePreference::PreferHdr, &displayModeHdrInfo))
    {
        // HDR mode is enabled for the attached display.
        InitializeAsHDR(
            displayModeHdrInfo.minToneMapLuminance,
            displayModeHdrInfo.maxToneMapLuminance,
            displayModeHdrInfo.maxFullFrameToneMapLuminance);
    }
    else
    {
        // Either HDR mode is disabled for the attached display, or the
        // attached display does not support HDR.
        InitializeAsSDR();
    }
}
```

Pour plus d'informations sur la prise en charge du HDR, consultez [Sortie HDR (High Dynamic Range) (rubrique sous NDA)](/fr/build/core-features/graphics/overviews/hdr-support).

## Configuration requise

**En-tête :** XDisplay.h

**Bibliothèque :** xgameruntime.lib

**Plateformes prises en charge :** consoles de la famille XBOX One et consoles XBOX Series

## Documentation conceptuelle

* [Threads soumis à des contraintes de temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Voir aussi

[XDisplayHdrModePreference](/fr/reference/system/xdisplay/enums/xdisplayhdrmodepreference)\
[XDisplayHdrModeInfo](/fr/reference/system/xdisplay/structs/xdisplayhdrmodeinfo)\
[XDisplayHdrModeResult](/fr/reference/system/xdisplay/enums/xdisplayhdrmoderesult)\
[XDisplay](/fr/reference/system/xdisplay/xdisplay_members)


## Related topics

- [XDisplayTryEnableHdrMode](/ja-jp/reference/system/xdisplay/functions/xdisplaytryenablehdrmode.md)
- [XDisplayHdrModeResult](/reference/system/xdisplay/enums/xdisplayhdrmoderesult.md)
- [XDisplayHdrModeInfo](/reference/system/xdisplay/structs/xdisplayhdrmodeinfo.md)
