名稱字串

XR_ANDROID_recommended_resolution

擴充功能類型

執行個體擴充功能

擴充功能註冊編號

462

修訂版本

1

批准狀態

未批准

擴充功能和版本依附元件

OpenXR 1.0

上次修改日期

IP 狀態

著作人

Trevor Debrechtabel (Google)
Spencer Quin (Google)
Lachlan Ford (Google)
Vasiliy Baranov (Google)

總覽

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

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

  • 在執行個體的生命週期內,執行階段可能會從指定 systemIdviewConfigurationTypexrEnumerateViewConfigurationViews 列舉傳回非完全相同的緩衝區內容。

XrEventDataRecommendedResolutionChangedANDROID 結構體的定義如下:

typedef struct XrEventDataRecommendedResolutionChangedANDROID {
    XrStructureType    type;
    const void*        next;
} XrEventDataRecommendedResolutionChangedANDROID;

成員說明

  • type 是這個結構的 XrStructureType
  • nextNULL,或是指向結構鏈中下一個結構的指標。核心 OpenXR 或這個擴充功能中未定義這類結構。

收到 XrEventDataRecommendedResolutionChangedANDROID 事件結構,表示建議的解析度已變更。應用程式使用 xrEnumerateViewConfigurationViews 查詢執行階段,取得新的建議解析度。

有效用量 (隱含)

  • XR_ANDROID_recommended_resolution 擴充功能必須先啟用,才能使用 XrEventDataRecommendedResolutionChangedANDROID
  • type 必須XR_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 = {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)

    • 擴充功能初始說明