XR_ANDROID_recommended_resolution
رشته نام
XR_ANDROID_recommended_resolution
نوع افزونه
افزونه نمونه
شماره داخلی ثبتشده
462
بازبینی
1
وضعیت تصویب
تصویبنشده
وابستگیهای افزونه و نسخه
وضعیت IP
هیچ ادعای مالکیت فکری شناختهشدهای وجود ندارد.
همیاران
Trevor Debrechtabel، Google
Spencer Quin، Google
Lachlan Ford، Google
Vasiliy Baranov، Google
نمای کلی
این افزونه به زمان اجرا اجازه میدهد تا وقتی وضوح توصیهشده براساس عملکرد فعلی سیستم، دمای دستگاه، یا عوامل دیگر تغییر میکند، به برنامه اطلاع دهد.
این افزونه مشخصات را به روش زیر اصلاح میکند:
- زمان اجرا ممکن است محتوای میانگیر غیریکسان را از شمارش xrEnumerateViewConfigurationViews برای
systemIdوviewConfigurationTypeدادهشده برای طول عمر نمونه برگرداند.
ساختار XrEventDataRecommendedResolutionChangedANDROID بهصورت زیر تعریف میشود:
typedef struct XrEventDataRecommendedResolutionChangedANDROID {
XrStructureType type;
const void* next;
} XrEventDataRecommendedResolutionChangedANDROID;
توضیحات عضو
typeXrStructureType این ساختار است.-
nextبرابر باNULLیا اشارهگری به ساختار بعدی در زنجیره ساختار است. چنین ساختارهایی در OpenXR اصلی یا این افزونه تعریف نشده است.
دریافت ساختار رویداد XrEventDataRecommendedResolutionChangedANDROID نشان میدهد که وضوح توصیهشده تغییر کرده است. برنامه باید زمان اجرا را برای وضوح توصیهشده جدید بااستفاده از xrEnumerateViewConfigurationViews پُرسمان کند.
استفاده معتبر (ضمنی)
- افزونه
XR_ANDROID_recommended_resolutionباید قبلاز استفاده از XrEventDataRecommendedResolutionChangedANDROID فعال شود -
typeبایدXR_TYPE_EVENT_DATA_RECOMMENDED_RESOLUTION_CHANGED_ANDROIDباشد -
nextبایدNULLیا اشارهگر معتبری به ساختار بعدی در زنجیره ساختار باشد
کد نمونه
کد نمونه زیر نحوه گوش دادن به رویدادهای تغییر وضوح توصیهشده را نشان میدهد.
// 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;
}
}
سابقه نسخه
بازبینی ۱، ۲۰۲۵/۰۴/۰۴ (Kenny Vercaemer)
- شرح اولیه افزونه