Name String

XR_ANDROID_recommended_resolution

Typ rozszerzenia

Rozszerzenie instancji

Zarejestrowany numer wewnętrzny

462

Wersja

1

Stan ratyfikacji

Nie ratyfikowano

Zależności rozszerzeń i wersji

OpenXR 1.0

Stan IP

Brak znanych roszczeń dotyczących własności intelektualnej.

Twórcy

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

Przegląd

To rozszerzenie umożliwia środowisku wykonawczemu powiadamianie aplikacji o zmianie zalecanej rozdzielczości na podstawie bieżącej wydajności systemu, temperatury urządzenia lub innych czynników.

To rozszerzenie modyfikuje specyfikację w następujący sposób:

  • Środowisko wykonawcze może zwracać nieidentyczną zawartość bufora z wyliczenia xrEnumerateViewConfigurationViews dla podanych wartości systemId i viewConfigurationType przez cały okres istnienia instancji.

Struktura XrEventDataRecommendedResolutionChangedANDROID jest zdefiniowana w ten sposób:

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

Opisy członków

  • type to XrStructureType tej struktury.
  • next to NULL lub wskaźnik do następnej struktury w łańcuchu struktur. W podstawowym interfejsie OpenXR ani w tym rozszerzeniu nie zdefiniowano takich struktur.

Otrzymanie struktury zdarzenia XrEventDataRecommendedResolutionChangedANDROID oznacza, że zalecana rozdzielczość uległa zmianie. Aplikacja powinna wysłać zapytanie do środowiska wykonawczego o nową zalecaną rozdzielczość za pomocą funkcji xrEnumerateViewConfigurationViews .

Prawidłowe użycie (pośrednie)

Przykładowy kod

Poniższy przykładowy kod pokazuje, jak nasłuchiwać zdarzeń zmiany zalecanej rozdzielczości.

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

Historia zmian

  • Wersja 1, 4 kwietnia 2025 r. (Kenny Vercaemer)

    • Początkowy opis rozszerzenia