XR_ANDROID_প্রস্তাবিত_সেটিংস
নাম স্ট্রিং
XR_ANDROID_recommended_settings
এক্সটেনশন টাইপ
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
৪৫৫
সংশোধন
১
অনুমোদনের অবস্থা
অনুমোদিত নয়
এক্সটেনশন এবং সংস্করণ নির্ভরতা
সর্বশেষ সংশোধনের তারিখ
২০২৬-০৩-১৬
অবদানকারীরা
স্পেন্সার কুইন, গুগল
জ্যারেড ফাইন্ডার, গুগল
কেভিন মৌল, গুগল
নিহাব জৈন, গুগল
লেভানা চেন, গুগল
অ্যালভিন শি, গুগল
সালার খান, গুগল
সংক্ষিপ্ত বিবরণ
ব্লেন্ড মোড এবং ইনপুট মোডালিটির সমন্বয়ে ব্যবহারকারীর ডিফল্ট পরিবেশ বিভিন্ন অবস্থায় থাকতে পারে । এই এক্সটেনশনটি একটি মসৃণ রূপান্তর নিশ্চিত করার জন্য, অ্যাপ্লিকেশন চালু করার আগে ব্যবহারকারীর ডিফল্ট পরিবেশের অবস্থার সাথে সামঞ্জস্যপূর্ণ প্রস্তাবিত সেটিংস প্রদান করে।
স্ট্রাক্ট এবং এনাম
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 ডিভাইসগুলোর জন্য রানটাইমকে অবশ্যই এই মানটি (1.0 - dimming_value)-তে সেট করতে হবে। -
activeInputModalitiesহলো XrInputModalityFlagsANDROID- এর একটি বিটমাস্ক, যা অ্যাপ্লিকেশন চালু হওয়ার ঠিক আগে ডিফল্ট পরিবেশে ব্যবহৃত ইনপুট মোডালিটিগুলো নির্দেশ করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrRecommendedSettingsANDROID ব্যবহার করার আগে
XR_ANDROID_recommended_settingsএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_RECOMMENDED_SETTINGS_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
blendModeঅবশ্যই একটি বৈধ XrEnvironmentBlendMode মান হতে হবে। -
activeInputModalitiesঅবশ্যই XrInputModalityFlagBitsANDROID মানগুলির একটি বৈধ সমন্বয় হতে হবে। -
activeInputModalitiesঅবশ্যই0হবে না
সমর্থিত পরিবেশের অবস্থা গণনা করা
একটি অ্যাপ্লিকেশন xrEnumerateEnvironmentBlendModes ব্যবহার করে এবং xrGetSystemProperties কল করার সময় 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হলো xrGetSystem থেকে পূর্বে আনা একটিXrSystemId। -
outputহলো XrRecommendedSettingsANDROID struct-এর একটি পয়েন্টার, যা ডিফল্ট এনভায়রনমেন্ট স্টেটের সাথে আউটপুট করা হয়।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrGetRecommendedSettingsANDROID কল করার আগে
XR_ANDROID_recommended_settingsএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
instanceঅবশ্যই একটি বৈধ XrInstance হ্যান্ডেল হতে হবে -
outputঅবশ্যই একটি XrRecommendedSettingsANDROID স্ট্রাকচারের একটি পয়েন্টার হতে হবে।
রিটার্ন কোড
-
XR_SUCCESS
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_RUNTIME_FAILURE -
XR_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);
}
নতুন কমান্ড
নতুন কাঠামো
- Xrপ্রস্তাবিত সেটিংস অ্যান্ড্রয়েড
XrSystemProperties-এর সম্প্রসারণ :
নতুন এনাম
নতুন বিটমাস্ক
নতুন এনাম ধ্রুবক
-
XR_ANDROID_RECOMMENDED_SETTINGS_EXTENSION_NAME -
XR_ANDROID_recommended_settings_SPEC_VERSION XrStructureType সম্প্রসারণ :
-
XR_TYPE_RECOMMENDED_SETTINGS_ANDROID -
XR_TYPE_SYSTEM_INPUT_MODALITY_PROPERTIES_ANDROID
-
সমস্যা
সংস্করণ ইতিহাস
সংশোধন ৩, ২০২৬-০৩-১৬ (সালার খান)
- সর্বসাধারণের জন্য উন্মুক্ত করা হয়েছে, ইনপুট মোডালিটি ফ্ল্যাগ বিট তৈরি করা হয়েছে, এবং এক্সটেনশনের নাম পরিবর্তন করে
XR_ANDROID_recommended_settingsরাখা হয়েছে।
- সর্বসাধারণের জন্য উন্মুক্ত করা হয়েছে, ইনপুট মোডালিটি ফ্ল্যাগ বিট তৈরি করা হয়েছে, এবং এক্সটেনশনের নাম পরিবর্তন করে
সংশোধন ২, ২০২৫-০৩-২৮ (সালার খান)
- ANDROIDX-এ পরিবর্তন করা হয়েছে এবং passthroughOpacity অন্তর্ভুক্ত করা হয়েছে।
সংশোধন ১, ২০২৫-০২-১৮ (সালার খান)
- প্রাথমিক সংস্করণ।