Tiện ích OpenXR XR_ANDROID_device_anchor_persistence

Chuỗi tên

XR_ANDROID_device_anchor_persistence

Loại phần mở rộng

Tiện ích thực thể

Số điện thoại mở rộng đã đăng ký

458

Bản sửa đổi

1

Phần mở rộng và phần phụ thuộc phiên bản

XR_EXT_uuidXR_ANDROID_trackables

Ngày sửa đổi gần đây nhất

2024-10-10

Trạng thái IP

Không có thông báo xác nhận quyền sở hữu đối với tài sản trí tuệ nào.

Cộng tác viên

Nihav Jain, Google

Levana Chen, Google

Spencer Quin, Google

Kenny Vercaemer, Google

Tổng quan

Tiện ích này cho phép ứng dụng duy trì, truy xuất và huỷ duy trì các neo trên thiết bị hiện tại cho người dùng hiện tại, trên các ứng dụng và phiên thiết bị.

Kiểm tra chức năng của hệ thống

Cấu trúc XrSystemDeviceAnchorPersistencePropertiesANDROID được xác định là:

typedef struct XrSystemDeviceAnchorPersistencePropertiesANDROID {
    XrStructureType    type;
    void*              next;
    XrBool32           supportsAnchorPersistence;
} XrSystemDeviceAnchorPersistencePropertiesANDROID;

Nội dung mô tả thành viên

  • typeXrStructureType của cấu trúc này.
  • nextNULL hoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc. Không có cấu trúc nào như vậy được xác định trong OpenXR cốt lõi hoặc tiện ích này.
  • supportsAnchorPersistenceXrBool32 cho biết liệu hệ thống hiện tại có hỗ trợ tính năng liên kết cố định cho neo không gian hay không.

Ứng dụng có thể kiểm tra xem hệ thống có thể duy trì các neo không gian hay không (xem xrCreateAnchorSpaceANDROID) bằng cách mở rộng XrSystemProperties bằng cấu trúc XrSystemDeviceAnchorPersistencePropertiesANDROID khi gọi xrGetSystemProperties. Đối với các neo có thể theo dõi được, ứng dụng có thể sử dụng xrEnumerateSupportedPersistenceAnchorTypesANDROID để truy vấn các loại được hỗ trợ.

Nếu XR_FALSE được trả về cho supportsAnchorPersistence, thì XR_ERROR_FEATURE_UNSUPPORTED sẽ được trả về từ các hàm liên tục của neo thiết bị hoạt động trên neo không gian.

Cách sử dụng hợp lệ (ngầm ẩn)

Hàm xrEnumerateSupportedPersistenceAnchorTypesANDROID được xác định là:

XrResult xrEnumerateSupportedPersistenceAnchorTypesANDROID(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    uint32_t                                    trackableTypeCapacityInput,
    uint32_t*                                   trackableTypeCountOutput,
    XrTrackableTypeANDROID*                     trackableTypes);

Nội dung mô tả tham số

  • sessionXrSession tạo ra XrDeviceAnchorPersistenceANDROID.
  • trackableTypeCapacityInput là dung lượng của trackableTypes hoặc 0 để truy xuất dung lượng bắt buộc.
  • trackableTypeCountOutput là con trỏ đến số lượng mảng hoặc con trỏ đến dung lượng bắt buộc trong trường hợp trackableTypeCapacityInput không đủ.
  • trackableTypes là con trỏ đến một mảng XrTrackableTypeANDROID, nhưng có thểNULL nếu trackableTypeCapacityInput0.
  • Hãy xem phần Tham số kích thước bộ nhớ đệm để biết nội dung mô tả chi tiết về cách truy xuất kích thước trackableTypes bắt buộc.

Ứng dụng có thể sử dụng xrEnumerateSupportedPersistenceAnchorTypesANDROID để kiểm tra xem có hỗ trợ tính năng liên kết cố định trên các đối tượng có thể theo dõi XrTrackableTypeANDROID khác hay không.

