// // Created by Admin on 2024/3/11. // #ifndef PICOXRRUNTIME_PICO_SCENE_CAPTURE_CREATION_H #define PICOXRRUNTIME_PICO_SCENE_CAPTURE_CREATION_H #include "pico_spatial_sensing.h" /** * XrStructureType : 1200396000 ~ 1200396999 */ #ifdef __cplusplus extern "C" { #endif #define XR_PICO_scene_capture_creation 1 #define XR_PICO_scene_capture_creation_SPEC_VERSION 1 #define XR_PICO_SCENE_CAPTURE_CREATION_EXTENSION_NAME "XR_PICO_scene_capture_creation" static const XrStructureType XR_TYPE_SYSTEM_SCENE_CAPTURE_CREATION_PROPERTIES_PICO = (XrStructureType)1200396000; typedef struct XrSystemSceneCaptureCreationPropertiesPICO { XrStructureType type; void* next; XrBool32 supportsSceneCaptureCreation; } XrSystemSceneCaptureCreationPropertiesPICO; static const XrStructureType XR_TYPE_SPATIAL_ENTITY_COMPONENT_SET_INFO_PICO = (XrStructureType) 1200396001; typedef struct XrSpatialEntityComponentSetInfoPICO { XrStructureType type;//XR_TYPE_SPATIAL_ENTITY_COMPONENT_SET_INFO_PICO const void* next; XrSpatialEntityComponentTypePICO componentType; XrSpatialEntityComponentDataBaseHeaderPICO* componentInfo; } XrSpatialEntityComponentSetInfoPICO; //TODO: remove the below enum and event typedef enum XrSpatialMapMemLimitedReasonPICO { XR_SPATIAL_MAP_MEMORY_LIMITED_UNKNOWN_PICO = 0, XR_SPATIAL_MAP_COUNT_LIMITED_PICO = 1, XR_SPATIAL_SINGLE_MAP_MEMORY_LIMITED_PICO = 2, XR_SPATIAL_TOTAL_MAP_MEMORY_LIMITED_PICO = 3, XR_SPATIAL_MAP_MEMORY_LIMITED_MAX_ENUM_PICO = 0x7FFFFFFF } XrSpatialMapMemLimitedReasonPICO; static const XrStructureType XR_TYPE_EVENT_DATA_SPATIAL_MAP_MEMORY_LIMITED_PICO = (XrStructureType) 1200396002; // first-party only, no extension number typedef struct XrEventDataSpatialMapMemLimitedPICO{ XrStructureType type;//XR_TYPE_EVENT_DATA_SPATIAL_MAP_MEMORY_LIMITED_PICO const void* next; XrSpatialMapMemLimitedReasonPICO reason; } XrEventDataSpatialMapMemLimitedPICO; typedef enum XrSpatialMapSizeLimitedReasonPICO { XR_SPATIAL_MAP_SIZE_LIMITED_UNKNOWN_PICO = 0, XR_SPATIAL_MAP_QUANTITY_LIMITED_PICO = 1, XR_SPATIAL_SINGLE_MAP_SIZE_LIMITED_PICO = 2, XR_SPATIAL_TOTAL_MAP_SIZE_LIMITED_PICO = 3, XR_SPATIAL_MAP_SIZE_LIMITED_MAX_ENUM_PICO = 0x7FFFFFFF } XrSpatialMapSizeLimitedReasonPICO; static const XrStructureType XR_TYPE_EVENT_DATA_SPATIAL_MAP_SIZE_LIMITED_PICO = (XrStructureType) 1200396003; // first-party only, no extension number typedef struct XrEventDataSpatialMapSizeLimitedPICO{ XrStructureType type;//XR_TYPE_EVENT_DATA_SPATIAL_MAP_SIZE_LIMITED_PICO const void* next; XrSpatialMapSizeLimitedReasonPICO reason; } XrEventDataSpatialMapSizeLimitedPICO; typedef XrResult (XRAPI_PTR * PFN_xrSetSpatialEntityComponentPICO )( XrAnchorPICO anchor, XrSpatialEntityComponentSetInfoPICO* setInfo); typedef XrResult (XRAPI_PTR * PFN_xrNotifySceneCaptureCompletionPICO )(XrSenseDataProviderPICO provider); typedef struct XrAnchorEntityLoadFilterBaseHeaderBD{ XrStructureType type; const void* next; } XrAnchorEntityLoadFilterBaseHeaderBD; static const XrStructureType XR_TYPE_ANCHOR_ENTITY_LOAD_INFO_BD = (XrStructureType) 1200396004; typedef struct XrAnchorEntityLoadInfoBD{ XrStructureType type;//XR_TYPE_ANCHOR_ENTITY_LOAD_INFO_BD const void* next; uint32_t maxResult; XrDuration timeout; XrPersistLocationBD location; //Persist location(local or remote) const XrAnchorEntityLoadFilterBaseHeaderBD* include; const XrAnchorEntityLoadFilterBaseHeaderBD* exclude; } XrAnchorEntityLoadInfoBD; static const XrStructureType XR_TYPE_ANCHOR_ENTITY_LOAD_UUID_FILTER_BD = (XrStructureType) 1200396005; typedef struct XrAnchorEntityLoadUuidFilterBD{ XrStructureType type;//XR_TYPE_ANCHOR_ENTITY_LOAD_UUID_FILTER_BD const void* next; uint32_t uuidCount; XrUuidEXT* uuidList; } XrAnchorEntityLoadUuidFilterBD; static const XrStructureType XR_TYPE_ANCHOR_ENTITY_LOAD_COMPONENT_FILTER_BD = (XrStructureType) 1200396006; typedef struct XrAnchorEntityLoadComponentFilterBD{ XrStructureType type;//XR_TYPE_ANCHOR_ENTITY_LOAD_COMPONENT_FILTER_BD const void* next; XrAnchorComponentTypeFlagsBD typeFlags; } XrAnchorEntityLoadComponentFilterBD; static const XrStructureType XR_TYPE_EVENT_DATA_ANCHOR_ENTITY_LOADED_BD = (XrStructureType) 1200396007; typedef struct XrEventDataAnchorEntityLoadedBD{ XrStructureType type;//XR_TYPE_EVENT_DATA_ANCHOR_ENTITY_LOADED_BD const void* next; XrAsyncTaskIdBD taskId; XrResult result; uint32_t count; XrPersistLocationBD location; //Persist location(local or remote) } XrEventDataAnchorEntityLoadedBD; static const XrStructureType XR_TYPE_ANCHOR_ENTITY_LOAD_RESULT_BD = (XrStructureType) 1200396008; typedef struct XrAnchorEntityLoadResultBD { XrStructureType type;//XR_TYPE_ANCHOR_ENTITY_LOAD_RESULT_BD const void* next; XrAnchorEntityBD anchor; XrUuidEXT uuid; } XrAnchorEntityLoadResultBD; static const XrStructureType XR_TYPE_ANCHOR_ENTITY_LOAD_RESULTS_BD = (XrStructureType) 1200396009; typedef struct XrAnchorEntityLoadResultsBD { XrStructureType type;//XR_TYPE_ANCHOR_ENTITY_LOAD_RESULTS_BD const void* next; uint32_t resultCapacityInput; uint32_t resultCountOutput; XrAnchorEntityLoadResultBD* results; } XrAnchorEntityLoadResultsBD; // TODO: 按照 bd_spatial_scene.h 修改 是否需要在执行的里面增加参数XrAsyncTaskIdBD* taskId static const XrStructureType XR_TYPE_ANCHOR_UNPERSIST_UUID_INFO_PICO = (XrStructureType) 1200396010; typedef struct XrAnchorUnpersistUuidInfoPICO{ XrStructureType type;//XR_TYPE_ANCHOR_UNPERSIST_UUID_INFO_PICO const void* next; uint32_t uuidCount; //unpersist uuid count XrUuidEXT* uuidList; //unpersis uuid list XrPersistLocationBD location; //Persist location(local or remote) } XrAnchorUnpersistUuidInfoPICO; typedef XrResult (XRAPI_PTR *PFN_xrUnpersistAnchorByUuidAsyncPICO) ( XrSenseDataProviderPICO provider, XrFutureEXT* future, const XrAnchorUnpersistUuidInfoPICO* info); static const XrStructureType XR_TYPE_UNPERSIST_ANCHOR_BY_UUID_COMPLETION_PICO = (XrStructureType) 1200396011; typedef struct XrUnpersistAnchorByUUIDCompletionPICO{ XrStructureType type;//XR_TYPE_UNPERSIST_ANCHOR_BY_UUID_COMPLETION_PICO XrResult futureResult; } XrUnpersistAnchorByUUIDCompletionPICO; typedef XrResult (XRAPI_PTR *PFN_xrUnpersistAnchorByUuidCompletePICO) ( XrSession session, XrFutureEXT future, XrUnpersistAnchorByUUIDCompletionPICO* completion); typedef XrResult (XRAPI_PTR *PFN_xrLoadAnchorEntityBD) ( XrSession session, const XrAnchorEntityLoadInfoBD* info, XrAsyncTaskIdBD* taskId); typedef XrResult (XRAPI_PTR *PFN_xrGetAnchorEntityLoadResultsBD) ( XrSession session, XrAsyncTaskIdBD taskId, XrAnchorEntityLoadResultsBD* results); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetSpatialEntityComponentPICO( XrAnchorPICO anchor, XrSpatialEntityComponentSetInfoPICO* setInfo); XRAPI_ATTR XrResult XRAPI_CALL xrNotifySceneCaptureCompletionPICO(XrSenseDataProviderPICO provider); XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistAnchorByUuidAsyncPICO ( XrSenseDataProviderPICO provider, XrFutureEXT* future, const XrAnchorUnpersistUuidInfoPICO* info); XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistAnchorByUuidCompletePICO ( XrSession session, XrFutureEXT future, XrUnpersistAnchorByUUIDCompletionPICO* completion); XRAPI_ATTR XrResult XRAPI_CALL xrLoadAnchorEntityBD( XrSession session, const XrAnchorEntityLoadInfoBD* createInfo, XrAsyncTaskIdBD* taskId); XRAPI_ATTR XrResult XRAPI_CALL xrGetAnchorEntityLoadResultsBD( XrSession session, XrAsyncTaskIdBD taskId, XrAnchorEntityLoadResultsBD* results); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ #ifdef __cplusplus } #endif #endif //PICOXRRUNTIME_PICO_SCENE_CAPTURE_CREATION_H