رشته نام

XR_ANDROID_recommended_resolution

نوع افزونه

افزونه نمونه

شماره داخلی ثبت‌شده

462

بازبینی

1

وضعیت تصویب

تصویب‌نشده

وابستگی‌های افزونه و نسخه

OpenXR 1.0

وضعیت 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;

توضیحات عضو

  • type XrStructureType این ساختار است.
  • ‫next برابر با NULL یا اشاره‌گری به ساختار بعدی در زنجیره ساختار است. چنین ساختارهایی در OpenXR اصلی یا این افزونه تعریف نشده است.

دریافت ساختار رویداد XrEventDataRecommendedResolutionChangedANDROID نشان می‌دهد که وضوح توصیه‌شده تغییر کرده است. برنامه باید زمان اجرا را برای وضوح توصیه‌شده جدید بااستفاده از xrEnumerateViewConfigurationViews پُرسمان کند.

استفاده معتبر (ضمنی)

کد نمونه

کد نمونه زیر نحوه گوش دادن به رویدادهای تغییر وضوح توصیه‌شده را نشان می‌دهد.

// 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)

    • شرح اولیه افزونه