Name String

XR_ANDROID_recommended_resolution

Tipo de extensión

Extensión de instancia

Número de extensión registrado

462

Revisión

1

Estado de ratificación

No ratificado

Dependencias de extensiones y versiones

OpenXR 1.0

Estado de la IP

No hay reclamos de IP conocidos.

Colaboradores

Trevor Debrechtabel, Google
Spencer Quin, Google
Lachlan Ford, Google
Vasiliy Baranov, Google

Descripción general

Esta extensión permite que el entorno de ejecución notifique a la aplicación cuando cambia la resolución recomendada, según el rendimiento actual del sistema, la temperatura del dispositivo o cualquier otro factor.

Esta extensión modifica la especificación de la siguiente manera:

  • El entorno de ejecución puede mostrar contenidos de búfer no idénticos de la enumeración xrEnumerateViewConfigurationViews para los valores systemId y viewConfigurationType dados durante el ciclo de vida de la instancia.

La estructura XrEventDataRecommendedResolutionChangedANDROID se define de la siguiente manera:

typedef struct XrEventDataRecommendedResolutionChangedANDROID {
    XrStructureType    type;
    const void*        next;
} XrEventDataRecommendedResolutionChangedANDROID;

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. No se definen tales estructuras en OpenXR principal ni en esta extensión.

Recibir la estructura de eventos XrEventDataRecommendedResolutionChangedANDROID indica que cambió la resolución recomendada. La aplicación debe consultar el entorno de ejecución para obtener la nueva resolución recomendada con xrEnumerateViewConfigurationViews .

Uso válido (implícito)

Ejemplo de código

En el siguiente ejemplo de código, se muestra cómo escuchar los eventos de cambio de resolución recomendados.

// Created at app startup time.
XrInstance instance;
XrSystemId systemId; // Previously initialized.
uint32_t viewCountOutput; // Previously initialized.

// View configuration type the application uses.
XrViewConfigurationType viewConfigType;

// Poll events for recommended resolution changes.
XrEventDataBuffer event = {
  .type = XR_TYPE_EVENT_DATA_BUFFER,
};
XrResult result = xrPollEvent(instance, &event);
if (result == XR_SUCCESS) {
  switch (event.type) {
    case XR_TYPE_EVENT_DATA_RECOMMENDED_RESOLUTION_CHANGED_ANDROID: {
        uint32_t viewCapacityInput = viewCountOutput;
        std::vector<XrViewConfigurationView> views(viewCapacityInput);
        result = xrEnumerateViewConfigurationViews(instance, systemId,
          viewConfigType, viewCapacityInput, &viewCountOutput, views.data());
        if(!XR_SUCCEEDED(result)) {
          // Handle error
        }

        // New recommended resolution is found in
        // views.recommendedImageRectWidth and views.recommendedImageRectHeight
        // Change the resolution for the viewConfigType
      break;
    }
    default:
      break;
  }
}

Historial de versiones

  • Revisión 1, 4 de abril de 2025 (Kenny Vercaemer)

    • Descripción inicial de la extensión