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

연결된 디스플레이에 대해 HDR(하이 다이내믹 레인지) 모드를 활성화하려고 시도합니다.

## 구문

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

### 매개 변수

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

연결된 TV에서 두 가지를 동시에 지원하지 않는 경우 HDR 또는 최대 120Hz의 향상된 프레임률 중 어느 쪽을 선호할지를 지정하는 데 사용되는 열거형입니다.

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

HDR 모드가 활성화된 경우, 연결된 디스플레이의 최소 및 최대 톤 매핑 휘도 값입니다.

### 반환 값

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

함수가 성공하면 반환 값은 HDR 모드가 활성화된 경우 **XDisplayHdrModeResult::Enabled**, HDR 모드가 활성화되지 않은 경우 **XDisplayHdrModeResult::Disabled**로 설정됩니다. 함수가 실패하면 반환 값은 **XDisplayHdrModeResult::Unknown**으로 설정됩니다.

## 설명

<Note>이 함수는 시간에 민감한 스레드에서 호출하기에 안전하지 않습니다. 자세한 내용은 [시간에 민감한 스레드](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)를 참조하세요.</Note>

*displayModePreference* 매개 변수는 HDR과 120Hz 재생률을 동시에 지원하지 않는 TV에 대해 HDR *또는* 120Hz 재생률을 선호하는 방법을 제공합니다.

아래 예제에서는 개발자가 현재 타이틀에 대해 HDR 모드를 활성화하려고 시도하며, (둘 다를 달성할 수 없는 경우) 더 높은 프레임률 대신 HDR을 선호한다는 것을 나타냅니다.

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

다음과 같은 경우 타이틀은 [XDisplayHdrModePreference::PreferHdr](/reference/system/xdisplay/enums/xdisplayhdrmodepreference)를 사용해야 합니다.

* 타이틀이 HDR만 구현하고 120Hz를 전혀 지원하지 않는 경우.
* 최종 사용자가 게임 내 설정에서 120Hz 재생률을 원하지 않는다고 지정했거나, 성능보다 품질을 선호하는 등 HDR을 선호하는 경우.
* 타이틀이 120Hz 재생률을 지원하지 않는 게임 모드에 있는 경우.

다음과 같은 경우 타이틀은 [XDisplayHdrModePreference::PreferRefreshRate](/reference/system/xdisplay/enums/xdisplayhdrmodepreference)를 사용해야 합니다.

* 120Hz를 지원하며, 개발자 또는 최종 사용자가 현재 시나리오에서 이를 선호한다고 지정한 경우(예: 게임 내 설정 또는 게임 모드에서 **성능 우선** 설정).

다음과 같은 경우 다른 기본 설정으로 **XDisplayTryEnableHdrMode**를 다시 호출합니다.

* 기본 설정에 영향을 미치는 무언가가 변경된 경우. 가장 흔한 예는 사용자가 게임 내 설정을 **품질 우선**에서 **성능 우선**으로 변경한 경우입니다.

<Note>매 프레임마다 **XDisplayTryEnableHdrMode**를 호출하고 앞뒤로 전환하지 마세요. 특정 계기가 있을 때만 변경하세요.</Note>

**XDisplayTryEnableHdrMode**를 호출한 후, [IDXGIOutput::GetDisplayModeList](https://learn.microsoft.com/windows/win32/api/dxgi/nf-dxgi-idxgioutput-getdisplaymodelist)를 호출하여 120Hz 지원 여부를 확인하세요.

**XDisplayTryEnableHdrMode** 함수는 연결된 디스플레이에 대해 HDR 모드를 활성화할 수 있는지를 나타내는 **XDisplayHdrModeResult** 열거형 값을 반환합니다. **XDisplayHdrModeResult::Enabled**가 반환되면, 함수는 HDR 모드의 최소 및 최대 톤 매핑 휘도 값을 포함한 디스플레이의 HDR 모드 정보를 담고 있는 [XDisplayHdrModeInfo](/reference/system/xdisplay/structs/xdisplayhdrmodeinfo) 구조체도 제공합니다. 기본적으로, HDR 모드가 활성화된 경우 **XDisplayTryEnableHdrMode** 함수는 **XDisplayHdrModeInfo**의 멤버에 대해 다음 값을 반환합니다.

| 멤버                           | 값    |
| ---------------------------- | ---- |
| minToneMapLuminance          | 0.01 |
| maxToneMapLuminance          | 1000 |
| maxFullFrameToneMapLuminance | 1000 |

HDR 휘도 값 및 톤 매핑에 대한 자세한 내용은 [HDR Gaming Interest Group](https://www.hgig.org/) 웹 사이트의 [For a Better HDR Gaming Experience](https://www.hgig.org/doc/ForBetterHDRGaming.pdf) 프레젠테이션을 참조하세요.

다음 예제는 연결된 디스플레이에 대해 HDR 모드를 활성화하려고 시도합니다. [XDisplayHdrModeInfo::Enabled](/reference/system/xdisplay/enums/xdisplayhdrmoderesult)가 반환되면 디스플레이에 대해 HDR 모드가 활성화되고 게임은 반환된 [XDisplayHdrModeInfo](/reference/system/xdisplay/structs/xdisplayhdrmodeinfo) 구조체의 휘도 값을 사용하여 HDR 모드로 초기화됩니다. 그렇지 않으면 HDR 모드를 사용할 수 없거나 비활성화된 상태이며, 게임은 SDR(표준 동적 범위) 모드로 초기화됩니다.

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

HDR 지원에 대한 자세한 내용은 [HDR(High Dynamic Range) 출력(NDA 항목)](/build/core-features/graphics/overviews/hdr-support)을 참조하세요.

## 요구 사항

**헤더:** XDisplay.h

**라이브러리:** xgameruntime.lib

**지원 플랫폼:** XBOX One 계열 콘솔 및 XBOX Series 콘솔

## 개념 문서

* [시간에 민감한 스레드](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## 함께 보기

[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](/ko/reference/system/xdisplay/enums/xdisplayhdrmoderesult.md)
- [XDisplayHdrModeInfo](/ko/reference/system/xdisplay/structs/xdisplayhdrmodeinfo.md)
- [XDisplayHdrModePreference](/ko/reference/system/xdisplay/enums/xdisplayhdrmodepreference.md)
- [XDisplay](/ko/reference/system/xdisplay/xdisplay_members.md)
- [XBOX 인증 개요](/ko/publishing/certification/overview.md)
