XR_ANDROID_recommended_resolution
Nazwa ciągu znaków
XR_ANDROID_recommended_resolution
Typ rozszerzenia
Rozszerzenie instancji
Zarejestrowany numer rozszerzenia
462
Wersja
1
Stan ratyfikacji
Niezatwierdzone
Zależności rozszerzenia i wersji
Stan własności intelektualnej
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 ten sposób:
- Środowisko wykonawcze może zwracać nieidentyczne treści bufora z wyliczenia xrEnumerateViewConfigurationViews dla danego
systemIdiviewConfigurationTypeprzez cały czas działania instancji.
Struktura XrEventDataRecommendedResolutionChangedANDROID jest zdefiniowana w ten sposób:
typedef struct XrEventDataRecommendedResolutionChangedANDROID {
XrStructureType type;
const void* next;
} XrEventDataRecommendedResolutionChangedANDROID;
Opisy elementów
typeto XrStructureType tej struktury.nexttoNULLlub wskaźnik do następnej struktury w łańcuchu struktur. W podstawowym OpenXR ani w tym rozszerzeniu nie zdefiniowano takich struktur.
Otrzymanie struktury zdarzenia XrEventDataRecommendedResolutionChangedANDROID oznacza, że zalecana rozdzielczość uległa zmianie. Aplikacja powinna wysłać do środowiska wykonawczego zapytanie o nową zalecaną rozdzielczość za pomocą xrEnumerateViewConfigurationViews .
Prawidłowe użycie (pośrednie)
- Przed użyciem XrEventDataRecommendedResolutionChangedANDROID musi być włączone rozszerzenie
XR_ANDROID_recommended_resolution. -
typemusi mieć wartośćXR_TYPE_EVENT_DATA_RECOMMENDED_RESOLUTION_CHANGED_ANDROID -
nextmusi mieć wartośćNULLlub być prawidłowym wskaźnikiem do następnej struktury w łańcuchu struktur.
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.04.2025 (Kenny Vercaemer)
- Początkowy opis rozszerzenia