নাম স্ট্রিং
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 ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_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- এর একটি অ্যারের একটি পয়েন্টার, কিন্তুtrackableTypeCapacityInput
0
হলেNULL
হতে পারে । - প্রয়োজনীয়
trackableTypes
আকার পুনরুদ্ধারের বিস্তারিত বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
অ্যাপ্লিকেশনটি অন্যান্য XrTrackableTypeANDROID ট্র্যাকেবলে অ্যাঙ্কর অধ্যবসায়ের সমর্থন পরীক্ষা করতে xrEnumerateSupportedPersistenceAnchorTypesANDROID ব্যবহার করতে পারে ।
যদি প্রদত্ত XrTrackableTypeANDROID trackableTypes
অ্যারেতে ফেরত না দেওয়া হয়, তাহলে XR_ERROR_FEATURE_UNSUPPORTED
ডিভাইস অ্যাঙ্কর পারসিসটেন্স ফাংশন থেকে ফেরত দেওয়া হবে যা সেই ধরনের অ্যাঙ্করে কাজ করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistence
এক্সটেনশনটি অবশ্যই xrEnumerateSupportedPersistenceAnchorTypesANDROID কল করার আগে সক্রিয় করতে হবে -
instance
অবশ্যই একটি বৈধ XrInstance হ্যান্ডেল হতে হবে -
trackableTypeCountOutput
একটিuint32_t
মানের একটি পয়েন্টার হতে হবে - যদি
trackableTypeCapacityInput
0, trackableTypes
অবশ্যইtrackableTypeCapacityInput
XrTrackableTypeANDROID মানগুলির একটি অ্যারের নির্দেশক হতে হবে
রিটার্ন কোড
-
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 ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_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_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 ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_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 ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_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 কাঠামোর একটি অ্যারের একটি পয়েন্টার।anchorIdsCapacityInput
0 হলে এটিNULL
হতে পারে । - প্রয়োজনীয়
anchorIds
আকার পুনরুদ্ধারের বিস্তারিত বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
অ্যাপ্লিকেশনটি xrEnumeratePersistedAnchorsANDROID-কে কল করে সমস্ত বর্তমান স্থায়ী অ্যাঙ্করগুলি গণনা করতে পারে । anchorIds
অ্যারের ক্ষমতা পর্যন্ত স্থায়ী অ্যাঙ্করগুলির UUID ধরে রাখবে। যদি ক্ষমতা অপর্যাপ্ত হয়, অ্যাপ্লিকেশনগুলির কোন গ্যারান্টি নেই যে অ্যাঙ্করগুলি ফেরত দেওয়া হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_device_anchor_persistence
এক্সটেনশনটি অবশ্যই xrEnumeratePersistedAnchorsANDROID কল করার আগে সক্রিয় করতে হবে -
handle
অবশ্যই একটি বৈধ XrDeviceAnchorPersistenceANDROID হ্যান্ডেল হতে হবে -
anchorIdsCountOutput
একটিuint32_t
মানের একটি পয়েন্টার হতে হবে - যদি
anchorIdsCapacityInput
0, anchorIds
অবশ্যইanchorIdsCapacityInput
XrUuidEXT কাঠামোর একটি অ্যারের জন্য একটি নির্দেশক হতে হবে
রিটার্ন কোড
-
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;
CHK_XR(xrPersistAnchorANDROID(persistenceHandle, &anchorSpaceInfo, &anchorId));
// ... 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;
// 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 (কেনি ভার্কেমার)
- প্রাথমিক এক্সটেনশন বর্ণনা