XR_EXT_interaction_profile_battery_state_display
名前文字列
XR_EXT_interaction_profile_battery_state_display
拡張機能の種類
インスタンス拡張機能
登録済み拡張機能番号
837
リビジョン
1
批准ステータス
批准済み
拡張機能とバージョンの依存関係
最終更新日
2025-10-21
IP ステータス
既知の IP クレームはありません。
寄与者
John Kearney(Meta)
Daniel Willmott(Valve)
Denny Rönngren(Varjo)
Jakob Bornecrantz(NVIDIA)
Nathan Nuber(Valve)
Lachlan Ford(Google)
Nihav Jain(Google)
概要
XR_EXT_interaction_profile_battery_state_display は、アプリケーションがランタイムにクエリを実行して、インタラクション プロファイルで使用されるデバイスのバッテリー残量情報を取得するためのメカニズムを提供します。このバッテリー残量情報は表示目的でのみ使用する必要があり 、ランタイムは、この情報が組み込みのシステム ユーザー インターフェースで使用されている情報と一致するようにする必要があります 。
複数の物理デバイスが最上位パスに関連付けられたアクションに入力を提供する場合(ユーザーのカスタマイズやアクセシビリティのためにランタイムが再マッピングを行う場合など)、ランタイムは、有用なバッテリー情報を 1 つの値で表示するよう最善を尽くす必要があります 。
具体的には、この情報がランタイムやデバイス間で調整されることは想定されておらず、警告の生成やアプリケーションの動作の変更に使用すべきではありません 。
バッテリー残量のクエリ
XrBatteryStateDisplayEXT 構造体は次のように定義されます。
typedef struct XrBatteryStateDisplayEXT {
XrStructureType type;
void* next;
XrBatteryStateDisplayStateFlagsEXT stateFlags;
float batteryLevel;
} XrBatteryStateDisplayEXT;
メンバーの説明
typeは、この構造体の XrStructureType です。nextは、NULLまたは構造体チェーン内の次の構造体へのポインタです。stateFlagsは、batteryLevelの有効性を、XrBatteryStateDisplayStateFlagBitsEXT で定義されたビットマスクを使用して記述します。batteryLevelは、関連付けられたエンティティまたはアクションによって接続されたデバイスのバッテリー残量(0.0f ~ 1.0f)です。
バッテリー残量をクエリするには、XrBatteryStateDisplayEXT 構造体を XrInteractionProfileState :: next チェーンに連結します。
xrGetCurrentInteractionProfile が XrInteractionProfileState :: interactionProfile を XR_NULL_PATH に設定する場合、ランタイムは stateFlags に XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT ビットを設定してはなりません 。
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT は、batteryLevel に有効なデータが含まれているかどうかを示します。stateFlags に XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT ビットが設定されていない場合、アプリケーションは batteryLevel を読み取ってはなりません 。
有効な使用方法(暗黙的)
- XrBatteryStateDisplayEXT を使用する前に、
XR_EXT_interaction_profile_battery_state_display拡張機能を有効にする必要があります -
typeにする必要がありますXR_TYPE_BATTERY_STATE_DISPLAY_EXT -
nextは、NULLまたは構造体チェーン内の次の構造体への有効なポインタにする必要があります -
stateFlagsは、XrBatteryStateDisplayStateFlagBitsEXT 値の有効な組み合わせ**にする必要があります** -
stateFlagsは0**にしないでください** 。
XrBatteryStateDisplayEXT :: stateFlags メンバーは次の型で、XrBatteryStateDisplayStateFlagBitsEXT で定義された 0 個以上のビットのビット単位の OR を含みます。
typedef XrFlags64 XrBatteryStateDisplayStateFlagsEXT;
// Flag bits for XrBatteryStateDisplayStateFlagsEXT
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT = 0x00000001;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT = 0x00000002;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT = 0x00000004;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT = 0x00000008;
フラグビットには次の意味があります。
フラグの説明
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT- XrBatteryStateDisplayEXT ::batteryLevelの有効性を示します。XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT- インタラクション プロファイルに関連付けられたデバイスが充電中であることを示します。XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT- インタラクション プロファイルに関連付けられたデバイスが電源に接続されていることを示します。XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT- インタラクション プロファイルに関連付けられたデバイスにバッテリー電源がないことを示します。
例
// previously initialized
extern XrSession session;
extern XrPath topLevelUserPath;
XrBatteryStateDisplayEXT batteryStateDisplay{XR_TYPE_BATTERY_STATE_DISPLAY_EXT};
XrInteractionProfileState ipState{XR_TYPE_INTERACTION_PROFILE_STATE, &batteryStateDisplay};
CHK_XR(xrGetCurrentInteractionProfile(session, topLevelUserPath, &ipState));
if ((batteryStateDisplay.stateFlags & XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT) != 0) {
// use value of batteryStateDisplay.batteryLevel
}
新しい構造体
新しい列挙型
新しいビットマスク
新しい列挙型定数
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONXrStructureType の拡張 :
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
問題
この拡張機能を使用して、ヘッドマウント デバイスに表示されるバッテリー残量をクエリできますか?
- 解決済み。直接的には統合されません 。この拡張機能は、現在のインタラクション プロファイルで最上位の /user パスに表示されるバッテリー残量の返送のみをサポートしています。アプリケーションがヘッドマウント デバイス( /user/head )のインタラクション プロファイルのバインディングを提案し、ランタイムがそのインタラクション プロファイルをアクティブにする場合、ランタイムはその最上位の /user パスのバッテリー残量を返すことができます。
変更履歴
リビジョン 1、2025-10-21(John Kearney)
- 初版ドラフト。