Nếu một XrTrackableTypeANDROID nhất định không được trả về trong mảng trackableTypes, thì XR_ERROR_FEATURE_UNSUPPORTED sẽ được trả về từ các hàm liên kết cố định của thiết bị hoạt động trên một liên kết thuộc loại đó.

Cách sử dụng hợp lệ (ngầm ẩn)

Mã trả về

Thành công

  • XR_SUCCESS

Không thành công

  • 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

Tạo một tay cầm cố định của neo thiết bị

XrDeviceAnchorPersistenceANDROID là một tay cầm đại diện cho các tài nguyên cần thiết để duy trì và theo dõi các neo đã lưu giữ.

XR_DEFINE_HANDLE(XrDeviceAnchorPersistenceANDROID)

Hàm xrCreateDeviceAnchorPersistenceANDROID được xác định như sau:

XrResult xrCreateDeviceAnchorPersistenceANDROID(
    XrSession                                   session,
    const XrDeviceAnchorPersistenceCreateInfoANDROID* createInfo,
    XrDeviceAnchorPersistenceANDROID*           outHandle);

Nội dung mô tả tham số

Ứng dụng có thể tạo một tay điều khiển XrDeviceAnchorPersistenceANDROID bằng cách gọi xrCreateDeviceAnchorPersistenceANDROID. Bạn có thể sử dụng XrDeviceAnchorPersistenceANDROID trong các lệnh gọi API tiếp theo để duy trì hoặc huỷ duy trì neo. Cuối cùng, bạn phải giải phóng tay điều khiển XrDeviceAnchorPersistenceANDROID bằng hàm xrDestroyDeviceAnchorPersistenceANDROID.

Cách sử dụng hợp lệ (ngầm ẩn)

Mã trả về

Thành công

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Không thành công

  • 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

Cấu trúc XrDeviceAnchorPersistenceCreateInfoANDROID được xác định là:

typedef struct XrDeviceAnchorPersistenceCreateInfoANDROID {
    XrStructureType    type;
    void*              next;
} XrDeviceAnchorPersistenceCreateInfoANDROID;

Nội dung mô tả thành viên

  • typeXrStructureType của cấu trúc này.
  • nextNULL hoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc. Không có cấu trúc nào như vậy được xác định trong OpenXR cốt lõi hoặc tiện ích này.

Cấu trúc XrDeviceAnchorPersistenceCreateInfoANDROID cung cấp các tuỳ chọn tạo cho XrDeviceAnchorPersistenceANDROID khi được truyền đến xrCreateDeviceAnchorPersistenceANDROID.

Cách sử dụng hợp lệ (ngầm ẩn)

Hàm xrDestroyDeviceAnchorPersistenceANDROID được định nghĩa là:

XrResult xrDestroyDeviceAnchorPersistenceANDROID(
    XrDeviceAnchorPersistenceANDROID            handle);

Nội dung mô tả tham số

Hàm xrDestroyDeviceAnchorPersistenceANDROID sẽ huỷ bỏ tay điều khiển liên tục của neo thiết bị.

Cách sử dụng hợp lệ (ngầm ẩn)

Độ an toàn cho luồng

  • Quyền truy cập vào handle và mọi tay điều khiển con phải được đồng bộ hoá bên ngoài

Mã trả về

Thành công

  • XR_SUCCESS

Không thành công

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID

Duy trì neo

Hàm xrPersistAnchorANDROID được xác định là:

XrResult xrPersistAnchorANDROID(
    XrDeviceAnchorPersistenceANDROID            handle,
    const XrPersistedAnchorSpaceInfoANDROID*    persistedInfo,
    XrUuidEXT*                                  anchorIdOutput);

Nội dung mô tả tham số

