XR_EXT_interaction_profile_battery_state_display
नाम स्ट्रिंग
XR_EXT_interaction_profile_battery_state_display
एक्सटेंशन का टाइप
इंस्टेंस एक्सटेंशन
रजिस्टर किए गए एक्सटेंशन का नंबर
837
संशोधन
1
पुष्टि की स्थिति
पुष्टि की गई
एक्सटेंशन और वर्शन की ज़रूरी शर्तें
पिछली बार बदलाव किए जाने की तारीख
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 है.nextNULLहै या स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर है.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 -
nextNULL होना चाहिए या स्ट्रक्चर चेन में अगले स्ट्रक्चर का मान्य पॉइंटर होना चाहिएNULL -
stateFlagsका XrBatteryStateDisplayStateFlagBitsEXT वैल्यू का मान्य कॉम्बिनेशन होना चाहिए -
stateFlagsmust नहीं होना चाहिए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
}
नए स्ट्रक्चर
XrInteractionProfileState को बढ़ाना :
नए Enums
नए बिटमास्क
नए Enum कॉन्सटेंट
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONXrStructureType को बढ़ाना :
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
समस्याएं
क्या ऐप्लिकेशन, इस एक्सटेंशन की मदद से हेड-माउंटेड डिवाइस के लिए दिखाए गए बैटरी लेवल के बारे में क्वेरी कर सकता है?
- का समाधान किया गया. सीधे तौर पर नहीं . यह एक्सटेंशन, मौजूदा इंटरैक्शन प्रोफ़ाइल के साथ, टॉप-लेवल /user पाथ के लिए दिखाए गए बैटरी लेवल को ही दिखाता है. अगर ऐप्लिकेशन, हेड-माउंटेड डिवाइस ( /user/head ) के लिए किसी इंटरैक्शन प्रोफ़ाइल के लिए बाइंडिंग का सुझाव देता है और रनटाइम उस इंटरैक्शन प्रोफ़ाइल को चालू करता है, तो रनटाइम उस टॉप-लेवल /user पाथ के लिए बैटरी लेवल दिखा सकता है.
वर्शन हिस्ट्री
संशोधन 1, 21 अक्टूबर, 2025 (जॉन कर्नी)
- शुरुआती ड्राफ़्ट.