次の方法で共有


XSAPI C の概要

2018 年 6 月に、C API レイヤーが XSAPI に追加されました。 この API レイヤーは、C++ および WinRT API レイヤーで発生したいくつかの問題を解決します。

注:
C API は現在、GDK および XDK を使用するタイトルでのみ機能します。 現時点では、UWP ゲームはサポートされていません。

XSAPI 用 C API の利点

  • タイトルが XSAPI の呼び出し時にメモリの割り当てを制御できるようになります。
  • タイトルが XSAPI の呼び出し時にスレッド処理を完全に制御できるようになります。
  • ゲーム開発者向けに設計された新しい HTTP ライブラリ、libHttpClient を使用します。

C API を C++ XSAPI と一緒に使用することはできますが、C++ API を使用して前述の利点を得ることはできません。

メモリの割り当ての管理

C API では、XSAPI がメモリを割り当てようとするたびに呼び出す関数コールバックを指定できるようになりました。 関数コールバックを指定しないと、XSAPI は標準のメモリ割り当てルーチンを使用します。

手動でメモリ ルーチンを指定するには、次のようにします。

  • ゲーム開始時:
    • XblMemSetFunctions(memAllocFunc, memFreeFunc) を呼び出して、メモリの割り当てと解放のための割り当てコールバックを指定します。
    • XblInitialize() を呼び出して、ライブラリ インスタンスを初期化します。
  • ゲーム実行中:
    • メモリを割り当てたり解放したりする XSAPI の新しい C API を呼び出すと、XSAPI は指定されたメモリ処理コールバックを呼び出します。
  • ゲーム終了時:
    • XblCleanup() を呼び出して、XSAPI ライブラリに関連付けられているすべてのリソースを回収します。
    • ゲームのカスタム メモリ マネージャーをクリーンアップします。

非同期スレッドの管理

C API では、新しい非同期スレッド呼び出しパターンが導入されました。開発者はこれを使用して、スレッド モデルを完全に制御することができます。 詳細については、「XSAPI C レイヤーの非同期呼び出しの呼び出しパターン」をご覧ください。

C XSAPI を使用するためのコードの移行

XSAPI C API は、プロジェクト内で XSAPI C++ API と一緒に使用できるため、一度に 1 つの機能を移行することをお勧めします。

C API と C++ API は、実際には共通のコアを囲むシン ラッパーであり、エントリ ポイントが異なるだけです。そのため、機能は変わりません。

ただし、カスタム メモリおよびスレッド管理機能を利用できるのは C API だけです。

重要:
XSAPI WinRT API と C API を混在させることはできません。

有用なリソース

関連項目

XSAPI C リファレンス

REST API リファレンス

HttpClient リファレンス