XR_EXT_interaction_profile_battery_state_display

Name String

XR_EXT_interaction_profile_battery_state_display

Tipo di estensione

Estensione dell'istanza

Numero di interno registrato

837

Revisione

1

Stato della ratifica

Ratificato

Dipendenze di estensioni e versioni

OpenXR 1.0

Data ultima modifica

2025-10-21

Stato IP

Nessuna rivendicazione di PI nota.

Collaboratori

John Kearney, Meta
Daniel Willmott, Valve
Denny Rönngren, Varjo
Jakob Bornecrantz, NVIDIA
Nathan Nuber, Valve
Lachlan Ford, Google
Nihav Jain, Google

Panoramica

XR_EXT_interaction_profile_battery_state_display fornisce un meccanismo per consentire alle applicazioni di eseguire query sul runtime per ottenere informazioni sullo stato della batteria dei dispositivi utilizzati con i profili di interazione. Queste informazioni sullo stato della batteria devono essere utilizzate solo a scopo di visualizzazione e il runtime deve garantire che queste informazioni corrispondano a quelle utilizzate nelle interfacce utente di sistema integrate.

Nei casi in cui più dispositivi fisici forniscono input alle azioni associate a un percorso di primo livello, ad esempio i runtime che eseguono la rimappatura per la personalizzazione o l'accessibilità dell'utente, questi runtime dovrebbero fare del loro meglio per presentare informazioni utili sulla batteria in un unico valore.

In particolare, non è previsto che queste informazioni vengano calibrate tra runtime o dispositivi e non devono essere utilizzate per generare avvisi o modificare in altro modo il comportamento dell'applicazione.

Query sullo stato della batteria

La struttura XrBatteryStateDisplayEXT è definita come:

typedef struct XrBatteryStateDisplayEXT {
    XrStructureType                       type;
    void*                                 next;
    XrBatteryStateDisplayStateFlagsEXT    stateFlags;
    float                                 batteryLevel;
} XrBatteryStateDisplayEXT;

Descrizioni dei membri

  • type è l'XrStructureType di questa struttura.
  • next è NULL o un puntatore alla struttura successiva in una catena di strutture.
  • stateFlags descrive la validità di batteryLevel con maschere di bit definite in XrBatteryStateDisplayStateFlagBitsEXT
  • batteryLevel è il livello della batteria (da 0.0f a 1.0f) del dispositivo connesso dall'entità o dall'azione associata.

Per eseguire una query sul livello batteria, l'applicazione concatena una struttura XrBatteryStateDisplayEXT alla catena XrInteractionProfileState :: next quando chiama xrGetCurrentInteractionProfile .

Se xrGetCurrentInteractionProfile imposta XrInteractionProfileState :: interactionProfile su XR_NULL_PATH , il runtime non deve impostare il bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT in stateFlags .

XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT indica se batteryLevel contiene dati validi. L'applicazione non deve leggere batteryLevel se il bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT non è impostato in stateFlags .

Utilizzo valido (implicito)

Il membro XrBatteryStateDisplayEXT :: stateFlags è del seguente tipo e contiene un bitwise-OR di zero o più bit definiti in XrBatteryStateDisplayStateFlagBitsEXT .

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;

I bit del flag hanno i seguenti significati:

Descrizioni dei flag

  • XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT: indica la validità di XrBatteryStateDisplayEXT :: batteryLevel
  • XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT: indica che il dispositivo associato al profilo di interazione è in carica.
  • XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT: indica che il dispositivo associato al profilo di interazione è collegato a una fonte di alimentazione.
  • XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT: indica che il dispositivo associato al profilo di interazione non ha una fonte di alimentazione a batteria.

Esempio

// 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
}

Nuove strutture

Nuovi enum

Nuove maschere di bit

Nuove costanti enum

  • XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAME
  • XR_EXT_interaction_profile_battery_state_display_SPEC_VERSION
  • Estensione di XrStructureType :

    • XR_TYPE_BATTERY_STATE_DISPLAY_EXT

Problemi

  • L'applicazione può eseguire query sul livello della batteria visualizzato per un visore con questa estensione?

    • Risolto. Non direttamente . Questa estensione supporta solo la restituzione del livello batteria visualizzato per i percorsi /user di primo livello con i profili di interazione correnti. Se l'applicazione suggerisce associazioni per un profilo di interazione per il visore ( /user/head) e se il runtime attiva questo profilo di interazione, il runtime può restituire il livello batteria per questo percorso /user di primo livello.

Cronologia delle versioni

  • Revisione 1, 21/10/2025 (John Kearney)

    • Bozza iniziale.