XGameStreamingGetDisplayDetails 및 XGameStreamingSetResolution 없이 다양한 디바이스에서 게임 렌더링
반면, 다음 이미지는 위의 API를 사용해 화면 비율을 4:3으로 설정할 때 동일한 게임이 다양한 디바이스에서 어떻게 렌더링되는지 보여줍니다. 태블릿에서 렌더링할 때 여백이 사라졌음을 확인할 수 있습니다.
그림 2. XGameStreamingGetDisplayDetails 및 XGameStreamingSetResolution을 사용한 다양한 디바이스의 게임 렌더링
XGameStreamingGetDisplayDetails는 지정된 클라이언트의 디스플레이 세부 정보를 반환합니다. 이는 어떤 사용자 지정 화면 비율로 렌더링할지 또는 DirectCapture를 활성화하기 위해 어떤 해상도를 사용할지 등 정보에 기반한 결정을 내리는 데 사용할 수 있습니다. DirectCapture는 타이틀이 호환되는 프레임을 표시할 때 서버 지연 시간을 최소화하고 약 16~72밀리초의 지연 시간을 제거하기 위해 구축되었습니다. 이 지연 시간 감소는 각 게임의 렌더 출력에 따라 달라지므로 게임마다 다릅니다.
타이틀이 해상도를 결정한 후에는 XGameStreamingSetResolution을 사용해야 합니다. 이 API는 스트림의 해상도를 설정합니다.
이 API는 다양한 타이틀이 DirectCapture와 클라이언트의 선호 해상도를 채택할 수 있도록 이러한 요구 사항을 노출합니다.
최소/최대 요구 사항 및 기타 DirectCapture 규칙을 준수해야 합니다.
API를 올바르게 사용하는 방법
- 스트림 연결
-
디스플레이의 세부 정보 가져오기
디스플레이의 세부 정보를 가져오려면 게임이
XGameStreamingGetDisplayDetails를 호출하면 지정된 클라이언트의 디스플레이 세부 정보가 반환됩니다. -
해상도 선택
이는 게임에 따라 다릅니다. 다음과 같은 여러 옵션이 있습니다.
a.
preferredWidth/preferredHeight를 최적의 일치 항목으로 사용합니다. b.XGameStreamingDisplayDetails를 사용하여 사전 구성된 테스트된 해상도 집합에서 해상도에 가장 가까운 일치 항목을 찾습니다. c. 게임의 PC 버전에 대해 해상도 선택기를 켜서 플레이어가 해상도를 선택할 수 있도록 합니다.maxWidth,maxHeight및maxPixels범위 내의 해상도로 제한하는 것을 고려하세요. -
스트림 해상도 설정
XGameStreamingSetResolution을 호출하여 스트리밍 해상도를 새 렌더 해상도로 변경합니다. 스트림 시작, 크기 조정, 디바이스 회전 등과 같은 사용자 액션에 대응하여 호출하는 것이 가장 좋습니다. 이 해상도는 preferredWidth/preferredHeight와 일치할 필요는 없다는 점에 유의하세요. 일치하지 않는 경우 스트림이 화면에 맞게 스케일링되며, 남은 공간을 채우기 위해 레터박스나 필러박스가 추가될 수 있습니다.[!참고] 스트림 해상도를 설정하는 데 시간이 걸리고, 제한된 리소스를 사용하며, 플레이어에게 보이는 효과가 있다는 점을 주목해야 합니다. 따라서 이 API는 예를 들어 새 클라이언트가 연결되거나 선호 해상도를 변경할 때와 같이 드물게 호출해야 합니다.
XGameStreamingSetResolution을 200ms에 한 번 이상 호출하면 짧은 왜곡이 발생합니다. 이 API는 실시간 안전(real-time safe)하지 않습니다. - 렌더링 시작 사용자 지정 해상도로 렌더링하는 것은 다른 해상도로 렌더링하는 것과 동일해야 합니다. 창 크기를 설정하고 새 해상도로 백버퍼를 구성합니다.
