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
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
typeadalah XrStructureType dari struktur ini.nextadalahNULLatau pointer ke struktur berikutnya dalam rantai struktur.stateFlagsmenjelaskan validitasbatteryLeveldengan mask bit yang ditentukan dalam XrBatteryStateDisplayStateFlagBitsEXTbatteryLeveladalah 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)
- Ekstensi
XR_EXT_interaction_profile_battery_state_displayharus diaktifkan sebelum menggunakan XrBatteryStateDisplayEXT -
typeharus berupaXR_TYPE_BATTERY_STATE_DISPLAY_EXT -
nextharus berupaNULLatau pointer yang valid ke struktur berikutnya dalam rantai struktur -
stateFlagsharus berupa kombinasi nilai XrBatteryStateDisplayStateFlagBitsEXT yang valid -
stateFlagstidak boleh0
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 ::batteryLevelXR_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
Memperluas XrInteractionProfileState :
Enum Baru
Bitmask Baru
Konstanta Enum Baru
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONMemperluas 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.