String Nama

XR_ANDROID_recommended_resolution

Jenis Ekstensi

Ekstensi instance

Nomor Ekstensi Terdaftar

462

Revisi

1

Status Ratifikasi

Tidak diratifikasi

Dependensi Ekstensi dan Versi

OpenXR 1.0

Tanggal Terakhir Diubah

Status IP

Kontributor

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

Ringkasan

Ekstensi ini memungkinkan runtime memberi tahu aplikasi saat resolusi yang direkomendasikan berubah, berdasarkan performa sistem saat ini, suhu perangkat, atau faktor lainnya.

Ekstensi ini mengubah spesifikasi dengan cara berikut:

  • Runtime dapat menampilkan konten buffer yang tidak identik dari enumerasi xrEnumerateViewConfigurationViews untuk systemId dan viewConfigurationType tertentu selama masa aktif instance.

Struktur XrEventDataRecommendedResolutionChangedANDROID ditentukan sebagai:

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

Deskripsi Anggota

  • type adalah XrStructureType dari struktur ini.
  • next adalah NULL atau pointer ke struktur berikutnya dalam rantai struktur. Tidak ada struktur seperti itu yang ditentukan dalam OpenXR inti atau ekstensi ini.

Menerima struktur peristiwa XrEventDataRecommendedResolutionChangedANDROID menunjukkan bahwa rekomendasi penyelesaian telah berubah. Aplikasi harus mengkueri runtime untuk mendapatkan resolusi baru yang direkomendasikan menggunakan xrEnumerateViewConfigurationViews .

Penggunaan yang Valid (Implisit)

Kode contoh

Contoh kode berikut menunjukkan cara memantau peristiwa perubahan resolusi yang direkomendasikan.

// 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;
  }
}

Histori Versi

  • Revisi 1, 04-04-2025 (Kenny Vercaemer)

    • Deskripsi ekstensi awal