Monado OpenXR Runtime
oxr_defines.h
Go to the documentation of this file.
1 // Copyright 2018-2024, Collabora, Ltd.
2 // SPDX-License-Identifier: BSL-1.0
3 /*!
4  * @file
5  * @brief Shared internal defines and enums in the state tracker.
6  * @author Jakob Bornecrantz <jakob@collabora.com>
7  * @author Korcan Hussein <korcan.hussein@collabora.com>
8  * @ingroup oxr_main
9  */
10 
11 #pragma once
12 
13 #include "xrt/xrt_compiler.h"
14 
15 
16 // For corruption and layer checking.
17 // clang-format off
18 #define OXR_XR_DEBUG_INSTANCE (*(uint64_t *)"oxrinst\0")
19 #define OXR_XR_DEBUG_SESSION (*(uint64_t *)"oxrsess\0")
20 #define OXR_XR_DEBUG_SPACE (*(uint64_t *)"oxrspac\0")
21 #define OXR_XR_DEBUG_PATH (*(uint64_t *)"oxrpath\0")
22 #define OXR_XR_DEBUG_ACTION (*(uint64_t *)"oxracti\0")
23 #define OXR_XR_DEBUG_SWAPCHAIN (*(uint64_t *)"oxrswap\0")
24 #define OXR_XR_DEBUG_ACTIONSET (*(uint64_t *)"oxraset\0")
25 #define OXR_XR_DEBUG_MESSENGER (*(uint64_t *)"oxrmess\0")
26 #define OXR_XR_DEBUG_SOURCESET (*(uint64_t *)"oxrsrcs\0")
27 #define OXR_XR_DEBUG_SOURCE (*(uint64_t *)"oxrsrc_\0")
28 #define OXR_XR_DEBUG_HTRACKER (*(uint64_t *)"oxrhtra\0")
29 #define OXR_XR_DEBUG_PASSTHROUGH (*(uint64_t *)"oxrpass\0")
30 #define OXR_XR_DEBUG_PASSTHROUGH_LAYER (*(uint64_t *)"oxrptla\0")
31 #define OXR_XR_DEBUG_FTRACKER (*(uint64_t *)"oxrftra\0")
32 // clang-format on
33 
34 /*!
35  * State of a handle base, to reduce likelihood of going "boom" on
36  * out-of-order destruction or other unsavory behavior.
37  *
38  * @ingroup oxr_main
39  */
41 {
42  /*! State during/before oxr_handle_init, or after failure */
44 
45  /*! State after successful oxr_handle_init */
47 
48  /*! State after successful oxr_handle_destroy */
50 };
51 
52 /*!
53  * Sub action paths.
54  *
55  * @ingroup oxr_main
56  */
58 {
59  OXR_SUB_ACTION_PATH_USER,
60  OXR_SUB_ACTION_PATH_HEAD,
61  OXR_SUB_ACTION_PATH_LEFT,
62  OXR_SUB_ACTION_PATH_RIGHT,
63  OXR_SUB_ACTION_PATH_GAMEPAD,
64  OXR_SUB_ACTION_PATH_EYES,
65 };
66 
67 /*!
68  * Region of a dpad binding that an input is mapped to
69  *
70  * @ingroup oxr_main
71  */
73 {
74  OXR_DPAD_REGION_CENTER = 0u,
75  OXR_DPAD_REGION_UP = (1u << 0u),
76  OXR_DPAD_REGION_DOWN = (1u << 1u),
77  OXR_DPAD_REGION_LEFT = (1u << 2u),
78  OXR_DPAD_REGION_RIGHT = (1u << 3u),
79 };
80 
81 /*!
82  * Tracks the state of a image that belongs to a @ref oxr_swapchain.
83  *
84  * @ingroup oxr_main
85  */
87 {
88  OXR_IMAGE_STATE_READY,
89  OXR_IMAGE_STATE_ACQUIRED,
90  OXR_IMAGE_STATE_WAITED,
91 };
92 
93 /*!
94  * Internal enum for the type of space, lets us reason about action spaces.
95  *
96  * @ingroup oxr_main
97  */
99 {
100  OXR_SPACE_TYPE_REFERENCE_VIEW,
101  OXR_SPACE_TYPE_REFERENCE_LOCAL,
102  OXR_SPACE_TYPE_REFERENCE_LOCAL_FLOOR,
103  OXR_SPACE_TYPE_REFERENCE_STAGE,
104  OXR_SPACE_TYPE_REFERENCE_UNBOUNDED_MSFT,
105  OXR_SPACE_TYPE_REFERENCE_COMBINED_EYE_VARJO,
106  OXR_SPACE_TYPE_REFERENCE_LOCALIZATION_MAP_ML,
107 
108  OXR_SPACE_TYPE_ACTION,
109 };
110 
111 /*!
112  * What graphics API was this session created with.
113  *
114  * @ingroup oxr_main
115  */
117 {
118  OXR_SESSION_GRAPHICS_EXT_HEADLESS,
119  // Can't reliable tell the difference between Vulkan 1 & 2.
120  OXR_SESSION_GRAPHICS_EXT_VULKAN,
121  OXR_SESSION_GRAPHICS_EXT_D3D11,
122  OXR_SESSION_GRAPHICS_EXT_D3D12,
123  OXR_SESSION_GRAPHICS_EXT_WIN32_GL,
124  OXR_SESSION_GRAPHICS_EXT_XLIB_GL,
125  OXR_SESSION_GRAPHICS_EXT_ANDROID_GLES,
126  OXR_SESSION_GRAPHICS_EXT_EGL,
127 };
oxr_image_state
Tracks the state of a image that belongs to a oxr_swapchain.
Definition: oxr_defines.h:87
oxr_session_graphics_ext
What graphics API was this session created with.
Definition: oxr_defines.h:117
oxr_dpad_region
Region of a dpad binding that an input is mapped to.
Definition: oxr_defines.h:73
oxr_space_type
Internal enum for the type of space, lets us reason about action spaces.
Definition: oxr_defines.h:99
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:41
oxr_subaction_path
Sub action paths.
Definition: oxr_defines.h:58
@ OXR_HANDLE_STATE_DESTROYED
State after successful oxr_handle_destroy.
Definition: oxr_defines.h:49
@ OXR_HANDLE_STATE_LIVE
State after successful oxr_handle_init.
Definition: oxr_defines.h:46
@ OXR_HANDLE_STATE_UNINITIALIZED
State during/before oxr_handle_init, or after failure.
Definition: oxr_defines.h:43
Header holding common defines.