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

# 사용자 지정 해상도 개요

> XGameStreamingSetResolution을 사용하여 XBOX Game Streaming 출력을 16:9 대신 휴대폰, 태블릿 및 기타 클라이언트의 종횡비에 맞춥니다.

XBOX Game Streaming을 사용하면 TV 이외에도 휴대폰, 태블릿 및 기타 디바이스의 출력 해상도에 따라 게임의 해상도를 사용자 지정할 수 있습니다. 이는 디바이스 전반에 걸쳐 더욱 풍부한 경험을 제공하는 데 도움이 됩니다. [XGameStreamingGetDisplayDetails](/reference/system/xgamestreaming/functions/xgamestreaminggetdisplaydetails) 및 [XGameStreamingSetResolution](/reference/system/xgamestreaming/functions/xgamestreamingsetresolution)이 도입되어 XBOX의 16:9 화면 비율에서 휴대폰, 태블릿 등 다양한 디바이스에 맞는 화면 비율로 스트림을 전환할 수 있게 되었습니다.

예를 들어, 아래 이미지는 어떠한 변경 없이 스트리밍 환경에서 XBOX 게임이 일반 16:9 TV 화면과 세로 모드의 태블릿 또는 휴대폰에서 어떻게 렌더링되는지 보여줍니다.

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/Letterbox_4_3Tablet.jpg?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=00e601ab2323aec3acd775323b1620eb" alt="상단과 하단에 검은색 막대가 있는 가로 방향 태블릿의 XBOX 로고" width="1130" height="850" data-path="images/gdk/features/common/Letterbox_4_3Tablet.jpg" />

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/Letterbox_4_3Tablet_portrait.jpg?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=a84b5ea56442935ce6af972ee9b6bcab" alt="상단과 하단에 검은색 막대가 있는 세로 방향 태블릿의 XBOX 로고" width="712" height="940" data-path="images/gdk/features/common/Letterbox_4_3Tablet_portrait.jpg" />

**그림 1. `XGameStreamingGetDisplayDetails` 및 `XGameStreamingSetResolution` 없이 다양한 디바이스에서 게임 렌더링**

반면, 다음 이미지는 위의 API를 사용해 화면 비율을 4:3으로 설정할 때 동일한 게임이 다양한 디바이스에서 어떻게 렌더링되는지 보여줍니다. 태블릿에서 렌더링할 때 여백이 사라졌음을 확인할 수 있습니다.

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/4_3Tablet_withCustomRes.jpg?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=a98a6638a2d9649d82f2eb9a02e561c4" alt="가로 방향 태블릿 화면을 채우는 XBOX 로고" width="1317" height="1000" data-path="images/gdk/features/common/4_3Tablet_withCustomRes.jpg" />

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/16_9TV.jpg?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=9cf9ad60e2e168f8f2864afe8f7f0b30" alt="16:9 TV 화면을 채우는 XBOX 로고" width="1590" height="931" data-path="images/gdk/features/common/16_9TV.jpg" />

**그림 2. `XGameStreamingGetDisplayDetails` 및 `XGameStreamingSetResolution`을 사용한 다양한 디바이스의 게임 렌더링**

`XGameStreamingGetDisplayDetails`는 지정된 클라이언트의 디스플레이 세부 정보를 반환합니다. 이는 어떤 사용자 지정 화면 비율로 렌더링할지 또는 [DirectCapture](/build/core-features/common/game-streaming/game-streaming-directcapture-overview)를 활성화하기 위해 어떤 해상도를 사용할지 등 정보에 기반한 결정을 내리는 데 사용할 수 있습니다. DirectCapture는 타이틀이 호환되는 프레임을 표시할 때 서버 지연 시간을 최소화하고 약 16\~72밀리초의 지연 시간을 제거하기 위해 구축되었습니다. 이 지연 시간 감소는 각 게임의 렌더 출력에 따라 달라지므로 게임마다 다릅니다.

타이틀이 해상도를 결정한 후에는 `XGameStreamingSetResolution`을 사용해야 합니다. 이 API는 스트림의 해상도를 설정합니다.

