XR_ANDROID_spatial_annotation_tracking
নাম স্ট্রিং
XR_ANDROID_spatial_annotation_tracking
এক্সটেনশন টাইপ
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
৭৯৫
সংশোধন
১
অনুমোদনের অবস্থা
অনুমোদিত নয়
এক্সটেনশন এবং সংস্করণ নির্ভরতা
XR_EXT_spatial_entity
এবং
XR_EXT_spatial_image_tracking
সর্বশেষ সংশোধনের তারিখ
২০২৬-০১-১২
আইপি স্ট্যাটাস
কোনো জ্ঞাত আইপি দাবি নেই।
অবদানকারীরা
লেভানা চেন, গুগল
ক্রিস্টোফার ফেইল, গুগল
মার্টিন সান্ডারমেয়ার, গুগল
ডেভিড জোসেফ ট্যান, গুগল
জ্যারেড ফাইন্ডার, গুগল
নিহাব জৈন, গুগল
সংক্ষিপ্ত বিবরণ
এই এক্সটেনশনটি XR_EXT_spatial_entity এক্সটেনশনের জন্য দৃশ্যের বিভিন্ন অ্যানোটেশন ট্র্যাক করার ক্ষমতা প্রদান করে। এটি অ্যাপ্লিকেশনগুলিকে রানটাইম রেফারেন্স দ্বারা সংজ্ঞায়িত ভৌত বা ভার্চুয়াল বস্তুর উপর ওভারলে স্থাপন করতে সক্ষম করে।
এই এক্সটেনশনটি "কোয়াড" নামক একটি মৌলিক অ্যানোটেশন টাইপ প্রদান করে, যা হলো ঠিক ৪টি বাহুবিশিষ্ট একটি বহুভুজ, অর্থাৎ উত্তল চতুর্ভুজ, যা একটি রানটাইম রেফারেন্সের মধ্যে একটি সাধারণীকৃত ২ডি বাউন্ডিং বক্সকে প্রতিনিধিত্ব করে। একটি ট্র্যাক করা কোয়াড অ্যানোটেশনকে একটি স্থানিক সত্তা হিসেবে উপস্থাপন করা হয়, যার নিম্নলিখিত উপাদানগুলো থাকে:
-
XR_SPATIAL_COMPONENT_TYPE_ANNOTATION_QUAD_ANDROID
অ্যাপ্লিকেশনগুলি সাধারণত নিম্নলিখিত প্যাটার্নগুলিতে স্পেশিয়াল অ্যানোটেশন ট্র্যাকিং এক্সটেনশনটি ব্যবহার করতে পারে :
- একটি অ্যাপ্লিকেশন প্রথমে XrSpatialReferenceCacheANDROID- এর একটি হ্যান্ডেল তৈরি করে, যা প্রদত্ত উৎস থেকে রানটাইম রেফারেন্স রেকর্ড করা শুরু করে।
- এরপর অ্যাপ্লিকেশনটি XrSpatialReferenceImageEXT- এর একটি রানটাইম রেফারেন্স গ্রহণ করে এবং রেফারেন্স ক্যাশের সময়কালের মধ্যে সেই রেফারেন্সের অভ্যন্তরে একটি কাঙ্ক্ষিত অ্যানোটেশন সংজ্ঞায়িত করে।
- এরপর অ্যাপ্লিকেশনটি XrSpatialCapabilityConfigurationAnnotationTrackingANDROID দ্বারা প্রদত্ত XrSpatialReferenceImageEXT- এর উপর ভিত্তি করে একটি XrSpatialContextEXT হ্যান্ডেল তৈরি করে।
- অ্যাপ্লিকেশনটি মেমরি ব্যবহার কমাতে রানটাইম রেফারেন্স রেকর্ডিং বন্ধ করার জন্য XrSpatialReferenceCacheANDROID হ্যান্ডেলটি নষ্ট করে দিতে পারে , অথবা ইনিশিয়ালাইজেশনের ফলাফল নিশ্চিত করার জন্য
XR_TYPE_EVENT_DATA_SPATIAL_ANNOTATION_TRACKING_ANDROIDইভেন্টের জন্য অপেক্ষা করতে পারে। - এরপর অ্যাপ্লিকেশনটি অ্যানোটেশনটির প্রারম্ভিক ফলাফল নিশ্চিত করার জন্য
XR_TYPE_EVENT_DATA_SPATIAL_ANNOTATION_TRACKING_ANDROIDইভেন্টটি পুল করে। - প্রারম্ভিককরণ সফল হলে, অ্যাপ্লিকেশনটি অ্যানোটেশনটি ট্র্যাক করার জন্য
XR_TYPE_EVENT_DATA_SPATIAL_DISCOVERY_RECOMMENDED_EXTইভেন্টটি গ্রহণ করতে পারে । - যদি প্রারম্ভিককরণ ব্যর্থ হয়, তবে অ্যাপ্লিকেশনটি ইভেন্টে ফেরত আসা ত্রুটি কোড ব্যবহার করে ব্যর্থতার কারণ নির্ধারণ করতে পারে এবং একটি নতুন অ্যানোটেশন শুরু করার জন্য বিদ্যমান XrSpatialContextEXT হ্যান্ডেলটি ধ্বংস করে দিতে পারে।
- প্রারম্ভিক ফলাফল নির্বিশেষে, অ্যাপ্লিকেশনটি ইভেন্ট পাওয়ার পর মেমরি ব্যবহার কমাতে ইমেজ বাফার মুক্ত করতে পারে ।
- অ্যাপ্লিকেশনটি স্থানিক সত্তার অ্যাক্সেস প্যাটার্ন অনুসারে অ্যানোটেশনগুলি আবিষ্কার করে এবং কোয়েরি করে।
- অ্যাপ্লিকেশনটি একটি বৈধ XrSpatialReferenceCacheANDROID- এর সময়কালে একটি নতুন রেফারেন্সের মধ্যে থাকা অ্যানোটেশনগুলি ট্র্যাক করার জন্য অতিরিক্ত XrSpatialContextEXT হ্যান্ডেল তৈরি করতে পারে ।
- অ্যাপ্লিকেশনটি রানটাইমে গতিশীলভাবে শনাক্তযোগ্য ও অনুসরণযোগ্য অ্যানোটেশনের সংখ্যা কমাতে XrSpatialContextEXT হ্যান্ডেলগুলো ধ্বংস করতে পারে ।
রানটাইম সাপোর্ট
একটি রানটাইমকে অবশ্যই xrEnumerateSpatialCapabilitiesEXT ব্যবহার করে নিম্নলিখিত ক্যাপাবিলিটিটি তালিকাভুক্ত করার মাধ্যমে অ্যানোটেশন ট্র্যাকিং ক্যাপাবিলিটির জন্য তার সমর্থন ঘোষণা করতে হবে:
-
XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID
যখন রানটাইম অ্যানোটেশন ট্র্যাকিং ক্ষমতা সমর্থন করে:
- এটিকে অবশ্যই অন্তত একটি অ্যানোটেশন কম্পোনেন্ট সমর্থন করতে হবে , যার জন্য xrEnumerateSpatialCapabilityComponentTypesEXT- এর মাধ্যমে সমর্থিত অ্যানোটেশন কম্পোনেন্টগুলোর তালিকা দেখতে হবে।
- এটিকে অবশ্যই XrSpatialReferenceImageFormatEXT- এর অন্তত একটিকে সমর্থন করতে হবে , যার জন্য
capabilityসেটিংXR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROIDএ সেট করে xrEnumerateSpatialReferenceImageFormatsEXT- এর মাধ্যমে সমর্থিত রেফারেন্স ফরম্যাটগুলোর তালিকা দেখাতে হবে। - এটিকে অবশ্যই XrSpatialAnnotationReferenceSourceANDROID- এর অন্তত একটিকে সমর্থন করতে হবে , যার জন্য
capabilityসেটিংXR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROIDএ সেট করে xrEnumerateSpatialAnnotationReferenceSourcesANDROID- এর মাধ্যমে সমর্থিত রেফারেন্স সোর্সগুলোর তালিকা দেখাতে হবে।
xrEnumerateSpatialAnnotationReferenceSourcesANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
XrResult xrEnumerateSpatialAnnotationReferenceSourcesANDROID(
XrInstance instance,
XrSystemId systemId,
XrSpatialCapabilityEXT capability,
uint32_t sourceCapacityInput,
uint32_t* sourceCountOutput,
XrSpatialAnnotationReferenceSourceANDROID* sources);
প্যারামিটার বিবরণ
-
instanceহলো একটি XrInstance- এর হ্যান্ডেল। -
systemIdহলো সেইXrSystemIdযার রেফারেন্স উৎসগুলো গণনা করা হবে। -
capabilityহলো XrSpatialCapabilityEXT , যার জন্য রেফারেন্স উৎসগুলো গণনা করা হবে। -
sourceCapacityInputহলোsourcesঅ্যারের ধারণক্ষমতা, অথবা প্রয়োজনীয় ধারণক্ষমতা পুনরুদ্ধারের অনুরোধ বোঝাতে এর মান ০ হবে। -
sourceCountOutputহলো উৎসের সংখ্যা, অথবাsourceCapacityInputঅপর্যাপ্ত হলে প্রয়োজনীয় ধারণক্ষমতা। -
sourcesহলো XrSpatialAnnotationReferenceSourceANDROID- এর একটি অ্যারে।sourceCapacityInput0 হলে এটিNULLহতে পারে । - প্রয়োজনীয়
sourcesসাইজ নির্ধারণের বিস্তারিত বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
অ্যাপ্লিকেশনটি xrEnumerateSpatialAnnotationReferenceSourcesANDROID ব্যবহার করে একটি প্রদত্ত XrSystemId দ্বারা সমর্থিত রেফারেন্স সোর্সগুলির তালিকা গণনা করতে পারে ।
রানটাইম সেইসব রেফারেন্স সোর্স গণনা করবে না, instance , যেগুলোর এক্সটেনশন সক্রিয় করা নেই।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrEnumerateSpatialAnnotationReferenceSourcesANDROID কল করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
instanceঅবশ্যই একটি বৈধ XrInstance হ্যান্ডেল হতে হবে -
capabilityঅবশ্যই একটি বৈধ XrSpatialCapabilityEXT মান হতে হবে -
sourceCountOutputঅবশ্যই একটিuint32_tমানের পয়েন্টার হতে হবে। - যদি
sourceCapacityInput0না হয়, তাহলেsourcesঅবশ্যইsourceCapacityInputXrSpatialAnnotationReferenceSourceANDROID মানগুলোর একটি অ্যারের পয়েন্টার হতে হবে।
রিটার্ন কোড
-
XR_SUCCESS
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SIZE_INSUFFICIENT -
XR_ERROR_SPATIAL_CAPABILITY_UNSUPPORTED_EXT -
XR_ERROR_SYSTEM_INVALID -
XR_ERROR_VALIDATION_FAILURE
typedef enum XrSpatialAnnotationReferenceSourceANDROID {
XR_SPATIAL_ANNOTATION_REFERENCE_SOURCE_CAMERA_ANDROID = 0,
XR_SPATIAL_ANNOTATION_REFERENCE_SOURCE_MEDIA_PROJECTION_ANDROID = 1,
XR_SPATIAL_ANNOTATION_REFERENCE_SOURCE_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrSpatialAnnotationReferenceSourceANDROID;
XrSpatialAnnotationReferenceSourceANDROID এনুমারেশনটি সেই রেফারেন্সের উৎস বর্ণনা করে, যা একটি অ্যানোটেশনের মেটাডেটা সরবরাহ করে।
এনামগুলোর নিম্নলিখিত অর্থ রয়েছে:
এনামের বিবরণ
XR_SPATIAL_ANNOTATION_REFERENCE_SOURCE_CAMERA_ANDROID
রেফারেন্স ইমেজ হলো অ্যান্ড্রয়েড ক্যামেরা এপিআই থেকে আউটপুট হওয়া একটি অপরিবর্তিত ছবি, যেমন Camera2 CameraDevice-এর সাথে যুক্ত ImageReader থেকে প্রাপ্ত একটি Image অথবা CameraX-এর সাথে যুক্ত ImageAnalysis থেকে প্রাপ্ত একটি ImageProxy। এটি সাধারণত সামনের দিকে থাকা আরজিবি (RGB) ক্যামেরাগুলোর মধ্যে একটি হয়ে থাকে।
XR_SPATIAL_ANNOTATION_REFERENCE_SOURCE_MEDIA_PROJECTION_ANDROID
রেফারেন্স ইমেজ হলো অ্যান্ড্রয়েড মিডিয়াপ্রজেকশন এপিআই থেকে আউটপুট হওয়া একটি অপরিবর্তিত ছবি, যেমন মিডিয়াপ্রজেকশন ভার্চুয়াল ডিসপ্লের সাথে যুক্ত একটি ইমেজরিডার থেকে প্রাপ্ত ছবি। এতে ভার্চুয়াল এবং বাস্তব উভয় ধরনের কন্টেন্টই অন্তর্ভুক্ত থাকতে পারে।
XrSystemSpatialAnnotationPropertiesANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrSystemSpatialAnnotationPropertiesANDROID {
XrStructureType type;
void* next;
uint32_t referenceCacheTimespan;
uint32_t maxReferencePixelWidth;
uint32_t maxReferencePixelHeight;
uint32_t maxReferenceCount;
uint32_t maxAnnotationCount;
} XrSystemSpatialAnnotationPropertiesANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। -
referenceCacheTimespanএকটি বৈধ XrSpatialReferenceCacheANDROID হ্যান্ডেলের সময়কালকে সেকেন্ডে নির্দেশ করে। -
maxReferencePixelWidthপিক্সেল এককে রেফারেন্স ইমেজের প্রান্তের সর্বোচ্চ প্রস্থ নির্দেশ করে। -
maxReferencePixelHeightপিক্সেল এককে রেফারেন্স ইমেজের প্রান্তের সর্বোচ্চ উচ্চতা নির্দেশ করে। -
maxReferenceCountএকই সময়ে বরাদ্দ করা রেফারেন্স ইমেজের সর্বোচ্চ সংখ্যা নির্দেশ করে। -
maxAnnotationCountএকই সময়ে ট্র্যাক করা অ্যানোটেশনের সর্বোচ্চ সংখ্যা নির্দেশ করে।
যখন রানটাইম অ্যানোটেশন ট্র্যাকিং ক্ষমতা সমর্থন করে, তখন একটি অ্যাপ্লিকেশন xrGetSystemProperties কল করার সময় XrSystemProperties- এর সাথে একটি XrSystemSpatialAnnotationPropertiesANDROID স্ট্রাকচার চেইন করে প্রাসঙ্গিক সিস্টেম প্রোপার্টিগুলো পরিদর্শন করতে পারে ।
যদি XrSpatialCapabilityConfigurationAnnotationTrackingANDROID :: reference XrSpatialReferenceImageEXT :: width maxReferencePixelWidth অতিক্রম করে, তাহলে xrCreateSpatialContextAsyncEXT কল করার সময় রানটাইমকে অবশ্যই XR_ERROR_VALIDATION_FAILURE রিটার্ন করতে হবে।
যদি XrSpatialCapabilityConfigurationAnnotationTrackingANDROID :: reference XrSpatialReferenceImageEXT :: height maxReferencePixelHeight অতিক্রম করে, তাহলে xrCreateSpatialContextAsyncEXT কল করার সময় রানটাইমকে অবশ্যই XR_ERROR_VALIDATION_FAILURE রিটার্ন করতে হবে।
যদি XrSpatialCapabilityConfigurationAnnotationTrackingANDROID :: time , XrSpatialReferenceCacheANDROID :: cache এর সময়সীমার বাইরে চলে যায়, তাহলে xrCreateSpatialContextAsyncEXT কল করার সময় রানটাইমকে অবশ্যই XR_ERROR_TIME_INVALID রিটার্ন করতে হবে। অ্যাপ্লিকেশনটি XrSpatialReferenceCacheANDROID- এর সময়সীমার মধ্যে একটি নতুন রেফারেন্স দিয়ে XrSpatialContextEXT হ্যান্ডেলটি পুনরায় তৈরি করতে পারে ।
যদি বরাদ্দকৃত রেফারেন্স ইমেজের সংখ্যা maxReferenceCount অতিক্রম করে, তাহলে রানটাইমকে অবশ্যই XR_ERROR_LIMIT_REACHED রিটার্ন করতে হবে এবং XrEventDataSpatialAnnotationTrackingANDROID :: initializationResult এর মাধ্যমে ইনিশিয়ালাইজেশন ব্যর্থতা নির্দেশ করতে হবে। অপেক্ষমান ইনিশিয়ালাইজেশন সম্পন্ন হওয়ার পর অ্যাপ্লিকেশনটি XrSpatialContextEXT হ্যান্ডেলটি বাতিল করে আবার চেষ্টা করতে পারে ।
সক্রিয় অ্যানোটেশনের সংখ্যা maxAnnotationCount অতিক্রম করলে, xrCreateSpatialContextAsyncEXT কল করার সময় রানটাইমকে অবশ্যই XR_ERROR_VALIDATION_FAILURE রিটার্ন করতে হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrSystemSpatialAnnotationPropertiesANDROID ব্যবহার করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_SYSTEM_SPATIAL_ANNOTATION_PROPERTIES_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে।
রানটাইম রেফারেন্স ক্যাশে
XR_DEFINE_HANDLE(XrSpatialReferenceCacheANDROID)
XrSpatialReferenceCacheANDROID হ্যান্ডেলটি একটি নির্দিষ্ট উৎস থেকে রেকর্ড করা রানটাইম রেফারেন্সের একটি ক্যাশকে প্রতিনিধিত্ব করে।
xrCreateSpatialReferenceCacheAsyncANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateSpatialReferenceCacheAsyncANDROID(
XrSession session,
const XrSpatialReferenceCacheCreateInfoANDROID* createInfo,
XrFutureEXT* future);
প্যারামিটার বিবরণ
-
sessionএকটি XrSession , যেখানে রেফারেন্স ক্যাশে সক্রিয় থাকবে। -
createInfoহলো XrSpatialReferenceCacheCreateInfoANDROID- এর একটি পয়েন্টার, যা রেফারেন্স ক্যাশ প্যারামিটারগুলো নির্দিষ্ট করতে ব্যবহৃত হয়। -
futureহলো একটিXrFutureEXTএর আউটপুট হ্যান্ডেলের দিকে নির্দেশকারী একটি পয়েন্টার।
অ্যাপ্লিকেশনটি xrCreateSpatialReferenceCacheAsyncANDROID কল করার মাধ্যমে একটি XrSpatialReferenceCacheANDROID হ্যান্ডেল তৈরি করতে পারে । ট্র্যাকিং সার্ভিসগুলো ইনিশিয়ালাইজ করতে রানটাইমের কিছুটা সময় লাগতে পারে । এরপর অ্যাপ্লিকেশনটি এই অ্যাসিঙ্ক্রোনাস অপারেশনটির সমাপ্তি পরীক্ষা করার জন্য বারবার xrCreateSpatialReferenceCacheCompleteANDROID কল করতে পারে ।
যদি xrEnumerateSpatialCapabilitiesEXT দ্বারা XrSpatialReferenceCacheCreateInfoANDROID :: capability তালিকাভুক্ত না থাকে, তাহলে রানটাইমকে অবশ্যই XR_ERROR_SPATIAL_CAPABILITY_UNSUPPORTED_EXT রিটার্ন করতে হবে।
প্রদত্ত ক্যাপাবিলিটির জন্য xrEnumerateSpatialAnnotationReferenceSourcesANDROID দ্বারা XrSpatialReferenceCacheCreateInfoANDROID :: source তালিকাভুক্ত না থাকলে, রানটাইমকে অবশ্যই XR_ERROR_FEATURE_UNSUPPORTED রিটার্ন করতে হবে।
অ্যাপ্লিকেশনটি একটি নির্দিষ্ট ক্যাপাবিলিটির জন্য প্রতিটি সোর্স থেকে কেবল একটি হ্যান্ডেল তৈরি করতে পারে । অন্যথায়, রানটাইমকে অবশ্যই XR_ERROR_LIMIT_REACHED রিটার্ন করতে হবে।
এরপর অ্যাপ্লিকেশনটি একটি নতুন XrSpatialContextEXT হ্যান্ডেল কনফিগার করার জন্য XrSpatialReferenceCacheANDROID হ্যান্ডেলের সময়কালে রানটাইম রেফারেন্সগুলো ক্যাপচার করতে পারে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrCreateSpatialReferenceCacheAsyncANDROID কল করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে। -
createInfoঅবশ্যই একটি বৈধ XrSpatialReferenceCacheCreateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে। -
futureঅবশ্যই একটিXrFutureEXTমানের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে।
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FEATURE_UNSUPPORTED -
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_LIMIT_REACHED -
XR_ERROR_OUT_OF_MEMORY -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SESSION_LOST -
XR_ERROR_SPATIAL_CAPABILITY_UNSUPPORTED_EXT -
XR_ERROR_VALIDATION_FAILURE
XrSpatialReferenceCacheCreateInfoANDROID স্ট্রাকচারটি নিম্নরূপে সংজ্ঞায়িত করা হয়:
typedef struct XrSpatialReferenceCacheCreateInfoANDROID {
XrStructureType type;
const void* next;
XrSpatialCapabilityEXT capability;
XrSpatialAnnotationReferenceSourceANDROID source;
} XrSpatialReferenceCacheCreateInfoANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো স্ট্রাকচার সংজ্ঞায়িত করা নেই। -
capabilityহলো একটি XrSpatialCapabilityEXT যা বর্ণনা করে কোন capability-র জন্য রেফারেন্স ক্যাশে তৈরি করা হয়েছে। -
sourceহলো একটি XrSpatialAnnotationReferenceSourceANDROID যা রেফারেন্স ক্যাশের উৎস বর্ণনা করে।
XrSpatialReferenceCacheCreateInfoANDROID স্ট্রাকচারটি একটি XrSpatialReferenceCacheANDROID হ্যান্ডেল তৈরি করার জন্য প্রয়োজনীয় তথ্য বর্ণনা করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrSpatialReferenceCacheCreateInfoANDROID ব্যবহার করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_SPATIAL_REFERENCE_CACHE_CREATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
capabilityঅবশ্যই একটি বৈধ XrSpatialCapabilityEXT মান হতে হবে -
sourceঅবশ্যই একটি বৈধ XrSpatialAnnotationReferenceSourceANDROID মান হতে হবে।
xrCreateSpatialReferenceCacheCompleteANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateSpatialReferenceCacheCompleteANDROID(
XrSession session,
XrFutureEXT future,
XrCreateSpatialReferenceCacheCompletionANDROID* completion);
প্যারামিটার বিবরণ
-
sessionহলো সেই XrSession যা পূর্বে xrCreateSpatialReferenceCacheAsyncANDROID ::session-এ পাস করা হয়েছিল। -
futureহলো xrCreateSpatialReferenceCacheAsyncANDROID ::futureথেকে প্রাপ্তXrFutureEXT। -
completionহলো XrCreateSpatialReferenceCacheCompletionANDROID- এর একটি পয়েন্টার।
অ্যাপ্লিকেশনটি xrCreateSpatialReferenceCacheAsyncANDROID দ্বারা শুরু করা অ্যাসিঙ্ক্রোনাস অপারেশনটির সমাপ্তির জন্য অপেক্ষা করতে xrCreateSpatialReferenceCacheCompleteANDROID কল করতে পারে ।
যদি future রেডি অবস্থায় না থাকে, তাহলে রানটাইমকে অবশ্যই XR_ERROR_FUTURE_PENDING_EXT রিটার্ন করতে হবে। যদি future ইতিমধ্যে কমপ্লিট বা ক্যানসেল করা হয়ে থাকে, তাহলে রানটাইমকে অবশ্যই XR_ERROR_FUTURE_INVALID_EXT রিটার্ন করতে হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrCreateSpatialReferenceCacheCompleteANDROID কল করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে। -
completionঅবশ্যই একটি XrCreateSpatialReferenceCacheCompletionANDROID স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে।
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FEATURE_UNSUPPORTED -
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_FUTURE_INVALID_EXT -
XR_ERROR_FUTURE_PENDING_EXT -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_LIMIT_REACHED -
XR_ERROR_OUT_OF_MEMORY -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SESSION_LOST -
XR_ERROR_VALIDATION_FAILURE
XrCreateSpatialReferenceCacheCompletionANDROID স্ট্রাকচারটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrCreateSpatialReferenceCacheCompletionANDROID {
XrStructureType type;
void* next;
XrResult futureResult;
XrSpatialReferenceCacheANDROID referenceCache;
} XrCreateSpatialReferenceCacheCompletionANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো স্ট্রাকচার সংজ্ঞায়িত করা নেই। -
futureResultহলো রেফারেন্স ক্যাশে তৈরির অপারেশনের XrResult । - অপারেশনটি সফল হলে
referenceCacheহলো XrSpatialReferenceCacheANDROID হ্যান্ডেল।
ভবিষ্যতের রিটার্ন কোড
futureResult মান:
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FEATURE_UNSUPPORTED -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_SESSION_LOST -
XR_ERROR_OUT_OF_MEMORY -
XR_ERROR_LIMIT_REACHED
যদি futureResult একটি সফলতার কোড হয়, তাহলে রানটাইমকে অবশ্যই একটি বৈধ referenceCache হ্যান্ডেল ফেরত দিতে হবে। যদি referenceCache বৈধ হয়, তবে তা শুধুমাত্র xrCreateSpatialReferenceCacheAsyncANDROID :: session এর জীবনকাল পর্যন্ত অথবা অ্যাপ্লিকেশনটি xrDestroySpatialReferenceCacheANDROID কমান্ডের মাধ্যমে হ্যান্ডেলটি ধ্বংস না করা পর্যন্ত বৈধ থাকবে, দুটির মধ্যে যেটি আগে ঘটবে।
যখন referenceCache বৈধ হয়, তখন এটি XrSystemSpatialAnnotationPropertiesANDROID :: referenceCacheTimespan এর মধ্যে ক্যাশেগুলো রেকর্ড করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrCreateSpatialReferenceCacheCompletionANDROID ব্যবহার করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_CREATE_SPATIAL_REFERENCE_CACHE_COMPLETION_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
futureResultঅবশ্যই একটি বৈধ XrResult মান হতে হবে -
referenceCacheঅবশ্যই একটি বৈধ XrSpatialReferenceCacheANDROID হ্যান্ডেল হতে হবে।
xrDestroySpatialReferenceCacheANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
XrResult xrDestroySpatialReferenceCacheANDROID(
XrSpatialReferenceCacheANDROID cacheHandle);
প্যারামিটার বিবরণ
-
cacheHandleহলো একটি XrSpatialReferenceCacheANDROID যা পূর্বে xrCreateSpatialReferenceCacheAsyncANDROID দ্বারা তৈরি করা হয়েছিল।
স্পেশিয়াল কনটেক্সট তৈরি সম্পন্ন হলে, অ্যাপ্লিকেশনটি cacheHandle হ্যান্ডেল এবং এর অধীনস্থ রিসোর্সসমূহ মুক্ত করার জন্য xrDestroySpatialReferenceCacheANDROID ফাংশনটি কল করতে পারে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrDestroySpatialReferenceCacheANDROID কল করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
cacheHandleঅবশ্যই একটি বৈধ XrSpatialReferenceCacheANDROID হ্যান্ডেল হতে হবে।
থ্রেড নিরাপত্তা
-
cacheHandleএবং এর যেকোনো চাইল্ড হ্যান্ডেলে অ্যাক্সেস অবশ্যই বাহ্যিকভাবে সিঙ্ক্রোনাইজড হতে হবে।
রিটার্ন কোড
-
XR_SUCCESS
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID
কনফিগারেশন
XrSpatialCapabilityConfigurationAnnotationTrackingANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrSpatialCapabilityConfigurationAnnotationTrackingANDROID {
XrStructureType type;
const void* next;
XrSpatialCapabilityEXT capability;
uint32_t enabledComponentCount;
const XrSpatialComponentTypeEXT* enabledComponents;
XrSpatialReferenceCacheANDROID cache;
XrTime time;
XrSpatialReferenceImageEXT reference;
} XrSpatialCapabilityConfigurationAnnotationTrackingANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। -
capabilityহলো একটি XrSpatialCapabilityEXT এবং এটি অবশ্যইXR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROIDহতে হবে। -
enabledComponentCountহলো একটিuint32_tযাenabledComponentsঅ্যারের উপাদান সংখ্যা নির্দেশ করে। -
enabledComponentsহলো XrSpatialComponentTypeEXT- এর একটি অ্যারের পয়েন্টার। -
cacheহলো একটি XrSpatialReferenceCacheANDROID যাreferenceকনফিগারেশনের জন্য রানটাইম রেফারেন্স রেকর্ড করতে পূর্বে তৈরি করা হয়েছিল। -
timeহলো সেইXrTime, যে সময়েreferenceক্যাপচার করা হয়। -
referenceহলো একটি XrSpatialReferenceImageEXT, যার পরবর্তী পয়েন্টারের সাথে অ্যানোটেশনগুলো শৃঙ্খলিত থাকে।
অ্যাপ্লিকেশনগুলি XrSpatialContextCreateInfoEXT :: capabilityConfigs -এ XrSpatialCapabilityConfigurationAnnotationTrackingANDROID স্ট্রাকচারের একটি পয়েন্টার যোগ করে XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID স্পেশিয়াল ক্যাপাবিলিটি সক্রিয় করতে পারে ।
যদি capability XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID না হয়, তাহলে রানটাইমকে অবশ্যই XR_ERROR_VALIDATION_FAILURE রিটার্ন করতে হবে।
যদি reference কোনো অ্যানোটেশন না থাকে, তাহলে রানটাইমকে অবশ্যই XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT রিটার্ন করতে হবে।
যদি অ্যানোটেশন কম্পোনেন্টটি enabledComponents এ তালিকাভুক্ত থাকে কিন্তু reference সাথে কোনো সংশ্লিষ্ট অ্যানোটেশন যুক্ত না থাকে, তাহলে রানটাইমকে অবশ্যই XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT রিটার্ন করতে হবে।
xrCreateSpatialContextAsyncEXT- এ পাস করা XrSession- এর মালিকানাধীন cache না থাকলে, রানটাইমকে অবশ্যই XR_ERROR_VALIDATION_FAILURE রিটার্ন করতে হবে।
cache সময়সীমার বাইরে time চলে গেলে রানটাইমকে অবশ্যই XR_ERROR_TIME_INVALID রিটার্ন করতে হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrSpatialCapabilityConfigurationAnnotationTrackingANDROID ব্যবহার করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_ANNOTATION_TRACKING_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
capabilityঅবশ্যই একটি বৈধ XrSpatialCapabilityEXT মান হতে হবে -
enabledComponentsঅবশ্যইenabledComponentCountসংখ্যক বৈধ XrSpatialComponentTypeEXT মানের একটি অ্যারের পয়েন্টার হতে হবে। -
cacheঅবশ্যই একটি বৈধ XrSpatialReferenceCacheANDROID হ্যান্ডেল হতে হবে। -
referenceঅবশ্যই একটি বৈধ XrSpatialReferenceImageEXT স্ট্রাকচার হতে হবে। -
enabledComponentCountপ্যারামিটারটি অবশ্যই0থেকে বড় হতে হবে।
টীকা ট্র্যাকিং ইভেন্ট
XrEventDataSpatialAnnotationTrackingANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrEventDataSpatialAnnotationTrackingANDROID {
XrStructureType type;
const void* next;
XrSpatialContextEXT spatialContext;
uint32_t annotationIndex;
XrResult initializationResult;
} XrEventDataSpatialAnnotationTrackingANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। -
spatialContextহলো সেই XrSpatialContextEXT যার জন্য অ্যানোটেশন ট্র্যাকিং সক্রিয় করা হয়েছে। -
annotationIndexXrSpatialCapabilityConfigurationAnnotationTrackingANDROID ::referenceএর সাথে যুক্ত অ্যানোটেশন অ্যারের ইনডেক্সকে ম্যাপ করে। -
initializationResultঅ্যানোটেশনটির প্রারম্ভিক ফলাফল নির্দেশ করে। যদি এটিXR_SUCCESSনা হয়, তবে অ্যাপ্লিকেশনটি অ্যানোটেশনটি পুনরায় শুরু করার জন্য XrSpatialContextEXT হ্যান্ডেলটি ধ্বংস করে আবার তৈরি করতে পারে , অথবা অন্যান্য অ্যানোটেশন ট্র্যাক করার জন্যspatialContextব্যবহার করা চালিয়ে যেতে পারে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrEventDataSpatialAnnotationTrackingANDROID ব্যবহার করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_EVENT_DATA_SPATIAL_ANNOTATION_TRACKING_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে।
প্রতিটি অ্যানোটেশনের ইনিশিয়ালাইজেশন সম্পন্ন হয়েছে তা বোঝানোর জন্য রানটাইমকে অবশ্যই XrEventDataSpatialAnnotationTrackingANDROID- টি পূরণ করতে হবে। ইনিশিয়ালাইজেশনের ফলাফল যাই হোক না কেন, ইভেন্টটি পাওয়ার পর অ্যাপ্লিকেশনটি মেমরি ব্যবহার কমাতে ইমেজ বাফারটি রিলিজ করতে পারে ।
অ্যানোটেশনটি সফলভাবে ইনিশিয়ালাইজ হলে রানটাইমকে অবশ্যই initializationResult XR_SUCCESS দিয়ে পূরণ করতে হবে। এরপর অ্যাপ্লিকেশনটি অ্যানোটেশনটিকে ট্র্যাক করার জন্য XR_TYPE_EVENT_DATA_SPATIAL_DISCOVERY_RECOMMENDED_EXT ইভেন্টটি গ্রহণ করতে পারে ।
অন্যথায়, ব্যর্থতার কারণ নির্দেশ করার জন্য রানটাইমকে অবশ্যই initializationResult এ একটি উপযুক্ত ত্রুটি কোড যুক্ত করতে হবে। অ্যাপ্লিকেশনটি একটি নতুন অ্যানোটেশন শুরু করার জন্য XrSpatialContextEXT হ্যান্ডেলটি নষ্ট করে দিতে পারে অথবা অন্যান্য অ্যানোটেশন ট্র্যাক করার জন্য spatialContext ব্যবহার চালিয়ে যেতে পারে।
কোয়াড টীকা
একটি রানটাইমকে অবশ্যই xrEnumerateSpatialCapabilityComponentTypesEXT ব্যবহার করে নিম্নলিখিত কম্পোনেন্ট টাইপটি তালিকাভুক্ত করার মাধ্যমে কোয়াড অ্যানোটেশনের জন্য তার সমর্থন ঘোষণা করতে হবে:
-
XR_SPATIAL_COMPONENT_TYPE_ANNOTATION_QUAD_ANDROID
কোয়াড রেফারেন্স
XrSpatialAnnotationQuadReferenceANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়:
typedef struct XrSpatialAnnotationQuadReferenceANDROID {
XrStructureType type;
const void* next;
uint32_t quadCount;
const XrSpatialAnnotationQuadANDROID* quads;
} XrSpatialAnnotationQuadReferenceANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। -
quadCountহলো একটিuint32_tযাquadsঅ্যারের উপাদান সংখ্যা বর্ণনা করে। -
quadsহলো XrSpatialAnnotationQuadANDROID অ্যারের একটি পয়েন্টার।
যখন রানটাইম কোয়াড অ্যানোটেশন সমর্থন করে, তখন একটি অ্যাপ্লিকেশন XrSpatialAnnotationQuadReferenceANDROID স্ট্রাকচারটিকে XrSpatialReferenceImageEXT :: next সাথে চেইন করে অ্যানোটেশন কনফিগার করতে পারে , এবং XrSpatialContextEXT হ্যান্ডেল তৈরি করার সময় XrSpatialCapabilityConfigurationAnnotationTrackingANDROID :: reference এ রেফারেন্সটি সেট করতে পারে।
quadCount মান ০ হলে, রানটাইমকে অবশ্যই xrCreateSpatialContextAsyncEXT থেকে XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT রিটার্ন করতে হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrSpatialAnnotationQuadReferenceANDROID ব্যবহার করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_SPATIAL_ANNOTATION_QUAD_REFERENCE_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
quadsঅবশ্যইquadCountবৈধ XrSpatialAnnotationQuadANDROID স্ট্রাকচারের একটি অ্যারের পয়েন্টার হতে হবে। -
quadCountপ্যারামিটারটি অবশ্যই0থেকে বড় হতে হবে।
XrSpatialAnnotationQuadANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়:
typedef struct XrSpatialAnnotationQuadANDROID {
XrSpatialAnnotationQuadAlignmentANDROID alignment;
XrVector2f upperLeft;
XrVector2f upperRight;
XrVector2f lowerRight;
XrVector2f lowerLeft;
} XrSpatialAnnotationQuadANDROID;
সদস্যদের বিবরণ
-
alignmentহলো কোয়াডের XrSpatialAnnotationQuadAlignmentANDROID । -
upperLeftহলো একটি XrVector2f যা মূলবিন্দুর সাপেক্ষে চতুর্ভুজের উপরের বাম কোণার স্থানাঙ্ক বর্ণনা করে। -
upperRightহলো একটি XrVector2f যা মূলবিন্দুর সাপেক্ষে চতুর্ভুজটির উপরের ডান কোণার স্থানাঙ্ক বর্ণনা করে। -
lowerRightহলো একটি XrVector2f যা মূলবিন্দুর সাপেক্ষে চতুর্ভুজটির নিম্ন ডান কোণার স্থানাঙ্ক বর্ণনা করে। -
lowerLeftহলো একটি XrVector2f যা মূলবিন্দুর সাপেক্ষে চতুর্ভুজের নিম্ন বাম কোণার স্থানাঙ্ক বর্ণনা করে।
দ্বিমাত্রিক স্থানে একটি চতুর্ভুজ হলো ঘড়ির কাঁটার দিকে উত্তল একটি চতুর্ভুজ। এর ৪টি কোণের মান মূলবিন্দু (0, 0)-এর সাথে সম্পর্কিত, যার সাথে চতুর্ভুজটি যুক্ত।
- যখন এটি একটি XrSpatialReferenceImageEXT- এর সাথে যুক্ত থাকে, তখন মূলবিন্দুটি হয় ছবিটির উপরের বাম কোণ, যেখানে X অক্ষ প্রস্থের পিক্সেলকে এবং Y অক্ষ উচ্চতার পিক্সেলকে নির্দেশ করে।
- যখন এটি একটি XrSpatialAnnotationQuadDataANDROID- এর সাথে যুক্ত থাকে, তখন মূলবিন্দুটি XrSpaceLocationData ::
poseof XrSpatialAnnotationQuadDataANDROID ::originদ্বারা নির্দেশিত হয়।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrSpatialAnnotationQuadANDROID ব্যবহার করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
alignmentঅবশ্যই একটি বৈধ XrSpatialAnnotationQuadAlignmentANDROID মান হতে হবে।
typedef enum XrSpatialAnnotationQuadAlignmentANDROID {
XR_SPATIAL_ANNOTATION_QUAD_ALIGNMENT_SCREEN_ANDROID = 0,
XR_SPATIAL_ANNOTATION_QUAD_ALIGNMENT_OBJECT_ANDROID = 1,
XR_SPATIAL_ANNOTATION_QUAD_ALIGNMENT_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrSpatialAnnotationQuadAlignmentANDROID;
XrSpatialAnnotationQuadAlignmentANDROID এনুমারেশনটি কোয়াড অ্যানোটেশনের অ্যালাইনমেন্ট বর্ণনা করে।
এনামগুলোর নিম্নলিখিত অর্থ রয়েছে:
এনামের বিবরণ
XR_SPATIAL_ANNOTATION_QUAD_ALIGNMENT_SCREEN_ANDROID
অ্যানোটেশন কোয়াডটি স্ক্রিন প্লেনের সমান্তরাল, এবং এর ইন-প্লেন রোটেশন ওয়ার্ল্ড গ্র্যাভিটিতে লক করা থাকে। আউটপুটটি একটি নিয়মিত, খাড়া বাউন্ডিং বক্স হিসাবে প্রদর্শিত হয়।
XR_SPATIAL_ANNOTATION_QUAD_ALIGNMENT_OBJECT_ANDROID
অ্যানোটেশন কোয়াডটি সরাসরি অবজেক্টের সাথে অ্যাঙ্কর করা থাকে, যা রেফারেন্স ইমেজে সংজ্ঞায়িত অ্যালাইনমেন্টের সাথে মেলে। এর আউটপুট হলো একটি উত্তল চতুর্ভুজ, যা অবজেক্টের পার্সপেক্টিভের সাথে সামঞ্জস্য রেখে নিজের আকৃতি পরিবর্তন করে।
কোয়াড উপাদান
XrSpatialAnnotationQuadDataANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়:
typedef struct XrSpatialAnnotationQuadDataANDROID {
uint32_t annotationIndex;
XrSpaceLocationData origin;
XrSpatialAnnotationQuadANDROID quad;
} XrSpatialAnnotationQuadDataANDROID;
সদস্যদের বিবরণ
-
annotationIndexহলো XrSpatialCapabilityConfigurationAnnotationTrackingANDROID ::referenceদ্বারা প্রেরিত রেফারেন্সের সাথে সংশ্লিষ্ট XrSpatialAnnotationQuadReferenceANDROID ::quadsঅ্যারের সূচক ম্যাপিং। -
originহলো একটি XrSpaceLocationData যা একটি 2D সমতলের মূলবিন্দু বর্ণনা করে, যেখানে কোয়াডটি রুট করা থাকে। রানটাইমকে অবশ্যই XrSpaceLocationData ::locationFlagsসেট করতে হবে যাতে মূলবিন্দুর পোজের বৈধ বিটগুলো নির্দেশ করা যায়। -
quadহলো একটি XrSpatialAnnotationQuadANDROID যা লোকাল স্পেসে কোয়াডটিকে উপস্থাপন করে। কোয়াডটিকে পোজ স্পেসে রূপান্তর করতেoriginব্যবহার করুন।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrSpatialAnnotationQuadDataANDROID ব্যবহার করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
originঅবশ্যই একটি বৈধ XrSpaceLocationData স্ট্রাকচার হতে হবে। -
quadঅবশ্যই একটি বৈধ XrSpatialAnnotationQuadANDROID কাঠামো হতে হবে।
XrSpatialComponentAnnotationQuadListANDROID স্ট্রাকচারটি নিম্নরূপে সংজ্ঞায়িত করা হয়:
typedef struct XrSpatialComponentAnnotationQuadListANDROID {
XrStructureType type;
void* next;
uint32_t quadCount;
XrSpatialAnnotationQuadDataANDROID* quads;
} XrSpatialComponentAnnotationQuadListANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। -
quadCountহলো একটিuint32_tযাquadsঅ্যারের উপাদান সংখ্যা বর্ণনা করে। -
quadsহলো XrSpatialAnnotationQuadDataANDROID- এর একটি অ্যারে।
অ্যাপ্লিকেশনটি একটি XrSpatialSnapshotEXT-এর মধ্যে থাকা স্পেশিয়াল এনটিটিগুলোর কোয়াড অ্যানোটেশন কম্পোনেন্ট কোয়েরি করতে পারে, এর জন্য XrSpatialComponentDataQueryConditionEXT :: componentTypes এ XR_SPATIAL_COMPONENT_TYPE_ANNOTATION_QUAD_ANDROID যোগ করতে হবে এবং XrSpatialComponentDataQueryResultEXT- এর পরবর্তী পয়েন্টার চেইনে XrSpatialComponentAnnotationQuadListANDROID যোগ করতে হবে।
যদি XrSpatialComponentAnnotationQuadListANDROID, XrSpatialComponentDataQueryResultEXT :: next এর পরবর্তী চেইনে থাকে কিন্তু XR_SPATIAL_COMPONENT_TYPE_ANNOTATION_QUAD_ANDROID XrSpatialComponentDataQueryConditionEXT :: componentTypes এর মধ্যে অন্তর্ভুক্ত না থাকে, তাহলে রানটাইমকে অবশ্যই xrQuerySpatialComponentDataEXT থেকে XR_ERROR_VALIDATION_FAILURE রিটার্ন করতে হবে ।
যদি quadCount XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput থেকে কম হয়, তাহলে রানটাইমকে অবশ্যই xrQuerySpatialComponentDataEXT থেকে XR_ERROR_SIZE_INSUFFICIENT রিটার্ন করতে হবে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrSpatialComponentAnnotationQuadListANDROID ব্যবহার করার আগে
XR_ANDROID_spatial_annotation_trackingএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_SPATIAL_COMPONENT_ANNOTATION_QUAD_LIST_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
quadsঅবশ্যইquadCountXrSpatialAnnotationQuadDataANDROID স্ট্রাকচারের একটি অ্যারের পয়েন্টার হতে হবে। -
quadCountপ্যারামিটারটি অবশ্যই0থেকে বড় হতে হবে।
উদাহরণ কোড
রানটাইম সমর্থন পরীক্ষা করুন
নিম্নলিখিত উদাহরণ কোডটি দেখায় যে রানটাইম অ্যানোটেশন ট্র্যাকিং ক্ষমতা সমর্থন করে কিনা তা কীভাবে পরীক্ষা করতে হয়।
XrInstance instance; // previously initialized
XrSystemId systemId; // previously initialized
XrSession session; // previously initialized
XrSpace localSpace; // previously initialized, e.g. from
// XR_REFERENCE_SPACE_TYPE_LOCAL
PFN_xrEnumerateSpatialCapabilitiesEXT xrEnumerateSpatialCapabilitiesEXT;
PFN_xrEnumerateSpatialAnnotationReferenceSourcesANDROID xrEnumerateSpatialAnnotationReferenceSourcesANDROID;
PFN_xrEnumerateSpatialReferenceImageFormatsEXT xrEnumerateSpatialReferenceImageFormatsEXT;
PFN_xrEnumerateSpatialCapabilityComponentTypesEXT xrEnumerateSpatialCapabilityComponentTypesEXT;
// Check spatial annotation tracking capability
uint32_t capabilityCount;
CHK_XR(xrEnumerateSpatialCapabilitiesEXT(instance, systemId, 0,
&capabilityCount, nullptr));
std::vector<XrSpatialCapabilityEXT> capabilities(capabilityCount);
CHK_XR(xrEnumerateSpatialCapabilitiesEXT(instance, systemId, capabilityCount,
&capabilityCount,
capabilities.data()));
if (std::find(capabilities.begin(), capabilities.end(),
XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID) ==
capabilities.end()) {
// System does not support spatial annotation tracking.
return;
}
// Inspect system properties for annotation tracking variables
XrSystemSpatialAnnotationPropertiesANDROID annotationSystemProperties{
XR_TYPE_SYSTEM_SPATIAL_ANNOTATION_PROPERTIES_ANDROID};
XrSystemProperties systemProperties{.type = XR_TYPE_SYSTEM_PROPERTIES,
.next = &annotationSystemProperties,
.systemId = systemId};
CHK_XR(xrGetSystemProperties(instance, systemId, &systemProperties));
if (annotationSystemProperties.maxAnnotationCount == 0) {
// System does not support any active annotations.
return;
}
// Enumerate supported reference sources
uint32_t sourceCountOutput = 0;
XrSpatialAnnotationReferenceSourceANDROID desiredSource =
XR_SPATIAL_ANNOTATION_REFERENCE_SOURCE_CAMERA_ANDROID;
CHK_XR(xrEnumerateSpatialAnnotationReferenceSourcesANDROID(
instance, systemId, XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID,
0, &sourceCountOutput, nullptr));
std::vector<XrSpatialAnnotationReferenceSourceANDROID> sources(sourceCountOutput);
CHK_XR(xrEnumerateSpatialAnnotationReferenceSourcesANDROID(
instance, systemId, XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID,
sourceCountOutput, &sourceCountOutput, sources.data()));
if (std::find(sources.begin(), sources.end(), desiredSource) == sources.end()) {
// The desired source is not supported.
return;
}
// Enumerate supported reference image formats, provided by XR_EXT_spatial_image_tracking.
uint32_t formatCountOutput = 0;
XrSpatialReferenceImageFormatEXT desiredFormat =
XR_SPATIAL_REFERENCE_IMAGE_FORMAT_YUV_420_888_EXT; // Or XR_SPATIAL_REFERENCE_IMAGE_FORMAT_RGBA_8888_EXT for screenshot.
CHK_XR(xrEnumerateSpatialReferenceImageFormatsEXT(
instance, systemId, XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID, 0,
&formatCountOutput, nullptr));
std::vector<XrSpatialReferenceImageFormatEXT> formats(formatCountOutput);
CHK_XR(xrEnumerateSpatialReferenceImageFormatsEXT(
instance, systemId, XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID,
formats.size(), &formatCountOutput, formats.data()));
if (std::find(formats.begin(), formats.end(), desiredFormat) == formats.end()) {
// The desired format is not supported
return;
}
// Enumerate supported components for annotation tracking capability.
XrSpatialCapabilityComponentTypesEXT capabilityComponentTypes{
XR_TYPE_SPATIAL_CAPABILITY_COMPONENT_TYPES_EXT};
CHK_XR(xrEnumerateSpatialCapabilityComponentTypesEXT(
instance, systemId, XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID,
&capabilityComponentTypes));
std::vector<XrSpatialComponentTypeEXT>
annotationTypes(capabilityComponentTypes.componentTypeCountOutput);
capabilityComponentTypes.componentTypeCapacityInput = annotationTypes.size();
capabilityComponentTypes.componentTypes = annotationTypes.data();
CHK_XR(xrEnumerateSpatialCapabilityComponentTypesEXT(
instance, systemId, XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID,
&capabilityComponentTypes));
// Check supported annotation components.
XrSpatialComponentTypeEXT desiredComponent =
XR_SPATIAL_COMPONENT_TYPE_ANNOTATION_QUAD_ANDROID;
const auto supportedComponent = [&annotationTypes](
XrSpatialComponentTypeEXT component) {
return std::find(annotationTypes.begin(), annotationTypes.end(), component) !=
annotationTypes.end();
};
if (!supportedComponent(desiredComponent)) {
// The desired annotation is not supported.
return;
}
কোয়াড টীকা কনফিগার করুন
নিম্নলিখিত উদাহরণ কোডটি দেখায় কিভাবে কোয়াড অ্যানোটেশন কনফিগার করতে হয়।
XrInstance instance; // previously initialized
XrSystemId systemId; // previously initialized
XrSession session; // previously initialized
XrSpace localSpace; // previously initialized, e.g. from
// XR_REFERENCE_SPACE_TYPE_LOCAL
PFN_xrCreateSpatialReferenceCacheAsyncANDROID xrCreateSpatialReferenceCacheAsyncANDROID;
PFN_xrCreateSpatialReferenceCacheCompleteANDROID xrCreateSpatialReferenceCacheCompleteANDROID;
PFN_xrDestroySpatialReferenceCacheANDROID xrDestroySpatialReferenceCacheANDROID;
PFN_xrCreateSpatialContextAsyncEXT xrCreateSpatialContextAsyncEXT;
PFN_xrCreateSpatialContextCompleteEXT xrCreateSpatialContextCompleteEXT;
void (*waitUntilReady)(XrFutureEXT);
XrSpatialReferenceImageFormatEXT desiredFormat;
XrSpatialAnnotationReferenceSourceANDROID desiredSource;
XrSpatialComponentTypeEXT desiredComponent;
// Create and start reference cache to prepare for capturing reference images.
XrSpatialReferenceCacheANDROID referenceCache;
XrSpatialReferenceCacheCreateInfoANDROID cacheCreateInfo{
.type = XR_TYPE_SPATIAL_REFERENCE_CACHE_CREATE_INFO_ANDROID,
.next = nullptr,
.capability = XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID,
.source = desiredSource,
};
XrFutureEXT cacheFuture = XR_NULL_FUTURE_EXT;
CHK_XR(xrCreateSpatialReferenceCacheAsyncANDROID(session, &cacheCreateInfo, &cacheFuture));
waitUntilReady(cacheFuture);
XrCreateSpatialReferenceCacheCompletionANDROID cacheCompletion{
XR_TYPE_CREATE_SPATIAL_REFERENCE_CACHE_COMPLETION_ANDROID};
CHK_XR(xrCreateSpatialReferenceCacheCompleteANDROID(session, cacheFuture,
&cacheCompletion));
if (cacheCompletion.futureResult != XR_SUCCESS) {
// Error, reference cache creation failed
return;
}
referenceCache = cacheCompletion.referenceCache;
// Create the reference image with quad annotations
// YUV 4:2:0 Planar:
// ----------------------
// | Y |Cb |Cr |
// ----------------------
XrSpatialReferenceImagePlaneEXT cameraImagePlanes[3];
// for each plane (0=Y, 1=U(cb), 2=V(Cr)) return by Image#getPlanes().
for (int i = 0; i < 3; ++i) {
cameraImagePlanes[i].buffer; // read from Plane#getBuffer().
cameraImagePlanes[i].bufferSize; // set each buffer size. Y = width * height (bytes); U = Y / 4 (bytes); V = Y / 4 (bytes).
cameraImagePlanes[i].rowStride; // read from Plane#getRowStride().
cameraImagePlanes[i].pixelStride; // read from Plane#getPixelStride().
}
XrSpatialReferenceImageEXT referenceImage{
XR_TYPE_SPATIAL_REFERENCE_IMAGE_EXT};
referenceImage.width = 640;
referenceImage.height = 480;
referenceImage.format = desiredFormat;
referenceImage.planeCount = 3;
referenceImage.planes = cameraImagePlanes;
XrSpatialAnnotationQuadANDROID
quad; // quad coordinates within the reference image.
quad.alignment = XR_SPATIAL_ANNOTATION_QUAD_ALIGNMENT_OBJECT_ANDROID;
// Set unnormalized pixel coordinates of 4 corners.
quad.upperLeft = {0.0, 0.0};
quad.upperRight = {0.0, 100.0};
quad.lowerRight = {100.0, 100.0};
quad.lowerLeft = {0.0, 100.0};
XrSpatialAnnotationQuadReferenceANDROID quadReference{
XR_TYPE_SPATIAL_ANNOTATION_QUAD_REFERENCE_ANDROID};
quadReference.quads = &quad;
quadReference.quadCount = 1;
referenceImage.next = &quadReference;
// Create the spatial context with annotation configuration.
XrSpatialContextEXT spatialContext{};
{
const std::array<XrSpatialComponentTypeEXT, 1> enabledComponents = {
desiredComponent,
};
// Configure annotation tracking
XrSpatialCapabilityConfigurationAnnotationTrackingANDROID annotationConfig{
XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_ANNOTATION_TRACKING_ANDROID};
annotationConfig.capability =
XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID;
annotationConfig.enabledComponentCount = enabledComponents.size();
annotationConfig.enabledComponents = enabledComponents.data();
annotationConfig.cache = referenceCache;
annotationConfig.time; // The time when this reference image is captured.
annotationConfig.reference = referenceImage;
std::vector<XrSpatialCapabilityConfigurationBaseHeaderEXT *>
capabilityConfigs;
capabilityConfigs.push_back(
reinterpret_cast<XrSpatialCapabilityConfigurationBaseHeaderEXT *>(
&annotationConfig));
XrSpatialContextCreateInfoEXT spatialContextCreateInfo{
XR_TYPE_SPATIAL_CONTEXT_CREATE_INFO_EXT};
spatialContextCreateInfo.capabilityConfigCount = capabilityConfigs.size();
spatialContextCreateInfo.capabilityConfigs = capabilityConfigs.data();
XrFutureEXT createContextFuture = XR_NULL_FUTURE_EXT;
CHK_XR(xrCreateSpatialContextAsyncEXT(session, &spatialContextCreateInfo,
&createContextFuture));
waitUntilReady(createContextFuture);
XrCreateSpatialContextCompletionEXT completion{
XR_TYPE_CREATE_SPATIAL_CONTEXT_COMPLETION_EXT};
CHK_XR(xrCreateSpatialContextCompleteEXT(session, createContextFuture,
&completion));
if (completion.futureResult != XR_SUCCESS) {
// Error, spatial context creation failed
return;
}
spatialContext = completion.spatialContext;
CHK_XR(xrDestroySpatialReferenceCacheANDROID(referenceCache));
}
সক্রিয় টীকাগুলি আবিষ্কার করুন
নিম্নলিখিত উদাহরণ কোডটি দেখায় কিভাবে অ্যানোটেশনগুলি আবিষ্কার এবং কোয়েরি করতে হয়।
XrInstance instance; // previously initialized
XrSession session; // previously initialized
XrSpace localSpace; // previously initialized, e.g. from
// XR_REFERENCE_SPACE_TYPE_LOCAL
XrSpatialContextEXT spatialContext; // previously created
PFN_xrCreateSpatialDiscoverySnapshotAsyncEXT xrCreateSpatialDiscoverySnapshotAsyncEXT;
PFN_xrCreateSpatialDiscoverySnapshotCompleteEXT xrCreateSpatialDiscoverySnapshotCompleteEXT;
PFN_xrQuerySpatialComponentDataEXT xrQuerySpatialComponentDataEXT;
PFN_xrDestroySpatialSnapshotEXT xrDestroySpatialSnapshotEXT;
PFN_xrPollEvent xrPollEvent;
PFN_xrDestroySpatialContextEXT xrDestroySpatialContextEXT;
void (*waitUntilReady)(XrFutureEXT);
XrSpatialComponentTypeEXT desiredComponent; // e.g. XR_SPATIAL_COMPONENT_TYPE_ANNOTATION_QUAD_ANDROID
auto discoverAnnotations = [&](XrSpatialContextEXT spatialContext, XrTime time,
XrSpace baseSpace) {
std::array<XrSpatialComponentTypeEXT, 1> snapshotComponents{desiredComponent};
XrSpatialDiscoverySnapshotCreateInfoEXT snapshotCreateInfo{
XR_TYPE_SPATIAL_DISCOVERY_SNAPSHOT_CREATE_INFO_EXT};
snapshotCreateInfo.componentTypeCount = snapshotComponents.size();
snapshotCreateInfo.componentTypes = snapshotComponents.data();
XrFutureEXT discoveryFuture = XR_NULL_FUTURE_EXT;
CHK_XR(xrCreateSpatialDiscoverySnapshotAsyncEXT(
spatialContext, &snapshotCreateInfo, &discoveryFuture));
waitUntilReady(discoveryFuture);
XrCreateSpatialDiscoverySnapshotCompletionInfoEXT completionInfo{
XR_TYPE_CREATE_SPATIAL_DISCOVERY_SNAPSHOT_COMPLETION_INFO_EXT};
completionInfo.baseSpace = baseSpace;
completionInfo.time = time;
completionInfo.future = discoveryFuture;
XrCreateSpatialDiscoverySnapshotCompletionEXT completion{
XR_TYPE_CREATE_SPATIAL_DISCOVERY_SNAPSHOT_COMPLETION_EXT};
CHK_XR(xrCreateSpatialDiscoverySnapshotCompleteEXT(
spatialContext, &completionInfo, &completion));
if (completion.futureResult == XR_SUCCESS) {
// Query for desired annotation data, e.g. quad.
XrSpatialComponentTypeEXT componentsToQuery[] = {
XR_SPATIAL_COMPONENT_TYPE_ANNOTATION_QUAD_ANDROID};
XrSpatialComponentDataQueryConditionEXT queryCond{
XR_TYPE_SPATIAL_COMPONENT_DATA_QUERY_CONDITION_EXT};
queryCond.componentTypeCount = 1;
queryCond.componentTypes = componentsToQuery;
XrSpatialComponentDataQueryResultEXT queryResult{
XR_TYPE_SPATIAL_COMPONENT_DATA_QUERY_RESULT_EXT};
CHK_XR(xrQuerySpatialComponentDataEXT(completion.snapshot, &queryCond,
&queryResult));
std::vector<XrSpatialEntityIdEXT> entityIds(
queryResult.entityIdCountOutput);
std::vector<XrSpatialEntityTrackingStateEXT> entityStates(
queryResult.entityStateCountOutput);
queryResult.entityIdCapacityInput = entityIds.size();
queryResult.entityIds = entityIds.data();
queryResult.entityStateCapacityInput = entityStates.size();
queryResult.entityStates = entityStates.data();
std::vector<XrSpatialAnnotationQuadDataANDROID> quads(
queryResult.entityIdCountOutput);
XrSpatialComponentAnnotationQuadListANDROID quadList{
XR_TYPE_SPATIAL_COMPONENT_ANNOTATION_QUAD_LIST_ANDROID};
quadList.quadCount = quads.size();
quadList.quads = quads.data();
queryResult.next = &quadList;
CHK_XR(xrQuerySpatialComponentDataEXT(completion.snapshot, &queryCond,
&queryResult));
for (int32_t i = 0; i < queryResult.entityIdCountOutput; ++i) {
if (entityStates[i] == XR_SPATIAL_ENTITY_TRACKING_STATE_TRACKING_EXT) {
const XrSpatialAnnotationQuadDataANDROID ¤tQuad = quads[i];
// Rendering quad in the view.
}
}
CHK_XR(xrDestroySpatialSnapshotEXT(completion.snapshot));
}
};
while (1) {
// For every frame in frame loop
XrSpace space; // Application's play space.
XrFrameState frameState; // Previously returned from xrWaitFrame
const XrTime time = frameState.predictedDisplayTime;
// Poll for the XR_TYPE_EVENT_DATA_SPATIAL_DISCOVERY_RECOMMENDED_EXT event
XrEventDataBuffer event = {XR_TYPE_EVENT_DATA_BUFFER};
XrResult result = xrPollEvent(instance, &event);
if (result == XR_SUCCESS) {
switch (event.type) {
case XR_TYPE_EVENT_DATA_SPATIAL_ANNOTATION_TRACKING_ANDROID: {
const XrEventDataSpatialAnnotationTrackingANDROID &eventdata =
*reinterpret_cast<XrEventDataSpatialAnnotationTrackingANDROID *>(
&event);
if (eventdata.initializationResult != XR_SUCCESS) {
// handle initialization failure.
// e.g. CHK_XR(xrDestroySpatialContextEXT(spatialContext));
}
break;
}
case XR_TYPE_EVENT_DATA_SPATIAL_DISCOVERY_RECOMMENDED_EXT: {
const XrEventDataSpatialDiscoveryRecommendedEXT &eventdata =
*reinterpret_cast<XrEventDataSpatialDiscoveryRecommendedEXT *>(
&event);
// Discover spatial entities for the context that we received the
// "discovery recommended" event for.
//discoverSpatialEntities(eventdata.spatialContext, time, space);
break;
}
}
}
// Finish frame loop
}
CHK_XR(xrDestroySpatialContextEXT(spatialContext));
নতুন অবজেক্টের প্রকারভেদ
নতুন কমান্ড
- xrCreateSpatialReferenceCacheAsyncANDROID
- xrCreateSpatialReferenceCacheCompleteANDROID
- xrDestroySpatialReferenceCacheANDROID
- xrEnumerateSpatialAnnotationReferenceSourcesANDROID
নতুন কাঠামো
- XrCreateSpatialReferenceCacheCompletionANDROID
- XrEventDataSpatialAnnotationTrackingANDROID
- XrSpatialAnnotationQuadANDROID
- XrSpatialAnnotationQuadDataANDROID
- XrSpatialCapabilityConfigurationAnnotationTrackingANDROID
- XrSpatialReferenceCacheCreateInfoANDROID
XrSpatialComponentDataQueryResultEXT- এর সম্প্রসারণ:
XrSpatialReferenceImageEXT- এর সম্প্রসারণ:
XrSystemProperties-এর সম্প্রসারণ :
নতুন এনাম
নতুন এনাম ধ্রুবক
-
XR_ANDROID_SPATIAL_ANNOTATION_TRACKING_EXTENSION_NAME -
XR_ANDROID_spatial_annotation_tracking_SPEC_VERSION XrObjectType- এর সম্প্রসারণ:
-
XR_OBJECT_TYPE_SPATIAL_REFERENCE_CACHE_ANDROID
-
XrSpatialCapabilityEXT- এর সম্প্রসারণ:
-
XR_SPATIAL_CAPABILITY_ANNOTATION_TRACKING_ANDROID
-
XrSpatialComponentTypeEXT এর সম্প্রসারণ:
-
XR_SPATIAL_COMPONENT_TYPE_ANNOTATION_QUAD_ANDROID
-
XrStructureType সম্প্রসারণ :
-
XR_TYPE_CREATE_SPATIAL_REFERENCE_CACHE_COMPLETION_ANDROID -
XR_TYPE_EVENT_DATA_SPATIAL_ANNOTATION_TRACKING_ANDROID -
XR_TYPE_SPATIAL_ANNOTATION_QUAD_REFERENCE_ANDROID -
XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_ANNOTATION_TRACKING_ANDROID -
XR_TYPE_SPATIAL_COMPONENT_ANNOTATION_QUAD_LIST_ANDROID -
XR_TYPE_SPATIAL_REFERENCE_CACHE_CREATE_INFO_ANDROID -
XR_TYPE_SYSTEM_SPATIAL_ANNOTATION_PROPERTIES_ANDROID
-
সমস্যা
সংস্করণ ইতিহাস
সংশোধন 1, 2025-09-17 (লেভানা চেন)
- প্রাথমিক সম্প্রসারণের বিবরণ।