XR_EXT_interaction_profile_battery_state_display
Name String
XR_EXT_interaction_profile_battery_state_display
Erweiterungstyp
Instanzerweiterung
Registrierte Durchwahl
837
Revision
1
Ratification Status
Ratified
Erweiterungs- und Versionsabhängigkeiten
Datum der letzten Änderung
2025-10-21
IP-Status
Keine bekannten Ansprüche auf geistiges Eigentum.
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 die Möglichkeit, die Laufzeit nach Informationen zum Akkustand von Geräten abzufragen, die mit Interaktionsprofilen verwendet werden. Diese Informationen zum Akkustatus sollten nur zu Anzeigezwecken verwendet werden. Die Laufzeit sollte sicherstellen, dass diese Informationen mit den Informationen in den integrierten Benutzeroberflächen des Systems übereinstimmen.
Wenn mehrere physische Geräte Eingaben für die Aktionen liefern, die mit einem Pfad auf oberster Ebene verknüpft sind, z. B. Laufzeiten, die eine Neuzuordnung für die Anpassung durch den Nutzer oder die Barrierefreiheit vornehmen, sollten diese Laufzeiten nach besten Kräften versuchen, nützliche Akkuinformationen in einem einzigen Wert darzustellen.
Insbesondere ist nicht zu erwarten, 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.
Akkustatus 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 über die zugehörige Entität oder Aktion verbunden ist.
Um den Akkustand abzufragen, verkettet die Anwendung eine XrBatteryStateDisplayEXT-Struktur mit der XrInteractionProfileState :: next-Kette, wenn xrGetCurrentInteractionProfile aufgerufen wird.
Wenn xrGetCurrentInteractionProfile den XrInteractionProfileState :: interactionProfile auf XR_NULL_PATH setzt, darf die Laufzeit das XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT-Bit in stateFlags nicht setzen.
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT gibt an, ob die batteryLevel gültige Daten enthält. Die Anwendung darf die batteryLevel nicht lesen, wenn das XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT-Bit in stateFlags nicht festgelegt ist.
Gültige Verwendung (implizit)
- Die Erweiterung
XR_EXT_interaction_profile_battery_state_displaymuss aktiviert sein, bevor XrBatteryStateDisplayEXT verwendet werden kann. -
typemussXR_TYPE_BATTERY_STATE_DISPLAY_EXTsein -
nextmussNULLoder ein gültiger Zeiger auf die nächste Struktur in einer Strukturkette sein. -
stateFlagsmuss eine gültige Kombination von XrBatteryStateDisplayStateFlagBitsEXT-Werten sein. -
stateFlagsdarf nicht0sein
Das XrBatteryStateDisplayEXT :: stateFlags-Mitglied ist vom folgenden Typ und enthält ein bitweises ODER von null oder mehr der in XrBatteryStateDisplayStateFlagBitsEXT definierten Bits.
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 folgenden Bedeutungen:
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 Gebäude
Neue Enums
Neue Bitmasken
Neue Enum-Konstanten
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONErweiterung von XrStructureType :
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
Probleme
Kann die Anwendung mit dieser Erweiterung den angezeigten Akkustand für ein Head-Mounted-Device abfragen?
- Geklärt. Nicht direkt . Diese Erweiterung unterstützt nur die Rückgabe des Akkustands für /user-Pfade der obersten Ebene mit aktuellen Interaktionsprofilen. Wenn die Anwendung Bindungen für ein Interaktionsprofil für das Head-Mounted-Device ( /user/head) vorschlägt und die Laufzeit dieses Interaktionsprofil aktiviert, kann die Laufzeit den Akkustand für diesen übergeordneten /user-Pfad zurückgeben.
Versionsverlauf
Version 1, 21.10.2025 (John Kearney)
- Erster Entwurf.