XR_EXT_interaction_profile_battery_state_display

String Nama

XR_EXT_interaction_profile_battery_state_display

Jenis Ekstensi

Ekstensi instance

Nomor Ekstensi Terdaftar

837

Revisi

1

Status Ratifikasi

Diratifikasi

Dependensi Ekstensi dan Versi

OpenXR 1.0

Tanggal Terakhir Diubah

2025-10-21

Status IP

Tidak ada klaim IP yang diketahui.

Kontributor

John Kearney, Meta
Daniel Willmott, Valve
Denny Rönngren, Varjo
Jakob Bornecrantz, NVIDIA
Nathan Nuber, Valve
Lachlan Ford, Google
Nihav Jain, Google

Ringkasan

XR_EXT_interaction_profile_battery_state_display menyediakan mekanisme bagi aplikasi untuk membuat kueri runtime terkait informasi status baterai untuk perangkat yang digunakan dengan profil interaksi. Informasi status baterai ini hanya boleh digunakan untuk tujuan tampilan dan runtime harus memastikan bahwa informasi ini cocok dengan yang digunakan di antarmuka pengguna sistem bawaan.

Jika beberapa perangkat fisik memberikan input ke tindakan yang terkait dengan jalur tingkat teratas, seperti runtime yang melakukan pemetaan ulang untuk penyesuaian atau aksesibilitas pengguna, runtime tersebut harus berupaya sebaik mungkin untuk menyajikan informasi baterai yang berguna dalam satu nilai.

Secara khusus, informasi ini tidak diharapkan untuk dikalibrasi antara runtime atau perangkat dan tidak boleh digunakan untuk membuat peringatan atau mengubah perilaku aplikasi.

Membuat kueri untuk status baterai

Struktur XrBatteryStateDisplayEXT ditentukan sebagai:

typedef struct XrBatteryStateDisplayEXT {
    XrStructureType                       type;
    void*                                 next;
    XrBatteryStateDisplayStateFlagsEXT    stateFlags;
    float                                 batteryLevel;
} XrBatteryStateDisplayEXT;

Deskripsi Anggota

  • type adalah XrStructureType dari struktur ini.
  • next adalah NULL atau pointer ke struktur berikutnya dalam rantai struktur.
  • stateFlags menjelaskan validitas batteryLevel dengan mask bit yang ditentukan dalam XrBatteryStateDisplayStateFlagBitsEXT
  • batteryLevel adalah level baterai (dari 0,0f hingga 1,0f) perangkat yang terhubung oleh entitas atau tindakan terkait.

Untuk membuat kueri level baterai, aplikasi merangkai struktur XrBatteryStateDisplayEXT ke rantai XrInteractionProfileState :: next saat memanggil xrGetCurrentInteractionProfile .

Jika xrGetCurrentInteractionProfile menetapkan XrInteractionProfileState :: interactionProfile ke XR_NULL_PATH , maka runtime tidak boleh menetapkan bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT di stateFlags .

XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT menunjukkan apakah batteryLevel berisi data yang valid. Aplikasi tidak boleh membaca batteryLevel jika bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT tidak disetel di stateFlags .

Penggunaan yang Valid (Implisit)

Anggota stateFlags XrBatteryStateDisplayEXT :: berjenis berikut, dan berisi bitwise-OR dari nol atau lebih bit yang ditentukan dalam XrBatteryStateDisplayStateFlagBitsEXT .

typedef XrFlags64 XrBatteryStateDisplayStateFlagsEXT;

// Flag bits for XrBatteryStateDisplayStateFlagsEXT
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT = 0x00000001;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT = 0x00000002;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT = 0x00000004;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT = 0x00000008;

Bit tanda memiliki arti berikut:

Deskripsi Flag

  • XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT — Menunjukkan validitas XrBatteryStateDisplayEXT :: batteryLevel
  • XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT — Menunjukkan bahwa perangkat yang terkait dengan profil interaksi sedang mengisi daya.
  • XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT — Menunjukkan bahwa perangkat yang terkait dengan profil interaksi dicolokkan ke sumber listrik.
  • XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT — Menunjukkan bahwa perangkat yang terkait dengan profil interaksi tidak memiliki sumber daya baterai.

Contoh

// previously initialized
extern XrSession session;
extern XrPath topLevelUserPath;

XrBatteryStateDisplayEXT batteryStateDisplay{XR_TYPE_BATTERY_STATE_DISPLAY_EXT};
XrInteractionProfileState ipState{XR_TYPE_INTERACTION_PROFILE_STATE, &batteryStateDisplay};
CHK_XR(xrGetCurrentInteractionProfile(session, topLevelUserPath, &ipState));
if ((batteryStateDisplay.stateFlags & XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT) != 0) {
  // use value of batteryStateDisplay.batteryLevel
}

Struktur Baru

Enum Baru

Bitmask Baru

Konstanta Enum Baru

  • XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAME
  • XR_EXT_interaction_profile_battery_state_display_SPEC_VERSION
  • Memperluas XrStructureType :

    • XR_TYPE_BATTERY_STATE_DISPLAY_EXT

Masalah

  • Dapatkah aplikasi mengkueri level baterai yang ditampilkan untuk perangkat head-mounted dengan ekstensi ini?

    • Selesai. Tidak secara langsung . Ekstensi ini hanya mendukung pengembalian level baterai yang ditampilkan untuk jalur /user tingkat teratas dengan profil interaksi saat ini. Jika aplikasi menyarankan pengikatan untuk profil interaksi bagi perangkat head-mounted ( /user/head ), dan jika runtime membuat profil interaksi tersebut aktif, maka runtime dapat menampilkan level baterai untuk jalur /user tingkat teratas tersebut.

Riwayat Versi

  • Revisi 1, 21-10-2025 (John Kearney)

    • Draf awal.