PartyManager::StartProcessingStateChanges
前回の呼び出し以降に処理が必要になったすべての PartyStateChanges の配列を取得します。
構文
PartyError StartProcessingStateChanges(
uint32_t* stateChangeCount,
PartyStateChangeArray* stateChanges
)
パラメーター
stateChangeCount
uint32_t*
output
stateChanges
配列でタイトルが処理する PartyStateChange エントリの出力数。
stateChanges
PartyStateChangeArray*
ライブラリに割り当てられたサイズの出力配列*stateChangeCount
処理するタイトルのすべての PartyStateChange エントリのライブラリの割り当てられた出力配列で、FinishProcessingStateChanges() に渡します。
戻り値
PartyError
呼び出しが成功した場合は c_partyErrorSuccess
、それ以外の場合はエラー コードになります。 人間が判読できる形式のエラー コードは、GetErrorMessage() を介して取得できます。
解説
このメソッドは、パーティー ライブラリにリモート デバイスまたはサービスと状態を同期する機会を提供し、このメソッドへの前回の呼び出し以降生じた変更で、現在タイトルで使用可能なすべての変更の一覧を取得します。 アプリは、与えられた 0 以上の変更の配列を使用して、独自の状態や UI を更新してから、適切なタイミングでそれらを使用して FinishProcessingStateChanges() を呼び出す必要があります。
ライブラリによって公開されるパーティー ライブラリの状態は、この呼び出し中に変更される可能性があるため、ライブラリを使用する際にはスレッド セーフである必要があります。 たとえば、別のワーカー スレッドが PartyNetwork::GetEndpoints() によって返されるエンドポイントの一覧をループしているのと同時に、UI スレッドで StartProcessingStateChanges() を呼び出すと、StartProcessingStateChanges() がエンドポイント リストに関連付けられているメモリを変更できるため、クラッシュする可能性があります。 StartProcessingStateChanges() は、少なくともグラフィック フレームごとに 1 回、頻繁に呼び出す必要があります。 影響を最小限に抑えながらメインの UI スレッドで呼び出せるように、すばやく実行および返却する設計となっています。 最適な結果を得るためには、FinishProcessingStateChanges() を呼び出す前に状態の変化の処理に費やす時間を最小限に抑える必要もあります。
StartProcessingStateChanges() によって返される各状態変更は、FinishProcessingStateChanges() に 1 回だけ返す必要がありますが、順不同で返される場合があり、StartProcessingStateChanges() への他の呼び出しからの状態変更とインターリーブされる場合があります。 特定の状態変更に関連付けられているリソースは、状態の変更が FinishProcessingStateChanges() に返されるまで有効なままであることが保証されます。
要件
ヘッダー: Party.h
関連項目
PartyManager
PartyStateChange
PartyManager::FinishProcessingStateChanges