XR_EXT_interaction_profile_battery_state_display
Name String
XR_EXT_interaction_profile_battery_state_display
Loại phần mở rộng
Phần mở rộng về thực thể
Số máy nhánh đã đăng ký
837
Bản sửa đổi
1
Trạng thái phê chuẩn
Được phê duyệt
Phần mở rộng và các phần phụ thuộc của phiên bản
Ngày sửa đổi gần đây nhất
2025-10-21
Trạng thái IP
Không có thông báo xác nhận quyền sở hữu nào đã biết về quyền sở hữu trí tuệ.
Cộng tác viên
John Kearney, Meta
Daniel Willmott, Valve
Denny Rönngren, Varjo
Jakob Bornecrantz, NVIDIA
Nathan Nuber, Valve
Lachlan Ford, Google
Nihav Jain, Google
Tổng quan
XR_EXT_interaction_profile_battery_state_display cung cấp một cơ chế để các ứng dụng truy vấn thời gian chạy để biết thông tin về trạng thái pin của các thiết bị được dùng với hồ sơ tương tác. Thông tin về trạng thái pin này chỉ được dùng cho mục đích hiển thị và thời gian chạy phải đảm bảo rằng thông tin này khớp với thông tin được dùng trong giao diện người dùng hệ thống tích hợp.
Trong trường hợp nhiều thiết bị thực cung cấp dữ liệu đầu vào cho các thao tác liên kết với một đường dẫn cấp cao nhất, chẳng hạn như các thời gian chạy thực hiện việc ánh xạ lại để người dùng tuỳ chỉnh hoặc hỗ trợ tiếp cận, thì những thời gian chạy đó nên cố gắng hết sức để trình bày thông tin hữu ích về pin dưới dạng một giá trị duy nhất.
Cụ thể, thông tin này không được hiệu chỉnh giữa các thời gian chạy hoặc thiết bị và không nên dùng để tạo cảnh báo hoặc sửa đổi hành vi của ứng dụng theo cách khác.
Truy vấn trạng thái pin
Cấu trúc XrBatteryStateDisplayEXT được xác định như sau:
typedef struct XrBatteryStateDisplayEXT {
XrStructureType type;
void* next;
XrBatteryStateDisplayStateFlagsEXT stateFlags;
float batteryLevel;
} XrBatteryStateDisplayEXT;
Nội dung mô tả thành viên
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc.stateFlagsmô tả tính hợp lệ củabatteryLevelbằng các mặt nạ bit được xác định trong XrBatteryStateDisplayStateFlagBitsEXTbatteryLevellà mức pin (từ 0,0f đến 1,0f) của thiết bị do thực thể hoặc thao tác được liên kết kết nối.
Để truy vấn mức pin, ứng dụng sẽ xâu chuỗi một cấu trúc XrBatteryStateDisplayEXT vào chuỗi XrInteractionProfileState :: next khi gọi xrGetCurrentInteractionProfile .
Nếu xrGetCurrentInteractionProfile đặt XrInteractionProfileState :: interactionProfile thành XR_NULL_PATH , thì thời gian chạy không được đặt bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT trong stateFlags .
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT cho biết liệu batteryLevel có chứa dữ liệu hợp lệ hay không. Ứng dụng không được đọc batteryLevel nếu bit XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT không được đặt trong stateFlags .
Sử dụng hợp lệ (Ngầm ẩn)
- Bạn phải bật tiện ích
XR_EXT_interaction_profile_battery_state_displaytrước khi sử dụng XrBatteryStateDisplayEXT -
typephải làXR_TYPE_BATTERY_STATE_DISPLAY_EXT -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc -
stateFlagsphải là một tổ hợp hợp lệ của các giá trị XrBatteryStateDisplayStateFlagBitsEXT -
stateFlagskhông được là0
Thành phần XrBatteryStateDisplayEXT :: stateFlags thuộc loại sau và chứa một thao tác bitwise-OR của 0 hoặc nhiều bit được xác định trong 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;
Các bit cờ có ý nghĩa như sau:
Nội dung mô tả cờ
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT– Cho biết tính hợp lệ của XrBatteryStateDisplayEXT ::batteryLevelXR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT– Cho biết thiết bị được liên kết với hồ sơ tương tác đang sạc.XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT– Cho biết thiết bị được liên kết với hồ sơ tương tác đang cắm vào nguồn điện.XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT– Cho biết thiết bị được liên kết với hồ sơ tương tác không có nguồn điện từ pin.
Ví dụ
// 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
}
Cấu trúc mới
Enum mới
Mặt nạ bit mới
Hằng số Enum mới
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONMở rộng XrStructureType :
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
Vấn đề
Ứng dụng có thể truy vấn mức pin hiển thị cho thiết bị gắn trên đầu bằng tiện ích này không?
- Đã giải quyết. Không trực tiếp . Tiện ích này chỉ hỗ trợ việc trả về mức pin được hiển thị cho các đường dẫn /user cấp cao nhất bằng hồ sơ tương tác hiện tại. Nếu ứng dụng đề xuất các liên kết cho một hồ sơ tương tác cho thiết bị gắn trên đầu ( /user/head ) và nếu thời gian chạy kích hoạt hồ sơ tương tác đó, thì thời gian chạy có thể trả về mức pin cho đường dẫn /user cấp cao nhất đó.
Danh sách phiên bản
Bản sửa đổi 1, ngày 21 tháng 10 năm 2025 (John Kearney)
- Bản nháp ban đầu.