Ứng dụng có thể yêu cầu neo được duy trì bằng cách gọi xrPersistAnchorANDROID. Ứng dụng không được giả định rằng giá trị trả về thành công có nghĩa là neo được duy trì ngay lập tức. Ứng dụng nên sử dụng xrGetAnchorPersistStateANDROID để kiểm tra trạng thái ổn định của neo bằng cách sử dụng neo được trả về XrUuidEXT. Ứng dụng có thể sử dụng xrUnpersistAnchorANDROID để huỷ lưu trữ liên kết.

  • XR_ERROR_ANCHOR_NOT_TRACKING_ANDROID sẽ được trả về nếu neo không được theo dõi tại thời điểm gọi.
  • XR_SUCCESS sẽ được trả về sau khi neo được đưa vào hàng đợi để lưu trữ.

Cách sử dụng hợp lệ (ngầm ẩn)

Mã trả về

Thành công

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Không thành công

  • 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

Cấu trúc XrPersistedAnchorSpaceInfoANDROID được xác định là:

typedef struct XrPersistedAnchorSpaceInfoANDROID {
    XrStructureType    type;
    void*              next;
    XrSpace            anchor;
} XrPersistedAnchorSpaceInfoANDROID;

Nội dung mô tả thành viên

  • typeXrStructureType của cấu trúc này.
  • nextNULL hoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc. Không có cấu trúc nào như vậy được xác định trong OpenXR cốt lõi hoặc tiện ích này.
  • anchor là một XrSpace neo do xrCreateAnchorSpaceANDROID tạo trước đó để duy trì.

Cách sử dụng hợp lệ (ngầm ẩn)

Hàm xrGetAnchorPersistStateANDROID được xác định là:

XrResult xrGetAnchorPersistStateANDROID(
    XrDeviceAnchorPersistenceANDROID            handle,
    const XrUuidEXT*                            anchorId,
    XrAnchorPersistStateANDROID*                persistState);

Nội dung mô tả tham số

  • handleXrDeviceAnchorPersistenceANDROID.
  • anchorIdXrUuidEXT của neo.
  • persistState là con trỏ đến XrAnchorPersistStateANDROID, trong đó trạng thái của neo được trả về.
  • XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROID sẽ được trả về nếu không tìm thấy neo XrUuidEXT.
  • XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROID sẽ được trả về nếu dữ liệu cố định của anchorId chưa sẵn sàng.

Cách sử dụng hợp lệ (ngầm ẩn)

Mã trả về

Thành công

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Không thành công

  • 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

Enum XrAnchorPersistStateANDROID được xác định là:

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;

Enum

Nội dung mô tả

XR_ANCHOR_PERSIST_STATE_PERSIST_NOT_REQUESTED_ANDROID

Ứng dụng chưa yêu cầu neo cố định.

XR_ANCHOR_PERSIST_STATE_PERSIST_PENDING_ANDROID

Bạn đã yêu cầu lưu trữ liên kết cố định nhưng chưa lưu trữ.

XR_ANCHOR_PERSIST_STATE_PERSISTED_ANDROID

Thời gian chạy đã lưu trữ thành công neo.

Tạo một neo từ dữ liệu ổn định

Hàm xrCreatePersistedAnchorSpaceANDROID được xác định như sau:

XrResult xrCreatePersistedAnchorSpaceANDROID(
    XrDeviceAnchorPersistenceANDROID            handle,
    const XrPersistedAnchorSpaceCreateInfoANDROID* createInfo,
    XrSpace*                                    anchorOutput);

Nội dung mô tả tham số

Ứng dụng có thể tạo một neo XrSpace từ một neo đã tồn tại trước đó bằng cách gọi xrCreatePersistedAnchorSpaceANDROID với cùng một XrUuidEXT. Đây là một cách khác để tạo neo như được xác định trong XR_ANDROID_trackables.

  • XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROID sẽ được trả về nếu không tìm thấy neo XrUuidEXT.

Cách sử dụng hợp lệ (ngầm ẩn)

Mã trả về

Thành công

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Không thành công

  • 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

Cấu trúc XrPersistedAnchorSpaceCreateInfoANDROID được xác định là:

typedef struct XrPersistedAnchorSpaceCreateInfoANDROID {
    XrStructureType    type;
    void*              next;
    XrUuidEXT          anchorId;
} XrPersistedAnchorSpaceCreateInfoANDROID;

