다음을 통해 공유


PC에 높은 DPI 디스플레이 지원

Windows 10 응용 프로그램과 셸 요소가 다양한 픽셀 밀도를 지닌 모니터에서 일관된 크기로 나타나도록 Windows에는 기본으로 배율 설정 기능이 있습니다. 이 배율 설정을 조정하는 경우 타이틀이 제대로 마우스 입력을 렌더링하고 처리하려면 기본 DPI 인식을 설정해야 합니다. 그렇게 하지 않으면 타이틀이 제대로 표시되지 않고 높은 DPI 디스플레이 사용자의 경우에는 사용할 수 없게 렌더링됩니다.

높은 DPI 인식 사용

타이틀이 높은 DPI 디스플레이를 지원하게 하는 방법

  1. 게임 실행 파일의 어셈블리 매니페스트 XML을 확인합니다. titleName.exe이거나 titleName.exe 옆 매니페스트 파일 또는 titleName.exe.manifest 파일입니다. Sigcheck(아래 참조)사용하여 명령줄을 통해 게임 실행 파일에서 포함된 매니페스트를 추출할 수 있습니다.
    sigcheck -m titleName.exe
    
  2. Manifest XML에 다음 <dpiAware> 태그만 표시되는 경우 높은 DPI 디스플레이는 지원되지 않습니다.
    <windowsSettings>
        <dpiAware>
            true
        </dpiAware>
    </windowsSettings>
    
  3. 포함된 매니페스트는 느슨한 매니페스트에 우선합니다. 이 파일이 있다면 4단계로 이동합니다. 포함된 매니페스트가 없는 경우 다음 콘텐츠를 포함하는 titleName.exe.manifest 파일을 만듭니다.
    <?xml version="1.0" encoding="UTF-8" standlone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <application xmlns="urn:schemas-microsoft-com:asm.v3">
        <windowsSettings>
            <dpiAwareness xmlns="https://schemas.microsoft.com/SMT/2016/WindowsSettings">
                PerMonitorV2
            </dpiAwareness>
        </windowsSettings>
    </application>
    </assembly>
    
  4. 포함된 매니페스트가 있는 경우 Windows SDK에서 Mt.exe를 사용하여 명령줄을 통해 찾습니다.
    mt -inputresource:<titleExeFilename> -out:<manifestOutputFilename>
    
  5. 포함된 매니페스트를 편집하여 (다음 그림과 같이) 새 <dpiAwareness> 태그를 추가합니다.
    <windowsSettings>
        <dpiAwareness xmlns="https://schemas.microsoft.com/SMT/2016/WindowsSettings">
            PerMonitorV2
        </dpiAwareness>
    </windowsSettings>
    
  6. Windows SDK에서 Mt.exe를 사용하여 명령줄을 통해 포함된 매니페스트를 업데이트합니다.
    mt -updateresource:<titleExeFilename> -manifest <manifestFilename>
    

이제 타이틀에서 높은 DPI 디스플레이를 지원합니다.

높은 DPI 인식 유효성 검사

타이틀이 높은 DPI 디스플레이를 지원하는지 확인하는 법

  1. Surface Studio 2와 같이 높은 DPI 디스플레이가 있는 PC를 사용하는 경우, 설정>디스플레이로 이동하여 배율을 150%로 설정합니다.
  2. 타이틀을 시작합니다.
  3. 마우스 커서가 있는 화면을 검토하고 타이틀이 예상한 대로 표시되는지 확인합니다. 예를 들어 전체 화면 타이틀이 화면 전체를 차지해야 합니다.
  4. 화면에서 마우스를 이동하여 타이틀 창의 전체 화면 영역에 닿을 수 있는지 확인합니다.
  5. 대화형 UI 요소(예: 단추)에 마우스를 대고 시각적 상태와 상호 작용이 제대로 작동하는지 확인합니다. 예를 들어 커서를 버튼의 (인접 부분이 아닌)바로 위에 올려놓으면 버튼의 시각적 상태가 변경되어야 합니다.

참고 항목

  • 높은 DPI 인식 문제에 대한 해결 방법으로 레지스트리 가상화의 해제가 있을 수도 있으나 권장하지는 않습니다.
  • Visual Studio는 구성 속성에 DPI 인식 옵션이 있지만 이것은 이전의 <dpiAware>태그를 사용합니다. 이 태그는 MSIXVC 패키지 타이틀에는 작동하지 않습니다.

참고 항목

프로세스에 대한 기본 DPI 인식 설정