次の方法で共有


XGameStreamingGetLastFrameDisplayed

ストリーミング クライアントの画面に最後に表示されたフレームのフレーム パイプライン トークンを取得します。

構文

HRESULT XGameStreamingGetLastFrameDisplayed(  
         XGameStreamingClientId client,  
         D3D12XBOX_FRAME_PIPELINE_TOKEN* framePipelineToken  
)  

パラメーター

client _In_
型: XGameStreamingClientId

クエリ対象のストリーミング クライアント デバイスの ID。

framePipelineToken _Out_
型: D3D12XBOX_FRAME_PIPELINE_TOKEN*

クライアント デバイスに最後に表示されたフレーム パイプライン トークン。

戻り値

型: HRESULT

成功した場合は S_OK を返し、それ以外の場合はエラー コードを返します。

返される可能性のあるエラー

エラー コード エラー値 エラーの原因
E_GAMESTREAMING_NOT_INITIALIZED 0x89245400 XGameStreaming ランタイムが初期化されていません。 他の API を呼び出す前に XGameStreamingInitialize を呼び出してください。
E_GAMESTREAMING_CLIENT_NOT_CONNECTED 0x89245401 指定されたクライアントが接続されていません。
E_GAMESTREAMING_NO_DATA 0x89245402 要求されたデータは利用できません。 データは後で利用可能になる場合があります。

解説

プレイヤーがゲームをストリーミングしているとき、ユーザーの画面に特定のフレームが表示されたことの確認に基づいてゲームの動作を変更する場合、XGameStreamingGetLastFrameDisplayed を利用できます。

ゲームでこの機能を利用する例を以下に示します。

  • ビジュアル タイマーが有効期限切れになり、その前にプレーヤーが何もしませんでした。
  • 適切なウィンドウ内にアクションが実行されませんでした。
  • プレイヤーは、制限を超えて動作を継続し、復元するためのアクションを実行しませんでした。

XGameStreamingGetLastFrameDisplayed は、アクションを実行すべきだったが実行しなかった場合を判定するときに使用する必要があります。 プレイヤーによって入力が 実行された ときに表示されたものをゲームが判断する場合、ゲームは、XGameStreamingGetAssociatedFrame を利用する必要があります。

// In this example, when processing input, the game would like to pass along the last frame 
// that was being displayed to the player 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)
{
    ...

    D3D12XBOX_FRAME_PIPELINE_TOKEN framePipelineToken = D3D12XBOX_FRAME_PIPELINE_TOKEN_NULL;
    if SUCCEEDED(XGameStreamingGetLastFrameDisplayed(clientId, &framePipelineToken)
    {
        SimulateBasedOnLastFrameDisplayed(framePipelineToken);
    }
    else 
    {
        // don't have last token, potentially simulate based on current frame

        SimulateBasedOnCurrentFrame();
    }

    
      
    ...
}

要件

ヘッダー: xgamestreaming.h

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

XGameStreamingGetAssociatedFrame
XGameStreaming
ゲーム ストリーミング待機時間補正の概要