XR_EXT_interaction_profile_battery_state_display
رشته نام
XR_EXT_interaction_profile_battery_state_display
نوع افزونه
افزونه نمونه
شماره داخلی ثبت شده
۸۳۷
بازنگری
۱
وضعیت تصویب
تصویب شده
وابستگیهای افزونه و نسخه
آخرین تاریخ اصلاح
۲۰۲۵-۱۰-۲۱
وضعیت آیپی
هیچ ادعای مالکیت معنوی شناختهشدهای وجود ندارد.
مشارکتکنندگان
جان کرنی، متا
دنیل ویلموت، ولو
دنی رونگرن، وارخو
یاکوب بورنکرانتز، انویدیا
ناتان نوبر، ولو
لاکلان فورد، گوگل
نیهاو جین، گوگل
نمای کلی
XR_EXT_interaction_profile_battery_state_display مکانیزمی را برای برنامهها فراهم میکند تا اطلاعات وضعیت باتری دستگاههایی که با پروفایلهای تعامل استفاده میشوند را در زمان اجرا جستجو کنند. این اطلاعات وضعیت باتری فقط باید برای اهداف نمایشی استفاده شود و زمان اجرا باید تضمین کند که این اطلاعات با آنچه در رابطهای کاربری داخلی سیستم استفاده میشود، مطابقت دارد.
در مواردی که چندین دستگاه فیزیکی ورودی به اقدامات مرتبط با یک مسیر سطح بالا، مانند زمانهای اجرا که نگاشت مجدد را برای سفارشیسازی یا دسترسی کاربر انجام میدهند، ارائه میدهند، این زمانهای اجرا باید تمام تلاش خود را برای ارائه اطلاعات مفید باتری در یک مقدار واحد انجام دهند.
به طور خاص، انتظار نمیرود که این اطلاعات بین زمانهای اجرا یا دستگاهها کالیبره شود و نباید برای تولید هشدار یا تغییر رفتار برنامه استفاده شود.
پرس و جو برای وضعیت باتری
ساختار XrBatteryStateDisplayEXT به صورت زیر تعریف شده است:
typedef struct XrBatteryStateDisplayEXT {
XrStructureType type;
void* next;
XrBatteryStateDisplayStateFlagsEXT stateFlags;
float batteryLevel;
} XrBatteryStateDisplayEXT;
توضیحات اعضا
-
typeنوع XrStructureType این ساختار است. -
nextNULLیا اشارهگری به ساختار بعدی در یک زنجیره ساختار است. -
stateFlagsاعتبارbatteryLevelرا با استفاده از bit mask های تعریف شده در XrBatteryStateDisplayStateFlagBitsEXT توصیف میکند. -
batteryLevel) سطح باتری (از 0.0f تا 1.0f) دستگاه متصل شده توسط موجودیت یا اقدام مرتبط است.
برای پرسوجوی میزان باتری، برنامه هنگام فراخوانی xrGetCurrentInteractionProfile ، یک ساختار XrBatteryStateDisplayEXT را به زنجیره XrInteractionProfileState :: next زنجیر میکند.
اگر xrGetCurrentInteractionProfile مقدار XrInteractionProfileState :: interactionProfile روی XR_NULL_PATH تنظیم کند، آنگاه زمان اجرا نباید بیت XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT را در stateFlags تنظیم کند.
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT نشان میدهد که آیا batteryLevel حاوی دادههای معتبر است یا خیر. اگر بیت XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT در stateFlags تنظیم نشده باشد، برنامه نباید batteryLevel را بخواند.
کاربرد معتبر (ضمنی)
- افزونهی
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 است.
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 ::batteryLevel -
XR_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 های جدید
بیتماسکهای جدید
ثابتهای شمارشی جدید
-
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAME -
XR_EXT_interaction_profile_battery_state_display_SPEC_VERSION گسترش XrStructureType :
-
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
-
مسائل
آیا برنامه میتواند میزان باتری نمایش داده شده برای یک دستگاه نصب شده روی سر با این افزونه را جستجو کند؟
- حل شد. نه مستقیماً . این افزونه فقط از برگرداندن سطح باتری نمایش داده شده برای مسیرهای سطح بالای /کاربر با پروفایلهای تعامل فعلی پشتیبانی میکند. اگر برنامه، اتصالاتی را برای یک پروفایل تعامل برای دستگاه نصب شده روی سر ( /user/head ) پیشنهاد دهد، و اگر زمان اجرا آن پروفایل تعامل را فعال کند، زمان اجرا میتواند سطح باتری را برای آن مسیر سطح بالای /کاربر برگرداند.
تاریخچه نسخه
نسخه ۱، ۲۰۲۵-۱۰-۲۱ (جان کرنی)
- پیشنویس اولیه.