XGameStreamingGetTouchBundleVersion

지정된 장치에서 현재 사용 중인 터치 적응 번들의 버전을 가져옵니다.

구문

HRESULT XGameStreamingGetTouchBundleVersion(  
        XGameStreamingClientId client,
        XVersion* version,
        size_t versionNameSize,
        char* versionName
)  

매개 변수

client _In_
형식: XGameStreamingClientId

쿼리 중인 스트리밍 클라이언트입니다.

version _Out_opt_
형식: XVersion*

지정된 클라이언트에서 현재 사용 중인 번들의 버전 번호입니다. 번들에 버전 번호가 지정되지 않은 경우, 0.0.0.0이 반환됩니다.

versionNameSize _In_
형식: size_t

반환할 versionName의 최대 크기(바이트)입니다. 지정되는 크기는 XGameStreamingGetTouchBundleVersionNameSize를 호출하여 찾을 수 있습니다.

versionName _Out_writes_opt_z_
형식: char*

지정된 클라이언트에서 현재 사용 중인 번들의 버전 이름입니다. 번들에 버전 이름이 지정되지 않은 경우, null이(가) 반환됩니다.

반환 값

형식: HRESULT

성공한 경우 S_OK를 반환하고, 그렇지 않으면 오류 코드를 반환합니다.

잠재적인 오류

오류 코드 오류 값 오류 발생 원인
E_GAMESTREAMING_NOT_INITIALIZED 0x89245400 XGameStreaming 런타임이 아직 초기화되지 않았습니다. 다른 API를 호출하기 전에 XGameStreamingInitialize를 호출합니다.
E_GAMESTREAMING_CLIENT_NOT_CONNECTED 0x89245401 지정된 클라이언트가 연결되어 있지 않습니다.

오류 코드 목록은 오류 코드를 참조하세요.

설명

게임 스트리밍이 진행되는 동안 플레이어에게 표시되는 터치 레이아웃은 터치 적응 번들의 일부로 Microsoft에 업로드되는 미리 정의된 레이아웃을 사용합니다. XGameStreamingGetTouchBundleVersion을(를) 사용하면 특정 클라이언트에서 사용되는 터치 컨트롤 집합에 따라 게임에서 런타임 결정을 할 수 있습니다. 이를 활용할 수 있는 몇 가지 예는 다음과 같습니다.

  • 플레이어가 터치를 사용하고 터치 오버레이 컨트롤을 통해 요소를 사용할 수 있는 경우, HUD에서 요소를 제거합니다.
  • 표시되는 터치 레이아웃에 따라 게임에 표시할 그래픽 힌트를 결정합니다.

version는 서비스에 업로드되는 버전마다 고유합니다. 모든 업데이트에는 새 버전 번호가 필요합니다.

versionName을 사용하여 특정 버전 번호에 대한 잠금이 아니라 체계 버전(즉, DLC2를 지원하는 레이아웃 집합)을 제공할 수 있습니다. 예를 들어 빌드 시스템에서 버전 번호가 자동으로 할당되는 경우 게임 코드에서 런타임에 나타날 터치 적응 번들의 정확한 버전 번호를 알기 어려울 수 있습니다. 코드가 정확한 버전을 알 필요 없이 번들의 현재 상태를 감지할 수 있도록 하기 위해 버전 번호를 기준으로 비교를 수행하는 대신 버전 이름을 사용하도록 선택할 수 있습니다.

예제

void GameStreamingClientManager::GetClientTouchBundleVersion(XGameStreamingClientId client)
{
    // Get the touch bundle version and initialize the touch HUD based on the 
    // semantic version name that was returned
    
    size_t versionNameSize = XGameStreamingGetTouchBundleVersionNameSize(clientId);

    XVersion version{};
    std::vector<char> versionName(versionNameSize, 0);
    XGameStreamingGetTouchBundleVersion(clientId, &version, versionNameSize, &versionName[0]);

    InitializeTouchHUD(versionName);

    if (strcmp("DLC2", versionName.data()) == 0)
    {
        // we have our DLC2 controls, switch to the HUD layout that works best with those overlay controls.
        InitializeHUDForDLC2TouchControls();
    }
}

요구 사항

헤더: XGameStreaming.h

라이브러리: xgameruntime.lib

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

참고 항목

XGameStreaming
XGameStreamingGetTouchBundleVersionNameSize