Name String

XR_ANDROID_recommended_resolution

擴充功能類型

執行個體擴充功能

擴充功能註冊編號

462

修訂版本

1

批准狀態

未批准

擴充功能和版本依附元件

OpenXR 1.0

IP 狀態

沒有已知的智慧財產權聲明。

著作人

Trevor Debrechtabel, Google
Spencer Quin, Google
Lachlan Ford, Google
Vasiliy Baranov, Google

總覽

這項擴充功能可讓執行階段根據目前的系統效能、裝置溫度或其他因素,在建議解析度變更時通知應用程式。

這項擴充功能會以下列方式修改規格:

  • 在執行個體的生命週期內,執行階段「可能」會針對指定的 systemId 和 viewConfigurationType,從 xrEnumerateViewConfigurationViews 列舉傳回不相同的緩衝區內容。

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,2025-04-04 (Kenny Vercaemer)

    • 初始擴充功能說明