> ## 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

Intenta habilitar el modo HDR (alto rango dinámico) para la pantalla conectada.

## Sintaxis

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

### Parámetros

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

Enumeración usada para favorecer HDR o una velocidad de fotogramas mejorada de hasta 120 Hz, en los casos en que el televisor conectado no admita ambas opciones.

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

Si el modo HDR está habilitado, los valores mínimo y máximo de luminancia de asignación de tonos para la pantalla conectada.

### Valor devuelto

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

Si la función se ejecuta correctamente, el valor devuelto se establece en **XDisplayHdrModeResult::Enabled** si el modo HDR está habilitado, o en **XDisplayHdrModeResult::Disabled** si el modo HDR no está habilitado. Si la función falla, el valor devuelto se establece en **XDisplayHdrModeResult::Unknown**.

## Comentarios

<Note>No es seguro llamar a esta función en un subproceso sensible al tiempo. Para obtener más información, consulte [Subprocesos sensibles al tiempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

El parámetro *displayModePreference* proporciona una manera de favorecer HDR *o* frecuencias de actualización de 120 Hz para televisores que no admiten ambas simultáneamente.

En el ejemplo siguiente, el desarrollador intenta habilitar el modo HDR para el título actual, indicando preferencia por HDR en lugar de una velocidad de fotogramas más alta (en el caso de que no se puedan lograr ambas).

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

Los títulos deben usar [XDisplayHdrModePreference::PreferHdr](/reference/system/xdisplay/enums/xdisplayhdrmodepreference) cuando:

* Su título solo implementa HDR y no admite 120 Hz en absoluto.
* El usuario final ha establecido una configuración dentro del juego que indica que no quiere una frecuencia de actualización de 120 Hz, o prefiere HDR, como una preferencia por la calidad sobre el rendimiento.
* El título está en un modo de juego en el que no se admite la frecuencia de actualización de 120 Hz.

Los títulos deben usar [XDisplayHdrModePreference::PreferRefreshRate](/reference/system/xdisplay/enums/xdisplayhdrmodepreference) cuando:

* Admite 120 Hz y usted o el usuario final han indicado que es lo preferido para el escenario actual (p. ej., al establecer **Prefer performance** en una configuración o modo de juego dentro del juego).

Llame a **XDisplayTryEnableHdrMode** una segunda vez con una preferencia diferente si:

* Algo ha cambiado que ha modificado su preferencia. Lo más probable es que el usuario haya cambiado la configuración del juego de **Prefer quality** a **Prefer performance**.

<Note>No llame a **XDisplayTryEnableHdrMode** ni alterne entre modos en cada fotograma; cambie solo cuando haya algún motivo específico.</Note>

Después de llamar a **XDisplayTryEnableHdrMode**, llame a [IDXGIOutput::GetDisplayModeList](https://learn.microsoft.com/windows/win32/api/dxgi/nf-dxgi-idxgioutput-getdisplaymodelist) para comprobar la compatibilidad con 120 Hz.

La función **XDisplayTryEnableHdrMode** devuelve un valor de enumeración **XDisplayHdrModeResult** que indica si la función puede habilitar el modo HDR para la pantalla conectada. Si se devuelve **XDisplayHdrModeResult::Enabled**, la función también proporciona una estructura [XDisplayHdrModeInfo](/reference/system/xdisplay/structs/xdisplayhdrmodeinfo) que contiene información sobre el modo HDR para la pantalla, incluidos los valores mínimo y máximo de luminancia de asignación de tonos para el modo HDR. De manera predeterminada, si el modo HDR está habilitado, la función **XDisplayTryEnableHdrMode** devuelve los siguientes valores para los miembros de **XDisplayHdrModeInfo**:

| Miembro                      | Valor |
| ---------------------------- | ----- |
| minToneMapLuminance          | 0.01  |
| maxToneMapLuminance          | 1000  |
| maxFullFrameToneMapLuminance | 1000  |

Para obtener más información sobre los valores de luminancia de HDR y la asignación de tonos, consulte la presentación [For a Better HDR Gaming Experience](https://www.hgig.org/doc/ForBetterHDRGaming.pdf) en el sitio web del [HDR Gaming Interest Group](https://www.hgig.org/).

El ejemplo siguiente intenta habilitar el modo HDR para la pantalla conectada. Si se devuelve [XDisplayHdrModeInfo::Enabled](/reference/system/xdisplay/enums/xdisplayhdrmoderesult), el modo HDR está habilitado para la pantalla y el juego usa los valores de luminancia de la estructura [XDisplayHdrModeInfo](/reference/system/xdisplay/structs/xdisplayhdrmodeinfo) devuelta para inicializarse en modo HDR; de lo contrario, el modo HDR no está disponible o está deshabilitado, y el juego se inicializa en modo SDR (rango dinámico estándar).

```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();
    }
}
```

Para obtener más información sobre la compatibilidad con HDR, consulte [Salida de alto rango dinámico (HDR) (tema NDA)](/build/core-features/graphics/overviews/hdr-support).

## Requisitos

**Encabezado:** XDisplay.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatibles:** consolas de la familia XBOX One y consolas XBOX Series

## Documentación conceptual

* [Subprocesos sensibles al tiempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Consulte también

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


## Related topics

- [XDisplayHdrModeResult](/es/reference/system/xdisplay/enums/xdisplayhdrmoderesult.md)
- [XDisplayHdrModeInfo](/es/reference/system/xdisplay/structs/xdisplayhdrmodeinfo.md)
- [XDisplayHdrModePreference](/es/reference/system/xdisplay/enums/xdisplayhdrmodepreference.md)
- [XDisplay](/es/reference/system/xdisplay/xdisplay_members.md)
- [FMA XR-131: Modo de visualización para Game DVR y capturas de pantalla](/es/publishing/certification/fma/xr-131.md)
