Cadena de nombre

XR_ANDROID_recommended_resolution

Tipo de extensión

Extensión de la instancia

Número de extensión registrado

462

Revisión

1

Estado de ratificación

No se ratificó

Dependencias de extensiones y versiones

OpenXR 1.0

Fecha de la última modificación

Estado de la IP

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 tiempo de ejecución puede devolver contenido de búfer no idéntico desde la enumeración xrEnumerateViewConfigurationViews para los valores systemId y 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 tales estructuras en OpenXR principal ni en esta extensión.

Recibir la estructura del evento 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 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 = {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-4-2025 (Kenny Vercaemer)

    • Descripción inicial de la extensión