Monado OpenXR Runtime
oxr_extension_support.h File Reference

Macros for generating extension-related tables and code and inspecting Monado's extension support. More...

#include "xrt/xrt_config_build.h"
#include "xrt/xrt_openxr_includes.h"
Include dependency graph for oxr_extension_support.h:

Go to the source code of this file.

Macros

#define OXR_EXTENSION_SUPPORT_KHR_android_create_instance(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_android_thread_settings(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_binding_modification(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_color_scale_bias(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_cube(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_cylinder(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_depth(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_equirect(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_composition_layer_equirect2(_)
 
#define OXR_HAVE_KHR_convert_timespec_time
 
#define OXR_EXTENSION_SUPPORT_KHR_convert_timespec_time(_)   _(KHR_convert_timespec_time, KHR_CONVERT_TIMESPEC_TIME)
 
#define OXR_EXTENSION_SUPPORT_KHR_D3D11_enable(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_D3D12_enable(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_loader_init(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_loader_init_android(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_locate_spaces(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_maintenance1(_)
 
#define OXR_HAVE_KHR_opengl_enable
 
#define OXR_EXTENSION_SUPPORT_KHR_opengl_enable(_)   _(KHR_opengl_enable, KHR_OPENGL_ENABLE)
 
#define OXR_EXTENSION_SUPPORT_KHR_opengl_es_enable(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_swapchain_usage_input_attachment_bit(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_visibility_mask(_)
 
#define OXR_HAVE_KHR_vulkan_enable
 
#define OXR_EXTENSION_SUPPORT_KHR_vulkan_enable(_)   _(KHR_vulkan_enable, KHR_VULKAN_ENABLE)
 
#define OXR_EXTENSION_SUPPORT_KHR_vulkan_enable2(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_vulkan_swapchain_format_list(_)
 
#define OXR_EXTENSION_SUPPORT_KHR_win32_convert_performance_counter_time(_)
 
#define OXR_EXTENSION_SUPPORT_EXT_debug_utils(_)
 
#define OXR_EXTENSION_SUPPORT_EXT_dpad_binding(_)
 
#define OXR_EXTENSION_SUPPORT_EXT_eye_gaze_interaction(_)
 
#define OXR_EXTENSION_SUPPORT_EXT_hand_interaction(_)
 
#define OXR_EXTENSION_SUPPORT_EXT_hand_tracking(_)
 
#define OXR_EXTENSION_SUPPORT_EXT_hp_mixed_reality_controller(_)
 
#define OXR_EXTENSION_SUPPORT_EXT_local_floor(_)
 
#define OXR_EXTENSION_SUPPORT_EXT_palm_pose(_)
 
#define OXR_EXTENSION_SUPPORT_EXT_performance_settings(_)
 
#define OXR_EXTENSION_SUPPORT_EXT_samsung_odyssey_controller(_)
 
#define OXR_EXTENSION_SUPPORT_BD_controller_interaction(_)
 
#define OXR_EXTENSION_SUPPORT_FB_body_tracking(_)
 
#define OXR_EXTENSION_SUPPORT_FB_composition_layer_alpha_blend(_)
 
#define OXR_EXTENSION_SUPPORT_FB_composition_layer_image_layout(_)
 
#define OXR_EXTENSION_SUPPORT_FB_composition_layer_settings(_)
 
#define OXR_EXTENSION_SUPPORT_FB_composition_layer_depth_test(_)
 
#define OXR_EXTENSION_SUPPORT_FB_face_tracking2(_)
 
#define OXR_EXTENSION_SUPPORT_FB_display_refresh_rate(_)
 
#define OXR_EXTENSION_SUPPORT_FB_passthrough(_)
 
#define OXR_EXTENSION_SUPPORT_FB_touch_controller_pro(_)
 
#define OXR_EXTENSION_SUPPORT_FB_touch_controller_proximity(_)
 
#define OXR_EXTENSION_SUPPORT_HTC_facial_tracking(_)
 
#define OXR_EXTENSION_SUPPORT_META_touch_controller_plus(_)
 
#define OXR_EXTENSION_SUPPORT_ML_ml2_controller_interaction(_)
 
#define OXR_EXTENSION_SUPPORT_MND_headless(_)
 
#define OXR_EXTENSION_SUPPORT_MND_swapchain_usage_input_attachment_bit(_)
 
#define OXR_EXTENSION_SUPPORT_MSFT_hand_interaction(_)
 
#define OXR_EXTENSION_SUPPORT_MSFT_unbounded_reference_space(_)
 
#define OXR_EXTENSION_SUPPORT_OPPO_controller_interaction(_)
 
#define OXR_EXTENSION_SUPPORT_EXTX_overlay(_)
 
#define OXR_EXTENSION_SUPPORT_HTCX_vive_tracker_interaction(_)
 
#define OXR_EXTENSION_SUPPORT_HTC_vive_cosmos_controller_interaction(_)
 
#define OXR_EXTENSION_SUPPORT_HTC_vive_focus3_controller_interaction(_)
 
#define OXR_EXTENSION_SUPPORT_MNDX_ball_on_a_stick_controller(_)
 
#define OXR_EXTENSION_SUPPORT_MNDX_egl_enable(_)
 
#define OXR_EXTENSION_SUPPORT_MNDX_force_feedback_curl(_)
 
#define OXR_EXTENSION_SUPPORT_MNDX_hydra(_)
 
#define OXR_EXTENSION_SUPPORT_MNDX_system_buttons(_)
 
#define OXR_EXTENSION_SUPPORT_MNDX_xdev_space(_)
 
#define OXR_EXTENSION_SUPPORT_GENERATE(_)
 Call this, passing a macro taking two parameters, to generate tables, code, etc. More...
 

Detailed Description

Macros for generating extension-related tables and code and inspecting Monado's extension support.

MOSTLY GENERATED CODE - see below!

To add support for a new extension, edit and run generate_oxr_ext_support.py, then run clang-format on this file. Two entire chunks of this file get replaced by that script: comments indicate where they are.

Author
Rylie Pavlik rylie.nosp@m..pav.nosp@m.lik@c.nosp@m.olla.nosp@m.bora..nosp@m.com

Macro Definition Documentation

◆ OXR_EXTENSION_SUPPORT_GENERATE

#define OXR_EXTENSION_SUPPORT_GENERATE (   _)

Call this, passing a macro taking two parameters, to generate tables, code, etc.

related to OpenXR extensions. Upon including invoking OXR_EXTENSION_SUPPORT_GENERATE() with some MY_HANDLE_EXTENSION(mixed_case, all_caps), MY_HANDLE_EXTENSION will be called for each extension implemented in Monado and supported in this build:

  • The first parameter is the name of the extension without the leading XR_ prefix: e.g. KHR_opengl_enable
  • The second parameter is the same text as the first, but in all uppercase, since this transform cannot be done in the C preprocessor, and some extension-related entities use this instead of the exact extension name.

Implementation note: This macro calls another macro for each extension: that macro is either defined to call your provided macro, or defined to nothing, depending on if the extension is supported in this build.

Note
Do not edit anything between clang-format off and clang-format on - it will be replaced next time this file is generated!