Skip to content

Commit 6574e5d

Browse files
Add ability to use extension dispatch table when missing extensions (#56)
* add ability to use extension dispatch table when some extensions aren't present * add d3d11 extension stub
1 parent cb28935 commit 6574e5d

1 file changed

Lines changed: 35 additions & 14 deletions

File tree

shared/XrUtility/XrExtensions.h

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,44 @@
1515
//*********************************************************
1616
#pragma once
1717

18-
#define FOR_EACH_EXTENSION_FUNCTION(_) \
19-
_(xrCreateSpatialAnchorMSFT) \
20-
_(xrCreateSpatialAnchorSpaceMSFT) \
21-
_(xrDestroySpatialAnchorMSFT) \
22-
_(xrCreateHandTrackerEXT) \
23-
_(xrDestroyHandTrackerEXT) \
24-
_(xrLocateHandJointsEXT) \
25-
_(xrCreateHandMeshSpaceMSFT) \
26-
_(xrUpdateHandMeshMSFT) \
27-
_(xrConvertWin32PerformanceCounterToTimeKHR) \
28-
_(xrCreateSpatialGraphNodeSpaceMSFT) \
29-
_(xrGetD3D11GraphicsRequirementsKHR) \
18+
#ifdef XR_USE_PLATFORM_WIN32
19+
#define FOR_EACH_WIN32_EXTENSION_FUNCTION(_) \
20+
_(xrConvertWin32PerformanceCounterToTimeKHR)
21+
#else
22+
#define FOR_EACH_WIN32_EXTENSION_FUNCTION(_)
23+
#endif
24+
25+
#ifdef XR_USE_GRAPHICS_API_D3D11
26+
#define FOR_EACH_D3D11_EXTENSION_FUNCTION(_) \
27+
_(xrGetD3D11GraphicsRequirementsKHR)
28+
#else
29+
#define FOR_EACH_D3D11_EXTENSION_FUNCTION(_)
30+
#endif
31+
32+
#ifdef XR_MSFT_CONTROLLER_MODEL_PREVIEW_EXTENSION_NAME
33+
#define FOR_EACH_CONTROLLER_MODEL_EXTENSION_FUNCTION(_) \
3034
_(xrGetControllerModelKeyMSFT) \
3135
_(xrLoadControllerModelMSFT) \
3236
_(xrGetControllerModelPropertiesMSFT) \
33-
_(xrGetControllerModelStateMSFT) \
34-
_(xrGetVisibilityMaskKHR)
37+
_(xrGetControllerModelStateMSFT)
38+
#else
39+
#define FOR_EACH_CONTROLLER_MODEL_EXTENSION_FUNCTION(_)
40+
#endif
41+
42+
#define FOR_EACH_EXTENSION_FUNCTION(_) \
43+
_(xrCreateSpatialAnchorMSFT) \
44+
_(xrCreateSpatialAnchorSpaceMSFT) \
45+
_(xrDestroySpatialAnchorMSFT) \
46+
_(xrCreateHandTrackerEXT) \
47+
_(xrDestroyHandTrackerEXT) \
48+
_(xrLocateHandJointsEXT) \
49+
_(xrCreateHandMeshSpaceMSFT) \
50+
_(xrUpdateHandMeshMSFT) \
51+
_(xrCreateSpatialGraphNodeSpaceMSFT) \
52+
_(xrGetVisibilityMaskKHR) \
53+
FOR_EACH_WIN32_EXTENSION_FUNCTION(_) \
54+
FOR_EACH_D3D11_EXTENSION_FUNCTION(_) \
55+
FOR_EACH_CONTROLLER_MODEL_EXTENSION_FUNCTION(_)
3556

3657
#define GET_INSTANCE_PROC_ADDRESS(name) \
3758
(void)xrGetInstanceProcAddr(instance, #name, reinterpret_cast<PFN_xrVoidFunction*>(const_cast<PFN_##name*>(&name)));

0 commit comments

Comments
 (0)