XR_ANDROID_enumerate_system_extension_properties
নাম স্ট্রিং
XR_ANDROID_enumerate_system_extension_properties
এক্সটেনশন টাইপ
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
৭২৫
সংশোধন
১
অনুমোদনের অবস্থা
অনুমোদিত নয়
এক্সটেনশন এবং সংস্করণ নির্ভরতা
সর্বশেষ সংশোধনের তারিখ
২০২৬-০২-১১
আইপি স্ট্যাটাস
কোনো জ্ঞাত আইপি দাবি নেই।
অবদানকারীরা
স্পেন্সার কুইন, গুগল
নিহাব জৈন, গুগল
কেনি ভার্সেমার, গুগল
সংক্ষিপ্ত বিবরণ
এই এক্সটেনশনটি অ্যাপ্লিকেশনগুলিকে নির্ধারণ করতে সাহায্য করে যে বর্তমান সিস্টেম কনফিগারেশন কোন কোন এক্সটেনশন সমর্থন করে। কোনো এক্সটেনশন রানটাইম দ্বারা সমর্থিত হলেও, তা বর্তমান সিস্টেম হার্ডওয়্যার দ্বারা সমর্থিত নাও হতে পারে ।
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অ্যারের ধারণক্ষমতা, অথবা প্রয়োজনীয় ধারণক্ষমতা পুনরুদ্ধারের অনুরোধ বোঝাতে এর মান ০। -
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_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SYSTEM_INVALID -
XR_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()
);
সমস্যা
সংস্করণ ইতিহাস
সংস্করণ ১, ২০২৬-০৩-১৭ (কেনি ভার্কাইমার)
- প্রাথমিক সম্প্রসারণ সংস্করণ।