Ciąg znaków nazwy

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

Data ostatniej modyfikacji

Stan adresu IP

Twórcy

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

Omówienie

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 ten sposób:

  • Środowisko wykonawcze może zwracać nieidentyczne zawartości bufora z wyliczenia xrEnumerateViewConfigurationViews dla danego systemIdviewConfigurationType 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 podstawowej specyfikacji OpenXR ani w tym rozszerzeniu nie zdefiniowano takich struktur.

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

Prawidłowe użycie (domyślne)

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 = {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.04.2025 (Kenny Vercaemer)

    • Wstępny opis rozszerzenia