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