24#include "xrt/xrt_config_have.h"
33#include "oxr_extension_support.h"
47#if defined(XRT_HAVE_D3D11) || defined(XRT_HAVE_D3D12)
52#ifdef XRT_FEATURE_RENDERDOC
53#include "renderdoc_app.h"
85#define XRT_CAST_PTR_TO_OXR_HANDLE(HANDLE_TYPE, PTR) ((HANDLE_TYPE)(uint64_t)(uintptr_t)(PTR))
96#define XRT_CAST_OXR_HANDLE_TO_PTR(PTR_TYPE, HANDLE) ((PTR_TYPE)(uintptr_t)(uint64_t)(HANDLE))
109#define XRT_MAX_HANDLE_CHILDREN 256
110#define OXR_MAX_BINDINGS_PER_ACTION 32
130#define OXR_XRT_POSE_TO_XRPOSEF(FROM, TO) \
133 struct xrt_pose xrt; \
135 } safe_copy = {FROM}; \
136 TO = safe_copy.oxr; \
142#define OXR_XRT_FOV_TO_XRFOVF(FROM, TO) \
145 struct xrt_fov xrt; \
147 } safe_copy = {FROM}; \
148 TO = safe_copy.oxr; \
152static inline const char *
153xr_action_type_to_str(XrActionType type)
157 #define PRINT(name, value) \
158 case name: return #name;
159 XR_LIST_ENUM_XrActionType(PRINT)
161 default:
return "XR_ACTION_TYPE_UNKNOWN";
202static inline XrInstance
220 const XrInstanceCreateInfo *createInfo,
221 XrVersion major_minor,
237oxr_instance_get_properties(
struct oxr_logger *log,
239 XrInstanceProperties *instanceProperties);
247oxr_instance_convert_time_to_timespec(
struct oxr_logger *log,
250 struct timespec *timespecTime);
256oxr_instance_convert_timespec_to_time(
struct oxr_logger *log,
258 const struct timespec *timespecTime,
262#ifdef XR_USE_PLATFORM_WIN32
268oxr_instance_convert_time_to_win32perfcounter(
struct oxr_logger *log,
271 LARGE_INTEGER *win32perfcounterTime);
277oxr_instance_convert_win32perfcounter_to_time(
struct oxr_logger *log,
279 const LARGE_INTEGER *win32perfcounterTime,
293static inline XrActionSet
304static inline XrHandTrackerEXT
310#ifdef OXR_HAVE_EXT_plane_detection
316static inline XrPlaneDetectorEXT
317oxr_plane_detector_to_openxr(
struct oxr_plane_detector_ext *plane_detector)
328static inline XrAction
334#ifdef OXR_HAVE_HTC_facial_tracking
340static inline XrFacialTrackerHTC
341oxr_facial_tracker_htc_to_openxr(
struct oxr_facial_tracker_htc *face_tracker_htc)
347#ifdef OXR_HAVE_FB_body_tracking
353static inline XrBodyTrackerFB
354oxr_body_tracker_fb_to_openxr(
struct oxr_body_tracker_fb *body_tracker_fb)
360#ifdef OXR_HAVE_BD_body_tracking
366static inline XrBodyTrackerBD
367oxr_body_tracker_bd_to_openxr(
struct oxr_body_tracker_bd *body_tracker_bd)
373#ifdef OXR_HAVE_FB_face_tracking2
379static inline XrFaceTracker2FB
380oxr_face_tracker2_fb_to_openxr(
struct oxr_face_tracker2_fb *face_tracker2_fb)
386#ifdef OXR_HAVE_ANDROID_face_tracking
392static inline XrFaceTrackerANDROID
393oxr_face_tracker_android_to_openxr(
struct oxr_face_tracker_android *face_tracker_android)
411static inline XrSession
420 const XrSessionCreateInfo *createInfo,
424oxr_session_enumerate_formats(
struct oxr_logger *log,
426 uint32_t formatCapacityInput,
427 uint32_t *formatCountOutput,
437oxr_session_begin(
struct oxr_logger *log,
struct oxr_session *sess,
const XrSessionBeginInfo *beginInfo);
445XRT_CHECK_RESULT XrResult
449oxr_session_locate_views(
struct oxr_logger *log,
451 const XrViewLocateInfo *viewLocateInfo,
452 XrViewState *viewState,
453 uint32_t viewCapacityInput,
454 uint32_t *viewCountOutput,
477#ifdef OXR_HAVE_KHR_android_thread_settings
479oxr_session_android_thread_settings(
struct oxr_logger *log,
481 XrAndroidThreadTypeKHR threadType,
485#ifdef OXR_HAVE_KHR_visibility_mask
487oxr_session_get_visibility_mask(
struct oxr_logger *log,
489 XrVisibilityMaskTypeKHR visibilityMaskType,
491 XrVisibilityMaskKHR *visibilityMask);
494oxr_event_push_XrEventDataVisibilityMaskChangedKHR(
struct oxr_logger *log,
496 XrViewConfigurationType viewConfigurationType,
500#ifdef OXR_HAVE_EXT_performance_settings
502oxr_session_set_perf_level(
struct oxr_logger *log,
504 XrPerfSettingsDomainEXT domain,
505 XrPerfSettingsLevelEXT level);
524oxr_space_action_create(
struct oxr_logger *log,
527 const XrActionSpaceCreateInfo *createInfo,
531oxr_space_get_reference_bounds_rect(
struct oxr_logger *log,
533 XrReferenceSpaceType referenceSpaceType,
534 XrExtent2Df *bounds);
537oxr_space_reference_create(
struct oxr_logger *log,
539 const XrReferenceSpaceCreateInfo *createInfo,
564 XrSpaceLocations *locations);
578XRT_CHECK_RESULT XrResult
595XRT_CHECK_RESULT XrResult
608static inline XrSwapchain
624static inline XrDebugUtilsMessengerEXT
633 const XrDebugUtilsMessengerCreateInfoEXT *,
648 uint32_t system_count,
649 XrFormFactor form_factor,
669oxr_system_get_properties(
struct oxr_logger *log,
struct oxr_system *sys, XrSystemProperties *properties);
672oxr_system_enumerate_view_confs(
struct oxr_logger *log,
674 uint32_t viewConfigurationTypeCapacityInput,
675 uint32_t *viewConfigurationTypeCountOutput,
676 XrViewConfigurationType *viewConfigurationTypes);
679oxr_system_enumerate_blend_modes(
struct oxr_logger *log,
681 XrViewConfigurationType viewConfigurationType,
682 uint32_t environmentBlendModeCapacityInput,
683 uint32_t *environmentBlendModeCountOutput,
684 XrEnvironmentBlendMode *environmentBlendModes);
687oxr_system_get_view_conf_properties(
struct oxr_logger *log,
689 XrViewConfigurationType viewConfigurationType,
690 XrViewConfigurationProperties *configurationProperties);
693oxr_system_enumerate_view_conf_views(
struct oxr_logger *log,
695 XrViewConfigurationType viewConfigurationType,
696 uint32_t viewCapacityInput,
697 uint32_t *viewCountOutput,
698 XrViewConfigurationView *views);
710oxr_system_get_face_tracking_android_support(
struct oxr_logger *log,
struct oxr_instance *inst,
bool *supported);
713oxr_system_get_face_tracking_htc_support(
struct oxr_logger *log,
719oxr_system_get_face_tracking2_fb_support(
struct oxr_logger *log,
721 bool *supports_audio,
722 bool *supports_visual);
740oxr_event_push_XrEventDataSessionStateChanged(
struct oxr_logger *log,
742 XrSessionState
state,
746oxr_event_push_XrEventDataInteractionProfileChanged(
struct oxr_logger *log,
struct oxr_session *sess);
749oxr_event_push_XrEventDataReferenceSpaceChangePending(
struct oxr_logger *log,
751 XrReferenceSpaceType referenceSpaceType,
754 const XrPosef *poseInPreviousSpace);
756#ifdef OXR_HAVE_FB_display_refresh_rate
758oxr_event_push_XrEventDataDisplayRefreshRateChangedFB(
struct oxr_logger *log,
760 float fromDisplayRefreshRate,
761 float toDisplayRefreshRate);
764#ifdef OXR_HAVE_EXTX_overlay
766oxr_event_push_XrEventDataMainSessionVisibilityChangedEXTX(
struct oxr_logger *log,
771#ifdef OXR_HAVE_EXT_performance_settings
773oxr_event_push_XrEventDataPerfSettingsEXTX(
struct oxr_logger *log,
776 enum xrt_perf_sub_domain subDomain,
800oxr_xdev_destroy(
struct xrt_device **xdev_ptr);
814#ifdef OXR_HAVE_MNDX_xdev_space
815static inline XrXDevListMNDX
816oxr_xdev_list_to_openxr(
struct oxr_xdev_list *sc)
824 const XrCreateXDevListInfoMNDX *createInfo,
825 struct oxr_xdev_list **out_xdl);
828oxr_xdev_list_get_properties(
struct oxr_logger *log,
829 struct oxr_xdev_list *xdl,
831 XrXDevPropertiesMNDX *properties);
834oxr_xdev_list_space_create(
struct oxr_logger *log,
835 struct oxr_xdev_list *xdl,
836 const XrCreateXDevSpaceInfoMNDX *createInfo,
849#ifdef XR_USE_GRAPHICS_API_OPENGL
850#ifdef XR_USE_PLATFORM_XLIB
853oxr_session_populate_gl_xlib(
struct oxr_logger *log,
855 XrGraphicsBindingOpenGLXlibKHR
const *next,
859#ifdef XR_USE_PLATFORM_WIN32
861oxr_session_populate_gl_win32(
struct oxr_logger *log,
863 XrGraphicsBindingOpenGLWin32KHR
const *next,
868#if defined(XR_USE_GRAPHICS_API_OPENGL) || defined(XR_USE_GRAPHICS_API_OPENGL_ES)
872 const XrSwapchainCreateInfo * ,
877#if defined(XR_USE_GRAPHICS_API_OPENGL_ES)
878#if defined(XR_USE_PLATFORM_ANDROID)
880oxr_session_populate_gles_android(
struct oxr_logger *log,
882 XrGraphicsBindingOpenGLESAndroidKHR
const *next,
894#ifdef XR_USE_GRAPHICS_API_VULKAN
897oxr_vk_get_instance_exts(
struct oxr_logger *log,
899 uint32_t namesCapacityInput,
900 uint32_t *namesCountOutput,
906 uint32_t namesCapacityInput,
907 uint32_t *namesCountOutput,
911oxr_vk_get_requirements(
struct oxr_logger *log,
913 XrGraphicsRequirementsVulkanKHR *graphicsRequirements);
918 const XrVulkanInstanceCreateInfoKHR *createInfo,
919 VkInstance *vulkanInstance,
920 VkResult *vulkanResult);
925 const XrVulkanDeviceCreateInfoKHR *createInfo,
926 VkDevice *vulkanDevice,
927 VkResult *vulkanResult);
930oxr_vk_get_physical_device(
struct oxr_logger *log,
933 VkInstance vkInstance,
934 PFN_vkGetInstanceProcAddr getProc,
935 VkPhysicalDevice *vkPhysicalDevice);
938oxr_session_populate_vk(
struct oxr_logger *log,
940 XrGraphicsBindingVulkanKHR
const *next,
946 const XrSwapchainCreateInfo * ,
958#ifdef XR_USE_PLATFORM_EGL
961oxr_session_populate_egl(
struct oxr_logger *log,
963 XrGraphicsBindingEGLMNDX
const *next,
974#if defined(XRT_HAVE_D3D11) || defined(XRT_HAVE_D3D12) || defined(XRT_DOXYGEN)
980 D3D_FEATURE_LEVEL *min_feature_level);
993#ifdef XR_USE_GRAPHICS_API_D3D11
996oxr_d3d11_get_requirements(
struct oxr_logger *log,
998 XrGraphicsRequirementsD3D11KHR *graphicsRequirements);
1010oxr_session_populate_d3d11(
struct oxr_logger *log,
1012 XrGraphicsBindingD3D11KHR
const *next,
1016oxr_swapchain_d3d11_create(
struct oxr_logger *,
1018 const XrSwapchainCreateInfo *,
1029#ifdef XR_USE_GRAPHICS_API_D3D12
1032oxr_d3d12_get_requirements(
struct oxr_logger *log,
1034 XrGraphicsRequirementsD3D12KHR *graphicsRequirements);
1046oxr_session_populate_d3d12(
struct oxr_logger *log,
1048 XrGraphicsBindingD3D12KHR
const *next,
1052oxr_swapchain_d3d12_create(
struct oxr_logger *,
1054 const XrSwapchainCreateInfo *,
1105 XrViewConfigurationType view_config_type;
1107 uint32_t view_count;
1108 XrViewConfigurationView views[XRT_MAX_COMPOSITOR_VIEW_CONFIGS_VIEW_COUNT];
1110 uint32_t blend_mode_count;
1111 XrEnvironmentBlendMode blend_modes[3];
1141 XrSystemId systemId;
1146 uint32_t view_config_count;
1149 XrReferenceSpaceType reference_spaces[5];
1150 uint32_t reference_space_count;
1154#ifdef OXR_HAVE_MNDX_xdev_space
1155 bool supports_xdev_space;
1158#ifdef XR_USE_GRAPHICS_API_VULKAN
1174 bool external_fence_fd_enabled;
1175 bool external_semaphore_fd_enabled;
1176 bool timeline_semaphore_enabled;
1177 bool debug_utils_enabled;
1178 bool image_format_list_enabled;
1183#if defined(XR_USE_GRAPHICS_API_D3D11) || defined(XR_USE_GRAPHICS_API_D3D12)
1184 LUID suggested_d3d_luid;
1185 bool suggested_d3d_luid_valid;
1193#define MAKE_EXT_STATUS(mixed_case, all_caps) bool mixed_case;
1201 OXR_EXTENSION_SUPPORT_GENERATE(MAKE_EXT_STATUS)
1203#undef MAKE_EXT_STATUS
1218 struct u_debug_gui *debug_ui;
1322 bool lifecycle_verbose;
1325 bool debug_bindings;
1327#ifdef XRT_FEATURE_RENDERDOC
1328 RENDERDOC_API_1_4_1 *rdoc_api;
1331#ifdef XRT_OS_ANDROID
1372 XrSessionState state;
1387 bool compositor_visible;
1388 bool compositor_focused;
1392 int active_wait_frames;
1393 struct os_mutex active_wait_frames_lock;
1462#define OXR_PATH_MEMBER(X) XrPath X;
1465#undef OXR_PATH_MEMBER
1488 const XrSwapchainCreateInfo *,
1503static inline XrResult
1506 switch (session->state) {
1507 case XR_SESSION_STATE_LOSS_PENDING:
return XR_SESSION_LOSS_PENDING;
1508 default:
return XR_SUCCESS;
1518static inline XrResult
1521 switch (session->state) {
1522 case XR_SESSION_STATE_LOSS_PENDING:
return XR_SESSION_LOSS_PENDING;
1523 case XR_SESSION_STATE_FOCUSED:
return XR_SUCCESS;
1524 default:
return XR_SESSION_NOT_FOCUSED;
1528#ifdef OXR_HAVE_FB_display_refresh_rate
1544 uint32_t path_count;
1563 size_t binding_count;
1577 uint32_t path_count;
1584 uint32_t act_key_count;
1632#define OXR_SUBPATH_MEMBER(X) bool X;
1634#undef OXR_SUBPATH_MEMBER
1646#define OXR_CHECK_SUBACTION_PATHS(X) \
1647 if (a->X && !b->X) { \
1651#undef OXR_CHECK_SUBACTION_PATHS
1733 size_t transform_count;
1772 int64_t stop_output_time;
1773 size_t output_count;
1816#define OXR_CACHE_MEMBER(X) struct oxr_action_cache X;
1818#undef OXR_CACHE_MEMBER
1829 switch (space_type) {
1830 case OXR_SPACE_TYPE_REFERENCE_VIEW:
1831 case OXR_SPACE_TYPE_REFERENCE_LOCAL:
1832 case OXR_SPACE_TYPE_REFERENCE_LOCAL_FLOOR:
1833 case OXR_SPACE_TYPE_REFERENCE_STAGE:
1834 case OXR_SPACE_TYPE_REFERENCE_UNBOUNDED_MSFT:
1835 case OXR_SPACE_TYPE_REFERENCE_COMBINED_EYE_VARJO:
1836 case OXR_SPACE_TYPE_REFERENCE_LOCALIZATION_MAP_ML:
1840 case OXR_SPACE_TYPE_ACTION:
1841 case OXR_SPACE_TYPE_XDEV_POSE:
1886 bool feature_eye_tracking;
1952 XrResult (*enumerate_images)(
struct oxr_logger *,
1955 XrSwapchainImageBaseHeader *);
1957 XrResult (*acquire_image)(
struct oxr_logger *,
1959 const XrSwapchainImageAcquireInfo *,
1980 xrt_reference_inc(&orc->base);
1989 if (xrt_reference_dec_and_is_zero(&orc->base)) {
2010 char name[XR_MAX_ACTION_SET_NAME_SIZE];
2092 char name[XR_MAX_ACTION_NAME_SIZE];
2171#ifdef OXR_HAVE_FB_passthrough
2173struct oxr_passthrough
2179 XrPassthroughFlagsFB
flags;
2184struct oxr_passthrough_layer
2190 XrPassthroughFB passthrough;
2192 XrPassthroughFlagsFB
flags;
2194 XrPassthroughLayerPurposeFB purpose;
2198 XrPassthroughStyleFB style;
2199 XrPassthroughColorMapMonoToRgbaFB monoToRgba;
2200 XrPassthroughColorMapMonoToMonoFB monoToMono;
2201 XrPassthroughBrightnessContrastSaturationFB brightnessContrastSaturation;
2205oxr_passthrough_create(
struct oxr_logger *log,
2207 const XrPassthroughCreateInfoFB *createInfo,
2208 struct oxr_passthrough **out_passthrough);
2211oxr_passthrough_layer_create(
struct oxr_logger *log,
2213 const XrPassthroughLayerCreateInfoFB *createInfo,
2214 struct oxr_passthrough_layer **out_layer);
2216static inline XrPassthroughFB
2217oxr_passthrough_to_openxr(
struct oxr_passthrough *passthrough)
2222static inline XrPassthroughLayerFB
2223oxr_passthrough_layer_to_openxr(
struct oxr_passthrough_layer *passthroughLayer)
2229oxr_event_push_XrEventDataPassthroughStateChangedFB(
struct oxr_logger *log,
2231 XrPassthroughStateChangedFlagsFB
flags);
2235#ifdef OXR_HAVE_HTC_facial_tracking
2245struct oxr_facial_tracker_htc
2257 enum xrt_facial_tracking_type_htc facial_tracking_type;
2260 bool feature_incremented;
2264oxr_facial_tracker_htc_create(
struct oxr_logger *log,
2266 const XrFacialTrackerCreateInfoHTC *createInfo,
2267 struct oxr_facial_tracker_htc **out_face_tracker_htc);
2270oxr_get_facial_expressions_htc(
struct oxr_logger *log,
2271 struct oxr_facial_tracker_htc *facial_tracker_htc,
2272 XrFacialExpressionsHTC *facialExpressions);
2275#ifdef OXR_HAVE_FB_body_tracking
2284struct oxr_body_tracker_fb
2296 enum xrt_body_joint_set_type_fb joint_set_type;
2300oxr_create_body_tracker_fb(
struct oxr_logger *log,
2302 const XrBodyTrackerCreateInfoFB *createInfo,
2303 struct oxr_body_tracker_fb **out_body_tracker_fb);
2306oxr_get_body_skeleton_fb(
struct oxr_logger *log,
2307 struct oxr_body_tracker_fb *body_tracker_fb,
2308 XrBodySkeletonFB *skeleton);
2311oxr_locate_body_joints_fb(
struct oxr_logger *log,
2312 struct oxr_body_tracker_fb *body_tracker_fb,
2314 const XrBodyJointsLocateInfoFB *locateInfo,
2315 XrBodyJointLocationsFB *locations);
2318#ifdef OXR_HAVE_BD_body_tracking
2327struct oxr_body_tracker_bd
2339 enum xrt_body_joint_set_type_bd joint_set_type;
2343oxr_create_body_tracker_bd(
struct oxr_logger *log,
2345 const XrBodyTrackerCreateInfoBD *createInfo,
2346 struct oxr_body_tracker_bd **out_body_tracker_bd);
2349oxr_locate_body_joints_bd(
struct oxr_logger *log,
2350 struct oxr_body_tracker_bd *body_tracker_bd,
2352 const XrBodyJointsLocateInfoBD *locateInfo,
2353 XrBodyJointLocationsBD *locations);
2359#ifdef OXR_HAVE_FB_face_tracking2
2368struct oxr_face_tracker2_fb
2380 bool visual_enabled;
2383 bool feature_incremented;
2387oxr_face_tracker2_fb_create(
struct oxr_logger *log,
2389 const XrFaceTrackerCreateInfo2FB *createInfo,
2390 struct oxr_face_tracker2_fb **out_face_tracker2_fb);
2393oxr_get_face_expression_weights2_fb(
struct oxr_logger *log,
2394 struct oxr_face_tracker2_fb *face_tracker2_fb,
2395 const XrFaceExpressionInfo2FB *expression_info,
2396 XrFaceExpressionWeights2FB *expression_weights);
2399#ifdef OXR_HAVE_MNDX_xdev_space
2417 uint64_t generation_number;
2424 uint32_t device_count;
2428#ifdef OXR_HAVE_EXT_plane_detection
2438struct oxr_plane_detector_ext
2450 XrPlaneDetectionStateEXT state;
2463 XrPlaneDetectorLocationEXT *xr_locations;
2466 uint64_t detection_id;
2470#ifdef OXR_HAVE_EXT_future
2479struct oxr_future_ext
2499static inline XrFutureEXT
2500oxr_future_ext_to_openxr(
struct oxr_future_ext *future_ext)
2510 struct oxr_future_ext **out_oxr_future_ext);
2513oxr_future_invalidate(
struct oxr_logger *log,
struct oxr_future_ext *oxr_future);
2516oxr_future_ext_poll(
struct oxr_logger *log,
const struct oxr_future_ext *oxr_future, XrFuturePollResultEXT *pollResult);
2519oxr_future_ext_cancel(
struct oxr_logger *log,
struct oxr_future_ext *oxr_future);
2522oxr_future_ext_complete(
struct oxr_logger *log,
2523 struct oxr_future_ext *oxr_future,
2528#ifdef OXR_HAVE_EXT_user_presence
2530oxr_event_push_XrEventDataUserPresenceChangedEXT(
struct oxr_logger *log,
struct oxr_session *sess,
bool isUserPresent);
2533#ifdef OXR_HAVE_ANDROID_face_tracking
2543struct oxr_face_tracker_android
2555 bool feature_incremented;
2559oxr_face_tracker_android_create(
struct oxr_logger *log,
2561 const XrFaceTrackerCreateInfoANDROID *createInfo,
2562 XrFaceTrackerANDROID *faceTracker);
2566 struct oxr_face_tracker_android *facial_tracker_android,
2567 const XrFaceStateGetInfoANDROID *getInfo,
2568 XrFaceStateANDROID *faceStateOutput);
2571oxr_get_face_calibration_state_android(
struct oxr_logger *log,
2572 struct oxr_face_tracker_android *facial_tracker_android,
2573 XrBool32 *faceIsCalibratedOutput);
static void oxr_refcounted_unref(struct oxr_refcounted *orc)
Decrease the reference count of orc, destroying it if it reaches 0.
Definition oxr_objects.h:1987
XrResult oxr_poll_event(struct oxr_logger *log, struct oxr_instance *inst, XrEventDataBuffer *eventData)
Will return one event if available, also drain the sessions event queues.
Definition oxr_event.c:400
XrResult oxr_spaces_locate(struct oxr_logger *log, struct oxr_space **spcs, uint32_t spc_count, struct oxr_space *baseSpc, XrTime time, XrSpaceLocations *locations)
Definition oxr_space.c:304
static XrSwapchain oxr_swapchain_to_openxr(struct oxr_swapchain *sc)
To go back to a OpenXR object.
Definition oxr_objects.h:609
oxr_image_state
Tracks the state of a image that belongs to a oxr_swapchain.
Definition oxr_defines.h:101
XrResult oxr_d3d_check_luid(struct oxr_logger *log, struct oxr_system *sys, LUID *adapter_luid)
Verify the provided LUID matches the expected one in sys.
Definition oxr_d3d.cpp:80
XrResult oxr_handle_destroy(struct oxr_logger *log, struct oxr_handle_base *hb)
Destroy the handle's object, as well as all child handles recursively.
Definition oxr_handle_base.c:197
XrResult oxr_event_remove_session_events(struct oxr_logger *log, struct oxr_session *sess)
This clears all pending events refers to the given session.
Definition oxr_event.c:368
static XrResult oxr_session_success_result(struct oxr_session *session)
Returns XR_SUCCESS or XR_SESSION_LOSS_PENDING as appropriate.
Definition oxr_objects.h:1504
static XrResult oxr_session_success_focused_result(struct oxr_session *session)
Returns XR_SUCCESS, XR_SESSION_LOSS_PENDING, or XR_SESSION_NOT_FOCUSED, as appropriate.
Definition oxr_objects.h:1519
XrResult oxr_space_xdev_pose_create(struct oxr_logger *log, struct oxr_session *sess, struct xrt_device *xdev, enum xrt_input_name name, const struct xrt_pose *pose, struct oxr_space **out_space)
Monado special space that always points to a specific xrt_device and pose, useful when you want to by...
Definition oxr_space.c:251
XRT_CHECK_RESULT XrResult oxr_space_locate_device(struct oxr_logger *log, struct xrt_device *xdev, struct oxr_space *baseSpc, XrTime time, struct xrt_space_relation *out_relation)
Locate the xrt_device in the given base space, useful for implementing hand tracking location look up...
Definition oxr_space.c:594
static XrDebugUtilsMessengerEXT oxr_messenger_to_openxr(struct oxr_debug_messenger *mssngr)
To go back to a OpenXR object.
Definition oxr_objects.h:625
XrResult oxr_space_locate(struct oxr_logger *log, struct oxr_space *spc, struct oxr_space *baseSpc, XrTime time, XrSpaceLocation *location)
Definition oxr_space.c:461
XrResult oxr_session_frame_end(struct oxr_logger *log, struct oxr_session *sess, const XrFrameEndInfo *frameEndInfo)
Definition oxr_session_frame_end.c:1643
static XrInstance oxr_instance_to_openxr(struct oxr_instance *inst)
To go back to a OpenXR object.
Definition oxr_objects.h:203
static XrHandTrackerEXT oxr_hand_tracker_to_openxr(struct oxr_hand_tracker *hand_tracker)
To go back to a OpenXR object.
Definition oxr_objects.h:305
static XrActionSet oxr_action_set_to_openxr(struct oxr_action_set *act_set)
To go back to a OpenXR object.
Definition oxr_objects.h:294
static bool oxr_subaction_paths_is_subset_of(const struct oxr_subaction_paths *a, const struct oxr_subaction_paths *b)
Helper function to determine if the set of paths in a is a subset of the paths in b.
Definition oxr_objects.h:1644
static XrSession oxr_session_to_openxr(struct oxr_session *sess)
To go back to a OpenXR object.
Definition oxr_objects.h:412
oxr_session_graphics_ext
What graphics API was this session created with.
Definition oxr_defines.h:132
static XrAction oxr_action_to_openxr(struct oxr_action *act)
To go back to a OpenXR object.
Definition oxr_objects.h:329
XrResult oxr_d3d_get_requirements(struct oxr_logger *log, struct oxr_system *sys, LUID *adapter_luid, D3D_FEATURE_LEVEL *min_feature_level)
Common GetRequirements call for D3D11 and D3D12.
Definition oxr_d3d.cpp:42
bool oxr_xdev_find_input(struct xrt_device *xdev, enum xrt_input_name name, struct xrt_input **out_input)
Return true if it finds an input of that name on this device.
Definition oxr_xdev.c:91
oxr_space_type
Internal enum for the type of space, lets us reason about action spaces.
Definition oxr_defines.h:113
XrResult oxr_vk_create_vulkan_instance(struct oxr_logger *log, struct oxr_system *sys, const XrVulkanInstanceCreateInfoKHR *createInfo, VkInstance *vulkanInstance, VkResult *vulkanResult)
Definition oxr_vulkan.c:229
static void oxr_refcounted_ref(struct oxr_refcounted *orc)
Increase the reference count of orc.
Definition oxr_objects.h:1978
XrResult oxr_session_request_exit(struct oxr_logger *log, struct oxr_session *sess)
Definition oxr_session.c:464
XrResult(* oxr_handle_destroyer)(struct oxr_logger *log, struct oxr_handle_base *hb)
Function pointer type for a handle destruction function.
Definition oxr_objects.h:117
void oxr_session_change_state(struct oxr_logger *log, struct oxr_session *sess, XrSessionState state, XrTime time)
Change the state of the session, queues a event.
Definition oxr_session.c:245
XrResult oxr_system_fill_in(struct oxr_logger *log, struct oxr_instance *inst, XrSystemId systemId, uint32_t view_count, struct oxr_system *sys)
Definition oxr_system.c:248
XrResult oxr_create_messenger(struct oxr_logger *, struct oxr_instance *inst, const XrDebugUtilsMessengerCreateInfoEXT *, struct oxr_debug_messenger **out_mssngr)
Definition oxr_messenger.c:41
XRT_CHECK_RESULT XrResult oxr_space_get_xrt_space(struct oxr_logger *log, struct oxr_space *spc, struct xrt_space **out_xspace)
Get the xrt_space associated with this oxr_space, the xrt_space will be reference counted by this fun...
Definition oxr_space.c:626
XrResult oxr_session_frame_wait(struct oxr_logger *log, struct oxr_session *sess, XrFrameState *frameState)
Definition oxr_session.c:939
oxr_handle_state
State of a handle base, to reduce likelihood of going "boom" on out-of-order destruction or other uns...
Definition oxr_defines.h:55
static XrSpace oxr_space_to_openxr(struct oxr_space *spc)
To go back to a OpenXR object.
Definition oxr_objects.h:518
oxr_subaction_path
Sub action paths.
Definition oxr_defines.h:72
XrResult oxr_vk_create_vulkan_device(struct oxr_logger *log, struct oxr_system *sys, const XrVulkanDeviceCreateInfoKHR *createInfo, VkDevice *vulkanDevice, VkResult *vulkanResult)
Definition oxr_vulkan.c:386
const char * oxr_handle_state_to_string(enum oxr_handle_state state)
Returns a human-readable label for a handle state.
Definition oxr_handle_base.c:42
bool oxr_xdev_find_output(struct xrt_device *xdev, enum xrt_output_name name, struct xrt_output **out_output)
Return true if it finds an output of that name on this device.
Definition oxr_xdev.c:110
#define XRT_CAST_PTR_TO_OXR_HANDLE(HANDLE_TYPE, PTR)
Cast a pointer to an OpenXR handle in such a way as to avoid warnings.
Definition oxr_objects.h:85
#define XRT_SYSTEM_MAX_DEVICES
Maximum number of devices simultaneously usable by an implementation of xrt_system_devices.
Definition xrt_limits.h:26
#define XRT_MAX_SWAPCHAIN_IMAGES
Max swapchain images, artificial limit.
Definition xrt_limits.h:53
xrt_input_name
Every internal input source known to monado with a baked in type.
Definition xrt_defines.h:915
xrt_output_name
Name of a output with a baked in type.
Definition xrt_defines.h:1582
xrt_plane_detector_flags_ext
Flags used when running plane detection.
Definition xrt_plane_detector.h:46
Wrapper around OS threading native functions.
Shared internal defines and enums in the state tracker.
Holds dpad state related functions.
XrResult oxr_get_face_state_android(struct oxr_logger *log, struct oxr_face_tracker_android *facial_tracker_android, const XrFaceStateGetInfoANDROID *getInfo, XrFaceStateANDROID *faceStateOutput)
Definition oxr_face_tracking_android.c:76
Forward declarations for OpenXR state tracker structs.
The objects that handle session running status and blocking of xrWaitFrame.
XrResult oxr_instance_create(struct oxr_logger *log, const XrInstanceCreateInfo *createInfo, XrVersion major_minor, const struct oxr_extension_status *extensions, struct oxr_instance **out_instance)
Definition oxr_instance.c:242
Holds per instance action context.
Holds per instance action cache.
Holds interaction profile array related functions.
#define OXR_PATH_MEMBER(X)
Currently bound interaction profile.
Definition oxr_objects.h:1462
Path store structure and functions.
Wrapper functions that take oxr_instance and call into path/cache functions.
Provides a utility macro for dealing with subaction paths.
#define OXR_FOR_EACH_SUBACTION_PATH(_)
Expansion macro (x-macro) that calls the macro you pass with the shorthand name of each subaction pat...
Definition oxr_subaction.h:40
#define OXR_FOR_EACH_VALID_SUBACTION_PATH(_)
Expansion macro (x-macro) that calls the macro you pass with the shorthand name of each valid subacti...
Definition oxr_subaction.h:24
Definition m_space.cpp:87
A wrapper around a native mutex.
Definition os_threading.h:69
Data associated with an Action that has been attached to a Session.
Definition oxr_objects.h:1788
struct oxr_subaction_paths any_pose_subaction_path
For pose actions any subaction paths are special treated, at bind time we pick one subaction path and...
Definition oxr_objects.h:1812
struct oxr_action_ref * act_ref
This action's refcounted data.
Definition oxr_objects.h:1793
struct oxr_action_set_attachment * act_set_attached
The owning action set attachment.
Definition oxr_objects.h:1790
uint32_t act_key
Unique key for the session hashmap.
Definition oxr_objects.h:1804
struct oxr_session * sess
The corresponding session.
Definition oxr_objects.h:1801
The set of inputs/outputs for a single sub-action path for an action.
Definition oxr_objects.h:1766
A output action pair of a xrt_output_name and a xrt_device.
Definition oxr_objects.h:1746
The reference-counted data of an action.
Definition oxr_objects.h:2088
char name[XR_MAX_ACTION_NAME_SIZE]
Application supplied name of this action.
Definition oxr_objects.h:2092
struct oxr_subaction_paths subaction_paths
Which sub action paths that this action was created with.
Definition oxr_objects.h:2101
XrActionType action_type
Type this action was created with.
Definition oxr_objects.h:2098
uint32_t act_key
Unique key for the session hashmap.
Definition oxr_objects.h:2095
The data associated with the attachment of an Action Set (oxr_action_set) to as Session (oxr_session)...
Definition oxr_objects.h:1669
struct oxr_action_attachment * act_attachments
An array of action attachments we own.
Definition oxr_objects.h:1683
struct oxr_session * sess
Owning session.
Definition oxr_objects.h:1671
struct oxr_action_set_ref * act_set_ref
Action set refcounted data.
Definition oxr_objects.h:1674
uint32_t act_set_key
Unique key for the session hashmap.
Definition oxr_objects.h:1677
size_t action_attachment_count
Length of oxr_action_set_attachment::act_attachments.
Definition oxr_objects.h:1688
struct oxr_subaction_paths requested_subaction_paths
Which sub-action paths are requested on the latest sync.
Definition oxr_objects.h:1680
The reference-counted data of an action set.
Definition oxr_objects.h:2006
uint32_t act_set_key
Unique key for the session hashmap.
Definition oxr_objects.h:2019
char name[XR_MAX_ACTION_SET_NAME_SIZE]
Application supplied name of this action.
Definition oxr_objects.h:2010
bool ever_attached
Has this action set even been attached to any session, marking it as immutable.
Definition oxr_objects.h:2016
uint32_t priority
Application supplied action set priority.
Definition oxr_objects.h:2022
A group of actions.
Definition oxr_objects.h:2048
struct u_hashset_item * name_item
The item in the name hashset.
Definition oxr_objects.h:2070
struct u_hashset_item * loc_item
The item in the localized hashset.
Definition oxr_objects.h:2073
struct oxr_action_set_ref * data
The data for this action set that must live as long as any session we are attached to.
Definition oxr_objects.h:2059
uint32_t act_set_key
Unique key for the session hashmap.
Definition oxr_objects.h:2067
struct oxr_handle_base handle
Common structure for things referred to by OpenXR handles.
Definition oxr_objects.h:2050
struct oxr_instance * inst
Owner of this action set.
Definition oxr_objects.h:2053
The state of a action input.
Definition oxr_objects.h:1701
bool active
Is this active (bound and providing input)?
Definition oxr_objects.h:1708
XrTime timestamp
When was this last changed.
Definition oxr_objects.h:1714
A single action.
Definition oxr_objects.h:2118
struct oxr_action_set * act_set
Owner of this action.
Definition oxr_objects.h:2123
struct oxr_handle_base handle
Common structure for things referred to by OpenXR handles.
Definition oxr_objects.h:2120
struct u_hashset_item * loc_item
The item in the localized hashset.
Definition oxr_objects.h:2140
uint32_t act_key
Unique key for the session hashmap.
Definition oxr_objects.h:2134
struct u_hashset_item * name_item
The item in the name hashset.
Definition oxr_objects.h:2137
struct oxr_action_ref * data
The data for this action that must live as long as any session we are attached to.
Definition oxr_objects.h:2127
Interaction profile binding state.
Definition oxr_objects.h:1575
uint32_t * preferred_binding_path_index
store which entry in paths was suggested, for each action key
Definition oxr_objects.h:1587
const char * localized_name
Name presented to the user.
Definition oxr_objects.h:1580
Debug object created by the client program.
Definition oxr_objects.h:2151
struct oxr_handle_base handle
Common structure for things referred to by OpenXR handles.
Definition oxr_objects.h:2153
XrDebugUtilsMessageTypeFlagsEXT message_types
Types to submit to this messenger.
Definition oxr_objects.h:2162
PFN_xrDebugUtilsMessengerCallbackEXT user_callback
Callback function.
Definition oxr_objects.h:2165
struct oxr_instance * inst
Owner of this messenger.
Definition oxr_objects.h:2156
void *XR_MAY_ALIAS user_data
Opaque user data.
Definition oxr_objects.h:2168
XrDebugUtilsMessageSeverityFlagsEXT message_severities
Severities to submit to this messenger.
Definition oxr_objects.h:2159
dpad emulation settings from oxr_interaction_profile
Definition oxr_objects.h:1541
Holds dpad binding state for a single interaction profile.
Definition oxr_dpad_state.h:73
Definition oxr_event.c:30
Structure tracking which extensions are enabled for a given instance.
Definition oxr_objects.h:1200
Helper that handles synchronizing the xr{Wait,Begin,End}Frame calls.
Definition oxr_frame_sync.h:37
A hand tracker.
Definition oxr_hand_tracking.h:58
Used to hold diverse child handles and ensure orderly destruction.
Definition oxr_objects.h:1073
struct oxr_handle_base * parent
Pointer to this object's parent handle holder, if any.
Definition oxr_objects.h:1080
uint64_t debug
Magic (per-handle-type) value for debugging.
Definition oxr_objects.h:1075
struct oxr_handle_base * children[256]
Array of children, if any.
Definition oxr_objects.h:1085
enum oxr_handle_state state
Current handle state.
Definition oxr_objects.h:1090
oxr_handle_destroyer destroy
Destroy the object this handle refers to.
Definition oxr_objects.h:1095
Holds all action-related state that lives at the instance level (shared across sessions).
Definition oxr_instance_action_context.h:41
This holds cached paths for subaction paths.
Definition oxr_instance_path_cache.h:27
Main object that ties everything together.
Definition oxr_objects.h:1214
bool disable_vulkan_format_depth
Some applications can't handle depth formats, or they trigger a bug in a specific version of the appl...
Definition oxr_objects.h:1281
bool parallel_views
For applications that rely on views being parallel, notably some OpenVR games with OpenComposite.
Definition oxr_objects.h:1306
struct oxr_path_store path_store
Path store for managing paths.
Definition oxr_objects.h:1241
struct oxr_instance_action_context action_context
The default action context, holds things like suggested profiles.
Definition oxr_objects.h:1257
bool disable_vulkan_format_depth_stencil
Some applications can't handle depth stencil formats, or they trigger a bug in a specific version of ...
Definition oxr_objects.h:1294
XrVersion major_minor
Stores only major.minor version. Simplifies comparisons for e.g. "at least OpenXR 1....
Definition oxr_objects.h:1229
bool skip_end_session
Unreal 4 has a bug calling xrEndSession; the function should just exit.
Definition oxr_objects.h:1297
bool no_validation_error_in_create_ref_space
Return XR_ERROR_REFERENCE_SPACE_UNSUPPORTED instead of XR_ERROR_VALIDATION_FAILURE in xrCreateReferen...
Definition oxr_objects.h:1303
struct oxr_extension_status extensions
Enabled extensions.
Definition oxr_objects.h:1223
struct oxr_instance_path_cache path_cache
Path cache for actions, needs path_store to work.
Definition oxr_objects.h:1254
struct oxr_debug_messenger * messengers[256]
Debug messengers.
Definition oxr_objects.h:1320
struct oxr_instance::@288 openxr_version
The OpenXR version requested in the app info. It determines the instance's OpenXR version.
bool map_stage_to_local_floor
For applications that use stage and don't offer recentering.
Definition oxr_objects.h:1309
struct oxr_handle_base handle
Common structure for things referred to by OpenXR handles.
Definition oxr_objects.h:1216
bool no_texture_source_alpha
Beat Saber submits its projection layer with XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT set.
Definition oxr_objects.h:1316
Manages an array of interaction profiles, does not have a init function but must be zero initialized ...
Definition oxr_interaction_profile_array.h:29
A single interaction profile.
Definition oxr_objects.h:1553
enum xrt_device_name xname
Used to lookup xrt_binding_profile for fallback.
Definition oxr_objects.h:1557
const char * localized_name
Name presented to the user.
Definition oxr_objects.h:1560
Logger struct that lives on the stack, one for each call client call.
Definition oxr_logger.h:44
Path store structure for managing path storage and lookup.
Definition oxr_path_store.h:31
Definition oxr_objects.h:1968
void(* destroy)(struct oxr_refcounted *)
Destruction callback.
Definition oxr_objects.h:1971
Object that client program interact with.
Definition oxr_objects.h:1354
struct u_hashmap_int * act_attachments_by_key
A map of action key to action attachment.
Definition oxr_objects.h:1443
XrResult(* create_swapchain)(struct oxr_logger *, struct oxr_session *sess, const XrSwapchainCreateInfo *, struct oxr_swapchain **)
To pipe swapchain creation to right code.
Definition oxr_objects.h:1486
struct xrt_compositor_native * xcn
Native compositor that is wrapped by client compositors.
Definition oxr_objects.h:1366
struct xrt_session * xs
The xrt_session backing this session.
Definition oxr_objects.h:1363
XrViewConfigurationType current_view_config_type
This is set in xrBeginSession and is the primaryViewConfiguration argument, this is then used in xrEn...
Definition oxr_objects.h:1379
struct oxr_action_set_attachment * act_set_attachments
An array of action set attachments that this session owns.
Definition oxr_objects.h:1417
uint32_t frame_timing_wait_sleep_ms
Extra sleep in wait frame.
Definition oxr_objects.h:1481
struct os_precise_sleeper sleeper
Used to implement precise extra sleeping in wait frame.
Definition oxr_objects.h:1409
uint64_t dynamic_roles_generation_id
Cache of the last known system roles generation_id.
Definition oxr_objects.h:1452
enum oxr_session_graphics_ext gfx_ext
What graphics type was this session created with.
Definition oxr_objects.h:1360
bool has_ended_once
There is a extra state between xrBeginSession has been called and the first xrEndFrame has been calle...
Definition oxr_objects.h:1385
struct u_hashmap_int * act_sets_attachments_by_key
A map of action set key to action set attachments.
Definition oxr_objects.h:1431
struct oxr_handle_base handle
Common structure for things referred to by OpenXR handles.
Definition oxr_objects.h:1356
bool has_lost
initial relation of head in "global" space.
Definition oxr_objects.h:1495
float ipd_meters
IPD, to be expanded to a proper 3D relation.
Definition oxr_objects.h:1473
struct os_mutex sync_actions_mutex
Protects access to dynamic_roles_generation_id during sync actions.
Definition oxr_objects.h:1455
size_t action_set_attachment_count
Length of oxr_session::act_set_attachments.
Definition oxr_objects.h:1422
struct oxr_interaction_profile_array profiles_on_attachment
Clone of all suggested binding profiles at the point of action set/session attachment.
Definition oxr_objects.h:1449
bool frame_timing_spew
Frame timing debug output.
Definition oxr_objects.h:1478
Can be one of several reference space types, or a space that is bound to an action.
Definition oxr_objects.h:1861
struct oxr_subaction_paths subaction_paths
Which sub action path is this?
Definition oxr_objects.h:1878
enum oxr_space_type space_type
What kind of space is this?
Definition oxr_objects.h:1875
uint32_t act_key
Action key from which action this space was created from.
Definition oxr_objects.h:1872
struct xrt_pose pose
Pose that was given during creation.
Definition oxr_objects.h:1869
struct oxr_session * sess
Owner of this space.
Definition oxr_objects.h:1866
struct oxr_handle_base handle
Common structure for things referred to by OpenXR handles.
Definition oxr_objects.h:1863
A parsed equivalent of a list of sub-action paths.
Definition oxr_objects.h:1630
A set of images used for rendering.
Definition oxr_objects.h:1904
struct oxr_session * sess
Owner of this swapchain.
Definition oxr_objects.h:1909
uint32_t face_count
The number of cubemap faces. 6 for cubemaps, 1 otherwise.
Definition oxr_objects.h:1921
struct xrt_swapchain * swapchain
Compositor swapchain.
Definition oxr_objects.h:1912
struct oxr_handle_base handle
Common structure for things referred to by OpenXR handles.
Definition oxr_objects.h:1906
uint32_t width
Swapchain size.
Definition oxr_objects.h:1915
uint32_t array_layer_count
For 1 is 2D texture, greater then 1 2D array texture.
Definition oxr_objects.h:1918
Single or multiple devices grouped together to form a system that sessions can be created from.
Definition oxr_objects.h:1126
struct xrt_system * xsys
The XRT interfaces level system.
Definition oxr_objects.h:1130
VkPhysicalDevice suggested_vulkan_physical_device
The device returned with the last xrGetVulkanGraphicsDeviceKHR or xrGetVulkanGraphicsDevice2KHR call.
Definition oxr_objects.h:1163
PFN_vkGetInstanceProcAddr vk_get_instance_proc_addr
Stores the vkGetInstanceProcAddr passed to xrCreateVulkanInstanceKHR to be used when looking up Vulka...
Definition oxr_objects.h:1169
struct xrt_system_devices * xsysd
System devices used in all session types.
Definition oxr_objects.h:1133
struct xrt_space_overseer * xso
Space overseer used in all session types.
Definition oxr_objects.h:1136
VkInstance vulkan_enable2_instance
The instance/device we create when vulkan_enable2 is used.
Definition oxr_objects.h:1160
bool gotten_requirements
Have the client application called the gfx api requirements func?
Definition oxr_objects.h:1144
struct xrt_system_compositor * xsysc
System compositor, used to create session compositors.
Definition oxr_objects.h:1139
Holds the properties that a system supports for a view configuration type.
Definition oxr_objects.h:1104
Time-keeping state structure.
Definition u_time.cpp:30
A simple uint64_t key to a void pointer hashmap.
Definition u_hashmap.cpp:24
A embeddable hashset item, note that the string directly follows the u_hashset_item.
Definition u_hashset.h:37
Kind of bespoke hashset implementation, where the user is responsible for allocating and freeing the ...
Definition u_hashset.cpp:26
Definition u_index_fifo.h:21
Definition xrt_defines.h:2258
Main compositor server interface.
Definition xrt_compositor.h:2236
Common compositor client interface/base.
Definition xrt_compositor.h:992
A single HMD or input device.
Definition xrt_device.h:310
The (future) result of an asynchronous operation.
Definition xrt_future.h:39
A future is a concurrency primitive that provides a mechanism to access results of asynchronous opera...
Definition xrt_future.h:75
This interface acts as a root object for Monado.
Definition xrt_instance.h:120
A single named output, that sits on a xrt_device.
Definition xrt_device.h:206
Each plane has n polygons; ultimately plane metadata from xrt_plane_detections_ext::locations and xrt...
Definition xrt_plane_detector.h:172
A pose composed of a position and orientation.
Definition xrt_defines.h:479
A base class for reference counted objects.
Definition xrt_defines.h:99
The XRT representation of XrSession, this object does not have all of the functionality of a session,...
Definition xrt_session.h:277
Object that oversees and manages spaces, one created for each XR system.
Definition xrt_space.h:97
A relation with two spaces, includes velocity and acceleration.
Definition xrt_defines.h:670
A space very similar to a OpenXR XrSpace but not a full one-to-one mapping, but used to power XrSpace...
Definition xrt_space.h:32
Common swapchain interface/base.
Definition xrt_compositor.h:540
The system compositor handles composition for a system.
Definition xrt_compositor.h:2448
A collection of xrt_device, and an interface for identifying the roles they have been assigned.
Definition xrt_system.h:214
A system is a collection of devices, policies and optionally a compositor that is organised into a ch...
Definition xrt_system.h:63
Visibility mask helper, the indices and vertices are tightly packed after this struct.
Definition xrt_visibility_mask.h:26
Misc helpers for device drivers.
Hashmap for integer values header.
Header holding Android-specific details.
xrt_android_lifecycle_event
Distinguishes the possible Android lifecycle events from each other.
Definition xrt_android.h:43
Header declaring XRT graphics interfaces.
Auto detect OS and certain features.
xrt_perf_notify_level
Performance level.
Definition xrt_defines.h:2412
xrt_device_name
A enum that is used to name devices so that the state trackers can reason about the devices easier.
Definition xrt_defines.h:724
xrt_perf_domain
Domain type.
Definition xrt_defines.h:2385
Header defining an xrt display or controller device.
Interface for creating futures.
Header for limits of the XRT interfaces.
Include all of the openxr headers in one place.
Header defining xrt space and space overseer.
Header for system objects.
Header defining the tracking system integration in Monado.
Include all of the Vulkan headers in one place, and cope with any "messy" includes implied by it.