XR_EXT_interaction_profile_battery_state_display
Chaîne de nom
XR_EXT_interaction_profile_battery_state_display
Type d'extension
Extension d'instance
Numéro d'extension enregistré
837
Révision
1
État de ratification
Ratifié
Dépendances d'extension et de version
Date de dernière modification
2025-10-21
État de la propriété intellectuelle
Aucune revendication de propriété intellectuelle connue.
Participants
John Kearney, Meta
Daniel Willmott, Valve
Denny Rönngren, Varjo
Jakob Bornecrantz, NVIDIA
Nathan Nuber, Valve
Lachlan Ford, Google
Nihav Jain, Google
Présentation
XR_EXT_interaction_profile_battery_state_display fournit aux applications un mécanisme permettant d'interroger l'environnement d'exécution pour obtenir des informations sur l'état de la batterie des appareils utilisés avec les profils d'interaction. Ces informations sur l'état de la batterie ne doivent être utilisées qu'à des fins d'affichage, et l'environnement d'exécution doit s'assurer qu'elles correspondent à celles utilisées dans les interfaces utilisateur système intégrées.
Dans les cas où plusieurs appareils physiques fournissent des entrées aux actions associées à un chemin de premier niveau, par exemple lorsque les environnements d'exécution effectuent un remappage pour la personnalisation ou l'accessibilité par l'utilisateur, ils doivent faire de leur mieux pour présenter des informations utiles sur la batterie dans une seule valeur.
Plus précisément, il n'est pas prévu que ces informations soient calibrées entre les environnements d'exécution ou les appareils, et elles ne doivent pas être utilisées pour générer des avertissements ni modifier le comportement de l'application.
Interroger l'état de la batterie
La structure XrBatteryStateDisplayEXT est définie comme suit :
typedef struct XrBatteryStateDisplayEXT {
XrStructureType type;
void* next;
XrBatteryStateDisplayStateFlagsEXT stateFlags;
float batteryLevel;
} XrBatteryStateDisplayEXT;
Descriptions des membres
typecorrespond au XrStructureType de cette structure.nextestNULLou un pointeur vers la structure suivante dans une chaîne de structures.stateFlagsdécrit la validité debatteryLevelavec des masques de bits définis dans XrBatteryStateDisplayStateFlagBitsEXTbatteryLevelcorrespond au niveau de la batterie (de 0,0f à 1,0f) de l'appareil connecté par l'entité ou l'action associée.
Pour interroger le niveau de batterie, l'application enchaîne une structure XrBatteryStateDisplayEXT à la chaîne XrInteractionProfileState :: next lorsqu’elle appelle xrGetCurrentInteractionProfile .
Si xrGetCurrentInteractionProfile définit XrInteractionProfileState :: interactionProfile sur XR_NULL_PATH , l'environnement d'exécution ne doit pas définir le bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT dans stateFlags .
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT indique si batteryLevel contient des données valides. L'application ne doit pas lire batteryLevel si le bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT n'est pas défini dans stateFlags .
Utilisation valide (implicite)
- L'extension
XR_EXT_interaction_profile_battery_state_displaydoit être activée avant d'utiliser XrBatteryStateDisplayEXT. -
typedoit êtreXR_TYPE_BATTERY_STATE_DISPLAY_EXT -
nextdoit êtreNULLou un pointeur valide vers la structure suivante dans une chaîne de structures -
stateFlagsdoit être une combinaison valide de valeurs XrBatteryStateDisplayStateFlagBitsEXT. -
stateFlagsne doit pas être0
Le membre XrBatteryStateDisplayEXT :: stateFlags est du type suivant et contient un OR bit à bit de zéro ou plusieurs bits définis dans XrBatteryStateStateFlagBitsEXT .
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;
Les bits d'indicateur ont les significations suivantes :
Descriptions des indicateurs
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT: indique la validité de XrBatteryStateDisplayEXT ::batteryLevel.XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT: indique que l'appareil associé au profil d'interaction est en charge.XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT: indique que l'appareil associé au profil d'interaction est branché à une source d'alimentation.XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT: indique que l'appareil associé au profil d'interaction n'a pas de source d'alimentation par batterie.
Exemple
// 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
}
Nouvelles structures
Extension de XrInteractionProfileState :
Nouvelles énumérations
Nouveaux masques de bits
Nouvelles constantes d'énumération
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONExtension de XrStructureType :
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
Problèmes
L'application peut-elle interroger le niveau de batterie affiché pour un appareil monté sur la tête avec cette extension ?
- Résolu. Pas directement . Cette extension ne permet de renvoyer le niveau de batterie affiché que pour les chemins /user de premier niveau avec les profils d'interaction actuels. Si l'application suggère des liaisons pour un profil d'interaction pour l'appareil monté sur la tête ( /user/head ) et que l'environnement d'exécution active ce profil d'interaction, il peut renvoyer le niveau de batterie pour ce chemin /user de premier niveau.
Historique des versions
Révision 1, 21/10/2025 (John Kearney)
- Suggestion initiale.