Name String

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 หรือ Pointer ไปยังโครงสร้างถัดไปในเชนโครงสร้าง ไม่มีการกำหนดโครงสร้างดังกล่าวใน 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 = {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)

    • คำอธิบายส่วนขยายเริ่มต้น