XR_EXT_interaction_profile_battery_state_display
Stringname
XR_EXT_interaction_profile_battery_state_display
Erweiterungstyp
Instanzerweiterung
Registrierte Erweiterungsnummer
837
Revision
1
Ratifizierungsstatus
Ratifiziert
Abhängigkeiten von Erweiterungen und Versionen
Datum der letzten Änderung
2025-10-21
IP-Status
Keine bekannten IP-Ansprüche.
Mitwirkende
John Kearney, Meta
Daniel Willmott, Valve
Denny Rönngren, Varjo
Jakob Bornecrantz, NVIDIA
Nathan Nuber, Valve
Lachlan Ford, Google
Nihav Jain, Google
Übersicht
XR_EXT_interaction_profile_battery_state_display bietet Anwendungen einen Mechanismus, um die Laufzeit nach Informationen zum Akkustand von Geräten zu fragen, die mit Interaktionsprofilen verwendet werden. Diese Informationen zum Akkustand sollten nur zu Anzeigezwecken verwendet werden. Die Laufzeit sollte dafür sorgen, dass diese Informationen mit den Informationen übereinstimmen, die in den integrierten Systembenutzeroberflächen verwendet werden.
Wenn mehrere physische Geräte Eingaben für die Aktionen liefern, die mit einem Pfad der obersten Ebene verknüpft sind, z. B. Laufzeiten, die eine Neuzuordnung für die Nutzeranpassung oder Barrierefreiheit durchführen, sollten diese Laufzeiten versuchen, nützliche Informationen zum Akkustand in einem einzigen Wert darzustellen.
Es wird nicht erwartet, dass diese Informationen zwischen Laufzeiten oder Geräten kalibriert werden. Sie sollten nicht verwendet werden, um Warnungen zu generieren oder das Verhalten der Anwendung anderweitig zu ändern.
Akkustand abfragen
Die Struktur XrBatteryStateDisplayEXT ist so definiert:
typedef struct XrBatteryStateDisplayEXT {
XrStructureType type;
void* next;
XrBatteryStateDisplayStateFlagsEXT stateFlags;
float batteryLevel;
} XrBatteryStateDisplayEXT;
Mitgliederbeschreibungen
typeist der XrStructureType dieser Struktur.nextistNULLoder ein Zeiger auf die nächste Struktur in einer Strukturkette.stateFlagsbeschreibt die Gültigkeit vonbatteryLevelmit Bitmasken, die in XrBatteryStateDisplayStateFlagBitsEXT definiert sind.batteryLevelist der Akkustand (von 0,0f bis 1,0f) des Geräts, das mit der zugehörigen Entität oder Aktion verbunden ist.
Um den Akkustand abzufragen, verkettet die Anwendung eine XrBatteryStateDisplayEXT-Struktur mit der Kette XrInteractionProfileState :: next wenn xrGetCurrentInteractionProfile aufgerufen wird .
Wenn xrGetCurrentInteractionProfile XrInteractionProfileState :: interactionProfile auf XR_NULL_PATH setzt , darf die Laufzeit das Bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT in stateFlags nicht setzen .
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT gibt an, ob batteryLevel gültige Daten enthält. Die Anwendung darf batteryLevel nicht lesen, wenn das Bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT in stateFlags nicht gesetzt ist .
Gültige Verwendung (implizit)
- Die
XR_EXT_interaction_profile_battery_state_displayErweiterung muss aktiviert sein, bevor XrBatteryStateDisplayEXT verwendet wird. -
typemuss seinXR_TYPE_BATTERY_STATE_DISPLAY_EXT -
nextmussNULLoder ein gültiger Zeiger auf die nächste Struktur in einer Strukturkette sein. -
stateFlagsmuss eine gültige Kombination von XrBatteryStateDisplayStateFlagBitsEXT-Werten sein. -
stateFlagsdarf nicht sein0
Das Mitglied XrBatteryStateDisplayEXT :: stateFlags hat den folgenden Typ und enthält eine bitweise OR-Verknüpfung von null oder mehr Bits, die in XrBatteryStateDisplayStateFlagBitsEXT definiert sind .
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;
Die Flag-Bits haben die folgende Bedeutung:
Flag-Beschreibungen
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT– Gibt die Gültigkeit von XrBatteryStateDisplayEXT ::batteryLevelan.XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT– Gibt an, dass das mit dem Interaktionsprofil verknüpfte Gerät geladen wird.XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT– Gibt an, dass das mit dem Interaktionsprofil verknüpfte Gerät an eine Stromquelle angeschlossen ist.XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT– Gibt an, dass das mit dem Interaktionsprofil verknüpfte Gerät keine Akku-Stromquelle hat.
Beispiel
// 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
}
Neue Strukturen
Erweitern von XrInteractionProfileState :
Neue Enums
Neue Bitmasken
Neue Enum-Konstanten
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONErweitern von XrStructureType :
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
Probleme
Kann die Anwendung mit dieser Erweiterung den Akkustand abfragen, der für ein am Kopf getragenes Gerät angezeigt wird?
- Geklärt. Nicht direkt. Diese Erweiterung unterstützt nur die Rückgabe des Akkustands, der für /user-Pfade der obersten Ebene mit aktuellen Interaktionsprofilen angezeigt wird. Wenn die Anwendung Bindungen für ein Interaktionsprofil für das am Kopf getragene Gerät ( /user/head) vorschlägt und die Laufzeit dieses Interaktionsprofil aktiviert, kann die Laufzeit den Akkustand für diesen /user-Pfad der obersten Ebene zurückgeben.
Versionsverlauf
Revision 1, 21.10.2025 (John Kearney)
- Erster Entwurf.