> ## 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'écran connecté.

## Syntaxe

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

### Paramètres

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

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

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

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

### Valeur de retour

Type : [XDisplayHdrModeResult](/fr-CA/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écuritaire d'appeler cette fonction sur un thread sensible au temps. Pour plus d'informations, consultez [Threads sensibles au 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 que pour 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-CA/reference/system/xdisplay/enums/xdisplayhdrmodepreference) lorsque :

* 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 veut 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 est dans un mode de jeu qui ne prend pas en charge la fréquence d'actualisation de 120 Hz.

Les titres doivent utiliser [XDisplayHdrModePreference::PreferRefreshRate](/fr-CA/reference/system/xdisplay/enums/xdisplayhdrmodepreference) lorsque :

* Vous prenez en charge le 120 Hz et vous ou l'utilisateur final avez indiqué que cette option est préférée 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 si :

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

<Note>N'appelez pas **XDisplayTryEnableHdrMode** en alternant d'une valeur à l'autre à chaque image; ne changez la préférence que lorsqu'un événement précis le justifie.</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'écran connecté. Si **XDisplayHdrModeResult::Enabled** est retourné, la fonction fournit également une structure [XDisplayHdrModeInfo](/fr-CA/reference/system/xdisplay/structs/xdisplayhdrmodeinfo) qui contient des informations sur le mode HDR de l'écran, notamment les valeurs minimale et maximale de luminance de 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'écran connecté. Si [XDisplayHdrModeInfo::Enabled](/fr-CA/reference/system/xdisplay/enums/xdisplayhdrmoderesult) est retourné, le mode HDR est activé pour l'écran et le jeu utilise les valeurs de luminance de la structure [XDisplayHdrModeInfo](/fr-CA/reference/system/xdisplay/structs/xdisplayhdrmodeinfo) retournée pour s'initialiser en mode HDR; sinon, le mode HDR n'est pas disponible ou est 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-CA/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 sensibles au temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Voir aussi

[XDisplayHdrModePreference](/fr-CA/reference/system/xdisplay/enums/xdisplayhdrmodepreference)\
[XDisplayHdrModeInfo](/fr-CA/reference/system/xdisplay/structs/xdisplayhdrmodeinfo)\
[XDisplayHdrModeResult](/fr-CA/reference/system/xdisplay/enums/xdisplayhdrmoderesult)\
[XDisplay](/fr-CA/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)
