XR_ANDROID_recommended_resolution
سلسلة الاسم
XR_ANDROID_recommended_resolution
نوع الإضافة
إضافة مثيل
رقم الإضافة المسجَّل
462
المراجعة
1
حالة التصديق
لم تتم المصادقة
الاعتماديات على الإضافات والإصدارات
حالة عنوان IP
ما مِن مطالبات معروفة بملكية الملكية الفكرية.
المساهمون
تريفور ديبراشتابل، Google
سبنسر كوين، Google
لاكلان فورد، Google
فاسيلي بارانوف، Google
نظرة عامة
تسمح هذه الإضافة لوقت التشغيل بإرسال إشعار إلى التطبيق عند تغيُّر الدقة المقترَحة، وذلك استنادًا إلى أداء النظام الحالي أو درجة حرارة الجهاز أو عوامل أخرى.
تعدّل هذه الإضافة المواصفات بالطريقة التالية:
- قد تعرض بيئة التشغيل محتوى مخزن مؤقت غير متطابق من تعداد xrEnumerateViewConfigurationViews للسمتَين
systemIdوviewConfigurationTypeالمحدّدتَين طوال مدة مثيل العرض.
يتم تعريف بنية XrEventDataRecommendedResolutionChangedANDROID على النحو التالي:
typedef struct XrEventDataRecommendedResolutionChangedANDROID {
XrStructureType type;
const void* next;
} XrEventDataRecommendedResolutionChangedANDROID;
أوصاف الأعضاء
typeهو XrStructureType لهذه البنية.nextهيNULLأو مؤشر إلى البنية التالية في سلسلة البنية. لم يتم تحديد أي بنى من هذا النوع في OpenXR الأساسية أو هذه الإضافة.
يشير تلقّي بنية الحدث XrEventDataRecommendedResolutionChangedANDROID إلى أنّ الدقة المقترَحة قد تغيّرت. يجب أن يطلب التطبيق من وقت التشغيل درجة الدقة الجديدة المقترَحة باستخدام xrEnumerateViewConfigurationViews .
الاستخدام الصحيح (الضمني)
- يجب تفعيل الإضافة
XR_ANDROID_recommended_resolutionقبل استخدام XrEventDataRecommendedResolutionChangedANDROID - يجب أن يكون
typeXR_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;
}
}
سجلّ الإصدارات
النسخة 1، 04/04/2025 (Kenny Vercaemer)
- الوصف الأوّلي للإضافة