XR_ANDROID_recommended_resolution
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
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
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 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)
- 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 = {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