Skip to content

Commit 57ff76f

Browse files
authored
Add preview extension support for XR_MSFT_spatial_anchor_export_preview (#77)
* Add preview extension support for XR_MSFT_spatial_anchor_export_preview * change the trigger of CI build to main branch
1 parent b07a386 commit 57ff76f

9 files changed

Lines changed: 2395 additions & 894 deletions

File tree

azure-pipelines.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
# https://aka.ms/yaml
55

66
trigger:
7-
- master
7+
- main
88

99
pr:
10-
- master
10+
- main
1111

1212
pool:
1313
vmImage: "windows-latest"

openxr_preview/include/openxr/openxr.h

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,10 @@ typedef enum XrResult {
192192
XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT = -1000097001,
193193
XR_ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT = -1000097002,
194194
XR_ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT = -1000097003,
195-
XR_ERROR_SERIALIZATION_NOT_REQUESTED_MSFT = -1000098000,
196195
XR_ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT = -1000066000,
196+
XR_SPATIAL_ANCHOR_EXPORT_DATA_UNAVAILABLE_MSFT = 1000062000,
197+
XR_ERROR_SPATIAL_ANCHOR_EXPORT_FAILED_MSFT = -1000062000,
198+
XR_ERROR_SPATIAL_ANCHOR_SUFFICIENCY_QUERY_FAILED_MSFT = -1000062001,
197199
XR_RESULT_MAX_ENUM = 0x7FFFFFFF
198200
} XrResult;
199201

@@ -312,6 +314,7 @@ typedef enum XrStructureType {
312314
XR_TYPE_CONTROLLER_MODEL_STATE_MSFT = 1000055004,
313315
XR_TYPE_VIEW_CONFIGURATION_VIEW_FOV_EPIC = 1000059000,
314316
XR_TYPE_HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT = 1000063000,
317+
XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB = 1000070000,
315318
XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE = 1000079000,
316319
XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR = 1000089000,
317320
XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR = 1000090000,
@@ -341,6 +344,8 @@ typedef enum XrStructureType {
341344
XR_TYPE_SERIALIZE_SCENE_MSFT = 1000098001,
342345
XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT = 1000066000,
343346
XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT = 1000066001,
347+
XR_TYPE_SPATIAL_ANCHOR_EXPORT_PURPOSE_INFO_MSFT = 1000062000,
348+
XR_TYPE_SPATIAL_ANCHOR_EXPORT_SUFFICIENCY_MSFT = 1000062001,
344349
XR_TYPE_GRAPHICS_BINDING_VULKAN2_KHR = XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR,
345350
XR_TYPE_SWAPCHAIN_IMAGE_VULKAN2_KHR = XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR,
346351
XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN2_KHR = XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR,
@@ -418,6 +423,7 @@ typedef enum XrObjectType {
418423
XR_OBJECT_TYPE_HAND_TRACKER_EXT = 1000051000,
419424
XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT = 1000097000,
420425
XR_OBJECT_TYPE_SCENE_MSFT = 1000097001,
426+
XR_OBJECT_TYPE_SPATIAL_ANCHOR_NEIGHBORHOOD_DATA_STREAM_MSFT = 1000062000,
421427
XR_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
422428
} XrObjectType;
423429
typedef XrFlags64 XrInstanceCreateFlags;
@@ -2199,6 +2205,59 @@ typedef struct XrViewConfigurationViewFovEPIC {
21992205

22002206

22012207

2208+
#define XR_MSFT_spatial_anchor_export_preview 1
2209+
2210+
XR_DEFINE_HANDLE(XrSpatialAnchorNeighborhoodDataStreamMSFT)
2211+
2212+
#define XR_MSFT_spatial_anchor_export_preview_SPEC_VERSION 1
2213+
#define XR_MSFT_SPATIAL_ANCHOR_EXPORT_PREVIEW_EXTENSION_NAME "XR_MSFT_spatial_anchor_export_preview"
2214+
2215+
typedef enum XrSpatialAnchorExportPurposeMSFT {
2216+
XR_SPATIAL_ANCHOR_EXPORT_PURPOSE_RELOCALIZATION_MSFT = 0,
2217+
XR_SPATIAL_ANCHOR_EXPORT_PURPOSE_SHARING_MSFT = 1,
2218+
XR_SPATIAL_ANCHOR_EXPORT_PURPOSE_MAX_ENUM_MSFT = 0x7FFFFFFF
2219+
} XrSpatialAnchorExportPurposeMSFT;
2220+
typedef struct XrSpatialAnchorExportPurposeInfoMSFT {
2221+
XrStructureType type;
2222+
const void* XR_MAY_ALIAS next;
2223+
XrSpatialAnchorExportPurposeMSFT exportPurpose;
2224+
} XrSpatialAnchorExportPurposeInfoMSFT;
2225+
2226+
typedef struct XrSpatialAnchorExportSufficiencyMSFT {
2227+
XrStructureType type;
2228+
const void* XR_MAY_ALIAS next;
2229+
XrBool32 isMinimallySufficient;
2230+
float recommendedSufficiencyLevel;
2231+
float sufficiencyLevel;
2232+
} XrSpatialAnchorExportSufficiencyMSFT;
2233+
2234+
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorNeighborhoodDataStreamMSFT)(XrSpatialAnchorMSFT spatialAnchor, const XrSpatialAnchorExportPurposeInfoMSFT* exportPurposeInfo, XrSpatialAnchorNeighborhoodDataStreamMSFT* neighborhoodDataStream);
2235+
typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorNeighborhoodDataStreamMSFT)(XrSpatialAnchorNeighborhoodDataStreamMSFT neighborhoodDataStream);
2236+
typedef XrResult (XRAPI_PTR *PFN_xrReadSpatialAnchorNeighborhoodDataMSFT)(XrSpatialAnchorNeighborhoodDataStreamMSFT neighborhoodDataStream, uint32_t bytesToRead, uint32_t* bytesRead, void* buffer);
2237+
typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialAnchorExportSufficiencyMSFT)(XrSpatialAnchorMSFT spatialAnchor, const XrSpatialAnchorExportPurposeInfoMSFT* exportPurposeInfo, XrSpatialAnchorExportSufficiencyMSFT* exportSufficiency);
2238+
2239+
#ifndef XR_NO_PROTOTYPES
2240+
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorNeighborhoodDataStreamMSFT(
2241+
XrSpatialAnchorMSFT spatialAnchor,
2242+
const XrSpatialAnchorExportPurposeInfoMSFT* exportPurposeInfo,
2243+
XrSpatialAnchorNeighborhoodDataStreamMSFT* neighborhoodDataStream);
2244+
2245+
XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorNeighborhoodDataStreamMSFT(
2246+
XrSpatialAnchorNeighborhoodDataStreamMSFT neighborhoodDataStream);
2247+
2248+
XRAPI_ATTR XrResult XRAPI_CALL xrReadSpatialAnchorNeighborhoodDataMSFT(
2249+
XrSpatialAnchorNeighborhoodDataStreamMSFT neighborhoodDataStream,
2250+
uint32_t bytesToRead,
2251+
uint32_t* bytesRead,
2252+
void* XR_MAY_ALIAS buffer);
2253+
2254+
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialAnchorExportSufficiencyMSFT(
2255+
XrSpatialAnchorMSFT spatialAnchor,
2256+
const XrSpatialAnchorExportPurposeInfoMSFT* exportPurposeInfo,
2257+
XrSpatialAnchorExportSufficiencyMSFT* exportSufficiency);
2258+
#endif
2259+
2260+
22022261
#define XR_MSFT_composition_layer_reprojection_preview 1
22032262
#define XR_MSFT_composition_layer_reprojection_preview_SPEC_VERSION 1
22042263
#define XR_MSFT_COMPOSITION_LAYER_REPROJECTION_PREVIEW_EXTENSION_NAME "XR_MSFT_composition_layer_reprojection_preview"
@@ -2287,6 +2346,7 @@ typedef enum XrWorldMeshLodMSFT {
22872346
XR_WORLD_MESH_LOD_COARSE_MSFT = 1,
22882347
XR_WORLD_MESH_LOD_MEDIUM_MSFT = 2,
22892348
XR_WORLD_MESH_LOD_FINE_MSFT = 3,
2349+
XR_WORLD_MESH_LOD_UNLIMITED_MSFT = 4,
22902350
XR_WORLD_MESH_LOD_MAX_ENUM_MSFT = 0x7FFFFFFF
22912351
} XrWorldMeshLodMSFT;
22922352

@@ -2322,6 +2382,7 @@ typedef enum XrSceneComputeStateMSFT {
23222382
XR_SCENE_COMPUTE_STATE_NONE_MSFT = 0,
23232383
XR_SCENE_COMPUTE_STATE_UPDATING_MSFT = 1,
23242384
XR_SCENE_COMPUTE_STATE_COMPLETED_MSFT = 2,
2385+
XR_SCENE_COMPUTE_STATE_COMPLETED_WITH_ERROR_MSFT = 3,
23252386
XR_SCENE_COMPUTE_STATE_MAX_ENUM_MSFT = 0x7FFFFFFF
23262387
} XrSceneComputeStateMSFT;
23272388
typedef struct XrUuidMSFT {

openxr_preview/include/openxr/openxr_platform.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,27 @@ typedef struct XrHolographicWindowAttachmentMSFT {
510510

511511
#endif /* XR_USE_PLATFORM_WIN32 */
512512

513+
#ifdef XR_USE_PLATFORM_ANDROID
514+
515+
#define XR_FB_android_surface_swapchain_create 1
516+
#define XR_FB_android_surface_swapchain_create_SPEC_VERSION 1
517+
#define XR_FB_ANDROID_SURFACE_SWAPCHAIN_CREATE_EXTENSION_NAME "XR_FB_android_surface_swapchain_create"
518+
typedef XrFlags64 XrAndroidSurfaceSwapchainFlagsFB;
519+
520+
// Flag bits for XrAndroidSurfaceSwapchainFlagsFB
521+
static const XrAndroidSurfaceSwapchainFlagsFB XR_ANDROID_SURFACE_SWAPCHAIN_SYNCHRONOUS_BIT_FB = 0x00000001;
522+
static const XrAndroidSurfaceSwapchainFlagsFB XR_ANDROID_SURFACE_SWAPCHAIN_USE_TIMESTAMPS_BIT_FB = 0x00000002;
523+
524+
#ifdef XR_USE_PLATFORM_ANDROID
525+
typedef struct XrAndroidSurfaceSwapchainCreateInfoFB {
526+
XrStructureType type;
527+
const void* XR_MAY_ALIAS next;
528+
XrAndroidSurfaceSwapchainFlagsFB createFlags;
529+
} XrAndroidSurfaceSwapchainCreateInfoFB;
530+
#endif // XR_USE_PLATFORM_ANDROID
531+
532+
#endif /* XR_USE_PLATFORM_ANDROID */
533+
513534
#ifdef __cplusplus
514535
}
515536
#endif

0 commit comments

Comments
 (0)