이 API는 다양한 타이틀이 DirectCapture와 클라이언트의 선호 해상도를 채택할 수 있도록 이러한 요구 사항을 노출합니다.
<Note>최소/최대 요구 사항 및 기타 DirectCapture 규칙을 준수해야 합니다.</Note>

이러한 API가 홈 콘솔에도 존재하지만, TV 호환성을 유지하기 위해 표준 해상도만 사용할 수 있게 하는 점(사실상 no-op)을 고려하세요.

## API를 올바르게 사용하는 방법

1. **스트림 연결**

이전에 게임을 스트리밍한 적이 없는 경우 [게임 스트리밍 테스트 사전 요구 사항](/build/core-features/common/game-streaming/game-streaming-stream-your-game)의 지침을 따르세요.

1. **디스플레이의 세부 정보 가져오기**

   디스플레이의 세부 정보를 가져오려면 게임이 `XGameStreamingGetDisplayDetails`를 호출하면 지정된 클라이언트의 디스플레이 세부 정보가 반환됩니다.

2. **해상도 선택**

   이는 게임에 따라 다릅니다. 다음과 같은 여러 옵션이 있습니다.

   a. `preferredWidth`/`preferredHeight`를 최적의 일치 항목으로 사용합니다.

   b. `XGameStreamingDisplayDetails`를 사용하여 사전 구성된 테스트된 해상도 집합에서 해상도에 가장 가까운 일치 항목을 찾습니다.

   c. 게임의 PC 버전에 대해 해상도 선택기를 켜서 플레이어가 해상도를 선택할 수 있도록 합니다. `maxWidth`, `maxHeight` 및 `maxPixels` 범위 내의 해상도로 제한하는 것을 고려하세요.

3. **스트림 해상도 설정**

   `XGameStreamingSetResolution`을 호출하여 스트리밍 해상도를 새 렌더 해상도로 변경합니다. 스트림 시작, 크기 조정, 디바이스 회전 등과 같은 사용자 액션에 대응하여 호출하는 것이 가장 좋습니다.

   이 해상도는 preferredWidth/preferredHeight와 일치할 필요는 없다는 점에 유의하세요. 일치하지 않는 경우 스트림이 화면에 맞게 스케일링되며, 남은 공간을 채우기 위해 레터박스나 필러박스가 추가될 수 있습니다.

   > \[!참고]
   > 스트림 해상도를 설정하는 데 시간이 걸리고, 제한된 리소스를 사용하며, 플레이어에게 보이는 효과가 있다는 점을 주목해야 합니다. 따라서 이 API는 예를 들어 새 클라이언트가 연결되거나 선호 해상도를 변경할 때와 같이 드물게 호출해야 합니다.

   `XGameStreamingSetResolution`을 200ms에 한 번 이상 호출하면 짧은 왜곡이 발생합니다. 이 API는 실시간 안전(real-time safe)하지 않습니다.

4. **렌더링 시작**

   사용자 지정 해상도로 렌더링하는 것은 다른 해상도로 렌더링하는 것과 동일해야 합니다. 창 크기를 설정하고 새 해상도로 백버퍼를 구성합니다.

시도해 보고 싶다면 [여기](https://github.com/microsoft/Xbox-GDK-Samples/tree/main/Samples/xCloud/CustomResolution)의 샘플을 따라 해보세요.

## 참고 항목

[사용자 지정 해상도 모범 사례](/build/core-features/common/game-streaming/game-streaming-custom-resolution-best-practices)

[사용자 지정 해상도로 테스트하기(NDA 항목)](/build/core-features/common/game-streaming/game-streaming-testing-custom-resolution)


## Related topics

- [게임 스트리밍 사용자 지정 해상도 모범 사례](/ko/build/core-features/common/game-streaming/game-streaming-custom-resolution-best-practices.md)
- [사용자 지정 해상도로 테스트하기](/ko/build/core-features/common/game-streaming/game-streaming-testing-custom-resolution.md)
- [DirectCapture 개요](/ko/build/core-features/common/game-streaming/game-streaming-directcapture-overview.md)
- [XGameStreamingSetResolution](/ko/reference/system/xgamestreaming/functions/xgamestreamingsetresolution.md)
- [XGameStreamingDisplayDetails](/ko/reference/system/xgamestreaming/structs/xgamestreamingdisplaydetails.md)
