XR_ANDROID_device_anchor_persistence OpenXR uzantısı

Ad dizesi

XR_ANDROID_device_anchor_persistence

Uzantı Türü

Örnek uzatma

Kayıtlı Uzatma Numarası

458

Düzeltme

1

Uzantı ve Sürüm Bağımlılıkları

XR_EXT_uuid ve XR_ANDROID_trackables

Son Değiştirilme Tarihi

2024-10-10

IP Durumu

Bilinen IP hak talepleri yok.

Katkıda bulunanlar

Nihav Jain, Google

Levana Chen, Google

Spencer Quin, Google

Kenny Vercaemer, Google

Genel Bakış

Bu uzantı, uygulamanın uygulamalar ve cihaz oturumları arasında mevcut kullanıcı için geçerli cihazdaki sabitlemeleri sürdürmesine, almasına ve sürdürmemesini sağlamasına olanak tanır.

Sistem kapasitesini inceleme

XrSystemDeviceAnchorPersistencePropertiesANDROID yapısı şu şekilde tanımlanır:

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'da veya bu uzantıda böyle bir yapı tanımlanmamıştır.
  • supportsAnchorPersistence, mevcut sistemin uzamsal sabitleyiciler için sabitleyici kalıcılığı destekleyip desteklemediğini belirten bir XrBool32 bağımsız değişkenidir.

Bir uygulama, xrGetSystemProperties çağrısı sırasında XrSystemProperties öğesini XrSystemDeviceAnchorPersistencePropertiesANDROID yapısıyla genişleterek sistemin uzamsal ankrajları (xrCreateAnchorSpaceANDROID bölümüne bakın) devam ettirip ettiremeyeceğini kontrol edebilir. Uygulamalar, desteklenen izlenebilir ankrajlar için desteklenen türleri sorgulamak üzere xrEnumerateSupportedPersistenceAnchorTypesANDROID işlevini kullanabilir.

supportsAnchorPersistence için XR_FALSE döndürülürse XR_ERROR_FEATURE_UNSUPPORTED, bir mekansal ankraj üzerinde çalışan cihaz ankrajı kalıcılık işlevlerinden döndürülür.

Geçerli Kullanım (Dolayı)

xrEnumerateSupportedPersistenceAnchorTypesANDROID işlevi şu şekilde tanımlanır:

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

Parametre Açıklamaları

  • session, XrDeviceAnchorPersistenceANDROID öğesini oluşturan XrSession öğesidir.
  • trackableTypeCapacityInput, trackableTypes öğesinin kapasitesidir veya gerekli kapasiteyi almak için 0 değerini alır.
  • trackableTypeCountOutput, dizinin sayısının işaretçisidir veya trackableTypeCapacityInput yetersiz olduğunda gerekli kapasitenin işaretçisidir.
  • trackableTypes, XrTrackableTypeANDROID dizisinin işaretçisidir ancak trackableTypeCapacityInput 0 ise NULL olabilir.
  • Gerekli trackableTypes boyutunu almayla ilgili ayrıntılı açıklama için Arabellek Boyutu Parametreleri bölümüne bakın.

Uygulama, diğer XrTrackableTypeANDROID izlenebilen öğelerde ankraj kalıcılığı desteği olup olmadığını kontrol etmek için xrEnumerateSupportedPersistenceAnchorTypesANDROID işlevini kullanabilir.

Belirli bir XrTrackableTypeANDROID, trackableTypes dizisinde döndürülmezse bu tür bir ankraj üzerinde çalışan cihaz ankrajı kalıcılık işlevlerinden XR_ERROR_FEATURE_UNSUPPORTED döndürülür.

Geçerli Kullanım (Dolayı)

İade Kodları

Başarılı

  • XR_SUCCESS

Hata

  • 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

Cihaz ankrajı kalıcılık işleyicisi oluşturma

XrDeviceAnchorPersistenceANDROID, kalıcı ankrajları sürdürmek ve takip etmek için gereken kaynakları temsil eden bir herkese açık kullanıcı adıdır.

XR_DEFINE_HANDLE(XrDeviceAnchorPersistenceANDROID)

xrCreateDeviceAnchorPersistenceANDROID işlevi şu şekilde tanımlanır:

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

Parametre Açıklamaları

