Gaming Runtime Services の初期化
XSAPI は Gaming Runtime Services (GRTS) に依存しています。XSAPI を呼び出す前に、次のように GRTS を初期化してください。XTaskQueue の作成 (オプション)
ほとんどの XSAPI は非同期 API であり、タスクキューの使用が必要です。これは、作業をキューに入れ、完了タスクのコールバックのための API です。XTaskQueue とさまざまなディスパッチモードの詳細については、非同期タスクキューの設計 を参照してください。
例えば、次のコードはシステムスレッドプールを使用してタスクキューを作成します。
nullptr を渡してください。nullptr が使用されると、タスクシステムはデフォルトで ThreadPool を使用します。これは XTaskQueueSetCurrentProcessTaskQueue を呼び出してオーバーライドできます。
HttpClient トレースのセットアップ (オプション)
追加のランタイムデバッグ情報を表示するには、HttpClient のトレース機能を必ずセットアップしてください。
次のコードは、HttpClient トレースレベルを設定し、デバッガ情報の出力を有効にします。
XSAPI の初期化
XSAPI を呼び出す前に、XSAPI を初期化します。ユーザーを XBOX network にサインインさせる
ほとんどの XSAPI では、ユーザーがまず XBOX network (XBOX Live とも呼ばれる) にサインインする必要があります。 ユーザーを XBOX network にサインインさせる方法については、XUserAddAsync API のコード例を参照してください。XboxLiveContext オブジェクトの作成
XboxLiveContext オブジェクトは、特定のユーザーに関連付けられたサービスコンテキストを表します。
ほとんどの XSAPI は、呼び出し元のユーザーのコンテキストを表す XboxLiveContextHandle を渡す必要があります。
XBOX Live (network) コンテキストを作成するには、XblContextCreateHandle API を使用し、前のステップで取得した XUserHandle オブジェクトを渡します。
XBOX services へのサービス呼び出しの実行
サインインしたユーザーのXUserHandle オブジェクトに関連付けられた XboxLiveContext オブジェクトが得られたので、XBOX services へのサービス呼び出しを実行できます。
例えば、ユーザーのフレンドリストを取得するには、次のようにします:
XSAPI のクリーンアップ
XblCleanupAsync() はどのシナリオでも呼び出す必要はありません。
アプリ終了のシナリオでは、現在、呼び出すことができる同期的な XblCleanup() API はありません。アプリ終了は、そのライフサイクルの性質上、同期的にかつ即座に処理する必要があります。その結果、アプリのプロセス終了とともに発生する通常の OS レベルのクリーンアップに依存しており、この状況にはそれで十分です。
アプリが中断されるシナリオでは、XSAPI は再開後の機能を維持するために、動作に必要なシステムリソースの解放と復元を処理します。
XblCleanupAsync() は、ゲームが意図的に XSAPI に割り当てられたリソースを解放することを選択する場合に依然として使用できます。