Name String

XR_ANDROID_recommended_resolution

ประเภทส่วนขยาย

ส่วนขยายอินสแตนซ์

หมายเลขต่อที่ลงทะเบียนไว้

462

การแก้ไข

1

สถานะการให้สัตยาบัน

ไม่ได้รับการให้สัตยาบัน

ทรัพยากร Dependency ของส่วนขยายและเวอร์ชัน

OpenXR 1.0

สถานะ IP

ไม่มีการอ้างสิทธิ์ 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;
  }
}

ประวัติเวอร์ชัน

  • ฉบับแก้ไข 1, 04-04-2025 (Kenny Vercaemer)

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