Nội dung mô tả thành viên

  • typeXrStructureType của cấu trúc này.
  • nextNULL hoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc. Không có cấu trúc nào như vậy được xác định trong OpenXR cốt lõi hoặc tiện ích này.
  • anchorIdXrUuidEXT của neo cố định để tạo neo XrSpace.

Cấu trúc XrPersistedAnchorSpaceCreateInfoANDROID cung cấp các tuỳ chọn tạo cho neo khi được truyền đến xrCreateDeviceAnchorPersistenceANDROID.

Cách sử dụng hợp lệ (ngầm ẩn)

Liệt kê các neo cố định

Hàm xrEnumeratePersistedAnchorsANDROID được xác định là:

XrResult xrEnumeratePersistedAnchorsANDROID(
    XrDeviceAnchorPersistenceANDROID            handle,
    uint32_t                                    anchorIdsCapacityInput,
    uint32_t*                                   anchorIdsCountOutput,
    XrUuidEXT*                                  anchorIds);

Nội dung mô tả tham số

  • handleXrDeviceAnchorPersistenceANDROID.
  • anchorIdsCapacityInput là dung lượng của mảng anchorIds hoặc 0 để cho biết yêu cầu truy xuất dung lượng cần thiết.
  • anchorIdsCountOutput là con trỏ đến số lượng anchorIds đã ghi hoặc con trỏ đến dung lượng cần thiết trong trường hợp anchorIdsCapacityInput không đủ.
  • anchorIds là con trỏ trỏ đến một mảng cấu trúc XrUuidEXT. Giá trị này có thểNULL nếu anchorIdsCapacityInput là 0.
  • Hãy xem phần Tham số kích thước bộ nhớ đệm để biết nội dung mô tả chi tiết về cách truy xuất kích thước anchorIds bắt buộc.

Ứng dụng có thể liệt kê tất cả các neo cố định hiện tại bằng cách gọi xrEnumeratePersistedAnchorsANDROID. anchorIds sẽ lưu trữ các UUID của neo cố định trong phạm vi dung lượng của mảng. Nếu dung lượng không đủ, ứng dụng không được đảm bảo về việc neo nào sẽ được trả về.

Cách sử dụng hợp lệ (ngầm ẩn)

Mã trả về

Thành công

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Không thành công

  • 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

Huỷ lưu trữ một neo cố định

Hàm xrUnpersistAnchorANDROID được xác định là:

XrResult xrUnpersistAnchorANDROID(
    XrDeviceAnchorPersistenceANDROID            handle,
    const XrUuidEXT*                            anchorId);

Nội dung mô tả tham số

Ứng dụng có thể huỷ lưu trữ một neo cố định bằng cách gọi xrUnpersistAnchorANDROID và truyền neo XrUuidEXT của neo để huỷ lưu trữ.

  • XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROID sẽ được trả về nếu dữ liệu ổn định chưa sẵn sàng.
  • XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROID sẽ được trả về nếu không tìm thấy neo XrUuidEXT.

Cách sử dụng hợp lệ (ngầm ẩn)

Mã trả về

Thành công

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Không thành công

  • 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

Mã ví dụ về tính năng liên kết cố định

Mã ví dụ sau đây minh hoạ cách kiểm tra chức năng của hệ thống, lưu trữ, liệt kê và huỷ lưu trữ neo, cũng như tạo neo từ neo đã lưu trữ 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));

Các loại đối tượng mới

Hằng số enum mới

Bổ sung enum XrObjectType bằng:

  • XR_OBJECT_TYPE_DEVICE_ANCHOR_PERSISTENCE_ANDROID

Bổ sung enum XrResult bằng:

  • 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

Bổ sung enum 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

Enum mới

Cấu trúc mới

Hàm mới

Vấn đề

Nhật ký phiên bản

  • Bản sửa đổi 1, ngày 10 tháng 10 năm 2024 (Kenny Vercaemer)
    • Nội dung mô tả ban đầu của tiện ích