Cadena de nombres

XR_ANDROID_recommended_resolution

Tipo de extensión

Extensión de instancia

Número de extensión registrada

462

Revisión

1

Estado de ratificación

No ratificado

Dependencias de extensión y versión

OpenXR 1.0

Estado de IP

No se conocen reclamos de IP.

Colaboradores

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

Descripción general

Esta extensión permite que el tiempo 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 tiempo de ejecución puede mostrar contenido de búfer no idéntico de la enumeración xrEnumerateViewConfigurationViews para el systemId y el viewConfigurationType determinados durante la vida útil 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 esas 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 tiempo 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 recomendada.

// 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, 04/04/2025 (Kenny Vercaemer)

    • Descripción inicial de la extensión