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

OpenXR 1.0

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

  • type ist der XrStructureType dieser Struktur.
  • next ist NULL oder ein Zeiger auf die nächste Struktur in einer Strukturkette.
  • stateFlags beschreibt die Gültigkeit von batteryLevel mit Bitmasken, die in XrBatteryStateDisplayStateFlagBitsEXT definiert sind.
  • batteryLevel ist 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)

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 :: batteryLevel an.
  • 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_NAME
  • XR_EXT_interaction_profile_battery_state_display_SPEC_VERSION
  • Erweiterung 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.