Bir uygulama, xrCreateDeviceAnchorPersistenceANDROID işlevini çağırarak XrDeviceAnchorPersistenceANDROID işleyicisi oluşturabilir. XrDeviceAnchorPersistenceANDROID, sonraki API çağrılarında sabitlemeleri devam ettirmek veya kaldırmak için kullanıla bilir. XrDeviceAnchorPersistenceANDROID mülkünün xrDestroyDeviceAnchorPersistenceANDROID işlevi kullanılarak serbest bırakılması gerekir.

Geçerli Kullanım (Dolayı)

İade Kodları

Başarılı

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Hata

  • 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 yapısı şu şekilde tanımlanır:

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'da veya bu uzantıda böyle bir yapı tanımlanmamıştır.

XrDeviceAnchorPersistenceCreateInfoANDROID yapısı, xrCreateDeviceAnchorPersistenceANDROID işlevine aktarıldığında XrDeviceAnchorPersistenceANDROID için oluşturma seçenekleri sağlar.

Geçerli Kullanım (Dolayı)

xrDestroyDeviceAnchorPersistenceANDROID işlevi şu şekilde tanımlanır:

XrResult xrDestroyDeviceAnchorPersistenceANDROID(
    XrDeviceAnchorPersistenceANDROID            handle);

Parametre Açıklamaları

xrDestroyDeviceAnchorPersistenceANDROID işlevi, cihaz ankrajı kalıcı işleyicisini yok eder.

Geçerli Kullanım (Dolayı)

Thread Güvenliği

  • handle ve alt kimliklerine erişim harici olarak senkronize edilmelidir.

İade Kodları

Başarılı

  • XR_SUCCESS

Hata

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID

Sabitleme noktası oluşturma

xrPersistAnchorANDROID işlevi şu şekilde tanımlanır:

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

Parametre Açıklamaları

Uygulama, xrPersistAnchorANDROID çağrısını yaparak ankrajların kalıcı olmasını isteyebilir. Uygulama, başarılı bir döndürülen değerin ankrajın hemen kalıcı olduğu anlamına geldiğini varsaymamalıdır. Uygulama, döndürülen XrUuidEXT ankrajını kullanarak ankrajın kalıcı durumunu kontrol etmek için xrGetAnchorPersistStateANDROID işlevini kullanmalıdır. Uygulama, sabitlemeyi kaldırmak için xrUnpersistAnchorANDROID işlevini kullanabilir.

  • Arama sırasında ankraj izlenmiyorsa XR_ERROR_ANCHOR_NOT_TRACKING_ANDROID döndürülür.
  • Sabitleme için sıraya eklenen ankraj XR_SUCCESS döndürülür.

Geçerli Kullanım (Dolayı)

İade Kodları

Başarılı

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Hata

  • 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 yapısı şu şekilde tanımlanır:

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'da veya bu uzantıda böyle bir yapı tanımlanmamıştır.
  • anchor, xrCreateAnchorSpaceANDROID tarafından daha önce oluşturulmuş ve kalıcı olan bir ankraj XrSpace'tir.

Geçerli Kullanım (Dolayı)

xrGetAnchorPersistStateANDROID işlevi şu şekilde tanımlanır:

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

Parametre Açıklamaları

  • handle, XrDeviceAnchorPersistenceANDROID bağımsız değişkenidir.
  • anchorId, ankrajın XrUuidEXT değeridir.
  • persistState, ankrajın durumunun döndürüldüğü bir XrAnchorPersistStateANDROID işaretçisidir.
  • XrUuidEXT ankrajı bulunamazsa XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROID döndürülür.
  • anchorId için kalıcı veriler hazır değilse XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROID döndürülür.

Geçerli Kullanım (Dolayı)

İade Kodları

Başarılı

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Hata

  • 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 şu şekilde tanımlanır:

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

Açıklama

XR_ANCHOR_PERSIST_STATE_PERSIST_NOT_REQUESTED_ANDROID

Sabitleme, uygulama tarafından kalıcı olarak saklanması için istenmemiştir.

XR_ANCHOR_PERSIST_STATE_PERSIST_PENDING_ANDROID

Sabitlenmek istenen ankraj henüz sabitlenmemiştir.

XR_ANCHOR_PERSIST_STATE_PERSISTED_ANDROID

Sabitleme, çalışma zamanında başarıyla devam ettirilmiştir.

