XR_EXT_interaction_profile_battery_state_display
Stringa del nome
XR_EXT_interaction_profile_battery_state_display
Tipo di estensione
Estensione dell'istanza
Numero di estensione registrato
837
Revisione
1
Stato di ratifica
Ratificato
Dipendenze di estensione e versione
Data dell'ultima modifica
2025-10-21
Stato IP
Nessuna rivendicazione IP 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 alle applicazioni un meccanismo per 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 assicurarsi che 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 il rimapping per la personalizzazione o l'accessibilità dell'utente, questi runtime devono 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.
Eseguire query sullo stato della batteria
La struttura XrBatteryStateDisplayEXT è definita come segue:
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 le maschere di bit definite in XrBatteryStateDisplayStateFlagBitsEXTbatteryLevelè il livello della batteria (da 0,0f a 1,0f) del dispositivo collegato dall'entità o dall'azione associata.
Per eseguire una query sul livello batteria, l'applicazione incatena 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 abilitata 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 -
stateFlagsdeve non essere0
Il membro XrBatteryStateDisplayEXT :: stateFlags è del seguente tipo e contiene un OR bit a bit 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 di 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 dispositivo montato sulla testa 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 dispositivo montato sulla testa ( /user/head ) e se il runtime rende attivo questo profilo di interazione, il runtime può restituire il livello batteria per il percorso /user di primo livello.
Cronologia delle versioni
Revisione 1, 21/10/2025 (John Kearney)
- Bozza iniziale.