Skip to content

Commit 92d1219

Browse files
authored
Update to OpenXR SDK v1.0.17 and scene understanding MSFT extensions. (#84)
1 parent f471c94 commit 92d1219

12 files changed

Lines changed: 5756 additions & 2198 deletions

File tree

README.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,7 @@ or choose x64 platform when running on a Windows Desktop PC with the HoloLens 2
2828

2929
The [openxr_preview](https://github.com/microsoft/OpenXR-MixedReality/tree/master/openxr_preview) folder contains a set of [preview header files](https://github.com/microsoft/OpenXR-MixedReality/tree/master/openxr_preview/include/openxr) containing the following OpenXR extensions that are only available [in preview runtime](http://aka.ms/openxr-preview).
3030

31-
1. [XR_MSFT_scene_understanding_preview3](https://microsoft.github.io/OpenXR-MixedReality/openxr_preview/specs/openxr.html#XR_MSFT_scene_understanding_preview3)
32-
33-
1. [XR_MSFT_scene_understanding_serialization_preview](https://microsoft.github.io/OpenXR-MixedReality/openxr_preview/specs/openxr.html#XR_MSFT_scene_understanding_serialization_preview)
34-
35-
1. [XR_MSFT_composition_layer_reprojection_preview](https://microsoft.github.io/OpenXR-MixedReality/openxr_preview/specs/openxr.html#XR_MSFT_composition_layer_reprojection_preview)
31+
1. [XR_MSFT_spatial_anchor_export_preview](https://microsoft.github.io/OpenXR-MixedReality/openxr_preview/specs/openxr.html#XR_MSFT_SPATIAL_ANCHOR_EXPORT_PREVIEW)
3632

3733
Please send feedback on preview extensions and samples at [GitHub issues](https://github.com/microsoft/OpenXR-MixedReality/issues).
3834
We are planning to incorporate your feedback and finalize these extensions as vendor extensions (MSFT) or cross-vendor extensions (EXT)

openxr_preview/include/openxr/openxr.h

Lines changed: 190 additions & 103 deletions
Large diffs are not rendered by default.

openxr_preview/include/openxr/openxr_platform.h

Lines changed: 123 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@ typedef enum XrAndroidThreadTypeKHR {
3535
typedef XrResult (XRAPI_PTR *PFN_xrSetAndroidApplicationThreadKHR)(XrSession session, XrAndroidThreadTypeKHR threadType, uint32_t threadId);
3636

3737
#ifndef XR_NO_PROTOTYPES
38+
#ifdef XR_EXTENSION_PROTOTYPES
3839
XRAPI_ATTR XrResult XRAPI_CALL xrSetAndroidApplicationThreadKHR(
3940
XrSession session,
4041
XrAndroidThreadTypeKHR threadType,
4142
uint32_t threadId);
42-
#endif
43+
#endif /* XR_EXTENSION_PROTOTYPES */
44+
#endif /* !XR_NO_PROTOTYPES */
4345
#endif /* XR_USE_PLATFORM_ANDROID */
4446

4547
#ifdef XR_USE_PLATFORM_ANDROID
@@ -50,12 +52,14 @@ XRAPI_ATTR XrResult XRAPI_CALL xrSetAndroidApplicationThreadKHR(
5052
typedef XrResult (XRAPI_PTR *PFN_xrCreateSwapchainAndroidSurfaceKHR)(XrSession session, const XrSwapchainCreateInfo* info, XrSwapchain* swapchain, jobject* surface);
5153

5254
#ifndef XR_NO_PROTOTYPES
55+
#ifdef XR_EXTENSION_PROTOTYPES
5356
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSwapchainAndroidSurfaceKHR(
5457
XrSession session,
5558
const XrSwapchainCreateInfo* info,
5659
XrSwapchain* swapchain,
5760
jobject* surface);
58-
#endif
61+
#endif /* XR_EXTENSION_PROTOTYPES */
62+
#endif /* !XR_NO_PROTOTYPES */
5963
#endif /* XR_USE_PLATFORM_ANDROID */
6064

6165
#ifdef XR_USE_PLATFORM_ANDROID
@@ -76,7 +80,7 @@ typedef struct XrInstanceCreateInfoAndroidKHR {
7680
#ifdef XR_USE_GRAPHICS_API_VULKAN
7781

7882
#define XR_KHR_vulkan_swapchain_format_list 1
79-
#define XR_KHR_vulkan_swapchain_format_list_SPEC_VERSION 3
83+
#define XR_KHR_vulkan_swapchain_format_list_SPEC_VERSION 4
8084
#define XR_KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME "XR_KHR_vulkan_swapchain_format_list"
8185
typedef struct XrVulkanSwapchainFormatListCreateInfoKHR {
8286
XrStructureType type;
@@ -154,11 +158,13 @@ typedef struct XrGraphicsRequirementsOpenGLKHR {
154158
typedef XrResult (XRAPI_PTR *PFN_xrGetOpenGLGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsOpenGLKHR* graphicsRequirements);
155159

156160
#ifndef XR_NO_PROTOTYPES
161+
#ifdef XR_EXTENSION_PROTOTYPES
157162
XRAPI_ATTR XrResult XRAPI_CALL xrGetOpenGLGraphicsRequirementsKHR(
158163
XrInstance instance,
159164
XrSystemId systemId,
160165
XrGraphicsRequirementsOpenGLKHR* graphicsRequirements);
161-
#endif
166+
#endif /* XR_EXTENSION_PROTOTYPES */
167+
#endif /* !XR_NO_PROTOTYPES */
162168
#endif /* XR_USE_GRAPHICS_API_OPENGL */
163169

164170
#ifdef XR_USE_GRAPHICS_API_OPENGL_ES
@@ -193,17 +199,19 @@ typedef struct XrGraphicsRequirementsOpenGLESKHR {
193199
typedef XrResult (XRAPI_PTR *PFN_xrGetOpenGLESGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsOpenGLESKHR* graphicsRequirements);
194200

195201
#ifndef XR_NO_PROTOTYPES
202+
#ifdef XR_EXTENSION_PROTOTYPES
196203
XRAPI_ATTR XrResult XRAPI_CALL xrGetOpenGLESGraphicsRequirementsKHR(
197204
XrInstance instance,
198205
XrSystemId systemId,
199206
XrGraphicsRequirementsOpenGLESKHR* graphicsRequirements);
200-
#endif
207+
#endif /* XR_EXTENSION_PROTOTYPES */
208+
#endif /* !XR_NO_PROTOTYPES */
201209
#endif /* XR_USE_GRAPHICS_API_OPENGL_ES */
202210

203211
#ifdef XR_USE_GRAPHICS_API_VULKAN
204212

205213
#define XR_KHR_vulkan_enable 1
206-
#define XR_KHR_vulkan_enable_SPEC_VERSION 7
214+
#define XR_KHR_vulkan_enable_SPEC_VERSION 8
207215
#define XR_KHR_VULKAN_ENABLE_EXTENSION_NAME "XR_KHR_vulkan_enable"
208216
// XrGraphicsBindingVulkanKHR extends XrSessionCreateInfo
209217
typedef struct XrGraphicsBindingVulkanKHR {
@@ -235,6 +243,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsDeviceKHR)(XrInstance instan
235243
typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsVulkanKHR* graphicsRequirements);
236244

237245
#ifndef XR_NO_PROTOTYPES
246+
#ifdef XR_EXTENSION_PROTOTYPES
238247
XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanInstanceExtensionsKHR(
239248
XrInstance instance,
240249
XrSystemId systemId,
@@ -259,7 +268,8 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsRequirementsKHR(
259268
XrInstance instance,
260269
XrSystemId systemId,
261270
XrGraphicsRequirementsVulkanKHR* graphicsRequirements);
262-
#endif
271+
#endif /* XR_EXTENSION_PROTOTYPES */
272+
#endif /* !XR_NO_PROTOTYPES */
263273
#endif /* XR_USE_GRAPHICS_API_VULKAN */
264274

265275
#ifdef XR_USE_GRAPHICS_API_D3D11
@@ -290,11 +300,13 @@ typedef struct XrGraphicsRequirementsD3D11KHR {
290300
typedef XrResult (XRAPI_PTR *PFN_xrGetD3D11GraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsD3D11KHR* graphicsRequirements);
291301

292302
#ifndef XR_NO_PROTOTYPES
303+
#ifdef XR_EXTENSION_PROTOTYPES
293304
XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D11GraphicsRequirementsKHR(
294305
XrInstance instance,
295306
XrSystemId systemId,
296307
XrGraphicsRequirementsD3D11KHR* graphicsRequirements);
297-
#endif
308+
#endif /* XR_EXTENSION_PROTOTYPES */
309+
#endif /* !XR_NO_PROTOTYPES */
298310
#endif /* XR_USE_GRAPHICS_API_D3D11 */
299311

300312
#ifdef XR_USE_GRAPHICS_API_D3D12
@@ -326,11 +338,13 @@ typedef struct XrGraphicsRequirementsD3D12KHR {
326338
typedef XrResult (XRAPI_PTR *PFN_xrGetD3D12GraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsD3D12KHR* graphicsRequirements);
327339

328340
#ifndef XR_NO_PROTOTYPES
341+
#ifdef XR_EXTENSION_PROTOTYPES
329342
XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D12GraphicsRequirementsKHR(
330343
XrInstance instance,
331344
XrSystemId systemId,
332345
XrGraphicsRequirementsD3D12KHR* graphicsRequirements);
333-
#endif
346+
#endif /* XR_EXTENSION_PROTOTYPES */
347+
#endif /* !XR_NO_PROTOTYPES */
334348
#endif /* XR_USE_GRAPHICS_API_D3D12 */
335349

336350
#ifdef XR_USE_PLATFORM_WIN32
@@ -342,6 +356,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrConvertWin32PerformanceCounterToTimeKHR)(XrIn
342356
typedef XrResult (XRAPI_PTR *PFN_xrConvertTimeToWin32PerformanceCounterKHR)(XrInstance instance, XrTime time, LARGE_INTEGER* performanceCounter);
343357

344358
#ifndef XR_NO_PROTOTYPES
359+
#ifdef XR_EXTENSION_PROTOTYPES
345360
XRAPI_ATTR XrResult XRAPI_CALL xrConvertWin32PerformanceCounterToTimeKHR(
346361
XrInstance instance,
347362
const LARGE_INTEGER* performanceCounter,
@@ -351,7 +366,8 @@ XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimeToWin32PerformanceCounterKHR(
351366
XrInstance instance,
352367
XrTime time,
353368
LARGE_INTEGER* performanceCounter);
354-
#endif
369+
#endif /* XR_EXTENSION_PROTOTYPES */
370+
#endif /* !XR_NO_PROTOTYPES */
355371
#endif /* XR_USE_PLATFORM_WIN32 */
356372

357373
#ifdef XR_USE_TIMESPEC
@@ -363,6 +379,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrConvertTimespecTimeToTimeKHR)(XrInstance inst
363379
typedef XrResult (XRAPI_PTR *PFN_xrConvertTimeToTimespecTimeKHR)(XrInstance instance, XrTime time, struct timespec* timespecTime);
364380

365381
#ifndef XR_NO_PROTOTYPES
382+
#ifdef XR_EXTENSION_PROTOTYPES
366383
XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimespecTimeToTimeKHR(
367384
XrInstance instance,
368385
const struct timespec* timespecTime,
@@ -372,7 +389,8 @@ XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimeToTimespecTimeKHR(
372389
XrInstance instance,
373390
XrTime time,
374391
struct timespec* timespecTime);
375-
#endif
392+
#endif /* XR_EXTENSION_PROTOTYPES */
393+
#endif /* !XR_NO_PROTOTYPES */
376394
#endif /* XR_USE_TIMESPEC */
377395

378396
#ifdef XR_USE_PLATFORM_ANDROID
@@ -392,7 +410,7 @@ typedef struct XrLoaderInitInfoAndroidKHR {
392410
#ifdef XR_USE_GRAPHICS_API_VULKAN
393411

394412
#define XR_KHR_vulkan_enable2 1
395-
#define XR_KHR_vulkan_enable2_SPEC_VERSION 1
413+
#define XR_KHR_vulkan_enable2_SPEC_VERSION 2
396414
#define XR_KHR_VULKAN_ENABLE2_EXTENSION_NAME "XR_KHR_vulkan_enable2"
397415
typedef XrFlags64 XrVulkanInstanceCreateFlagsKHR;
398416

@@ -442,6 +460,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsDevice2KHR)(XrInstance insta
442460
typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsRequirements2KHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsVulkanKHR* graphicsRequirements);
443461

444462
#ifndef XR_NO_PROTOTYPES
463+
#ifdef XR_EXTENSION_PROTOTYPES
445464
XRAPI_ATTR XrResult XRAPI_CALL xrCreateVulkanInstanceKHR(
446465
XrInstance instance,
447466
const XrVulkanInstanceCreateInfoKHR* createInfo,
@@ -463,7 +482,8 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsRequirements2KHR(
463482
XrInstance instance,
464483
XrSystemId systemId,
465484
XrGraphicsRequirementsVulkanKHR* graphicsRequirements);
466-
#endif
485+
#endif /* XR_EXTENSION_PROTOTYPES */
486+
#endif /* !XR_NO_PROTOTYPES */
467487
#endif /* XR_USE_GRAPHICS_API_VULKAN */
468488

469489
#ifdef XR_USE_PLATFORM_EGL
@@ -492,6 +512,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorFromPerceptionAnchorMSFT)(
492512
typedef XrResult (XRAPI_PTR *PFN_xrTryGetPerceptionAnchorFromSpatialAnchorMSFT)(XrSession session, XrSpatialAnchorMSFT anchor, IUnknown** perceptionAnchor);
493513

494514
#ifndef XR_NO_PROTOTYPES
515+
#ifdef XR_EXTENSION_PROTOTYPES
495516
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFromPerceptionAnchorMSFT(
496517
XrSession session,
497518
IUnknown* perceptionAnchor,
@@ -501,7 +522,8 @@ XRAPI_ATTR XrResult XRAPI_CALL xrTryGetPerceptionAnchorFromSpatialAnchorMSFT(
501522
XrSession session,
502523
XrSpatialAnchorMSFT anchor,
503524
IUnknown** perceptionAnchor);
504-
#endif
525+
#endif /* XR_EXTENSION_PROTOTYPES */
526+
#endif /* !XR_NO_PROTOTYPES */
505527
#endif /* XR_USE_PLATFORM_WIN32 */
506528

507529
#ifdef XR_USE_PLATFORM_WIN32
@@ -543,6 +565,93 @@ typedef struct XrAndroidSurfaceSwapchainCreateInfoFB {
543565

544566
#endif /* XR_USE_PLATFORM_ANDROID */
545567

568+
#ifdef XR_USE_PLATFORM_WIN32
569+
570+
#define XR_OCULUS_audio_device_guid 1
571+
#define XR_OCULUS_audio_device_guid_SPEC_VERSION 1
572+
#define XR_OCULUS_AUDIO_DEVICE_GUID_EXTENSION_NAME "XR_OCULUS_audio_device_guid"
573+
#define XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS 128
574+
typedef XrResult (XRAPI_PTR *PFN_xrGetAudioOutputDeviceGuidOculus)(XrInstance instance, wchar_t buffer[XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS]);
575+
typedef XrResult (XRAPI_PTR *PFN_xrGetAudioInputDeviceGuidOculus)(XrInstance instance, wchar_t buffer[XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS]);
576+
577+
#ifndef XR_NO_PROTOTYPES
578+
#ifdef XR_EXTENSION_PROTOTYPES
579+
XRAPI_ATTR XrResult XRAPI_CALL xrGetAudioOutputDeviceGuidOculus(
580+
XrInstance instance,
581+
wchar_t buffer[XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS]);
582+
583+
XRAPI_ATTR XrResult XRAPI_CALL xrGetAudioInputDeviceGuidOculus(
584+
XrInstance instance,
585+
wchar_t buffer[XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS]);
586+
#endif /* XR_EXTENSION_PROTOTYPES */
587+
#endif /* !XR_NO_PROTOTYPES */
588+
#endif /* XR_USE_PLATFORM_WIN32 */
589+
590+
#ifdef XR_USE_PLATFORM_ANDROID
591+
592+
#define XR_FB_swapchain_update_state_android_surface 1
593+
#define XR_FB_swapchain_update_state_android_surface_SPEC_VERSION 1
594+
#define XR_FB_SWAPCHAIN_UPDATE_STATE_ANDROID_SURFACE_EXTENSION_NAME "XR_FB_swapchain_update_state_android_surface"
595+
#ifdef XR_USE_PLATFORM_ANDROID
596+
typedef struct XrSwapchainStateAndroidSurfaceDimensionsFB {
597+
XrStructureType type;
598+
void* XR_MAY_ALIAS next;
599+
uint32_t width;
600+
uint32_t height;
601+
} XrSwapchainStateAndroidSurfaceDimensionsFB;
602+
#endif // XR_USE_PLATFORM_ANDROID
603+
604+
#endif /* XR_USE_PLATFORM_ANDROID */
605+
606+
#ifdef XR_USE_GRAPHICS_API_OPENGL_ES
607+
608+
#define XR_FB_swapchain_update_state_opengl_es 1
609+
#define XR_FB_swapchain_update_state_opengl_es_SPEC_VERSION 1
610+
#define XR_FB_SWAPCHAIN_UPDATE_STATE_OPENGL_ES_EXTENSION_NAME "XR_FB_swapchain_update_state_opengl_es"
611+
#ifdef XR_USE_GRAPHICS_API_OPENGL_ES
612+
typedef struct XrSwapchainStateSamplerOpenGLESFB {
613+
XrStructureType type;
614+
void* XR_MAY_ALIAS next;
615+
EGLenum minFilter;
616+
EGLenum magFilter;
617+
EGLenum wrapModeS;
618+
EGLenum wrapModeT;
619+
EGLenum swizzleRed;
620+
EGLenum swizzleGreen;
621+
EGLenum swizzleBlue;
622+
EGLenum swizzleAlpha;
623+
float maxAnisotropy;
624+
XrColor4f borderColor;
625+
} XrSwapchainStateSamplerOpenGLESFB;
626+
#endif // XR_USE_GRAPHICS_API_OPENGL_ES
627+
628+
#endif /* XR_USE_GRAPHICS_API_OPENGL_ES */
629+
630+
#ifdef XR_USE_GRAPHICS_API_VULKAN
631+
632+
#define XR_FB_swapchain_update_state_vulkan 1
633+
#define XR_FB_swapchain_update_state_vulkan_SPEC_VERSION 1
634+
#define XR_FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME "XR_FB_swapchain_update_state_vulkan"
635+
#ifdef XR_USE_GRAPHICS_API_VULKAN
636+
typedef struct XrSwapchainStateSamplerVulkanFB {
637+
XrStructureType type;
638+
void* XR_MAY_ALIAS next;
639+
VkFilter minFilter;
640+
VkFilter magFilter;
641+
VkSamplerMipmapMode mipmapMode;
642+
VkSamplerAddressMode wrapModeS;
643+
VkSamplerAddressMode wrapModeT;
644+
VkComponentSwizzle swizzleRed;
645+
VkComponentSwizzle swizzleGreen;
646+
VkComponentSwizzle swizzleBlue;
647+
VkComponentSwizzle swizzleAlpha;
648+
float maxAnisotropy;
649+
XrColor4f borderColor;
650+
} XrSwapchainStateSamplerVulkanFB;
651+
#endif // XR_USE_GRAPHICS_API_VULKAN
652+
653+
#endif /* XR_USE_GRAPHICS_API_VULKAN */
654+
546655
#ifdef __cplusplus
547656
}
548657
#endif

0 commit comments

Comments
 (0)