> ## Documentation Index
> Fetch the complete documentation index at: https://docs.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](https://docs.xbox.com/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmodepreference.md)

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\*](https://docs.xbox.com/pt-BR/reference/system/xdisplay/structs/xdisplayhdrmodeinfo.md)

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](https://docs.xbox.com/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmoderesult.md)

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).

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](https://docs.xbox.com/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmodepreference.md) 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](https://docs.xbox.com/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmodepreference.md) 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.

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](https://docs.xbox.com/pt-BR/reference/system/xdisplay/structs/xdisplayhdrmodeinfo.md) 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](https://docs.xbox.com/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmoderesult.md) for retornado, o modo HDR estará habilitado para a tela, e o jogo usará os valores de luminância da estrutura [XDisplayHdrModeInfo](https://docs.xbox.com/pt-BR/reference/system/xdisplay/structs/xdisplayhdrmodeinfo.md) 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)](https://docs.xbox.com/pt-BR/build/core-features/graphics/overviews/hdr-support.md).

## 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](https://docs.xbox.com/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmodepreference.md)\
[XDisplayHdrModeInfo](https://docs.xbox.com/pt-BR/reference/system/xdisplay/structs/xdisplayhdrmodeinfo.md)\
[XDisplayHdrModeResult](https://docs.xbox.com/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmoderesult.md)\
[XDisplay](https://docs.xbox.com/pt-BR/reference/system/xdisplay/xdisplay_members.md)


## Related topics

- [XDisplayHdrModeResult](https://docs.xbox.com/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmoderesult.md)
- [XDisplayHdrModeInfo](https://docs.xbox.com/pt-BR/reference/system/xdisplay/structs/xdisplayhdrmodeinfo.md)
- [XDisplayHdrModePreference](https://docs.xbox.com/pt-BR/reference/system/xdisplay/enums/xdisplayhdrmodepreference.md)
- [XDisplay (conteúdo da API)](https://docs.xbox.com/pt-BR/reference/system/xdisplay/xdisplay_members.md)
- [Captura de tela (wdcapture.exe)](https://docs.xbox.com/pt-BR/tools/tools-pc/commandlinetools/gr-wdCapture.md)
