October3d55/M/PICOOpen7991a2a23d57V5/Source/ThirdParty/openxr/pico_spatial_anchor.h

175 lines
6.4 KiB
C
Raw Normal View History

2025-03-10 09:43:27 +08:00
//
// Created by bytedance on 2024/3/26.
//
#ifndef PICOXRRUNTIME_PICO_SPATIAL_ANCHOR_H
#define PICOXRRUNTIME_PICO_SPATIAL_ANCHOR_H
#include "pico_spatial_sensing.h"
/**
* XrStructureType : 1200390000 ~ 1200390999
*/
#ifdef __cplusplus
extern "C" {
#endif
#define XR_PICO_spatial_anchor 1
#define XR_PICO_spatial_anchor_SPEC_VERSION 1
#define XR_PICO_SPATIAL_ANCHOR_EXTENSION_NAME "XR_PICO_spatial_anchor"
static const XrResult XR_ERROR_SPACE_LOCATING_PICO = (XrResult)-1200390101;
static const XrStructureType XR_TYPE_SYSTEM_SPATIAL_ANCHOR_PROPERTIES_PICO = (XrStructureType)1200390000;
typedef struct XrSystemSpatialAnchorPropertiesPICO {
XrStructureType type;
void* next;
XrBool32 supportsSpatialAnchor;
} XrSystemSpatialAnchorPropertiesPICO;
static const XrStructureType XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_ANCHOR_PICO = (XrStructureType) 1200390001;
typedef struct XrSenseDataProviderCreateInfoSpatialAnchorPICO{
XrStructureType type; //XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_ANCHOR_PICO
const void* next;
} XrSenseDataProviderCreateInfoSpatialAnchorPICO;
// Create spatial anchor
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_PICO = (XrStructureType) 1200390002;
typedef struct XrSpatialAnchorCreateInfoPICO {
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_PICO
const void* next;
XrSpace space;
XrPosef pose;
XrTime time;
} XrSpatialAnchorCreateInfoPICO;
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorAsyncPICO)(
XrSenseDataProviderPICO provider,
XrSpatialAnchorCreateInfoPICO *info,
XrFutureEXT *future);
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_CREATE_COMPLETION_PICO = (XrStructureType) 1200390003;
typedef struct XrSpatialAnchorCreateCompletionPICO {
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_CREATE_COMPLETION_PICO
const void* next;
XrResult futureResult;
XrAnchorPICO anchor;
XrUuidEXT uuid;
} XrSpatialAnchorCreateCompletionPICO;
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorCompletePICO)(
XrSenseDataProviderPICO provider,
XrFutureEXT future,
XrSpatialAnchorCreateCompletionPICO* completion);
typedef enum XrPersistenceLocationPICO {
XR_PERSISTENCE_LOCATION_LOCAL_PICO = 0,
//XR_PERSISTENCE_LOCATION_REMOTE_PICO = 1,
XR_PERSISTENCE_LOCATION_MAX_ENUM_PICO = 0x7FFFFFFF
} XrPersistenceLocationPICO;
// Persist spatial anchor
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_PERSIST_INFO_PICO = (XrStructureType) 1200390004;
typedef struct XrSpatialAnchorPersistInfoPICO {
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_PERSIST_INFO_PICO
const void* next;
XrPersistenceLocationPICO location;
XrAnchorPICO anchor;
} XrSpatialAnchorPersistInfoPICO;
typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorAsyncPICO)(
XrSenseDataProviderPICO provider,
XrSpatialAnchorPersistInfoPICO *info,
XrFutureEXT *future);
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_PERSIST_COMPLETION_PICO = (XrStructureType) 1200390005;
typedef struct XrSpatialAnchorPersistCompletionPICO {
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_PERSIST_COMPLETION_PICO
const void* next;
XrResult futureResult;
XrAnchorPICO anchor;
XrUuidEXT uuid;
}XrSpatialAnchorPersistCompletionPICO;
typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorCompletePICO)(
XrSenseDataProviderPICO provider,
XrFutureEXT future,
XrSpatialAnchorPersistCompletionPICO* completion);
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_INFO_PICO = (XrStructureType) 1200390006;
typedef struct XrSpatialAnchorUnpersistInfoPICO {
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_INFO_PICO
const void* next;
XrPersistenceLocationPICO location;
XrAnchorPICO anchor;
} XrSpatialAnchorUnpersistInfoPICO;
typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorAsyncPICO)(
XrSenseDataProviderPICO provider,
XrSpatialAnchorUnpersistInfoPICO *info,
XrFutureEXT *future);
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_COMPLETION_PICO = (XrStructureType) 1200390007;
typedef struct XrSpatialAnchorUnpersistCompletionPICO {
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_COMPLETION_PICO
const void* next;
XrResult futureResult;
XrAnchorPICO anchor;
XrUuidEXT uuid;
}XrSpatialAnchorUnpersistCompletionPICO;
typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorCompletePICO)(
XrSenseDataProviderPICO provider,
XrFutureEXT future,
XrSpatialAnchorUnpersistCompletionPICO *completion);
#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorAsyncPICO(
XrSenseDataProviderPICO provider,
XrSpatialAnchorCreateInfoPICO *info,
XrFutureEXT *future);
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorCompletePICO(
XrSenseDataProviderPICO provider,
XrFutureEXT future,
XrSpatialAnchorCreateCompletionPICO* completion);
XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorAsyncPICO(
XrSenseDataProviderPICO provider,
XrSpatialAnchorPersistInfoPICO *info,
XrFutureEXT *future);
XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorCompletePICO(
XrSenseDataProviderPICO provider,
XrFutureEXT future,
XrSpatialAnchorPersistCompletionPICO* completion);
XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorAsyncPICO(
XrSenseDataProviderPICO provider,
XrSpatialAnchorUnpersistInfoPICO *info,
XrFutureEXT *future);
XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorCompletePICO(
XrSenseDataProviderPICO provider,
XrFutureEXT future,
XrSpatialAnchorUnpersistCompletionPICO *completion);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */
#ifdef __cplusplus
}
#endif
#endif //PICOXRRUNTIME_PICO_SPATIAL_ANCHOR_H