XR_EXT_interaction_profile_battery_state_display

سلسلة الاسم

XR_EXT_interaction_profile_battery_state_display

نوع الإضافة

إضافة مثيل

رقم الإضافة المسجَّل

837

المراجعة

1

حالة التصديق

تم التصديق عليه

الاعتماديات على الإضافات والإصدارات

OpenXR 1.0

تاريخ آخر تعديل

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 .

الاستخدام الصحيح (الضمني)

العضو 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_NAME
  • XR_EXT_interaction_profile_battery_state_display_SPEC_VERSION
  • تمديد XrStructureType :

    • XR_TYPE_BATTERY_STATE_DISPLAY_EXT

المشاكل

  • هل يمكن للتطبيق الاستعلام عن مستوى البطارية المعروض لجهاز مثبت على الرأس باستخدام هذه الإضافة؟

    • تم حلّ المشكلة. ليس بشكل مباشر . لا يتيح هذا الامتداد سوى عرض مستوى البطارية لمسارات /user ذات المستوى الأعلى مع ملفات تعريف التفاعل الحالية. إذا كان التطبيق يقترح عمليات ربط لملف تعريف تفاعلي لجهاز العرض المثبَّت على الرأس ( /user/head )، وإذا فعّل وقت التشغيل ملف تعريف التفاعل هذا، يمكن لوقت التشغيل عرض مستوى البطارية لمسار /user ذي المستوى الأعلى.

سجلّ الإصدارات

  • المراجعة 1، ‎21-10-2025 (جون كيرني)

    • مسودة أولية