XGameStreamingGetAssociatedFrame
특정 입력 판독값에서 프레임 파이프라인 토큰을 가져옵니다.
구문
HRESULT XGameStreamingGetAssociatedFrame(
IGameInputReading* gamepadReading,
D3D12XBOX_FRAME_PIPELINE_TOKEN* framePipelineToken
)
매개 변수
gamepadReading _In_
형식: IGameInputReading*
쿼리 중인 게임 패드 판독값입니다.
framePipelineToken _Out_
형식: D3D12XBOX_FRAME_PIPELINE_TOKEN*
플레이어가 입력을 취했을 때 클라이언트 장치에 표시된 프레임과 연결된 프레임 파이프라인 토큰입니다. 이 파이프라인 토큰이 게임에서 표시되고 클라이언트 장치로 전송되면 PresentX 호출에 해당합니다.
반환 값
형식: HRESULT
성공한 경우 S_OK를 반환하고, 그렇지 않으면 오류 코드를 반환합니다.
잠재적인 오류
오류 코드 | 오류 값 | 오류 발생 원인 |
---|---|---|
E_GAMESTREAMING_NOT_INITIALIZED | 0x89245400 | XGameStreaming 런타임이 아직 초기화되지 않았습니다. 다른 API를 호출하기 전에 XGameStreamingInitialize를 호출합니다. |
E_GAMESTREAMING_NO_DATA | 0x89245402 | 요청한 데이터를 사용할 수 없습니다. 나중에 데이터를 사용할 수 있습니다. |
E_GAMESTREAMING_NOT_STREAMING_CONTROLLER | 0x89245404 | 스트리밍 컨트롤러에서 현재 판독값을 가져오지 않았습니다. |
설명
플레이어가 게임을 스트리밍하는 경우 입력을 받았을 때 플레이어의 장치에 표시된 프레임에 따라 게임이 게임 동작을 변경하자 한다면 XGameStreamingGetAssociatedFrame
을(를) 이용할 수 있습니다.
이렇게 하면 게임이 현재 시점이 아니라 입력 시점에 플레이어가 본 프레임을 기준으로 시뮬레이션 결정을 내릴 수 있습니다.
XGameStreamingGetAssociatedFrame
은(는) 새 입력 판독값을 만들 때 표시되는 프레임에 대한 정보만 제공합니다. 플레이어가 입력하지 않았을 때 무엇이 표시되고 있었는지 게임이 알고 싶다면 게임은 XGameStreamingGetLastFrameDisplayed를 활용해야 합니다.
예
// In this example, when processing input, the game would like to pass along the frame
// that was being displayed to the player at the time of input so that their simulation
// engine can take that into account.
// The framePipelineToken was initially captured at the callback of WaitFrameEventX
void Game::Update(DX::StepTimer const& timer)
{
IGameInputReading* reading;
if (SUCCEEDED(g_gameInput->GetCurrentReading(GameInputKindGamepad, g_gamepad, &reading)))
{
D3D12XBOX_FRAME_PIPELINE_TOKEN framePipelineToken = D3D12XBOX_FRAME_PIPELINE_TOKEN_NULL;
if SUCCEEDED(XGameStreamingGetAssociatedFrame(&reading, &framePipelineToken))
{
SimulateBasedOnInputAndFrameDisplayed(reading, framePipelineToken);
}
else
{
// simulate based on current frame
SimulateBasedOnInput(reading);
}
reading->Release();
}
}
요구 사항
헤더: xgamestreaming.h
라이브러리: xgameruntime.lib
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔
참고 항목
XGameStreamingGetLastFrameDisplayed
XGameStreaming
게임 스트리밍 대기시간 보정 개요