Name String

XR_ANDROID_recommended_resolution

Erweiterungstyp

Instanzerweiterung

Registrierte Durchwahl

462

Revision

1

Ratification Status

Nicht ratifiziert

Erweiterungs- und Versionsabhängigkeiten

OpenXR 1.0

IP-Status

Keine bekannten Ansprüche auf geistiges Eigentum.

Mitwirkende

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

Übersicht

Mit dieser Erweiterung kann die Laufzeit die Anwendung benachrichtigen, wenn sich die empfohlene Auflösung aufgrund der aktuellen Systemleistung, der Gerätetemperatur oder anderer Faktoren ändert.

Diese Erweiterung ändert die Spezifikation folgendermaßen:

  • Die Laufzeit kann für die angegebene systemId und viewConfigurationType für die Lebensdauer der Instanz nicht identische Pufferinhalte aus der Aufzählung xrEnumerateViewConfigurationViews zurückgeben.

Die Struktur XrEventDataRecommendedResolutionChangedANDROID ist so definiert:

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

Mitgliederbeschreibungen

  • type ist der XrStructureType dieser Struktur.
  • next ist NULL oder ein Zeiger auf die nächste Struktur in einer Strukturkette. Solche Strukturen sind weder in OpenXR noch in dieser Erweiterung definiert.

Wenn die Ereignisstruktur XrEventDataRecommendedResolutionChangedANDROID empfangen wird, bedeutet das, dass sich die empfohlene Auflösung geändert hat. Die Anwendung sollte die Laufzeit mit xrEnumerateViewConfigurationViews nach der neuen empfohlenen Auflösung abfragen.

Gültige Verwendung (implizit)

Beispielcode

Der folgende Beispielcode zeigt, wie Sie auf Ereignisse zur Änderung der empfohlenen Auflösung warten.

// 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;
  }
}

Versionsverlauf

  • Version 1, 04.04.2025 (Kenny Vercaemer)

    • Anfängliche Beschreibung der Erweiterung