নাম স্ট্রিং
XR_ANDROID_device_anchor_persistence
এক্সটেনশন টাইপ
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
458
রিভিশন
1
এক্সটেনশন এবং সংস্করণ নির্ভরতা
XR_EXT_uuid এবং XR_ANDROID_trackables
সর্বশেষ সংশোধিত তারিখ
2024-10-10
আইপি স্ট্যাটাস
কোন পরিচিত আইপি দাবি.
অবদানকারী
নিহাভ জৈন, গুগল
লেভানা চেন, গুগল
স্পেন্সার কুইন, গুগল
কেনি ভারকাইমার, গুগল
ওভারভিউ
এই এক্সটেনশনটি অ্যাপ্লিকেশানটিকে বর্তমান ব্যবহারকারীর জন্য বর্তমান ডিভাইসে অ্যাপ্লিকেশন এবং ডিভাইস সেশন জুড়ে টিকে থাকতে, পুনরুদ্ধার করতে এবং অবিরত অ্যাঙ্করগুলিকে মঞ্জুরি দেয়৷
সিস্টেমের ক্ষমতা পরিদর্শন করুন
XrSystemDeviceAnchorPersistencePropertiesANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrSystemDeviceAnchorPersistencePropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsAnchorPersistence;
} XrSystemDeviceAnchorPersistencePropertiesANDROID;
সদস্য বিবরণ
-
typeহল এই কাঠামোর XrStructureType । -
nextহলNULLবা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
supportsAnchorPersistenceহল একটিXrBool32যা নির্দেশ করে যে বর্তমান সিস্টেম স্থানিক অ্যাঙ্করগুলির জন্য অ্যাঙ্কর পারসিস্টেন্স সমর্থন করে কিনা।
একটি অ্যাপ্লিকেশন xrGetSystemProperties কল করার সময় XrSystemDeviceAnchorPersistencePropertiesANDROID কাঠামোর সাথে XrSystemProperties প্রসারিত করে স্থানিক অ্যাঙ্কর ( xrCreateAnchorSpaceANDROID দেখুন) টিকে থাকতে সক্ষম কিনা তা পরীক্ষা করতে পারে । সমর্থিত ট্র্যাকযোগ্য অ্যাঙ্করগুলির জন্য, সমর্থিত প্রকারগুলি জিজ্ঞাসা করতে একটি অ্যাপ্লিকেশন xrEnumerateSupportedPersistenceAnchorTypesANDROID ব্যবহার করতে পারে ।
যদি XR_FALSE supportsAnchorPersistence এর জন্য ফেরত দেওয়া হয়, তাহলে XR_ERROR_FEATURE_UNSUPPORTED ডিভাইস অ্যাঙ্কর পারসিস্টেন্স ফাংশন থেকে ফেরত দেওয়া হবে যা একটি স্থানিক অ্যাঙ্করে কাজ করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই XrSystemDeviceAnchorPersistencePropertiesANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
typeXR_TYPE_SYSTEM_DEVICE_ANCHOR_PERSISTENCE_PROPERTIES_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে
xrEnumerateSupportedPersistenceAnchorTypesANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrEnumerateSupportedPersistenceAnchorTypesANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t trackableTypeCapacityInput,
uint32_t* trackableTypeCountOutput,
XrTrackableTypeANDROID* trackableTypes);
পরামিতি বিবরণ
-
sessionহল XrSession যা XrDeviceAnchorPersistenceANDROID তৈরি করে। -
trackableTypeCapacityInputহলtrackableTypesএর ক্ষমতা, বা প্রয়োজনীয় ক্ষমতা পুনরুদ্ধার করার জন্য 0। -
trackableTypeCountOutputহল অ্যারের গণনার একটি পয়েন্টার, অথবাtrackableTypeCapacityInputঅপর্যাপ্ত হলে প্রয়োজনীয় ক্ষমতার একটি পয়েন্টার। -
trackableTypesহল XrTrackableTypeANDROID- এর একটি অ্যারের একটি পয়েন্টার, কিন্তুtrackableTypeCapacityInput0হলেNULLহতে পারে । - প্রয়োজনীয়
trackableTypesআকার পুনরুদ্ধারের বিস্তারিত বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
অ্যাপ্লিকেশনটি অন্যান্য XrTrackableTypeANDROID ট্র্যাকেবলে অ্যাঙ্কর অধ্যবসায়ের সমর্থন পরীক্ষা করতে xrEnumerateSupportedPersistenceAnchorTypesANDROID ব্যবহার করতে পারে ।
যদি প্রদত্ত XrTrackableTypeANDROID trackableTypes অ্যারেতে ফেরত না দেওয়া হয়, তাহলে XR_ERROR_FEATURE_UNSUPPORTED ডিভাইস অ্যাঙ্কর পারসিসটেন্স ফাংশন থেকে ফেরত দেওয়া হবে যা সেই ধরনের অ্যাঙ্করে কাজ করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই xrEnumerateSupportedPersistenceAnchorTypesANDROID কল করার আগে সক্রিয় করতে হবে -
instanceঅবশ্যই একটি বৈধ XrInstance হ্যান্ডেল হতে হবে -
trackableTypeCountOutputএকটিuint32_tমানের একটি পয়েন্টার হতে হবে - যদি
trackableTypeCapacityInput0, trackableTypesঅবশ্যইtrackableTypeCapacityInputXrTrackableTypeANDROID মানগুলির একটি অ্যারের নির্দেশক হতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_ERROR_SYSTEM_INVALID -
XR_ERROR_VALIDATION_FAILURE -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_SIZE_INSUFFICIENT -
XR_ERROR_FUNCTION_UNSUPPORTED
একটি ডিভাইস অ্যাঙ্কর পারসিসটেন্স হ্যান্ডেল তৈরি করুন
একটি XrDeviceAnchorPersistenceANDROID হল একটি হ্যান্ডেল যা টিকে থাকার জন্য প্রয়োজনীয় সংস্থানগুলিকে উপস্থাপন করে এবং স্থির অ্যাঙ্করগুলির ট্র্যাক রাখে৷
XR_DEFINE_HANDLE(XrDeviceAnchorPersistenceANDROID)
xrCreateDeviceAnchorPersistenceANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateDeviceAnchorPersistenceANDROID(
XrSession session,
const XrDeviceAnchorPersistenceCreateInfoANDROID* createInfo,
XrDeviceAnchorPersistenceANDROID* outHandle);
পরামিতি বিবরণ
-
sessionহল XrSession যা XrDeviceAnchorPersistenceANDROID তৈরি করে। -
createInfoহল XrDeviceAnchorPersistenceCreateInfoANDROID যা XrDeviceAnchorPersistenceANDROID-এর জন্য পরামিতি ধারণ করে। -
outHandleহল একটি হ্যান্ডেলের একটি পয়েন্টার যেখানে তৈরি করা XrDeviceAnchorPersistenceANDROID ফেরত দেওয়া হয়।
একটি অ্যাপ্লিকেশন xrCreateDeviceAnchorPersistenceANDROID কল করে একটি XrDeviceAnchorPersistenceANDROID হ্যান্ডেল তৈরি করতে পারে । XrDeviceAnchorPersistenceANDROID পরবর্তী API কলগুলিতে অ্যাঙ্করগুলিকে স্থির বা অবিরত রাখতে ব্যবহার করা যেতে পারে । XrDeviceAnchorPersistenceANDROID হ্যান্ডেলটি অবশেষে xrDestroyDeviceAnchorPersistenceANDROID ফাংশন ব্যবহার করে মুক্ত করতে হবে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই xrCreateDeviceAnchorPersistenceANDROID কল করার আগে সক্রিয় করতে হবে -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে -
createInfoঅবশ্যই একটি বৈধ XrDeviceAnchorPersistenceCreateInfoANDROID কাঠামোর একটি নির্দেশক হতে হবে -
outHandleঅবশ্যই একটি XrDeviceAnchorPersistenceANDROID হ্যান্ডেলের একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_VALIDATION_FAILURE -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_SESSION_LOST -
XR_ERROR_OUT_OF_MEMORY -
XR_ERROR_LIMIT_REACHED
XrDeviceAnchorPersistenceCreateInfoANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrDeviceAnchorPersistenceCreateInfoANDROID {
XrStructureType type;
void* next;
} XrDeviceAnchorPersistenceCreateInfoANDROID;
সদস্য বিবরণ
-
typeহল এই কাঠামোর XrStructureType । -
nextহলNULLবা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি।
XrDeviceAnchorPersistenceCreateInfoANDROID কাঠামো XrCreateDeviceAnchorPersistenceANDROID- এ পাস করা হলে XrDeviceAnchorPersistenceANDROID- এর জন্য তৈরির বিকল্প সরবরাহ করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই XrDeviceAnchorPersistenceCreateInfoANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
typeXR_TYPE_DEVICE_ANCHOR_PERSISTENCE_CREATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে
xrDestroyDeviceAnchorPersistenceANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrDestroyDeviceAnchorPersistenceANDROID(
XrDeviceAnchorPersistenceANDROID handle);
পরামিতি বিবরণ
-
handleহল একটি XrDeviceAnchorPersistenceANDROID হ্যান্ডেল যা পূর্বেxrCreateDeviceAnchorPersistenceANDROIDদ্বারা তৈরি করা হয়েছিল।
xrDestroyDeviceAnchorPersistenceANDROID ফাংশন ডিভাইস অ্যাঙ্কর পারসিস্টেন্স হ্যান্ডেলকে ধ্বংস করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই xrDestroyDeviceAnchorPersistenceANDROID কল করার আগে সক্রিয় করতে হবে -
handleঅবশ্যই একটি বৈধ XrDeviceAnchorPersistenceANDROID হ্যান্ডেল হতে হবে
থ্রেড নিরাপত্তা
-
handleঅ্যাক্সেস এবং যেকোনো শিশু হ্যান্ডেলগুলিকে বাহ্যিকভাবে সিঙ্ক্রোনাইজ করতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID
একটি নোঙ্গর অব্যাহত
xrPersistAnchorANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrPersistAnchorANDROID(
XrDeviceAnchorPersistenceANDROID handle,
const XrPersistedAnchorSpaceInfoANDROID* persistedInfo,
XrUuidEXT* anchorIdOutput);
পরামিতি বিবরণ
-
handleহল XrDeviceAnchorPersistenceANDROID । -
persistedInfoহল XrPersistedAnchorSpaceInfoANDROID যেটিতে অ্যাঙ্কর পারসিস্টেন্সের প্যারামিটার রয়েছে। -
anchorIdOutputহল একটি XrUuidEXT- এর একটি পয়েন্টার যেখানে স্থায়ী অ্যাঙ্করের UUID ফেরত দেওয়া হয়।
অ্যাপ্লিকেশনটি xrPersistAnchorANDROID-কে কল করে অ্যাঙ্করগুলিকে স্থির থাকার অনুরোধ করতে পারে ৷ অ্যাঙ্কর অবিলম্বে স্থির থাকার মানে হল অ্যাপ্লিকেশানটি একটি সফল রিটার্ন মান অনুমান করা উচিত নয়। রিটার্ন করা অ্যাঙ্কর XrUuidEXT ব্যবহার করে অ্যাঙ্করের স্থায়ী অবস্থা পরীক্ষা করতে অ্যাপ্লিকেশনটির xrGetAnchorPersistStateANDROID ব্যবহার করা উচিত । অ্যাঙ্করটি অবিরত করতে অ্যাপ্লিকেশনটি xrUnpersistAnchorANDROID ব্যবহার করতে পারে ।
- কলের সময় অ্যাঙ্কর ট্র্যাক করা না হলে
XR_ERROR_ANCHOR_NOT_TRACKING_ANDROIDফেরত দেওয়া হবে৷ - স্থায়ী ডেটা প্রস্তুত না হলে
XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROIDফেরত দেওয়া হবে৷ - স্থিরতার জন্য অ্যাঙ্কর সারিবদ্ধ হয়ে গেলে
XR_SUCCESSফেরত দেওয়া হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই xrPersistAnchorANDROID কল করার আগে সক্রিয় করতে হবে -
handleঅবশ্যই একটি বৈধ XrDeviceAnchorPersistenceANDROID হ্যান্ডেল হতে হবে -
persistedInfoঅবশ্যই একটি বৈধ XrPersistedAnchorSpaceInfoANDROID কাঠামোর নির্দেশক হতে হবে -
anchorIdOutputঅবশ্যই একটি XrUuidEXT কাঠামোর একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_ANCHOR_NOT_TRACKING_ANDROID -
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_VALIDATION_FAILURE -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_SESSION_LOST -
XR_ERROR_OUT_OF_MEMORY -
XR_ERROR_LIMIT_REACHED
XrPersistedAnchorSpaceInfoANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrPersistedAnchorSpaceInfoANDROID {
XrStructureType type;
void* next;
XrSpace anchor;
} XrPersistedAnchorSpaceInfoANDROID;
সদস্য বিবরণ
-
typeহল এই কাঠামোর XrStructureType । -
nextহলNULLবা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
anchorহল একটি অ্যাঙ্কর XrSpace পূর্বে xrCreateAnchorSpaceANDROID দ্বারা টিকে থাকার জন্য তৈরি করা হয়েছিল।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই XrPersistedAnchorSpaceInfoANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
typeXR_TYPE_PERSISTED_ANCHOR_SPACE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
anchorঅবশ্যই একটি বৈধ XrSpace হ্যান্ডেল হতে হবে
xrGetAnchorPersistStateANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrGetAnchorPersistStateANDROID(
XrDeviceAnchorPersistenceANDROID handle,
const XrUuidEXT* anchorId,
XrAnchorPersistStateANDROID* persistState);
পরামিতি বিবরণ
-
handleহল XrDeviceAnchorPersistenceANDROID । -
anchorIdহল অ্যাঙ্করের XrUuidEXT । -
persistStateহল একটি XrAnchorPersistStateANDROID এর একটি পয়েন্টার যেখানে অ্যাঙ্করের অবস্থা ফেরত দেওয়া হয়। - অ্যাঙ্কর XrUuidEXT না পাওয়া গেলে
XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROIDফেরত দেওয়া হবে। -
anchorId-এর স্থায়ী ডেটা প্রস্তুত না হলেXR_ERROR_PERSISTED_DATA_NOT_READY_ANDROIDফেরত দেওয়া হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই xrGetAnchorPersistStateANDROID কল করার আগে সক্রিয় করতে হবে -
handleঅবশ্যই একটি বৈধ XrDeviceAnchorPersistenceANDROID হ্যান্ডেল হতে হবে -
anchorIdঅবশ্যই একটি বৈধ XrUuidEXT কাঠামোর একটি পয়েন্টার হতে হবে৷ -
persistStateঅবশ্যই XrAnchorPersistStateANDROID মানের একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_VALIDATION_FAILURE -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_SESSION_LOST -
XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROID
XrAnchorPersistStateANDROID enum কে সংজ্ঞায়িত করা হয়েছে:
typedef enum XrAnchorPersistStateANDROID {
XR_ANCHOR_PERSIST_STATE_PERSIST_NOT_REQUESTED_ANDROID = 0,
XR_ANCHOR_PERSIST_STATE_PERSIST_PENDING_ANDROID = 1,
XR_ANCHOR_PERSIST_STATE_PERSISTED_ANDROID = 2
} XrAnchorPersistStateANDROID;
এনাম | বর্ণনা |
| অ্যাঙ্করকে অ্যাপের মাধ্যমে স্থির থাকার জন্য অনুরোধ করা হয়নি। |
| অ্যাঙ্করকে স্থির থাকার জন্য অনুরোধ করা হয়েছে কিন্তু এখনও ধরে রাখা হয়নি। |
| অ্যাঙ্কর সফলভাবে রানটাইম দ্বারা স্থির করা হয়েছে. |
স্থায়ী ডেটা থেকে একটি অ্যাঙ্কর তৈরি করুন
xrCreatePersistedAnchorSpaceANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreatePersistedAnchorSpaceANDROID(
XrDeviceAnchorPersistenceANDROID handle,
const XrPersistedAnchorSpaceCreateInfoANDROID* createInfo,
XrSpace* anchorOutput);
পরামিতি বিবরণ
-
handleহল XrDeviceAnchorPersistenceANDROID । -
createInfoহল XrPersistedAnchorSpaceCreateInfoANDROID যাতে অ্যাঙ্কর তৈরির পরামিতি থাকে। -
anchorOutputহল একটি XrSpace- এর একটি পয়েন্টার যেখানে নতুন অ্যাঙ্কর স্পেস ফেরত দেওয়া হয়।
অ্যাপ্লিকেশানটি একই XrUuidEXT-এর সাথে xrCreatePersistedAnchorSpaceANDROID-এ কল করে পূর্বে স্থায়ী অ্যাঙ্কর থেকে একটি XrSpace অ্যাঙ্কর তৈরি করতে পারে । এটি XR_ANDROID_trackables এ সংজ্ঞায়িত অ্যাঙ্কর তৈরির আরেকটি উপায়।
- অ্যাঙ্কর XrUuidEXT না পাওয়া গেলে
XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROIDফেরত দেওয়া হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই xrCreatePersistedAnchorSpaceANDROID কল করার আগে সক্রিয় করতে হবে -
handleঅবশ্যই একটি বৈধ XrDeviceAnchorPersistenceANDROID হ্যান্ডেল হতে হবে -
createInfoঅবশ্যই একটি বৈধ XrPersistedAnchorSpaceCreateInfoANDROID কাঠামোর একটি নির্দেশক হতে হবে -
anchorOutputঅবশ্যই একটি XrSpace হ্যান্ডেলের একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_VALIDATION_FAILURE -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_SESSION_LOST -
XR_ERROR_OUT_OF_MEMORY -
XR_ERROR_LIMIT_REACHED -
XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROID -
XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROID
XrPersistedAnchorSpaceCreateInfoANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrPersistedAnchorSpaceCreateInfoANDROID {
XrStructureType type;
void* next;
XrUuidEXT anchorId;
} XrPersistedAnchorSpaceCreateInfoANDROID;
সদস্য বিবরণ
-
typeহল এই কাঠামোর XrStructureType । -
nextহলNULLবা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
anchorIdহল স্থায়ী অ্যাঙ্করের XrUuidEXT থেকে একটি অ্যাঙ্কর XrSpace তৈরি করতে।
XrPersistedAnchorSpaceCreateInfoANDROID কাঠামো xrCreateDeviceAnchorPersistenceANDROID- এ পাস করা হলে অ্যাঙ্করের জন্য তৈরির বিকল্প সরবরাহ করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই XrPersistedAnchorSpaceCreateInfoANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
typeXR_TYPE_PERSISTED_ANCHOR_SPACE_CREATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে
স্থায়ী অ্যাঙ্কর গণনা করুন
xrEnumeratePersistedAnchorsANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrEnumeratePersistedAnchorsANDROID(
XrDeviceAnchorPersistenceANDROID handle,
uint32_t anchorIdsCapacityInput,
uint32_t* anchorIdsCountOutput,
XrUuidEXT* anchorIds);
পরামিতি বিবরণ
-
handleহল XrDeviceAnchorPersistenceANDROID । -
anchorIdsCapacityInputহলanchorIdsঅ্যারের ক্ষমতা, বা 0 প্রয়োজনীয় ক্ষমতা পুনরুদ্ধারের অনুরোধ নির্দেশ করার জন্য। -
anchorIdsCountOutputহলanchorIdsলেখা গণনার একটি পয়েন্টার, অথবাanchorIdsCapacityInputঅপর্যাপ্ত হলে প্রয়োজনীয় ক্ষমতার একটি পয়েন্টার। -
anchorIdsহল XrUuidEXT কাঠামোর একটি অ্যারের একটি পয়েন্টার।anchorIdsCapacityInput0 হলে এটিNULLহতে পারে । - প্রয়োজনীয়
anchorIdsআকার পুনরুদ্ধারের বিস্তারিত বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
অ্যাপ্লিকেশনটি xrEnumeratePersistedAnchorsANDROID-কে কল করে সমস্ত বর্তমান স্থায়ী অ্যাঙ্করগুলি গণনা করতে পারে । anchorIds অ্যারের ক্ষমতা পর্যন্ত স্থায়ী অ্যাঙ্করগুলির UUID ধরে রাখবে। যদি ক্ষমতা অপর্যাপ্ত হয়, অ্যাপ্লিকেশনগুলির কোন গ্যারান্টি নেই যে অ্যাঙ্করগুলি ফেরত দেওয়া হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই xrEnumeratePersistedAnchorsANDROID কল করার আগে সক্রিয় করতে হবে -
handleঅবশ্যই একটি বৈধ XrDeviceAnchorPersistenceANDROID হ্যান্ডেল হতে হবে -
anchorIdsCountOutputএকটিuint32_tমানের একটি পয়েন্টার হতে হবে - যদি
anchorIdsCapacityInput0, anchorIdsঅবশ্যইanchorIdsCapacityInputXrUuidEXT কাঠামোর একটি অ্যারের জন্য একটি নির্দেশক হতে হবে
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROID -
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_VALIDATION_FAILURE -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_SESSION_LOST -
XR_ERROR_SIZE_INSUFFICIENT
একটি অবিরাম নোঙ্গর unpersist
xrUnpersistAnchorANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrUnpersistAnchorANDROID(
XrDeviceAnchorPersistenceANDROID handle,
const XrUuidEXT* anchorId);
পরামিতি বিবরণ
-
handleহল XrDeviceAnchorPersistenceANDROID । -
anchorIdহল নোঙ্গরের XrUuidEXT যা অস্থির করার জন্য।
অ্যাপ্লিকেশনটি xrUnpersistAnchorANDROID কল করে একটি স্থায়ী নোঙ্গরকে স্থগিত করতে পারে না এবং অবিরত থাকার জন্য অ্যাঙ্করের অ্যাঙ্কর XrUuidEXT পাস করে।
- স্থায়ী ডেটা প্রস্তুত না হলে
XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROIDফেরত দেওয়া হবে৷ - অ্যাঙ্কর XrUuidEXT না পাওয়া গেলে
XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROIDফেরত দেওয়া হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistenceএক্সটেনশনটি অবশ্যই xrUnpersistAnchorANDROID কল করার আগে সক্রিয় করতে হবে -
handleঅবশ্যই একটি বৈধ XrDeviceAnchorPersistenceANDROID হ্যান্ডেল হতে হবে -
anchorIdঅবশ্যই একটি বৈধ XrUuidEXT কাঠামোর একটি পয়েন্টার হতে হবে৷
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_VALIDATION_FAILURE -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_SESSION_LOST -
XR_ERROR_OUT_OF_MEMORY -
XR_ERROR_LIMIT_REACHED -
XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROID -
XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROID
নোঙ্গর অধ্যবসায় জন্য উদাহরণ কোড
নিম্নলিখিত উদাহরণ কোডটি প্রদর্শন করে যে কীভাবে সিস্টেমের সক্ষমতা পরিদর্শন করা যায়, স্থির, গণনা করা এবং নোঙ্গরগুলিকে অবিরত করা যায়, সেইসাথে স্থায়ী অ্যাঙ্কর XrUuidEXT থেকে একটি অ্যাঙ্কর তৈরি করা যায়।
XrSession session; // previously initialized
XrSpace anchor; // previously initialized
// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrEnumerateSupportedPersistenceAnchorTypesANDROID xrEnumerateSupportedPersistenceAnchorTypesANDROID; // previously initialized
PFN_xrCreateDeviceAnchorPersistenceANDROID xrCreateDeviceAnchorPersistenceANDROID; // previously initialized
PFN_xrDestroyDeviceAnchorPersistenceANDROID xrDestroyDeviceAnchorPersistenceANDROID; // previously initialized
PFN_xrPersistAnchorANDROID xrPersistAnchorANDROID; // previously initialized
PFN_xrGetAnchorPersistStateANDROID xrGetAnchorPersistStateANDROID; // previously initialized
PFN_xrCreatePersistedAnchorSpaceANDROID xrCreatePersistedAnchorSpaceANDROID; // previously initialized
PFN_xrEnumeratePersistedAnchorsANDROID xrEnumeratePersistedAnchorsANDROID; // previously initialized
PFN_xrUnpersistAnchorANDROID xrUnpersistAnchorANDROID; // previously initialized
// Create a device anchor persistence handle
XrDeviceAnchorPersistenceCreateInfoANDROID persistenceHandleCreateInfo;
persistenceHandleCreateInfo.type = XR_TYPE_DEVICE_ANCHOR_PERSISTENCE_CREATE_INFO_ANDROID;
persistenceHandleCreateInfo.next = nullptr;
XrDeviceAnchorPersistenceANDROID persistenceHandle;
CHK_XR(xrCreateDeviceAnchorPersistenceANDROID(session, &persistenceHandleCreateInfo, &persistenceHandle));
/// Persist an anchor
XrPersistedAnchorSpaceInfo anchorSpaceInfo;
anchorSpaceInfo.type = XR_TYPE_PERSISTED_ANCHOR_SPACE_INFO_ANDROID;
anchorSpaceInfo.next = nullptr;
anchorSpaceInfo.anchor = anchor;
XrUuidEXT anchorId;
do {
XrResult result = xrPersistAnchorANDROID(
persistenceHandle, &anchorSpaceInfo, &anchorId);
} while (result == XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROID ||
result == XR_ERROR_ANCHOR_NOT_TRACKING_ANDROID);
if (result != XR_SUCCESS) {
// Handle errors
}
// ... Update loop ...
// Poll for anchor persist state to confirm if it was successfully persisted
XrAnchorPersistStateANDROID persistState;
CHK_XR(xrGetAnchorPersistStateANDROID(persistenceHandle, &anchorId, &persistState));
if (persistState == XR_ANCHOR_PERSIST_STATE_PERSISTED_ANDROID) {
// The anchor was persisted successfully
}
// Enumerate all persisted anchors
uint32_t anchorCountOutput = 0;
std::vector<XrUuidEXT> allAnchors;
CHK_XR(xrEnumeratePersistedAnchorsANDROID(
persistenceHandle,
anchorCountOutput,
&anchorCountOutput,
nullptr
));
allAnchors.resize(anchorCountOutput, XR_NULL_HANDLE);
// Fetch the actual anchors in an appropriately resized array.
CHK_XR(xrEnumeratePersistedAnchorsANDROID(
persistenceHandle,
anchorCountOutput,
&anchorCountOutput,
allAnchors.data()
));
// Creating an anchor from a previously persisted anchor using its UUID
XrTime updateTime; // Time used for the current frame's simulation update.
XrUuidEXT anchorId = allAnchors[0];
XrPersistedAnchorSpaceCreateInfo createInfo;
createInfo.type = XR_TYPE_PERSISTED_ANCHOR_CREATE_INFO_ANDROID;
createInfo.next = nullptr;
createInfo.anchorId = anchorId;
XrSpace anchorSpace = XR_NULL_HANDLE;
CHK_XR(xrCreatePersistedAnchorSpaceANDROID(
persistenceHandle,
&createInfo,
&anchorSpace
));
// The anchor was found and retrieved from the local device successfully.
XrSpaceLocation anchorLocation = { XR_TYPE_SPACE_LOCATION };
CHK_XR(xrLocateSpace(anchorSpace, appSpace, updateTime, &anchorLocation));
XrPosef pose = anchorLocation.pose;
// Unpersist the anchor
do {
XrResult result = xrUnpersistAnchorANDROID(persistenceHandle, &anchorId);
} while (result == XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROID);
if (result != XR_SUCCESS) {
// Handle errors
}
// Once app is done with all persistence related tasks
CHK_XR(xrDestroySpace(anchorSpace));
CHK_XR(xrDestroyDeviceAnchorPersistenceANDROID(persistenceHandle));
নতুন অবজেক্ট টাইপ
নতুন Enum ধ্রুবক
XrObjectType গণনা এর সাথে প্রসারিত করা হয়েছে:
-
XR_OBJECT_TYPE_DEVICE_ANCHOR_PERSISTENCE_ANDROID
XrResult গণনা এর সাথে বর্ধিত করা হয়েছে:
-
XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROID -
XR_ERROR_ANCHOR_ALREADY_PERSISTED_ANDROID -
XR_ERROR_ANCHOR_NOT_TRACKING_ANDROID -
XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROID
XrStructureType গণনা এর সাথে প্রসারিত করা হয়েছে:
-
XR_TYPE_PERSISTED_ANCHOR_ANDROID -
XR_TYPE_PERSISTED_ANCHOR_SPACE_CREATE_INFO_ANDROID -
XR_TYPE_PERSISTED_ANCHOR_SPACE_INFO_ANDROID -
XR_TYPE_DEVICE_ANCHOR_PERSISTENCE_CREATE_INFO_ANDROID
নতুন Enums
নতুন কাঠামো
- XrDeviceAnchorPersistenceCreateInfoANDROID
- XrPersistedAnchorSpaceCreateInfoANDROID
- XrPersistedAnchorSpaceInfoANDROID
- XrSystemDeviceAnchorPersistencePropertiesANDROID
নতুন ফাংশন
- xrEnumerateSupported PersistenceAnchorTypesANDROID
- xrCreateDeviceAnchorPersistenceANDROID
- xrDestroyDeviceAnchorPersistenceANDROID
- xrPersistAnchorANDROID
- xrGetAnchorPersistStateANDROID
- xrCreatePersistedAnchorSpaceANDROID
- xrEnumeratePersistedAnchorsANDROID
- xrUnpersistAnchorANDROID
ইস্যু
সংস্করণ ইতিহাস
- রিভিশন 1, 2024-10-10 (কেনি ভার্কেমার)
- প্রাথমিক এক্সটেনশন বর্ণনা
OpenXR™ এবং OpenXR লোগো হল The Khronos Group Inc. এর মালিকানাধীন ট্রেডমার্ক এবং চীন, ইউরোপীয় ইউনিয়ন, জাপান এবং যুক্তরাজ্যে ট্রেডমার্ক হিসেবে নিবন্ধিত।