XR_EXT_interaction_profile_battery_state_display

नाम स्ट्रिंग

XR_EXT_interaction_profile_battery_state_display

एक्सटेंशन का टाइप

इंस्टेंस एक्सटेंशन

रजिस्टर किए गए एक्सटेंशन का नंबर

837

संशोधन

1

पुष्टि की स्थिति

पुष्टि की गई

एक्सटेंशन और वर्शन की ज़रूरी शर्तें

OpenXR 1.0

पिछली बार बदलाव किए जाने की तारीख

2025-10-21

आईपी की स्थिति

आईपी से जुड़े किसी दावे की जानकारी नहीं है.

योगदान देने वाले

जॉन कर्नी, Meta
डैनियल विलमॉट, Valve
डेनी रॉन्ग्रेन, Varjo
जैकोब बोर्नक्रैंट्ज़, NVIDIA
नाथन नबर, Valve
लैचलैन फ़ोर्ड, Google
निहाव जैन, 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 तक हो सकता है.

बैटरी का लेवल जानने के लिए, ऐप्लिकेशन, xrGetCurrentInteractionProfile को कॉल करते समय, XrBatteryStateDisplayEXT स्ट्रक्चर को XrInteractionProfileState :: next चेन से जोड़ता है .

अगर xrGetCurrentInteractionProfile, XrInteractionProfileState :: interactionProfile को XR_NULL_PATH पर सेट करता है, तो रनटाइम को stateFlags में XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT बिट सेट नहीं करना चाहिए .

XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT से पता चलता है कि batteryLevel में मान्य डेटा है या नहीं. अगर stateFlags में XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT बिट सेट नहीं है, तो ऐप्लिकेशन को batteryLevel नहीं पढ़ना चाहिए.

मान्य इस्तेमाल (सीधे तौर पर न दिखाना)

  • XrBatteryStateDisplayEXT का इस्तेमाल करने से पहले, XR_EXT_interaction_profile_battery_state_display एक्सटेंशन को चालू करना ज़रूरी है
  • type होना चाहिए XR_TYPE_BATTERY_STATE_DISPLAY_EXT
  • next NULL होना चाहिए या स्ट्रक्चर चेन में अगले स्ट्रक्चर का मान्य पॉइंटर होना चाहिएNULL
  • stateFlags का XrBatteryStateDisplayStateFlagBitsEXT वैल्यू का मान्य कॉम्बिनेशन होना चाहिए
  • stateFlags must नहीं होना चाहिए 0

XrBatteryStateDisplayEXT :: stateFlags सदस्य, इस टाइप का होता है. इसमें 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
}

नए स्ट्रक्चर

नए Enums

नए बिटमास्क

नए 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 पाथ के लिए दिखाए गए बैटरी लेवल को ही दिखाता है. अगर ऐप्लिकेशन, हेड-माउंटेड डिवाइस ( /user/head ) के लिए किसी इंटरैक्शन प्रोफ़ाइल के लिए बाइंडिंग का सुझाव देता है और रनटाइम उस इंटरैक्शन प्रोफ़ाइल को चालू करता है, तो रनटाइम उस टॉप-लेवल /user पाथ के लिए बैटरी लेवल दिखा सकता है.

वर्शन हिस्ट्री

  • संशोधन 1, 21 अक्टूबर, 2025 (जॉन कर्नी)

    • शुरुआती ड्राफ़्ट.