XR_EXT_interaction_profile_battery_state_display
Name String
XR_EXT_interaction_profile_battery_state_display
Tipo de extensión
Extensión de instancia
Número de extensión registrado
837
Revisión
1
Estado de ratificación
Ratified
Dependencias de extensiones y versiones
Fecha de la última modificación
2025-10-21
Estado de la IP
No hay reclamos de IP conocidos.
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 entorno de ejecución y obtengan 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 debe usarse solo con fines de visualización, y el entorno de ejecución debe garantizar que esta información coincida con la que se usa en las interfaces de usuario integradas del sistema.
En los casos en que varios dispositivos físicos proporcionan entradas para las acciones asociadas con una ruta de acceso de nivel superior, como los entornos de ejecución que realizan una reasignación para la personalización o accesibilidad del usuario, esos entornos de ejecución deben hacer todo lo posible para presentar información útil sobre la batería en un solo valor.
Específicamente, no se espera que esta información se calibre entre entornos de ejecución o dispositivos, y no debería usarse para generar advertencias ni modificar el comportamiento de la aplicación de ninguna otra manera.
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 los miembros
typees el XrStructureType de esta estructura.nextesNULLo un puntero a la siguiente estructura en una cadena de estructuras.stateFlagsdescribe la validez debatteryLevelcon máscaras binarias definidas en XrBatteryStateDisplayStateFlagBitsEXTbatteryLeveles el nivel de 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 llama a xrGetCurrentInteractionProfile .
Si xrGetCurrentInteractionProfile establece XrInteractionProfileState :: interactionProfile en XR_NULL_PATH , el entorno 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 el batteryLevel contiene datos válidos. La aplicación no debe leer el 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 estar habilitada 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 estructuras -
stateFlagsdebe ser una combinación válida de valores de XrBatteryStateDisplayStateFlagBitsEXT -
stateFlagsno debe 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 las marcas
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT: Indica la validez de XrBatteryStateDisplayEXT ::batteryLevelXR_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
}
Estructuras nuevas
Enums nuevas
Máscaras de bits nuevas
Nuevas constantes de enum
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONExtiende XrStructureType :
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
Problemas
¿La aplicación puede consultar el nivel de batería que se muestra para un dispositivo de realidad virtual con esta extensión?
- Se resolvió. No directamente . Esta extensión solo admite la devolución del nivel de batería que se muestra para las rutas de acceso /user de nivel superior con perfiles de interacción actuales. Si la aplicación sugiere vinculaciones para un perfil de interacción del dispositivo montado en la cabeza ( /user/head) y si el entorno de ejecución activa ese perfil de interacción, el entorno de ejecución puede devolver el nivel de batería para esa ruta de acceso /user de nivel superior.
Historial de versiones
Revisión 1, 21 de octubre de 2025 (John Kearney)
- Borrador inicial.