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
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èNULLo un puntatore alla struttura successiva in una catena di strutture.stateFlagsdescrive la validità dibatteryLevelcon maschere di bit definite in XrBatteryStateDisplayStateFlagBitsEXTbatteryLevelè 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)
- L'estensione
XR_EXT_interaction_profile_battery_state_displaydeve essere attivata prima di utilizzare XrBatteryStateDisplayEXT -
typedeve essereXR_TYPE_BATTERY_STATE_DISPLAY_EXT -
nextdeve essereNULLo un puntatore valido alla struttura successiva in una catena di strutture -
stateFlagsdeve essere una combinazione valida di valori XrBatteryStateDisplayStateFlagBitsEXT -
stateFlagsnon deve essere0
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 ::batteryLevelXR_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
Estensione di XrInteractionProfileState :
Nuovi enum
Nuove maschere di bit
Nuove costanti enum
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONEstensione 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.