XR_ANDROID_recommended_settings
Name String
XR_ANDROID_recommended_settings
एक्सटेंशन का टाइप
इंस्टेंस एक्सटेंशन
रजिस्टर किया गया एक्सटेंशन नंबर
455
बदलाव
1
पुष्टि की स्थिति
मंज़ूरी नहीं मिली
एक्सटेंशन और वर्शन डिपेंडेंसी
पिछली बार बदलाव किए जाने की तारीख
2026-03-16
योगदान देने वाले
स्पेंसर क्विन, Google
जेरेड फ़ाइंडर, Google
केविन मौल, Google
निहाव जैन, Google
लेवाना चेन, Google
एल्विन शी, Google
सालार खान, Google
खास जानकारी
उपयोगकर्ता का डिफ़ॉल्ट एनवायरमेंट, ब्लेंड मोड और इनपुट मोडैलिटी के कॉम्बिनेशन का इस्तेमाल करके, अलग-अलग स्थितियों में हो सकता है. यह एक्सटेंशन, उपयोगकर्ता के लिए सुझाई गई सेटिंग उपलब्ध कराता है. ये सेटिंग, ऐप्लिकेशन लॉन्च होने से पहले उपयोगकर्ता के डिफ़ॉल्ट एनवायरमेंट की स्थिति के मुताबिक होती हैं. इससे, ऐप्लिकेशन को आसानी से ट्रांज़िशन करने में मदद मिलती है.
स्ट्रक्ट और एनम
XrInputModalityFlagsANDROID बिट, इनपुट के अलग-अलग तरीकों की पहचान करते हैं. इनका इस्तेमाल शायद किया जा रहा हो.
typedef XrFlags64 XrInputModalityFlagsANDROID;
XrInputModalityFlagsANDROID के लिए मान्य बिट, XrInputModalityFlagBitsANDROID से तय किए जाते हैं. इन्हें इस तरह से बताया गया है:
// Flag bits for XrInputModalityFlagsANDROID
static const XrInputModalityFlagsANDROID XR_INPUT_MODALITY_HEAD_BIT_ANDROID = 0x00000001;
static const XrInputModalityFlagsANDROID XR_INPUT_MODALITY_CONTROLLER_BIT_ANDROID = 0x00000002;
static const XrInputModalityFlagsANDROID XR_INPUT_MODALITY_HANDS_BIT_ANDROID = 0x00000004;
static const XrInputModalityFlagsANDROID XR_INPUT_MODALITY_MOUSE_BIT_ANDROID = 0x00000008;
static const XrInputModalityFlagsANDROID XR_INPUT_MODALITY_GAZE_AND_GESTURE_BIT_ANDROID = 0x00000010;
फ़्लैग की जानकारी
XR_INPUT_MODALITY_HEAD_BIT_ANDROID— इससे पता चलता है कि इनपुट के लिए, हेड ट्रैकिंग की सुविधा का इस्तेमाल किया जा रहा है.XR_INPUT_MODALITY_CONTROLLER_BIT_ANDROID— इससे पता चलता है कि इनपुट के लिए, एक्सआर कंट्रोलर के किसी इनपुट का इस्तेमाल किया जा रहा है.XR_INPUT_MODALITY_HANDS_BIT_ANDROID— इससे पता चलता है कि इनपुट मोड के तौर पर, हाथ ट्रैक करने की सुविधा का इस्तेमाल किया जा रहा है.XR_INPUT_MODALITY_MOUSE_BIT_ANDROID— इससे पता चलता है कि इनपुट मोड के तौर पर माउस इनपुट का इस्तेमाल किया जा रहा है.XR_INPUT_MODALITY_GAZE_AND_GESTURE_BIT_ANDROID— यह इनपुट का ऐसा तरीका है जिसमें आई ट्रैकिंग की सुविधा और हाथ ट्रैक करने की सुविधा, दोनों का इस्तेमाल किया जाता है.
XrRecommendedSettingsANDROID स्ट्रक्चर को इस तरह से तय किया गया है:
typedef struct XrRecommendedSettingsANDROID {
XrStructureType type;
void* next;
XrEnvironmentBlendMode blendMode;
float passthroughOpacity;
XrInputModalityFlagsANDROID activeInputModalities;
} XrRecommendedSettingsANDROID;
सदस्यों की जानकारी
type, इस स्ट्रक्चर का XrStructureType है.next,NULLहै या स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर है. OpenXR के मुख्य वर्शन या इस एक्सटेंशन में, इस तरह के स्ट्रक्चर के बारे में नहीं बताया गया है.blendModeएक XrEnvironmentBlendMode है. इससे ऐप्लिकेशन लॉन्च होने से ठीक पहले, डिफ़ॉल्ट एनवायरमेंट के ब्लेंड मोड का पता चलता है.passthroughOpacityएकfloatहै. इससे ऐप्लिकेशन लॉन्च होने से ठीक पहले, डिफ़ॉल्ट एनवायरमेंट के पासथ्रू की ओपैसिटी का पता चलता है. ओएसटी डिवाइसों के लिए, रनटाइम को यह वैल्यू (1.0 - dimming_value) पर सेट करना ज़रूरी है.activeInputModalities, XrInputModalityFlagsANDROID का बिटमास्क है. इससे ऐप्लिकेशन लॉन्च होने से ठीक पहले, डिफ़ॉल्ट एनवायरमेंट में इस्तेमाल किए जा रहे इनपुट मोड का पता चलता है.
सही इस्तेमाल (इंप्लिसिट)
- XrRecommendedSettingsANDROID का इस्तेमाल करने से पहले,
XR_ANDROID_recommended_settingsएक्सटेंशन को चालू करना ज़रूरी है -
typeकी वैल्यूXR_TYPE_RECOMMENDED_SETTINGS_ANDROIDहोनी चाहिए -
nextNULLया स्ट्रक्चर चेन में अगले स्ट्रक्चर का मान्य पॉइंटर होना चाहिए -
blendModeको XrEnvironmentBlendMode की मान्य वैल्यू होना चाहिए -
activeInputModalitiesXrInputModalityFlagBitsANDROID वैल्यू का मान्य कॉम्बिनेशन होना चाहिए -
activeInputModalitiesmust not be0
काम करने वाले एनवायरमेंट की स्थितियों की गिनती करना
कोई ऐप्लिकेशन यह तय कर सकता है कि सिस्टम में कौनसे ब्लेंड मोड और इनपुट मोडैलिटी स्टेट काम करते हैं. इसके लिए, xrGetSystemProperties को कॉल करते समय, xrEnumerateEnvironmentBlendModes का इस्तेमाल करना होगा और XrSystemInputModalityPropertiesANDROID स्ट्रक्चर के साथ XrSystemProperties को बढ़ाना होगा.
XrSystemInputModalityPropertiesANDROID स्ट्रक्चर को इस तरह से तय किया गया है:
typedef struct XrSystemInputModalityPropertiesANDROID {
XrStructureType type;
void* next;
XrInputModalityFlagsANDROID supportedInputModalities;
} XrSystemInputModalityPropertiesANDROID;
सदस्यों की जानकारी
type, इस स्ट्रक्चर का XrStructureType है.next,NULLहै या स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर है. OpenXR के मुख्य वर्शन या इस एक्सटेंशन में, इस तरह के स्ट्रक्चर के बारे में नहीं बताया गया है.supportedInputModalitiesएक या उससे ज़्यादा XrInputModalityFlagsANDROID है. इससे सिस्टम के साथ काम करने वाले इनपुट मोड के बारे में पता चलता है.
सही इस्तेमाल (इंप्लिसिट)
- XrSystemInputModalityPropertiesANDROID का इस्तेमाल करने से पहले,
XR_ANDROID_recommended_settingsएक्सटेंशन चालू करना ज़रूरी है -
typeकी वैल्यूXR_TYPE_SYSTEM_INPUT_MODALITY_PROPERTIES_ANDROIDहोनी चाहिए -
nextNULLया स्ट्रक्चर चेन में अगले स्ट्रक्चर का मान्य पॉइंटर होना चाहिए
सुझाई गई सेटिंग पाना (लॉन्च से पहले की डिफ़ॉल्ट एनवायरमेंट स्टेट)
XrResult xrGetRecommendedSettingsANDROID(
XrInstance instance,
XrSystemId systemId,
XrRecommendedSettingsANDROID* output);
पैरामीटर की जानकारी
instanceएक XrInstance हैंडल है, जिसे पहले xrCreateInstance की मदद से बनाया गया था.systemIdएकXrSystemIdहै, जिसे पहले xrGetSystem से फ़ेच किया गया था.output, XrRecommendedSettingsANDROID स्ट्रक्चर का पॉइंटर है. इसे डिफ़ॉल्ट एनवायरमेंट स्टेट के साथ आउटपुट किया जाता है.
सही इस्तेमाल (इंप्लिसिट)
- xrGetRecommendedSettingsANDROID को कॉल करने से पहले,
XR_ANDROID_recommended_settingsएक्सटेंशन को चालू करना ज़रूरी है -
instanceएक मान्य XrInstance हैंडल होना ज़रूरी है -
outputको XrRecommendedSettingsANDROID स्ट्रक्चर का पॉइंटर होना चाहिए
रिटर्न कोड
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SYSTEM_INVALID
सुझाई गई सेटिंग के लिए कोड का उदाहरण
यहां दिए गए कोड के उदाहरण से पता चलता है कि इनपुट के लिए इस्तेमाल किए जा सकने वाले मोड कैसे पाएं, सुझाई गई सेटिंग कैसे पाएं, और यह कैसे पक्का करें कि रिपोर्ट की गई सेटिंग सिस्टम के साथ काम करती हैं.
XrInstance instance; // Created at app startup
XrSystemId systemId; // previously initialized from xrGetSystem
XrViewConfigurationType viewType; // previously initialized to select desired view configuration
// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrGetRecommendedSettingsANDROID xrGetRecommendedSettingsANDROID; // previously initialized
XrSystemInputModalityPropertiesANDROID props = {
.type = XR_TYPE_SYSTEM_INPUT_MODALITY_PROPERTIES_ANDROID
};
XrSystemProperties base = {
.type = XR_TYPE_SYSTEM_PROPERTIES,
.next = &props
};
CHK_XR(xrGetSystemProperties(instance, systemId, &base));
uint32_t blendModeCount = 0;
CHK_XR(
xrEnumerateEnvironmentBlendModes(instance, systemId, viewType, 0, &blendModeCount, nullptr));
std::vector<XrEnvironmentBlendMode> supportedBlendModes(blendModeCount);
CHK_XR(
xrEnumerateEnvironmentBlendModes(
instance, systemId, viewType, blendModeCount, &blendModeCount, supportedBlendModes.data()));
XrRecommendedSettingsANDROID output = {
.type = XR_TYPE_RECOMMENDED_SETTINGS_ANDROID
};
XrResult result = xrGetRecommendedSettingsANDROID(instance, systemId, &output);
if (result == XR_SUCCESS) {
// We now know the current state of the default environment as recommended settings
bool correctBlendMode = false;
for(XrEnvironmentBlendMode blendMode : supportedBlendModes) {
if (blendMode == output.blendMode) {
correctBlendMode = true;
break;
}
}
assert(correctBlendMode);
assert((~props.supportedInputModalities & output.activeInputModalities) == 0);
}
नए निर्देश
नए स्ट्रक्चर
- XrRecommendedSettingsANDROID
XrSystemProperties को एक्सटेंड करना :
नए Enum
नए बिटमास्क
नए Enum कॉन्सटेंट
XR_ANDROID_RECOMMENDED_SETTINGS_EXTENSION_NAMEXR_ANDROID_recommended_settings_SPEC_VERSIONXrStructureType को एक्सटेंड करना :
XR_TYPE_RECOMMENDED_SETTINGS_ANDROIDXR_TYPE_SYSTEM_INPUT_MODALITY_PROPERTIES_ANDROID
समस्याएं
वर्शन इतिहास
तीसरा संशोधन, 16-03-2026 (सालार खान)
- इसे सार्वजनिक किया गया, इनपुट मोडैलिटी को फ़्लैग बिट बनाया गया, और एक्सटेंशन का नाम बदलकर
XR_ANDROID_recommended_settingsकिया गया.
- इसे सार्वजनिक किया गया, इनपुट मोडैलिटी को फ़्लैग बिट बनाया गया, और एक्सटेंशन का नाम बदलकर
दूसरा बदलाव, 28-03-2025 (सालार खान)
- ANDROIDX में बदला गया और passthroughOpacity को शामिल किया गया.
संशोधन 1, 18-02-2025 (सालार खान)
- शुरुआती वर्शन.