XR_EXT_interaction_profile_battery_state_display
Nombre de cadena
XR_EXT_interaction_profile_battery_state_display
Tipo de extensión
Extensión de instancia
Número de extensión registrada
837
Revisión
1
Estado de ratificación
Ratificado
Dependencias de extensión y versión
Fecha de modificación más reciente
2025-10-21
Estado de IP
No se conocen reclamos de IP.
Colaboradores
John Kearney, Meta
Daniel Willmott, Valve
Denny Rönngren, Varjo
Jakob Bornecrantz, NVIDIA
Nathan Nuber, Valve
Lachlan Ford, Google
Nihav Jain, Google
Descripción general
XR_EXT_interaction_profile_battery_state_display proporciona un mecanismo para que las aplicaciones consulten el tiempo de ejecución para obtener información sobre el estado de la batería de los dispositivos que se usan con perfiles de interacción. Esta información sobre el estado de la batería solo se debe usar para fines de visualización, y el tiempo de ejecución debe garantizar que esta información coincida con la que se usa en las interfaces de usuario del sistema integradas.
En los casos en que varios dispositivos físicos proporcionan entrada a las acciones asociadas con una ruta de nivel superior, como los tiempos de ejecución que realizan la reasignación para la personalización o la accesibilidad del usuario, esos tiempos de ejecución deben hacer todo lo posible para presentar información útil sobre la batería en un solo valor.
En particular, no se espera que esta información se calibre entre los tiempos de ejecución o los dispositivos, y no se debe usar para generar advertencias ni modificar el comportamiento de la aplicación.
Cómo consultar el estado de la batería
La estructura XrBatteryStateDisplayEXT se define de la siguiente manera:
typedef struct XrBatteryStateDisplayEXT {
XrStructureType type;
void* next;
XrBatteryStateDisplayStateFlagsEXT stateFlags;
float batteryLevel;
} XrBatteryStateDisplayEXT;
Descripciones de miembros
typees el XrStructureType de esta estructura.nextesNULLo un puntero a la siguiente estructura en una cadena de estructura.stateFlagsdescribe la validez debatteryLevelcon máscaras de bits definidas en XrBatteryStateDisplayStateFlagBitsEXT.batteryLeveles el nivel de la batería (de 0.0f a 1.0f) del dispositivo conectado por la entidad o acción asociada.
Para consultar el nivel de batería, la aplicación encadena una estructura XrBatteryStateDisplayEXT a la cadena XrInteractionProfileState :: next cuando se llama a xrGetCurrentInteractionProfile .
Si xrGetCurrentInteractionProfile establece XrInteractionProfileState :: interactionProfile en XR_NULL_PATH , el tiempo de ejecución no debe establecer el bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT en stateFlags .
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT indica si batteryLevel contiene datos válidos. La aplicación no debe leer batteryLevel si el bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT no está configurado en stateFlags .
Uso válido (implícito)
- La extensión
XR_EXT_interaction_profile_battery_state_displaydebe habilitarse antes de usar XrBatteryStateDisplayEXT. -
typedebe serXR_TYPE_BATTERY_STATE_DISPLAY_EXT -
nextdebe serNULLo un puntero válido a la siguiente estructura en una cadena de estructura -
stateFlagsdebe ser una combinación válida de valores XrBatteryStateDisplayStateFlagBitsEXT. -
stateFlagsdebe no ser0
El miembro XrBatteryStateDisplayEXT :: stateFlags es del siguiente tipo y contiene un OR bit a bit de cero o más de los bits definidos en 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;
Los bits de marca tienen los siguientes significados:
Descripciones de marcas
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT: Indica la validez de XrBatteryStateDisplayEXT ::batteryLevel.XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT— Indica que el dispositivo asociado con el perfil de interacción se está cargando.XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT— Indica que el dispositivo asociado con el perfil de interacción está conectado a una fuente de alimentación.XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT: Indica que el dispositivo asociado con el perfil de interacción no tiene una fuente de alimentación de batería.
Ejemplo
// 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
}
Nuevas estructuras
Extensión de XrInteractionProfileState :
Nuevos enums
Nuevas máscaras de bits
Nuevas constantes de enum
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONExtensión de XrStructureType :
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
Problemas
¿Puede la aplicación consultar el nivel de batería que se muestra para un dispositivo montado en la cabeza con esta extensión?
- Resuelto. No directamente . Esta extensión solo admite la devolución del nivel de batería que se muestra para las rutas /user de nivel superior con los perfiles de interacción actuales. Si la aplicación sugiere vinculaciones para un perfil de interacción para el dispositivo montado en la cabeza ( /user/head) y si el tiempo de ejecución activa ese perfil de interacción, el tiempo de ejecución puede devolver el nivel de batería para esa ruta /user de nivel superior.
Historial de versiones
Revisión 1, 2025-10-21 (John Kearney)
- Borrador inicial.