Kayıtlı verilerden ana hat oluşturma

xrCreatePersistedAnchorSpaceANDROID işlevi şu şekilde tanımlanır:

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

Parametre Açıklamaları

Uygulama, aynı XrUuidEXT ile xrCreatePersistedAnchorSpaceANDROID çağrısını yaparak daha önce kalıcılaştırılmış bir ankrajdan XrSpace ankrajı oluşturabilir. Bu, XR_ANDROID_trackables bölümünde tanımlandığı şekilde ankraj oluşturmanın başka bir yoludur.

  • XrUuidEXT ankrası bulunamazsa XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROID döndürülür.

Geçerli Kullanım (Dolayı)

İade Kodları

Başarılı

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Hata

  • 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 yapısı şu şekilde tanımlanır:

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'da veya bu uzantıda böyle bir yapı tanımlanmamıştır.
  • anchorId, XrSpace ankrajı oluşturmak için kalıcı ankrajın XrUuidEXT değeridir.

XrPersistedAnchorSpaceCreateInfoANDROID yapısı, xrCreateDeviceAnchorPersistenceANDROID işlevine aktarıldığında ankraj için oluşturma seçenekleri sağlar.

Geçerli Kullanım (Dolayı)

Kalıcı sabitleri numaralandırma

xrEnumeratePersistedAnchorsANDROID işlevi şu şekilde tanımlanır:

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

Parametre Açıklamaları

  • handle, XrDeviceAnchorPersistenceANDROID bağımsız değişkenidir.
  • anchorIdsCapacityInput, anchorIds dizisinin kapasitesidir veya gerekli kapasiteyi alma isteğini belirtmek için 0 değerini alır.
  • anchorIdsCountOutput, yazılan anchorIds sayısının işaretçisidir veya anchorIdsCapacityInput yetersiz olduğunda gereken kapasitenin işaretçisidir.
  • anchorIds, XrUuidEXT yapılarının dizisine işaret eden bir işaretçidir. anchorIdsCapacityInput 0 ise NULL olabilir.
  • Gerekli anchorIds boyutunu almayla ilgili ayrıntılı açıklama için Arabellek Boyutu Parametreleri bölümüne bakın.

Uygulama, xrEnumeratePersistedAnchorsANDROID işlevini çağırarak mevcut tüm kalıcı ankrajları sayabilir. anchorIds, dizi kapasitesine kadar kalıcı ankrajların UUID'lerini tutar. Kapasite yetersizse uygulamalarda hangi ankrajların döndürüleceği konusunda garanti verilmez.

Geçerli Kullanım (Dolayı)

İade Kodları

Başarılı

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Hata

  • 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

Kalıcı bir ankrajın kalıcılığını kaldırma

xrUnpersistAnchorANDROID işlevi şu şekilde tanımlanır:

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

Parametre Açıklamaları

Uygulama, xrUnpersistAnchorANDROID çağrısını yaparak ve kalıcılığını kaldırmak istediği ankrajın XrUuidEXT değerini ileterek kalıcı bir ankrajın kalıcılığını kaldırabilir.

  • Kalıcı veriler hazır değilse XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROID döndürülür.
  • XrUuidEXT ankrajı bulunamazsa XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROID döndürülür.

Geçerli Kullanım (Dolayı)

İade Kodları

Başarılı

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Hata

  • 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

Sabit bağlantı sürdürülebilirliği için örnek kod

Aşağıdaki örnek kodda, sistem özelliğinin nasıl inceleneceği, sabitleneceği, listeleneceği ve sabitlemenin kaldırılacağı, ayrıca sabitlenmiş XrUuidEXT sabitleyicisinden sabitleyici oluşturulacağı gösterilmektedir.

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));

Yeni Nesne Türleri

Yeni Enum Constants

XrObjectType dizini aşağıdakilerle genişletildi:

  • XR_OBJECT_TYPE_DEVICE_ANCHOR_PERSISTENCE_ANDROID

XrResult dizini şu şekilde genişletildi:

  • 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 dizini aşağıdakilerle genişletildi:

  • 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

Yeni Sıralamalar

Yeni Yapılar

Yeni İşlevler

Sorunlar

Sürüm Geçmişi

  • Düzeltme 1, 10.10.2024 (Kenny Vercaemer)
    • İlk uzantı açıklaması