다음을 통해 공유


XDisplayTryEnableHdrMode

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

구문

XDisplayHdrModeResult XDisplayTryEnableHdrMode(  
         XDisplayHdrModePreference displayModePreference,  
         XDisplayHdrModeInfo* displayHdrModeInfo  
)  

매개 변수

displayModePreference _In_
형식: XDisplayHdrModePreference

연결된 TV에서 어느 하나라도 지원되지 않는 경우 HDR 또는 향상된 프레임 속도를 120Hz로 설정 하는 데 사용하는 열거형입니다.

displayHdrModeInfo _Out_opt_
형식: XDisplayHdrModeInfo*

HDR 모드가 활성화된 경우, 연결된 디스플레이에 대한 최소 및 최대 톤 맵 조도 값입니다.

반환 값

형식: XDisplayHdrModeResult

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

비고

참고 항목

이 함수는 시간에 민감한 스레드에서 호출하는 것이 안전하지 않습니다. 자세한 내용은 시간에 민감한 스레드를 참조하세요.

displayModePreference 설정 매개 변수는 둘 다 동시에 지원하지 않는 TV에 대해 HDR 또는 120Hz 주사율을 우선하는 방법입니다.

아래 예시에서는 개발자가 현재 타이틀에 HDR 모드를 사용하도록 설정합니다. 이는 더 높은 프레임 속도가 아니라 HDR (HDR)에 대한 기본 설정을 말합니다.

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를 사용해야 합니다.

  • 타이틀이 HDR만 구현하며 120hz는 전혀 지원하지 않는다.
  • 최종 사용자가 120Hz 새로 고침 빈도를 원하지 않거나 성능보다 품질에 대한 기본 설정과 같은 HDR을 선호함을 나타내는 게임 내 설정을 설정했습니다.
  • 타이틀이 120Hz 새로 고침 빈도가 지원되지 않는 게임 모드에 있다.

타이틀은 다음과 같은 경우에 XDisplayHdrModePreference::P referRefreshRate을 사용해야 합니다.

  • 120hz를 지원한다. 그리고 본인 또는 최종 사용자가 그것이 현재 시나리오(예: 게임 설정 또는 게임 모드에서 성능 우선를 설정)에 더 좋다고 표시하였다.

다음과 같은 경우 다른 선호도를 사용하여 XDisplayTryEnableHdrMode를 두 번째로 호출합니다.

  • 기본 설정을 sway할 만큼 변경 사항이 있었다. 사용자가 인게임 설정을 품질 우선에서 성능 우선으로 바꿨을 가능성이 높다.

참고 항목

각 프레임에서 XDisplayTryEnableHdrMode을 호출하고 각 프레임을 토글하지 마세요. 프로보케이션이 있는 경우에만 변경하세요.

XDisplayTryEnableHdrMode를 호출한 후에는 Idxgid Output:: GetDisplayModeList를 호출하여 120Hz 지원을 확인합니다.

XDisplayTryEnableHdrMode 함수는 이 함수가 연결된 디스플레이에 대해 HDR 모드를 활성화할 수 있는지 여부를 나타내는 XDisplayHdrModeResult 열거형 값을 반환합니다. XDisplayHdrModeResult::Enabled가 반환된 경우, 이 함수는 또한 HDR 모드에 대한 최소 및 최대 톤 맵 조도 값을 포함하여 디스플레이의 HDR 모드 정보가 포함된 XDisplayHdrModeInfo 구조를 제공합니다. 기본적으로 HDR 모드가 활성화되었으면 XDisplayTryEnableHdrMode 함수가 XDisplayHdrModeInfo의 멤버에 대해 다음 값을 반환합니다.

멤버
minToneMapLuminance 0.01
maxToneMapLuminance 1000
maxFullFrameToneMapLuminance 1000

HDR 조도 값 및 톤 매핑에 대한 자세한 내용은 HDR Gaming Interest Group 웹 사이트의향상된 HDR 게이밍 환경 지원을 참조하세요.

다음 예에서는 연결된 디스플레이에 대해 HDR 모드를 활성화하려고 시도합니다. XDisplayHdrModeInfo::Enabled가 반환된 경우 HDR 모드가 디스플레이에 대해 활성화되고, 게임이 반환된 XDisplayHdrModeInfo 구조의 조도 값을 사용하여 HDR 모드로 초기화됩니다. 그렇지 않으면 HDR 모드가 제공되지 않았거나 비활성화된 것이고, 게임이 SDR(Standard Dynamic Range) 모드로 초기화됩니다.

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 항목)권한 부여 필요을 참조하세요.

요구 사항

헤더: XDisplay.h

라이브러리: xgameruntime.lib

지원되는 플랫폼: Xbox One 패밀리 콘솔 및 Xbox Series 콘솔

참고 항목

XDisplayHdrModePreference
XDisplayHdrModeInfo
XDisplayHdrModeResult
XDisplay