XR_ANDROID_recommended_resolution
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
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
systemIdiviewConfigurationTypeprzez 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
typeto XrStructureType tej struktury.nexttoNULLlub 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)
- Rozszerzenie
XR_ANDROID_recommended_resolutionmusi być włączone przed użyciem XrEventDataRecommendedResolutionChangedANDROID. -
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 kwietnia 2025 r. (Kenny Vercaemer)
- Początkowy opis rozszerzenia