Monado OpenXR Runtime
oxr_extension_support.h
Go to the documentation of this file.
1// Copyright 2019-2024, Collabora, Ltd.
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief Macros for generating extension-related tables and code and
6 * inspecting Monado's extension support.
7 *
8 * MOSTLY GENERATED CODE - see below!
9 *
10 * To add support for a new extension, edit and run generate_oxr_ext_support.py,
11 * then run clang-format on this file. Two entire chunks of this file get
12 * replaced by that script: comments indicate where they are.
13 *
14 * @author Rylie Pavlik <rylie.pavlik@collabora.com>
15 */
16
17#pragma once
18
19#include "xrt/xrt_config_build.h"
21
22// beginning of GENERATED defines - do not modify - used by scripts
23
24/*
25 * XR_KHR_android_create_instance
26 */
27#if defined(XR_KHR_android_create_instance) && defined(XR_USE_PLATFORM_ANDROID)
28#define OXR_HAVE_KHR_android_create_instance
29#define OXR_EXTENSION_SUPPORT_KHR_android_create_instance(_) _(KHR_android_create_instance, KHR_ANDROID_CREATE_INSTANCE)
30#else
31#define OXR_EXTENSION_SUPPORT_KHR_android_create_instance(_)
32#endif
33
34
35/*
36 * XR_KHR_android_thread_settings
37 */
38#if defined(XR_KHR_android_thread_settings) && defined(XR_USE_PLATFORM_ANDROID)
39#define OXR_HAVE_KHR_android_thread_settings
40#define OXR_EXTENSION_SUPPORT_KHR_android_thread_settings(_) _(KHR_android_thread_settings, KHR_ANDROID_THREAD_SETTINGS)
41#else
42#define OXR_EXTENSION_SUPPORT_KHR_android_thread_settings(_)
43#endif
44
45
46/*
47 * XR_KHR_binding_modification
48 */
49#if defined(XR_KHR_binding_modification)
50#define OXR_HAVE_KHR_binding_modification
51#define OXR_EXTENSION_SUPPORT_KHR_binding_modification(_) _(KHR_binding_modification, KHR_BINDING_MODIFICATION)
52#else
53#define OXR_EXTENSION_SUPPORT_KHR_binding_modification(_)
54#endif
55
56
57/*
58 * XR_KHR_composition_layer_color_scale_bias
59 */
60#if defined(XR_KHR_composition_layer_color_scale_bias) && defined(XRT_FEATURE_OPENXR_LAYER_COLOR_SCALE_BIAS)
61#define OXR_HAVE_KHR_composition_layer_color_scale_bias
62#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_color_scale_bias(_) \
63 _(KHR_composition_layer_color_scale_bias, KHR_COMPOSITION_LAYER_COLOR_SCALE_BIAS)
64#else
65#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_color_scale_bias(_)
66#endif
67
68
69/*
70 * XR_KHR_composition_layer_cube
71 */
72#if defined(XR_KHR_composition_layer_cube) && defined(XRT_FEATURE_OPENXR_LAYER_CUBE)
73#define OXR_HAVE_KHR_composition_layer_cube
74#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_cube(_) _(KHR_composition_layer_cube, KHR_COMPOSITION_LAYER_CUBE)
75#else
76#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_cube(_)
77#endif
78
79
80/*
81 * XR_KHR_composition_layer_cylinder
82 */
83#if defined(XR_KHR_composition_layer_cylinder) && defined(XRT_FEATURE_OPENXR_LAYER_CYLINDER)
84#define OXR_HAVE_KHR_composition_layer_cylinder
85#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_cylinder(_) \
86 _(KHR_composition_layer_cylinder, KHR_COMPOSITION_LAYER_CYLINDER)
87#else
88#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_cylinder(_)
89#endif
90
91
92/*
93 * XR_KHR_composition_layer_depth
94 */
95#if defined(XR_KHR_composition_layer_depth) && defined(XRT_FEATURE_OPENXR_LAYER_DEPTH)
96#define OXR_HAVE_KHR_composition_layer_depth
97#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_depth(_) _(KHR_composition_layer_depth, KHR_COMPOSITION_LAYER_DEPTH)
98#else
99#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_depth(_)
100#endif
101
102
103/*
104 * XR_KHR_composition_layer_equirect
105 */
106#if defined(XR_KHR_composition_layer_equirect) && defined(XRT_FEATURE_OPENXR_LAYER_EQUIRECT1)
107#define OXR_HAVE_KHR_composition_layer_equirect
108#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_equirect(_) \
109 _(KHR_composition_layer_equirect, KHR_COMPOSITION_LAYER_EQUIRECT)
110#else
111#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_equirect(_)
112#endif
113
114
115/*
116 * XR_KHR_composition_layer_equirect2
117 */
118#if defined(XR_KHR_composition_layer_equirect2) && defined(XRT_FEATURE_OPENXR_LAYER_EQUIRECT2)
119#define OXR_HAVE_KHR_composition_layer_equirect2
120#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_equirect2(_) \
121 _(KHR_composition_layer_equirect2, KHR_COMPOSITION_LAYER_EQUIRECT2)
122#else
123#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_equirect2(_)
124#endif
125
126
127/*
128 * XR_KHR_convert_timespec_time
129 */
130#if defined(XR_KHR_convert_timespec_time) && defined(XR_USE_TIMESPEC) && (!defined(XR_USE_PLATFORM_WIN32))
131#define OXR_HAVE_KHR_convert_timespec_time
132#define OXR_EXTENSION_SUPPORT_KHR_convert_timespec_time(_) _(KHR_convert_timespec_time, KHR_CONVERT_TIMESPEC_TIME)
133#else
134#define OXR_EXTENSION_SUPPORT_KHR_convert_timespec_time(_)
135#endif
136
137
138/*
139 * XR_KHR_D3D11_enable
140 */
141#if defined(XR_KHR_D3D11_enable) && defined(XR_USE_GRAPHICS_API_D3D11)
142#define OXR_HAVE_KHR_D3D11_enable
143#define OXR_EXTENSION_SUPPORT_KHR_D3D11_enable(_) _(KHR_D3D11_enable, KHR_D3D11_ENABLE)
144#else
145#define OXR_EXTENSION_SUPPORT_KHR_D3D11_enable(_)
146#endif
147
148
149/*
150 * XR_KHR_D3D12_enable
151 */
152#if defined(XR_KHR_D3D12_enable) && defined(XR_USE_GRAPHICS_API_D3D12)
153#define OXR_HAVE_KHR_D3D12_enable
154#define OXR_EXTENSION_SUPPORT_KHR_D3D12_enable(_) _(KHR_D3D12_enable, KHR_D3D12_ENABLE)
155#else
156#define OXR_EXTENSION_SUPPORT_KHR_D3D12_enable(_)
157#endif
158
159
160/*
161 * XR_KHR_extended_struct_name_lengths
162 */
163#if defined(XR_KHR_extended_struct_name_lengths)
164#define OXR_HAVE_KHR_extended_struct_name_lengths
165#define OXR_EXTENSION_SUPPORT_KHR_extended_struct_name_lengths(_) \
166 _(KHR_extended_struct_name_lengths, KHR_EXTENDED_STRUCT_NAME_LENGTHS)
167#else
168#define OXR_EXTENSION_SUPPORT_KHR_extended_struct_name_lengths(_)
169#endif
170
171
172/*
173 * XR_KHR_loader_init
174 */
175#if defined(XR_KHR_loader_init) && defined(XR_USE_PLATFORM_ANDROID)
176#define OXR_HAVE_KHR_loader_init
177#define OXR_EXTENSION_SUPPORT_KHR_loader_init(_) _(KHR_loader_init, KHR_LOADER_INIT)
178#else
179#define OXR_EXTENSION_SUPPORT_KHR_loader_init(_)
180#endif
181
182
183/*
184 * XR_KHR_loader_init_android
185 */
186#if defined(XR_KHR_loader_init_android) && defined(OXR_HAVE_KHR_loader_init) && defined(XR_USE_PLATFORM_ANDROID)
187#define OXR_HAVE_KHR_loader_init_android
188#define OXR_EXTENSION_SUPPORT_KHR_loader_init_android(_) _(KHR_loader_init_android, KHR_LOADER_INIT_ANDROID)
189#else
190#define OXR_EXTENSION_SUPPORT_KHR_loader_init_android(_)
191#endif
192
193
194/*
195 * XR_KHR_locate_spaces
196 */
197#if defined(XR_KHR_locate_spaces)
198#define OXR_HAVE_KHR_locate_spaces
199#define OXR_EXTENSION_SUPPORT_KHR_locate_spaces(_) _(KHR_locate_spaces, KHR_LOCATE_SPACES)
200#else
201#define OXR_EXTENSION_SUPPORT_KHR_locate_spaces(_)
202#endif
203
204
205/*
206 * XR_KHR_maintenance1
207 */
208#if defined(XR_KHR_maintenance1)
209#define OXR_HAVE_KHR_maintenance1
210#define OXR_EXTENSION_SUPPORT_KHR_maintenance1(_) _(KHR_maintenance1, KHR_MAINTENANCE1)
211#else
212#define OXR_EXTENSION_SUPPORT_KHR_maintenance1(_)
213#endif
214
215
216/*
217 * XR_KHR_opengl_enable
218 */
219#if defined(XR_KHR_opengl_enable) && defined(XR_USE_GRAPHICS_API_OPENGL)
220#define OXR_HAVE_KHR_opengl_enable
221#define OXR_EXTENSION_SUPPORT_KHR_opengl_enable(_) _(KHR_opengl_enable, KHR_OPENGL_ENABLE)
222#else
223#define OXR_EXTENSION_SUPPORT_KHR_opengl_enable(_)
224#endif
225
226
227/*
228 * XR_KHR_opengl_es_enable
229 */
230#if defined(XR_KHR_opengl_es_enable) && defined(XR_USE_GRAPHICS_API_OPENGL_ES)
231#define OXR_HAVE_KHR_opengl_es_enable
232#define OXR_EXTENSION_SUPPORT_KHR_opengl_es_enable(_) _(KHR_opengl_es_enable, KHR_OPENGL_ES_ENABLE)
233#else
234#define OXR_EXTENSION_SUPPORT_KHR_opengl_es_enable(_)
235#endif
236
237
238/*
239 * XR_KHR_swapchain_usage_input_attachment_bit
240 */
241#if defined(XR_KHR_swapchain_usage_input_attachment_bit)
242#define OXR_HAVE_KHR_swapchain_usage_input_attachment_bit
243#define OXR_EXTENSION_SUPPORT_KHR_swapchain_usage_input_attachment_bit(_) \
244 _(KHR_swapchain_usage_input_attachment_bit, KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT)
245#else
246#define OXR_EXTENSION_SUPPORT_KHR_swapchain_usage_input_attachment_bit(_)
247#endif
248
249
250/*
251 * XR_KHR_visibility_mask
252 */
253#if defined(XR_KHR_visibility_mask) && defined(XRT_FEATURE_OPENXR_VISIBILITY_MASK)
254#define OXR_HAVE_KHR_visibility_mask
255#define OXR_EXTENSION_SUPPORT_KHR_visibility_mask(_) _(KHR_visibility_mask, KHR_VISIBILITY_MASK)
256#else
257#define OXR_EXTENSION_SUPPORT_KHR_visibility_mask(_)
258#endif
259
260
261/*
262 * XR_KHR_vulkan_enable
263 */
264#if defined(XR_KHR_vulkan_enable) && defined(XR_USE_GRAPHICS_API_VULKAN)
265#define OXR_HAVE_KHR_vulkan_enable
266#define OXR_EXTENSION_SUPPORT_KHR_vulkan_enable(_) _(KHR_vulkan_enable, KHR_VULKAN_ENABLE)
267#else
268#define OXR_EXTENSION_SUPPORT_KHR_vulkan_enable(_)
269#endif
270
271
272/*
273 * XR_KHR_vulkan_enable2
274 */
275#if defined(XR_KHR_vulkan_enable2) && defined(XR_USE_GRAPHICS_API_VULKAN)
276#define OXR_HAVE_KHR_vulkan_enable2
277#define OXR_EXTENSION_SUPPORT_KHR_vulkan_enable2(_) _(KHR_vulkan_enable2, KHR_VULKAN_ENABLE2)
278#else
279#define OXR_EXTENSION_SUPPORT_KHR_vulkan_enable2(_)
280#endif
281
282
283/*
284 * XR_KHR_vulkan_swapchain_format_list
285 */
286#if defined(XR_KHR_vulkan_swapchain_format_list) && defined(XR_USE_GRAPHICS_API_VULKAN) && \
287 defined(XRT_FEATURE_OPENXR_VULKAN_SWAPCHAIN_FORMAT_LIST)
288#define OXR_HAVE_KHR_vulkan_swapchain_format_list
289#define OXR_EXTENSION_SUPPORT_KHR_vulkan_swapchain_format_list(_) \
290 _(KHR_vulkan_swapchain_format_list, KHR_VULKAN_SWAPCHAIN_FORMAT_LIST)
291#else
292#define OXR_EXTENSION_SUPPORT_KHR_vulkan_swapchain_format_list(_)
293#endif
294
295
296/*
297 * XR_KHR_win32_convert_performance_counter_time
298 */
299#if defined(XR_KHR_win32_convert_performance_counter_time) && defined(XR_USE_PLATFORM_WIN32)
300#define OXR_HAVE_KHR_win32_convert_performance_counter_time
301#define OXR_EXTENSION_SUPPORT_KHR_win32_convert_performance_counter_time(_) \
302 _(KHR_win32_convert_performance_counter_time, KHR_WIN32_CONVERT_PERFORMANCE_COUNTER_TIME)
303#else
304#define OXR_EXTENSION_SUPPORT_KHR_win32_convert_performance_counter_time(_)
305#endif
306
307
308/*
309 * XR_EXT_active_action_set_priority
310 */
311#if defined(XR_EXT_active_action_set_priority) && defined(XRT_FEATURE_OPENXR_ACTIVE_ACTION_SET_PRIORITY)
312#define OXR_HAVE_EXT_active_action_set_priority
313#define OXR_EXTENSION_SUPPORT_EXT_active_action_set_priority(_) \
314 _(EXT_active_action_set_priority, EXT_ACTIVE_ACTION_SET_PRIORITY)
315#else
316#define OXR_EXTENSION_SUPPORT_EXT_active_action_set_priority(_)
317#endif
318
319
320/*
321 * XR_EXT_debug_utils
322 */
323#if defined(XR_EXT_debug_utils) && defined(XRT_FEATURE_OPENXR_DEBUG_UTILS)
324#define OXR_HAVE_EXT_debug_utils
325#define OXR_EXTENSION_SUPPORT_EXT_debug_utils(_) _(EXT_debug_utils, EXT_DEBUG_UTILS)
326#else
327#define OXR_EXTENSION_SUPPORT_EXT_debug_utils(_)
328#endif
329
330
331/*
332 * XR_EXT_dpad_binding
333 */
334#if defined(XR_EXT_dpad_binding)
335#define OXR_HAVE_EXT_dpad_binding
336#define OXR_EXTENSION_SUPPORT_EXT_dpad_binding(_) _(EXT_dpad_binding, EXT_DPAD_BINDING)
337#else
338#define OXR_EXTENSION_SUPPORT_EXT_dpad_binding(_)
339#endif
340
341
342/*
343 * XR_EXT_eye_gaze_interaction
344 */
345#if defined(XR_EXT_eye_gaze_interaction) && defined(XRT_FEATURE_OPENXR_INTERACTION_EXT_EYE_GAZE)
346#define OXR_HAVE_EXT_eye_gaze_interaction
347#define OXR_EXTENSION_SUPPORT_EXT_eye_gaze_interaction(_) _(EXT_eye_gaze_interaction, EXT_EYE_GAZE_INTERACTION)
348#else
349#define OXR_EXTENSION_SUPPORT_EXT_eye_gaze_interaction(_)
350#endif
351
352
353/*
354 * XR_EXT_future
355 */
356#if defined(XR_EXT_future) && defined(XRT_FEATURE_OPENXR_FUTURE_EXT)
357#define OXR_HAVE_EXT_future
358#define OXR_EXTENSION_SUPPORT_EXT_future(_) _(EXT_future, EXT_FUTURE)
359#else
360#define OXR_EXTENSION_SUPPORT_EXT_future(_)
361#endif
362
363
364/*
365 * XR_EXT_hand_interaction
366 */
367#if defined(XR_EXT_hand_interaction) && defined(XRT_FEATURE_OPENXR_INTERACTION_EXT_HAND)
368#define OXR_HAVE_EXT_hand_interaction
369#define OXR_EXTENSION_SUPPORT_EXT_hand_interaction(_) _(EXT_hand_interaction, EXT_HAND_INTERACTION)
370#else
371#define OXR_EXTENSION_SUPPORT_EXT_hand_interaction(_)
372#endif
373
374
375/*
376 * XR_EXT_hand_tracking
377 */
378#if defined(XR_EXT_hand_tracking) && defined(XRT_FEATURE_OPENXR_HAND_TRACKING_EXT)
379#define OXR_HAVE_EXT_hand_tracking
380#define OXR_EXTENSION_SUPPORT_EXT_hand_tracking(_) _(EXT_hand_tracking, EXT_HAND_TRACKING)
381#else
382#define OXR_EXTENSION_SUPPORT_EXT_hand_tracking(_)
383#endif
384
385
386/*
387 * XR_EXT_hand_tracking_data_source
388 */
389#if defined(XR_EXT_hand_tracking_data_source) && defined(XRT_FEATURE_OPENXR_HAND_TRACKING_DATA_SOURCE_EXT)
390#define OXR_HAVE_EXT_hand_tracking_data_source
391#define OXR_EXTENSION_SUPPORT_EXT_hand_tracking_data_source(_) \
392 _(EXT_hand_tracking_data_source, EXT_HAND_TRACKING_DATA_SOURCE)
393#else
394#define OXR_EXTENSION_SUPPORT_EXT_hand_tracking_data_source(_)
395#endif
396
397
398/*
399 * XR_EXT_hp_mixed_reality_controller
400 */
401#if defined(XR_EXT_hp_mixed_reality_controller) && defined(XRT_FEATURE_OPENXR_INTERACTION_WINMR)
402#define OXR_HAVE_EXT_hp_mixed_reality_controller
403#define OXR_EXTENSION_SUPPORT_EXT_hp_mixed_reality_controller(_) \
404 _(EXT_hp_mixed_reality_controller, EXT_HP_MIXED_REALITY_CONTROLLER)
405#else
406#define OXR_EXTENSION_SUPPORT_EXT_hp_mixed_reality_controller(_)
407#endif
408
409
410/*
411 * XR_EXT_local_floor
412 */
413#if defined(XR_EXT_local_floor) && defined(XRT_FEATURE_OPENXR_SPACE_LOCAL_FLOOR)
414#define OXR_HAVE_EXT_local_floor
415#define OXR_EXTENSION_SUPPORT_EXT_local_floor(_) _(EXT_local_floor, EXT_LOCAL_FLOOR)
416#else
417#define OXR_EXTENSION_SUPPORT_EXT_local_floor(_)
418#endif
419
420
421/*
422 * XR_EXT_palm_pose
423 */
424#if defined(XR_EXT_palm_pose) && defined(XRT_FEATURE_OPENXR_INTERACTION_EXT_PALM_POSE)
425#define OXR_HAVE_EXT_palm_pose
426#define OXR_EXTENSION_SUPPORT_EXT_palm_pose(_) _(EXT_palm_pose, EXT_PALM_POSE)
427#else
428#define OXR_EXTENSION_SUPPORT_EXT_palm_pose(_)
429#endif
430
431
432/*
433 * XR_EXT_performance_settings
434 */
435#if defined(XR_EXT_performance_settings) && defined(XRT_FEATURE_OPENXR_PERFORMANCE_SETTINGS)
436#define OXR_HAVE_EXT_performance_settings
437#define OXR_EXTENSION_SUPPORT_EXT_performance_settings(_) _(EXT_performance_settings, EXT_PERFORMANCE_SETTINGS)
438#else
439#define OXR_EXTENSION_SUPPORT_EXT_performance_settings(_)
440#endif
441
442
443/*
444 * XR_EXT_plane_detection
445 */
446#if defined(XR_EXT_plane_detection) && defined(XRT_FEATURE_OPENXR_PLANE_DETECTION)
447#define OXR_HAVE_EXT_plane_detection
448#define OXR_EXTENSION_SUPPORT_EXT_plane_detection(_) _(EXT_plane_detection, EXT_PLANE_DETECTION)
449#else
450#define OXR_EXTENSION_SUPPORT_EXT_plane_detection(_)
451#endif
452
453
454/*
455 * XR_EXT_samsung_odyssey_controller
456 */
457#if defined(XR_EXT_samsung_odyssey_controller) && defined(XRT_FEATURE_OPENXR_INTERACTION_WINMR)
458#define OXR_HAVE_EXT_samsung_odyssey_controller
459#define OXR_EXTENSION_SUPPORT_EXT_samsung_odyssey_controller(_) \
460 _(EXT_samsung_odyssey_controller, EXT_SAMSUNG_ODYSSEY_CONTROLLER)
461#else
462#define OXR_EXTENSION_SUPPORT_EXT_samsung_odyssey_controller(_)
463#endif
464
465
466/*
467 * XR_EXT_user_presence
468 */
469#if defined(XR_EXT_user_presence) && defined(XRT_FEATURE_OPENXR_USER_PRESENCE)
470#define OXR_HAVE_EXT_user_presence
471#define OXR_EXTENSION_SUPPORT_EXT_user_presence(_) _(EXT_user_presence, EXT_USER_PRESENCE)
472#else
473#define OXR_EXTENSION_SUPPORT_EXT_user_presence(_)
474#endif
475
476
477/*
478 * XR_BD_controller_interaction
479 */
480#if defined(XR_BD_controller_interaction) && defined(XRT_FEATURE_OPENXR_INTERACTION_BYTEDANCE)
481#define OXR_HAVE_BD_controller_interaction
482#define OXR_EXTENSION_SUPPORT_BD_controller_interaction(_) _(BD_controller_interaction, BD_CONTROLLER_INTERACTION)
483#else
484#define OXR_EXTENSION_SUPPORT_BD_controller_interaction(_)
485#endif
486
487
488/*
489 * XR_FB_body_tracking
490 */
491#if defined(XR_FB_body_tracking) && defined(XRT_FEATURE_OPENXR_BODY_TRACKING_FB)
492#define OXR_HAVE_FB_body_tracking
493#define OXR_EXTENSION_SUPPORT_FB_body_tracking(_) _(FB_body_tracking, FB_BODY_TRACKING)
494#else
495#define OXR_EXTENSION_SUPPORT_FB_body_tracking(_)
496#endif
497
498
499/*
500 * XR_FB_composition_layer_alpha_blend
501 */
502#if defined(XR_FB_composition_layer_alpha_blend) && defined(XRT_FEATURE_OPENXR_LAYER_FB_ALPHA_BLEND)
503#define OXR_HAVE_FB_composition_layer_alpha_blend
504#define OXR_EXTENSION_SUPPORT_FB_composition_layer_alpha_blend(_) \
505 _(FB_composition_layer_alpha_blend, FB_COMPOSITION_LAYER_ALPHA_BLEND)
506#else
507#define OXR_EXTENSION_SUPPORT_FB_composition_layer_alpha_blend(_)
508#endif
509
510
511/*
512 * XR_FB_composition_layer_depth_test
513 */
514#if defined(XR_FB_composition_layer_depth_test) && defined(XRT_FEATURE_OPENXR_LAYER_FB_DEPTH_TEST)
515#define OXR_HAVE_FB_composition_layer_depth_test
516#define OXR_EXTENSION_SUPPORT_FB_composition_layer_depth_test(_) \
517 _(FB_composition_layer_depth_test, FB_COMPOSITION_LAYER_DEPTH_TEST)
518#else
519#define OXR_EXTENSION_SUPPORT_FB_composition_layer_depth_test(_)
520#endif
521
522
523/*
524 * XR_FB_composition_layer_image_layout
525 */
526#if defined(XR_FB_composition_layer_image_layout) && defined(XRT_FEATURE_OPENXR_LAYER_FB_IMAGE_LAYOUT)
527#define OXR_HAVE_FB_composition_layer_image_layout
528#define OXR_EXTENSION_SUPPORT_FB_composition_layer_image_layout(_) \
529 _(FB_composition_layer_image_layout, FB_COMPOSITION_LAYER_IMAGE_LAYOUT)
530#else
531#define OXR_EXTENSION_SUPPORT_FB_composition_layer_image_layout(_)
532#endif
533
534
535/*
536 * XR_FB_composition_layer_settings
537 */
538#if defined(XR_FB_composition_layer_settings) && defined(XRT_FEATURE_OPENXR_LAYER_FB_SETTINGS)
539#define OXR_HAVE_FB_composition_layer_settings
540#define OXR_EXTENSION_SUPPORT_FB_composition_layer_settings(_) \
541 _(FB_composition_layer_settings, FB_COMPOSITION_LAYER_SETTINGS)
542#else
543#define OXR_EXTENSION_SUPPORT_FB_composition_layer_settings(_)
544#endif
545
546
547/*
548 * XR_FB_display_refresh_rate
549 */
550#if defined(XR_FB_display_refresh_rate) && defined(XRT_FEATURE_OPENXR_DISPLAY_REFRESH_RATE)
551#define OXR_HAVE_FB_display_refresh_rate
552#define OXR_EXTENSION_SUPPORT_FB_display_refresh_rate(_) _(FB_display_refresh_rate, FB_DISPLAY_REFRESH_RATE)
553#else
554#define OXR_EXTENSION_SUPPORT_FB_display_refresh_rate(_)
555#endif
556
557
558/*
559 * XR_FB_face_tracking2
560 */
561#if defined(XR_FB_face_tracking2) && defined(XRT_FEATURE_OPENXR_FACE_TRACKING2_FB)
562#define OXR_HAVE_FB_face_tracking2
563#define OXR_EXTENSION_SUPPORT_FB_face_tracking2(_) _(FB_face_tracking2, FB_FACE_TRACKING2)
564#else
565#define OXR_EXTENSION_SUPPORT_FB_face_tracking2(_)
566#endif
567
568
569/*
570 * XR_FB_haptic_pcm
571 */
572#if defined(XR_FB_haptic_pcm) && defined(XRT_FEATURE_OPENXR_HAPTIC_PCM)
573#define OXR_HAVE_FB_haptic_pcm
574#define OXR_EXTENSION_SUPPORT_FB_haptic_pcm(_) _(FB_haptic_pcm, FB_HAPTIC_PCM)
575#else
576#define OXR_EXTENSION_SUPPORT_FB_haptic_pcm(_)
577#endif
578
579
580/*
581 * XR_FB_passthrough
582 */
583#if defined(XR_FB_passthrough) && defined(XRT_FEATURE_OPENXR_LAYER_FB_PASSTHROUGH)
584#define OXR_HAVE_FB_passthrough
585#define OXR_EXTENSION_SUPPORT_FB_passthrough(_) _(FB_passthrough, FB_PASSTHROUGH)
586#else
587#define OXR_EXTENSION_SUPPORT_FB_passthrough(_)
588#endif
589
590
591/*
592 * XR_FB_touch_controller_pro
593 */
594#if defined(XR_FB_touch_controller_pro) && defined(XRT_FEATURE_OPENXR_INTERACTION_TOUCH_PRO)
595#define OXR_HAVE_FB_touch_controller_pro
596#define OXR_EXTENSION_SUPPORT_FB_touch_controller_pro(_) _(FB_touch_controller_pro, FB_TOUCH_CONTROLLER_PRO)
597#else
598#define OXR_EXTENSION_SUPPORT_FB_touch_controller_pro(_)
599#endif
600
601
602/*
603 * XR_FB_touch_controller_proximity
604 */
605#if defined(XR_FB_touch_controller_proximity) && defined(XRT_FEATURE_OPENXR_INTERACTION_FB_PROXIMITY)
606#define OXR_HAVE_FB_touch_controller_proximity
607#define OXR_EXTENSION_SUPPORT_FB_touch_controller_proximity(_) \
608 _(FB_touch_controller_proximity, FB_TOUCH_CONTROLLER_PROXIMITY)
609#else
610#define OXR_EXTENSION_SUPPORT_FB_touch_controller_proximity(_)
611#endif
612
613
614/*
615 * XR_HTC_facial_tracking
616 */
617#if defined(XR_HTC_facial_tracking) && defined(XRT_FEATURE_OPENXR_FACIAL_TRACKING_HTC)
618#define OXR_HAVE_HTC_facial_tracking
619#define OXR_EXTENSION_SUPPORT_HTC_facial_tracking(_) _(HTC_facial_tracking, HTC_FACIAL_TRACKING)
620#else
621#define OXR_EXTENSION_SUPPORT_HTC_facial_tracking(_)
622#endif
623
624
625/*
626 * XR_HTC_vive_cosmos_controller_interaction
627 */
628#if defined(XR_HTC_vive_cosmos_controller_interaction) && defined(XRT_FEATURE_OPENXR_INTERACTION_VIVE_COSMOS)
629#define OXR_HAVE_HTC_vive_cosmos_controller_interaction
630#define OXR_EXTENSION_SUPPORT_HTC_vive_cosmos_controller_interaction(_) \
631 _(HTC_vive_cosmos_controller_interaction, HTC_VIVE_COSMOS_CONTROLLER_INTERACTION)
632#else
633#define OXR_EXTENSION_SUPPORT_HTC_vive_cosmos_controller_interaction(_)
634#endif
635
636
637/*
638 * XR_HTC_vive_focus3_controller_interaction
639 */
640#if defined(XR_HTC_vive_focus3_controller_interaction) && defined(XRT_FEATURE_OPENXR_INTERACTION_VIVE_FOCUS3)
641#define OXR_HAVE_HTC_vive_focus3_controller_interaction
642#define OXR_EXTENSION_SUPPORT_HTC_vive_focus3_controller_interaction(_) \
643 _(HTC_vive_focus3_controller_interaction, HTC_VIVE_FOCUS3_CONTROLLER_INTERACTION)
644#else
645#define OXR_EXTENSION_SUPPORT_HTC_vive_focus3_controller_interaction(_)
646#endif
647
648
649/*
650 * XR_META_body_tracking_calibration
651 */
652#if defined(XR_META_body_tracking_calibration) && defined(XRT_FEATURE_OPENXR_BODY_TRACKING_CALIBRATION_META)
653#define OXR_HAVE_META_body_tracking_calibration
654#define OXR_EXTENSION_SUPPORT_META_body_tracking_calibration(_) \
655 _(META_body_tracking_calibration, META_BODY_TRACKING_CALIBRATION)
656#else
657#define OXR_EXTENSION_SUPPORT_META_body_tracking_calibration(_)
658#endif
659
660
661/*
662 * XR_META_body_tracking_full_body
663 */
664#if defined(XR_META_body_tracking_full_body) && defined(XRT_FEATURE_OPENXR_BODY_TRACKING_FULL_BODY_META)
665#define OXR_HAVE_META_body_tracking_full_body
666#define OXR_EXTENSION_SUPPORT_META_body_tracking_full_body(_) \
667 _(META_body_tracking_full_body, META_BODY_TRACKING_FULL_BODY)
668#else
669#define OXR_EXTENSION_SUPPORT_META_body_tracking_full_body(_)
670#endif
671
672
673/*
674 * XR_META_touch_controller_plus
675 */
676#if defined(XR_META_touch_controller_plus) && defined(XRT_FEATURE_OPENXR_INTERACTION_TOUCH_PLUS)
677#define OXR_HAVE_META_touch_controller_plus
678#define OXR_EXTENSION_SUPPORT_META_touch_controller_plus(_) _(META_touch_controller_plus, META_TOUCH_CONTROLLER_PLUS)
679#else
680#define OXR_EXTENSION_SUPPORT_META_touch_controller_plus(_)
681#endif
682
683
684/*
685 * XR_ML_ml2_controller_interaction
686 */
687#if defined(XR_ML_ml2_controller_interaction) && defined(XRT_FEATURE_OPENXR_INTERACTION_ML2)
688#define OXR_HAVE_ML_ml2_controller_interaction
689#define OXR_EXTENSION_SUPPORT_ML_ml2_controller_interaction(_) \
690 _(ML_ml2_controller_interaction, ML_ML2_CONTROLLER_INTERACTION)
691#else
692#define OXR_EXTENSION_SUPPORT_ML_ml2_controller_interaction(_)
693#endif
694
695
696/*
697 * XR_MND_headless
698 */
699#if defined(XR_MND_headless) && defined(XRT_FEATURE_OPENXR_HEADLESS)
700#define OXR_HAVE_MND_headless
701#define OXR_EXTENSION_SUPPORT_MND_headless(_) _(MND_headless, MND_HEADLESS)
702#else
703#define OXR_EXTENSION_SUPPORT_MND_headless(_)
704#endif
705
706
707/*
708 * XR_MND_swapchain_usage_input_attachment_bit
709 */
710#if defined(XR_MND_swapchain_usage_input_attachment_bit)
711#define OXR_HAVE_MND_swapchain_usage_input_attachment_bit
712#define OXR_EXTENSION_SUPPORT_MND_swapchain_usage_input_attachment_bit(_) \
713 _(MND_swapchain_usage_input_attachment_bit, MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT)
714#else
715#define OXR_EXTENSION_SUPPORT_MND_swapchain_usage_input_attachment_bit(_)
716#endif
717
718
719/*
720 * XR_MSFT_hand_interaction
721 */
722#if defined(XR_MSFT_hand_interaction) && defined(XRT_FEATURE_OPENXR_INTERACTION_MSFT_HAND)
723#define OXR_HAVE_MSFT_hand_interaction
724#define OXR_EXTENSION_SUPPORT_MSFT_hand_interaction(_) _(MSFT_hand_interaction, MSFT_HAND_INTERACTION)
725#else
726#define OXR_EXTENSION_SUPPORT_MSFT_hand_interaction(_)
727#endif
728
729
730/*
731 * XR_MSFT_unbounded_reference_space
732 */
733#if defined(XR_MSFT_unbounded_reference_space) && defined(XRT_FEATURE_OPENXR_SPACE_UNBOUNDED)
734#define OXR_HAVE_MSFT_unbounded_reference_space
735#define OXR_EXTENSION_SUPPORT_MSFT_unbounded_reference_space(_) \
736 _(MSFT_unbounded_reference_space, MSFT_UNBOUNDED_REFERENCE_SPACE)
737#else
738#define OXR_EXTENSION_SUPPORT_MSFT_unbounded_reference_space(_)
739#endif
740
741
742/*
743 * XR_OPPO_controller_interaction
744 */
745#if defined(XR_OPPO_controller_interaction) && defined(XRT_FEATURE_OPENXR_INTERACTION_OPPO)
746#define OXR_HAVE_OPPO_controller_interaction
747#define OXR_EXTENSION_SUPPORT_OPPO_controller_interaction(_) _(OPPO_controller_interaction, OPPO_CONTROLLER_INTERACTION)
748#else
749#define OXR_EXTENSION_SUPPORT_OPPO_controller_interaction(_)
750#endif
751
752
753/*
754 * XR_EXTX_overlay
755 */
756#if defined(XR_EXTX_overlay) && defined(XRT_FEATURE_OPENXR_OVERLAY)
757#define OXR_HAVE_EXTX_overlay
758#define OXR_EXTENSION_SUPPORT_EXTX_overlay(_) _(EXTX_overlay, EXTX_OVERLAY)
759#else
760#define OXR_EXTENSION_SUPPORT_EXTX_overlay(_)
761#endif
762
763
764/*
765 * XR_HTCX_vive_tracker_interaction
766 */
767#if defined(XR_HTCX_vive_tracker_interaction) && defined(ALWAYS_DISABLED)
768#define OXR_HAVE_HTCX_vive_tracker_interaction
769#define OXR_EXTENSION_SUPPORT_HTCX_vive_tracker_interaction(_) \
770 _(HTCX_vive_tracker_interaction, HTCX_VIVE_TRACKER_INTERACTION)
771#else
772#define OXR_EXTENSION_SUPPORT_HTCX_vive_tracker_interaction(_)
773#endif
774
775
776/*
777 * XR_MNDX_ball_on_a_stick_controller
778 */
779#if defined(XR_MNDX_ball_on_a_stick_controller) && defined(XRT_FEATURE_OPENXR_INTERACTION_MNDX)
780#define OXR_HAVE_MNDX_ball_on_a_stick_controller
781#define OXR_EXTENSION_SUPPORT_MNDX_ball_on_a_stick_controller(_) \
782 _(MNDX_ball_on_a_stick_controller, MNDX_BALL_ON_A_STICK_CONTROLLER)
783#else
784#define OXR_EXTENSION_SUPPORT_MNDX_ball_on_a_stick_controller(_)
785#endif
786
787
788/*
789 * XR_MNDX_blubur_s1
790 */
791#if defined(XR_MNDX_blubur_s1) && defined(XRT_FEATURE_OPENXR_INTERACTION_MNDX)
792#define OXR_HAVE_MNDX_blubur_s1
793#define OXR_EXTENSION_SUPPORT_MNDX_blubur_s1(_) _(MNDX_blubur_s1, MNDX_BLUBUR_S1)
794#else
795#define OXR_EXTENSION_SUPPORT_MNDX_blubur_s1(_)
796#endif
797
798
799/*
800 * XR_MNDX_oculus_remote
801 */
802#if defined(XR_MNDX_oculus_remote) && defined(XRT_FEATURE_OPENXR_INTERACTION_MNDX)
803#define OXR_HAVE_MNDX_oculus_remote
804#define OXR_EXTENSION_SUPPORT_MNDX_oculus_remote(_) _(MNDX_oculus_remote, MNDX_OCULUS_REMOTE)
805#else
806#define OXR_EXTENSION_SUPPORT_MNDX_oculus_remote(_)
807#endif
808
809
810/*
811 * XR_MNDX_egl_enable
812 */
813#if defined(XR_MNDX_egl_enable) && defined(XR_USE_PLATFORM_EGL)
814#define OXR_HAVE_MNDX_egl_enable
815#define OXR_EXTENSION_SUPPORT_MNDX_egl_enable(_) _(MNDX_egl_enable, MNDX_EGL_ENABLE)
816#else
817#define OXR_EXTENSION_SUPPORT_MNDX_egl_enable(_)
818#endif
819
820
821/*
822 * XR_MNDX_force_feedback_curl
823 */
824#if defined(XR_MNDX_force_feedback_curl) && defined(XRT_FEATURE_OPENXR_FORCE_FEEDBACK_CURL)
825#define OXR_HAVE_MNDX_force_feedback_curl
826#define OXR_EXTENSION_SUPPORT_MNDX_force_feedback_curl(_) _(MNDX_force_feedback_curl, MNDX_FORCE_FEEDBACK_CURL)
827#else
828#define OXR_EXTENSION_SUPPORT_MNDX_force_feedback_curl(_)
829#endif
830
831
832/*
833 * XR_MNDX_hydra
834 */
835#if defined(XR_MNDX_hydra) && defined(XRT_FEATURE_OPENXR_INTERACTION_MNDX)
836#define OXR_HAVE_MNDX_hydra
837#define OXR_EXTENSION_SUPPORT_MNDX_hydra(_) _(MNDX_hydra, MNDX_HYDRA)
838#else
839#define OXR_EXTENSION_SUPPORT_MNDX_hydra(_)
840#endif
841
842
843/*
844 * XR_MNDX_psvr2_interaction
845 */
846#if defined(XR_MNDX_psvr2_interaction) && defined(XRT_FEATURE_OPENXR_INTERACTION_MNDX)
847#define OXR_HAVE_MNDX_psvr2_interaction
848#define OXR_EXTENSION_SUPPORT_MNDX_psvr2_interaction(_) _(MNDX_psvr2_interaction, MNDX_PSVR2_INTERACTION)
849#else
850#define OXR_EXTENSION_SUPPORT_MNDX_psvr2_interaction(_)
851#endif
852
853
854/*
855 * XR_MNDX_system_buttons
856 */
857#if defined(XR_MNDX_system_buttons) && defined(XRT_FEATURE_OPENXR_INTERACTION_MNDX)
858#define OXR_HAVE_MNDX_system_buttons
859#define OXR_EXTENSION_SUPPORT_MNDX_system_buttons(_) _(MNDX_system_buttons, MNDX_SYSTEM_BUTTONS)
860#else
861#define OXR_EXTENSION_SUPPORT_MNDX_system_buttons(_)
862#endif
863
864
865/*
866 * XR_MNDX_xdev_space
867 */
868#if defined(XR_MNDX_xdev_space) && defined(XRT_FEATURE_OPENXR_XDEV_SPACE)
869#define OXR_HAVE_MNDX_xdev_space
870#define OXR_EXTENSION_SUPPORT_MNDX_xdev_space(_) _(MNDX_xdev_space, MNDX_XDEV_SPACE)
871#else
872#define OXR_EXTENSION_SUPPORT_MNDX_xdev_space(_)
873#endif
874
875// end of GENERATED per-extension defines - do not modify - used by scripts
876
877/*!
878 * Call this, passing a macro taking two parameters, to
879 * generate tables, code, etc. related to OpenXR extensions.
880 * Upon including invoking OXR_EXTENSION_SUPPORT_GENERATE() with some
881 * MY_HANDLE_EXTENSION(mixed_case, all_caps), MY_HANDLE_EXTENSION will be called
882 * for each extension implemented in Monado and supported in this build:
883 *
884 * - The first parameter is the name of the extension without the leading XR_
885 * prefix: e.g. `KHR_opengl_enable`
886 * - The second parameter is the same text as the first, but in all uppercase,
887 * since this transform cannot be done in the C preprocessor, and some
888 * extension-related entities use this instead of the exact extension name.
889 *
890 * Implementation note: This macro calls another macro for each extension: that
891 * macro is either defined to call your provided macro, or defined to nothing,
892 * depending on if the extension is supported in this build.
893 *
894 * @note Do not edit anything between `clang-format off` and `clang-format on` -
895 * it will be replaced next time this file is generated!
896 */
897// clang-format off
898#define OXR_EXTENSION_SUPPORT_GENERATE(_) \
899 OXR_EXTENSION_SUPPORT_KHR_android_create_instance(_) \
900 OXR_EXTENSION_SUPPORT_KHR_android_thread_settings(_) \
901 OXR_EXTENSION_SUPPORT_KHR_binding_modification(_) \
902 OXR_EXTENSION_SUPPORT_KHR_composition_layer_color_scale_bias(_) \
903 OXR_EXTENSION_SUPPORT_KHR_composition_layer_cube(_) \
904 OXR_EXTENSION_SUPPORT_KHR_composition_layer_cylinder(_) \
905 OXR_EXTENSION_SUPPORT_KHR_composition_layer_depth(_) \
906 OXR_EXTENSION_SUPPORT_KHR_composition_layer_equirect(_) \
907 OXR_EXTENSION_SUPPORT_KHR_composition_layer_equirect2(_) \
908 OXR_EXTENSION_SUPPORT_KHR_convert_timespec_time(_) \
909 OXR_EXTENSION_SUPPORT_KHR_D3D11_enable(_) \
910 OXR_EXTENSION_SUPPORT_KHR_D3D12_enable(_) \
911 OXR_EXTENSION_SUPPORT_KHR_extended_struct_name_lengths(_) \
912 OXR_EXTENSION_SUPPORT_KHR_loader_init(_) \
913 OXR_EXTENSION_SUPPORT_KHR_loader_init_android(_) \
914 OXR_EXTENSION_SUPPORT_KHR_locate_spaces(_) \
915 OXR_EXTENSION_SUPPORT_KHR_maintenance1(_) \
916 OXR_EXTENSION_SUPPORT_KHR_opengl_enable(_) \
917 OXR_EXTENSION_SUPPORT_KHR_opengl_es_enable(_) \
918 OXR_EXTENSION_SUPPORT_KHR_swapchain_usage_input_attachment_bit(_) \
919 OXR_EXTENSION_SUPPORT_KHR_visibility_mask(_) \
920 OXR_EXTENSION_SUPPORT_KHR_vulkan_enable(_) \
921 OXR_EXTENSION_SUPPORT_KHR_vulkan_enable2(_) \
922 OXR_EXTENSION_SUPPORT_KHR_vulkan_swapchain_format_list(_) \
923 OXR_EXTENSION_SUPPORT_KHR_win32_convert_performance_counter_time(_) \
924 OXR_EXTENSION_SUPPORT_EXT_active_action_set_priority(_) \
925 OXR_EXTENSION_SUPPORT_EXT_debug_utils(_) \
926 OXR_EXTENSION_SUPPORT_EXT_dpad_binding(_) \
927 OXR_EXTENSION_SUPPORT_EXT_eye_gaze_interaction(_) \
928 OXR_EXTENSION_SUPPORT_EXT_future(_) \
929 OXR_EXTENSION_SUPPORT_EXT_hand_interaction(_) \
930 OXR_EXTENSION_SUPPORT_EXT_hand_tracking(_) \
931 OXR_EXTENSION_SUPPORT_EXT_hand_tracking_data_source(_) \
932 OXR_EXTENSION_SUPPORT_EXT_hp_mixed_reality_controller(_) \
933 OXR_EXTENSION_SUPPORT_EXT_local_floor(_) \
934 OXR_EXTENSION_SUPPORT_EXT_palm_pose(_) \
935 OXR_EXTENSION_SUPPORT_EXT_performance_settings(_) \
936 OXR_EXTENSION_SUPPORT_EXT_plane_detection(_) \
937 OXR_EXTENSION_SUPPORT_EXT_samsung_odyssey_controller(_) \
938 OXR_EXTENSION_SUPPORT_EXT_user_presence(_) \
939 OXR_EXTENSION_SUPPORT_BD_controller_interaction(_) \
940 OXR_EXTENSION_SUPPORT_FB_body_tracking(_) \
941 OXR_EXTENSION_SUPPORT_FB_composition_layer_alpha_blend(_) \
942 OXR_EXTENSION_SUPPORT_FB_composition_layer_depth_test(_) \
943 OXR_EXTENSION_SUPPORT_FB_composition_layer_image_layout(_) \
944 OXR_EXTENSION_SUPPORT_FB_composition_layer_settings(_) \
945 OXR_EXTENSION_SUPPORT_FB_display_refresh_rate(_) \
946 OXR_EXTENSION_SUPPORT_FB_face_tracking2(_) \
947 OXR_EXTENSION_SUPPORT_FB_haptic_pcm(_) \
948 OXR_EXTENSION_SUPPORT_FB_passthrough(_) \
949 OXR_EXTENSION_SUPPORT_FB_touch_controller_pro(_) \
950 OXR_EXTENSION_SUPPORT_FB_touch_controller_proximity(_) \
951 OXR_EXTENSION_SUPPORT_HTC_facial_tracking(_) \
952 OXR_EXTENSION_SUPPORT_HTC_vive_cosmos_controller_interaction(_) \
953 OXR_EXTENSION_SUPPORT_HTC_vive_focus3_controller_interaction(_) \
954 OXR_EXTENSION_SUPPORT_META_body_tracking_calibration(_) \
955 OXR_EXTENSION_SUPPORT_META_body_tracking_full_body(_) \
956 OXR_EXTENSION_SUPPORT_META_touch_controller_plus(_) \
957 OXR_EXTENSION_SUPPORT_ML_ml2_controller_interaction(_) \
958 OXR_EXTENSION_SUPPORT_MND_headless(_) \
959 OXR_EXTENSION_SUPPORT_MND_swapchain_usage_input_attachment_bit(_) \
960 OXR_EXTENSION_SUPPORT_MSFT_hand_interaction(_) \
961 OXR_EXTENSION_SUPPORT_MSFT_unbounded_reference_space(_) \
962 OXR_EXTENSION_SUPPORT_OPPO_controller_interaction(_) \
963 OXR_EXTENSION_SUPPORT_EXTX_overlay(_) \
964 OXR_EXTENSION_SUPPORT_HTCX_vive_tracker_interaction(_) \
965 OXR_EXTENSION_SUPPORT_MNDX_ball_on_a_stick_controller(_) \
966 OXR_EXTENSION_SUPPORT_MNDX_blubur_s1(_) \
967 OXR_EXTENSION_SUPPORT_MNDX_oculus_remote(_) \
968 OXR_EXTENSION_SUPPORT_MNDX_egl_enable(_) \
969 OXR_EXTENSION_SUPPORT_MNDX_force_feedback_curl(_) \
970 OXR_EXTENSION_SUPPORT_MNDX_hydra(_) \
971 OXR_EXTENSION_SUPPORT_MNDX_psvr2_interaction(_) \
972 OXR_EXTENSION_SUPPORT_MNDX_system_buttons(_) \
973 OXR_EXTENSION_SUPPORT_MNDX_xdev_space(_)
974// clang-format on
Include all of the openxr headers in one place.