XR_ANDROID_enumerate_system_extension_properties
Name String
XR_ANDROID_enumerate_system_extension_properties
एक्सटेंशन टाइप
इंस्टेंस एक्सटेंशन
रजिस्टर किया गया एक्सटेंशन नंबर
725
बदलाव
1
पुष्टि की स्थिति
पुष्टि नहीं की गई
एक्सटेंशन और वर्शन की डिपेंडेंसी
पिछली बार बदलाव किए जाने की तारीख
2026-02-11
आईपी स्टेटस
आईपी से जुड़े किसी भी दावे की जानकारी नहीं है.
योगदान देने वाले
स्पेंसर क्विन, Google
निहाव जैन, Google
केनी वर्केमर, Google
खास जानकारी
इस एक्सटेंशन की मदद से ऐप्लिकेशन यह तय कर सकते हैं कि मौजूदा सिस्टम कॉन्फ़िगरेशन के साथ कौनसे एक्सटेंशन काम करते हैं. अगर कोई एक्सटेंशन रनटाइम के साथ काम करता है, तो यह ज़रूरी नहीं है कि वह मौजूदा सिस्टम हार्डवेयर के साथ भी काम करे.
XrSystemExtensionPropertiesANDROID स्ट्रक्चर को इस तरह परिभाषित किया गया है:
typedef struct XrSystemExtensionPropertiesANDROID {
XrStructureType type;
void* next;
XrExtensionProperties properties;
XrBool32 isSupported;
} XrSystemExtensionPropertiesANDROID;
सदस्यों के बारे में जानकारी
typeइस स्ट्रक्चर का XrStructureType है.next,NULLहोता है या स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर होता है.properties, एक्सटेंशन के नाम वाली XrExtensionProperties है.isSupportedएक बूलियन वैल्यू है. इससे पता चलता है कि सिस्टम में फ़िलहाल एक्सटेंशन काम कर रहा है या नहीं.
मान्य इस्तेमाल (इंप्लिसिट)
- XrSystemExtensionPropertiesANDROID का इस्तेमाल करने से पहले,
XR_ANDROID_enumerate_system_extension_propertiesएक्सटेंशन को चालू करना ज़रूरी है -
typeज़रूरी तौर परXR_TYPE_SYSTEM_EXTENSION_PROPERTIES_ANDROIDहोना चाहिए -
next,NULLया स्ट्रक्चर चेन में मौजूद अगले स्ट्रक्चर का मान्य पॉइंटर होना चाहिए
XrEventDataSystemPropertiesChangedANDROID स्ट्रक्चर को इस तरह परिभाषित किया गया है:
typedef struct XrEventDataSystemPropertiesChangedANDROID {
XrStructureType type;
const void* next;
} XrEventDataSystemPropertiesChangedANDROID;
सदस्यों के बारे में जानकारी
typeइस स्ट्रक्चर का XrStructureType है.next,NULLहोता है या स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर होता है.
सिस्टम एक्सटेंशन प्रॉपर्टी में बदलाव होने पर, रनटाइम को इस इवेंट को ज़रूर कतार में लगाना चाहिए. उदाहरण के लिए, जब नए पेरिफ़ेरल कनेक्ट किए जाते हैं, तब नई सुविधाएं चालू होती हैं.
जब तक नया XrEventDataSystemPropertiesChangedANDROID इवेंट कतार में नहीं लग जाता, तब तक xrEnumerateSystemExtensionPropertiesANDROID को किए गए सभी कॉल, एक जैसी वैल्यू ज़रूर दिखाएंगे.
जब किसी ऐप्लिकेशन को यह इवेंट मिलता है, तो उसे चाहिए कि वह xrEnumerateSystemExtensionPropertiesANDROID को फिर से कॉल करे, ताकि सिस्टम एक्सटेंशन की नई प्रॉपर्टी तय की जा सकें. साथ ही, ज़रूरत के मुताबिक उन एक्सटेंशन से जुड़े ट्रैकर्स बनाए या मिटाए जा सकें.
मान्य इस्तेमाल (इंप्लिसिट)
- XrEventDataSystemPropertiesChangedANDROID का इस्तेमाल करने से पहले,
XR_ANDROID_enumerate_system_extension_propertiesएक्सटेंशन को चालू करना ज़रूरी है -
typeज़रूरी तौर परXR_TYPE_EVENT_DATA_SYSTEM_PROPERTIES_CHANGED_ANDROIDहोना चाहिए -
next,NULLया स्ट्रक्चर चेन में मौजूद अगले स्ट्रक्चर का मान्य पॉइंटर होना चाहिए
xrEnumerateSystemExtensionPropertiesANDROID फ़ंक्शन को इस तरह से परिभाषित किया गया है:
XrResult xrEnumerateSystemExtensionPropertiesANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t propertyCapacityInput,
uint32_t* propertyCountOutput,
XrSystemExtensionPropertiesANDROID* properties);
पैरामीटर की जानकारी
instanceएक मान्य XrInstance है .systemId, एक्सटेंशन की प्रॉपर्टी पाने के लिए सिस्टम का मान्य sliink:XrSystemId है.propertyCapacityInput,propertiesऐरे की क्षमता है. अगर आपको ज़रूरी क्षमता वापस पाने का अनुरोध करना है, तो इसे 0 पर सेट करें.propertyCountOutput, अनुरोध की गई एक्सटेंशन प्रॉपर्टी की संख्या है.properties, XrSystemExtensionPropertiesANDROID स्ट्रक्चर का एक कलेक्शन है. अगरpropertyCapacityInputकी वैल्यू 0 है, तो इसकी वैल्यूNULLहो सकती है.- ज़रूरी
propertiesका साइज़ वापस पाने के बारे में ज़्यादा जानकारी के लिए, बफ़र साइज़ के पैरामीटर सेक्शन देखें.
मान्य इस्तेमाल (इंप्लिसिट)
- xrEnumerateSystemExtensionPropertiesANDROID को कॉल करने से पहले,
XR_ANDROID_enumerate_system_extension_propertiesएक्सटेंशन को चालू करना ज़रूरी है -
instance, XrInstance का मान्य हैंडल होना चाहिए -
propertyCountOutput,uint32_tवैल्यू का पॉइंटर होना चाहिए - अगर
propertyCapacityInput0नहीं है , तोpropertiesमेंpropertyCapacityInputXrSystemExtensionPropertiesANDROID स्ट्रक्चर के ऐरे का पॉइंटर ज़रूर होना चाहिए
रिटर्न कोड
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SYSTEM_INVALIDXR_ERROR_VALIDATION_FAILURE
उदाहरण
XrInstance instance; // XrInstance previously created
XrSystemId systemId; // XrSystemId from a previously created instance
PFN_xrEnumerateSystemExtensionPropertiesANDROID xrEnumerateSystemExtensionPropertiesANDROID;
// Poll events for recommended resolution changes.
XrEventDataBuffer event = {XR_TYPE_EVENT_DATA_BUFFER};
XrResult result = xrPollEvent(instance, &event);
if (result == XR_SUCCESS) {
switch (event.type) {
case XR_TYPE_EVENT_DATA_SYSTEM_PROPERTIES_CHANGED_ANDROID:
// It's possible that the system was lost and a new id will be returned
XrSystemId newSystemId;
XrSystemGetInfo getInfo = {XR_TYPE_SYSTEM_GET_INFO};
getInfo.formFactor = XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY;
if(XR_SUCCESS == xrGetSystem(instance, &getInfo, &newSystemId)) {
if(systemId != newSystemId) {
//Do things like recreate the session
systemId = newSystemId;
}
}
// Enumerate the extensions to see which ones are now supported based on hardware changes
uint32_t extensionsCount;
xrEnumerateSystemExtensionPropertiesANDROID(instance, systemId, 0, &extensionsCount, NULL);
std::vector<XrSystemExtensionPropertiesANDROID> properties(extensionsCount,
{.type = XR_TYPE_SYSTEM_EXTENSION_PROPERTIES_ANDROID});
XrResult result = xrEnumerateSystemExtensionPropertiesANDROID(
instance,
systemId,
extensionsCount,
&extensionsCount,
properties.data()
);
// Do something based on which extensions are now supported by the system
break;
}
}
PFN_xrEnumerateSystemExtensionPropertiesANDROID xrEnumerateSystemExtensionPropertiesANDROID;
XrInstance instance;
XrInstanceCreateInfo createInfo = {XR_TYPE_INSTANCE_CREATE_INFO};
// Initialize the createInfo with appropriate values for the application
CHK_XR(xrCreateInstance(&createInfo, &instance));
// Get the systemId for the system.
XrSystemId systemId;
XrSystemGetInfo getInfo = {XR_TYPE_SYSTEM_GET_INFO};
getInfo.formFactor = XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY;
CHK_XR(xrGetSystem(instance, &getInfo, &systemId));
// Enumerate the system extension properties.
uint32_t extensionsCount;
xrEnumerateSystemExtensionPropertiesANDROID(instance, systemId, 0, &extensionsCount, NULL);
std::vector<XrSystemExtensionPropertiesANDROID> properties(extensionsCount,
{.type = XR_TYPE_SYSTEM_EXTENSION_PROPERTIES_ANDROID});
XrResult result = xrEnumerateSystemExtensionPropertiesANDROID(
instance,
systemId,
extensionsCount,
&extensionsCount,
properties.data()
);
समस्याएं
वर्शन इतिहास
पहला संशोधन, 17-03-2026 (कैनी वर्केमर)
- एक्सटेंशन का शुरुआती वर्शन.