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

OpenXR 1.0

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

  • type es el XrStructureType de esta estructura.
  • next es NULL o un puntero a la siguiente estructura en una cadena de estructuras.
  • stateFlags describe la validez de batteryLevel con máscaras binarias definidas en XrBatteryStateDisplayStateFlagBitsEXT
  • batteryLevel es 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)

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 :: 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
}

Estructuras nuevas

Enums nuevas

Máscaras de bits nuevas

Nuevas constantes de enum

  • XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAME
  • XR_EXT_interaction_profile_battery_state_display_SPEC_VERSION
  • Extiende 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.