XR_EXT_interaction_profile_battery_state_display
Name String
XR_EXT_interaction_profile_battery_state_display
ประเภทส่วนขยาย
ส่วนขยายอินสแตนซ์
หมายเลขต่อที่ลงทะเบียนไว้
837
การแก้ไข
1
สถานะการให้สัตยาบัน
ให้สัตยาบัน
ทรัพยากร Dependency ของส่วนขยายและเวอร์ชัน
วันที่แก้ไขล่าสุด
2025-10-21
สถานะ IP
ไม่มีการอ้างสิทธิ์ IP ที่ทราบ
ผู้เขียน
John Kearney, Meta
Daniel Willmott, Valve
Denny Rönngren, Varjo
Jakob Bornecrantz, NVIDIA
Nathan Nuber, Valve
Lachlan Ford, Google
Nihav Jain, Google
ภาพรวม
XR_EXT_interaction_profile_battery_state_display มีกลไกให้แอปพลิเคชันค้นหารันไทม์เพื่อดูข้อมูลสถานะแบตเตอรี่ของอุปกรณ์ที่ใช้กับโปรไฟล์การโต้ตอบ ข้อมูลสถานะแบตเตอรี่นี้ควรใช้เพื่อวัตถุประสงค์ในการแสดงผลเท่านั้น และรันไทม์ควรตรวจสอบว่าข้อมูลนี้ตรงกับข้อมูลที่ใช้ในอินเทอร์เฟซผู้ใช้ของระบบในตัว
ในกรณีที่อุปกรณ์จริงหลายเครื่องให้ข้อมูลอินพุตสำหรับการดำเนินการที่เชื่อมโยงกับเส้นทางระดับบนสุด เช่น รันไทม์ที่ทำการแมปใหม่สำหรับการปรับแต่งของผู้ใช้หรือการช่วยเหลือพิเศษ รันไทม์เหล่านั้นควรพยายามอย่างเต็มที่เพื่อแสดงข้อมูลแบตเตอรี่ที่เป็นประโยชน์ในค่าเดียว
กล่าวคือ ข้อมูลนี้ไม่น่าจะได้รับการปรับเทียบระหว่างรันไทม์หรืออุปกรณ์ และไม่ควรใช้เพื่อสร้างคำเตือนหรือแก้ไขลักษณะการทำงานของแอปพลิเคชัน
กำลังค้นหาสถานะแบตเตอรี่
โครงสร้าง XrBatteryStateDisplayEXT มีคำจำกัดความดังนี้
typedef struct XrBatteryStateDisplayEXT {
XrStructureType type;
void* next;
XrBatteryStateDisplayStateFlagsEXT stateFlags;
float batteryLevel;
} XrBatteryStateDisplayEXT;
คำอธิบายสมาชิก
typeคือ XrStructureType ของโครงสร้างนี้nextคือNULLหรือตัวชี้ไปยังโครงสร้างถัดไปในเชนโครงสร้างstateFlagsอธิบายความสมเหตุสมผลของbatteryLevelด้วยบิตมาสก์ที่กำหนดไว้ใน XrBatteryStateDisplayStateFlagBitsEXTbatteryLevelคือระดับแบตเตอรี่ (ตั้งแต่ 0.0f ถึง 1.0f) ของอุปกรณ์ที่เชื่อมต่อโดยเอนทิตีหรือการดำเนินการที่เกี่ยวข้อง
หากต้องการค้นหาระดับแบตเตอรี่ แอปพลิเคชันจะเชื่อมโยงโครงสร้าง XrBatteryStateDisplayEXT กับเชน XrInteractionProfileState :: next เมื่อเรียกใช้ xrGetCurrentInteractionProfile
หาก xrGetCurrentInteractionProfile ตั้งค่า XrInteractionProfileState :: interactionProfile เป็น XR_NULL_PATH รันไทม์ต้องไม่ตั้งค่าบิต XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT ใน stateFlags
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT ระบุว่า batteryLevel มีข้อมูลที่ถูกต้องหรือไม่ แอปพลิเคชันต้องไม่อ่าน batteryLevel หากไม่ได้ตั้งค่าบิต XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT ใน stateFlags
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_EXT_interaction_profile_battery_state_displayก่อนใช้ XrBatteryStateDisplayEXT -
typeต้องเป็นXR_TYPE_BATTERY_STATE_DISPLAY_EXT -
nextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปในเชนโครงสร้าง -
stateFlagsต้องเป็นการรวมค่า XrBatteryStateDisplayStateFlagBitsEXT ที่ถูกต้อง -
stateFlagsต้องไม่ใช่0
สมาชิก XrBatteryStateDisplayEXT :: stateFlags เป็นประเภทต่อไปนี้ และมีบิตระดับบิต OR ของบิตที่กำหนดใน XrBatteryStateDisplayStateFlagBitsEXT ตั้งแต่ 0 บิตขึ้นไป
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;
บิตแฟล็กมีความหมายดังต่อไปนี้
คำอธิบายแฟล็ก
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT— ระบุความถูกต้องของ XrBatteryStateDisplayEXT ::batteryLevelXR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT— ระบุว่าอุปกรณ์ที่เชื่อมโยงกับโปรไฟล์การโต้ตอบกำลังชาร์จอยู่XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT- บ่งบอกว่าอุปกรณ์ที่เชื่อมโยงกับโปรไฟล์การโต้ตอบเสียบอยู่กับแหล่งจ่ายไฟXR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT— ระบุว่าอุปกรณ์ที่เชื่อมโยงกับโปรไฟล์การโต้ตอบไม่มีแหล่งพลังงานแบตเตอรี่
ตัวอย่าง
// 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
}
โครงสร้างใหม่
Enum ใหม่
บิตมาสก์ใหม่
ค่าคงที่ Enum ใหม่
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONการขยาย XrStructureType :
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
ปัญหา
แอปพลิเคชันสามารถค้นหาระดับแบตเตอรี่ที่แสดงสำหรับอุปกรณ์ที่สวมศีรษะด้วยส่วนขยายนี้ได้ไหม
- ปิดแล้ว ไม่สามารถทำได้โดยตรง ส่วนขยายนี้รองรับเฉพาะการแสดงผลระดับแบตเตอรี่ที่แสดงสำหรับเส้นทาง /user ระดับบนสุดที่มีโปรไฟล์การโต้ตอบปัจจุบัน หากแอปพลิเคชันแนะนำการเชื่อมโยงสำหรับโปรไฟล์การโต้ตอบสำหรับอุปกรณ์ที่สวมศีรษะ ( /user/head) และหากรันไทม์ทำให้โปรไฟล์การโต้ตอบนั้นทำงาน รันไทม์จะแสดงระดับแบตเตอรี่สำหรับเส้นทาง /user ระดับบนสุดนั้นได้
ประวัติเวอร์ชัน
การแก้ไข 1, 21-10-2025 (John Kearney)
- ฉบับร่างเริ่มต้น