XR_ANDROID_recommended_settings
নামের স্ট্রিং
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 কন্ট্রোলার ইনপুট ব্যবহার করছে।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যা অ্যাপ্লিকেশন লঞ্চ করার ঠিক আগে ডিফল্ট এনভায়রনমেন্টের পাসথ্রু অস্বচ্ছতা নির্দেশ করে। OST ডিভাইসের জন্য রানটাইমকে অবশ্যই এই ভ্যালু (১.০ - dimming_value) হিসেবে সেট করতে হবে।activeInputModalitiesহল XrInputModalityFlagsANDROID-এর বিটমাস্ক যা অ্যাপ্লিকেশন লঞ্চ করার ঠিক আগে ডিফল্ট এনভায়রনমেন্টে ব্যবহার করা ইনপুট মোডালিটি নির্দেশ করে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrRecommendedSettingsANDROID ব্যবহার করার আগে
XR_ANDROID_recommended_settingsএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_RECOMMENDED_SETTINGS_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে -
blendModeঅবশ্যই একটি সঠিক XrEnvironmentBlendMode মান হতে হবে -
activeInputModalitiesঅবশ্যই XrInputModalityFlagBitsANDROID ভ্যালুর সঠিক কম্বিনেশন হতে হবে -
activeInputModalitiesঅবশ্যই0হতে পারবে না
কাজ করে এমন এনভায়রনমেন্টের স্ট্যাটাস গণনা করা হচ্ছে
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হতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে
সাজেস্ট করা সেটিংস পান (প্রি-লঞ্চ ডিফল্ট এনভায়রনমেন্ট স্টেট)
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
সমস্যা
ভার্সনের ইতিহাস
রিভিশন ৩, ১৬-০৩-২০২৬ (সালার খান)
- পাবলিক হিসেবে প্রোমোট করা হয়েছে, ইনপুট মডালিটি ফ্ল্যাগ বিট তৈরি করা হয়েছে এবং এক্সটেনশনের নাম পরিবর্তন করে
XR_ANDROID_recommended_settingsকরা হয়েছে।
- পাবলিক হিসেবে প্রোমোট করা হয়েছে, ইনপুট মডালিটি ফ্ল্যাগ বিট তৈরি করা হয়েছে এবং এক্সটেনশনের নাম পরিবর্তন করে
সংশোধন ২, ২৮-০৩-২০২৫ (সালার খান)
- ANDROIDX-এ পরিবর্তন করুন এবং passthroughOpacity অন্তর্ভুক্ত করুন।
রিভিশন ১, ১৮-০২-২০২৫ (সালার খান)
- প্রাথমিক ভার্সন।