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

Tenta habilitar o modo HDR (High Dynamic Range) para a tela conectada.

## Sintaxe

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

### Parâmetros

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

Enumeração usada para favorecer o HDR ou uma taxa de quadros aprimorada de até 120 Hz, nos casos em que a TV conectada não oferece suporte a ambos.

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

Se o modo HDR estiver habilitado, os valores mínimo e máximo de luminância do mapeamento de tons da tela conectada.

### Valor retornado

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

Se a função for bem-sucedida, o valor retornado será definido como **XDisplayHdrModeResult::Enabled** se o modo HDR estiver habilitado ou como **XDisplayHdrModeResult::Disabled** se o modo HDR não estiver habilitado. Se a função falhar, o valor retornado será definido como **XDisplayHdrModeResult::Unknown**.

## Comentários

<Note>Não é seguro chamar esta função em um thread sensível ao tempo. Para obter mais informações, consulte [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

O parâmetro *displayModePreference* fornece uma maneira de favorecer o HDR *ou* taxas de atualização de 120 Hz em TVs que não oferecem suporte a ambos simultaneamente.

No exemplo abaixo, o desenvolvedor tenta habilitar o modo HDR para o título atual, declarando preferência pelo HDR em vez de uma taxa de quadros maior (caso não seja possível obter ambos).

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

Os títulos devem usar [XDisplayHdrModePreference::PreferHdr](/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmodepreference) quando:

* O título implementa apenas HDR e não oferece nenhum suporte a 120 Hz.
* O usuário final definiu uma configuração no jogo indicando que não deseja a taxa de atualização de 120 Hz ou que prefere HDR, como uma preferência por qualidade em vez de desempenho.
* O título está em um modo de jogo no qual a taxa de atualização de 120 Hz não é suportada.

Os títulos devem usar [XDisplayHdrModePreference::PreferRefreshRate](/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmodepreference) quando:

* Você oferece suporte a 120 Hz e você ou o usuário final indicou que essa opção é preferível para o cenário atual (por exemplo, definindo **Preferir desempenho** em uma configuração ou modo de jogo).

Chame **XDisplayTryEnableHdrMode** uma segunda vez com uma preferência diferente se:

* Algo mudou e alterou sua preferência. O mais provável é que o usuário tenha alterado a configuração no jogo de **Preferir qualidade** para **Preferir desempenho**.

<Note>Não chame **XDisplayTryEnableHdrMode** alternando de um lado para o outro a cada quadro; altere somente quando houver algum motivo específico.</Note>

Depois de chamar **XDisplayTryEnableHdrMode**, chame [IDXGIOutput::GetDisplayModeList](https://learn.microsoft.com/windows/win32/api/dxgi/nf-dxgi-idxgioutput-getdisplaymodelist) para verificar o suporte a 120 Hz.

A função **XDisplayTryEnableHdrMode** retorna um valor de enumeração **XDisplayHdrModeResult** que indica se a função pode habilitar o modo HDR para a tela conectada. Se **XDisplayHdrModeResult::Enabled** for retornado, a função também fornecerá uma estrutura [XDisplayHdrModeInfo](/pt-BR/reference/system/xdisplay/structs/xdisplayhdrmodeinfo) que contém informações sobre o modo HDR da tela, incluindo os valores mínimo e máximo de luminância do mapeamento de tons para o modo HDR. Por padrão, se o modo HDR estiver habilitado, a função **XDisplayTryEnableHdrMode** retornará os seguintes valores para os membros de **XDisplayHdrModeInfo**:

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

Para obter mais informações sobre valores de luminância HDR e mapeamento de tons, consulte a apresentação [For a Better HDR Gaming Experience](https://www.hgig.org/doc/ForBetterHDRGaming.pdf) no site do [HDR Gaming Interest Group](https://www.hgig.org/).

O exemplo a seguir tenta habilitar o modo HDR para a tela conectada. Se [XDisplayHdrModeInfo::Enabled](/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmoderesult) for retornado, o modo HDR estará habilitado para a tela, e o jogo usará os valores de luminância da estrutura [XDisplayHdrModeInfo](/pt-BR/reference/system/xdisplay/structs/xdisplayhdrmodeinfo) retornada para inicializar no modo HDR; caso contrário, o modo HDR estará indisponível ou desabilitado, e o jogo será inicializado no modo 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();
    }
}
```

Para obter mais informações sobre o suporte a HDR, consulte [Saída HDR (High Dynamic Range) (tópico sob NDA)](/pt-BR/build/core-features/graphics/overviews/hdr-support).

## Requisitos

**Cabeçalho:** XDisplay.h

**Biblioteca:** xgameruntime.lib

**Plataformas com suporte:** consoles da família XBOX One e consoles XBOX Series

## Documentação conceitual

* [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Confira também

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