XR_EXT_interaction_profile_battery_state_display
سلسلة الاسم
XR_EXT_interaction_profile_battery_state_display
نوع الإضافة
إضافة مثيل
رقم الإضافة المسجَّل
837
المراجعة
1
حالة التصديق
تم التصديق عليه
الاعتماديات على الإضافات والإصدارات
تاريخ آخر تعديل
2025-10-21
حالة عنوان 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باستخدام أقنعة البت المحدّدة في XrBatteryStateDisplayStateFlagBitsEXT batteryLevelهو مستوى البطارية (من 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 - يجب أن يكون
typeXR_TYPE_BATTERY_STATE_DISPLAY_EXT - يجب أن تكون قيمة
nextهيNULLأو مؤشرًا صالحًا إلى البنية التالية في سلسلة البِنى -
stateFlagsيجب أن يكون مجموعة صالحة من قيم XrBatteryStateDisplayStateFlagBitsEXT - يجب ألا يكون
stateFlags0
العضو XrBatteryStateDisplayEXT :: stateFlags هو من النوع التالي، ويحتوي على عملية bitwise-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
}
بنى جديدة
عمليات التعداد الجديدة
New Bitmasks
ثوابت التعداد الجديدة
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 (جون كيرني)
- مسودة أولية