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 kekayaan intelektual 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 mengkueri runtime guna mendapatkan 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 melakukan upaya terbaik 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 didefinisikan 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 bit mask yang ditentukan dalam XrBatteryStateDisplayStateFlagBitsEXTbatteryLeveladalah level baterai (dari 0.0f hingga 1.0f) perangkat yang terhubung oleh entitas atau tindakan terkait.
Untuk mengkueri level baterai, aplikasi merantai struktur XrBatteryStateDisplayEXT ke rantai XrInteractionProfileState :: next saat memanggil xrGetCurrentInteractionProfile .
Jika xrGetCurrentInteractionProfile menetapkan XrInteractionProfileState :: interactionProfile ke XR_NULL_PATH , 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 ditetapkan 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 boleh berupa0
Anggota XrBatteryStateDisplayEXT :: stateFlags memiliki jenis berikut, dan berisi bitwise-OR dari nol atau beberapa 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 flag 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 yang dipasang di kepala dengan ekstensi ini?
- Terselesaikan. Tidak secara langsung . Ekstensi ini hanya mendukung pengembalian level baterai yang ditampilkan untuk jalur /user tingkat atas dengan profil interaksi saat ini. Jika aplikasi menyarankan binding untuk profil interaksi untuk perangkat yang dipasang di kepala ( /user/head ), dan jika runtime mengaktifkan profil interaksi tersebut, runtime dapat menampilkan level baterai untuk jalur /user tingkat teratas tersebut.
Riwayat Versi
Revisi 1, 21-10-2025 (John Kearney)
- Draf awal.