Monado OpenXR Runtime
|
The main interface shared between the different components of Monado. More...
Files | |
file | t_hand_tracking.h |
Hand tracking interfaces. | |
file | xrt_android.h |
Header holding Android-specific details. | |
file | xrt_compiler.h |
Header holding common defines. | |
file | xrt_compositor.h |
Header declaring XRT graphics interfaces. | |
file | xrt_config.h |
Includes all config headers, use separate headers instead. | |
file | xrt_config_os.h |
Auto detect OS and certain features. | |
file | xrt_defines.h |
Common defines and enums for XRT. | |
file | xrt_deleters.hpp |
Generic unique_ptr deleters for Monado types. | |
file | xrt_device.h |
Header defining an xrt display or controller device. | |
file | xrt_device.hpp |
C++ helpers for xrt_device. | |
file | xrt_documentation.h |
Header with just documentation. | |
file | xrt_frame.h |
Data frame header. | |
file | xrt_frameserver.h |
Frameserver interface for video drivers. | |
file | xrt_gfx_d3d11.h |
Header defining a D3D11 graphics interface. | |
file | xrt_gfx_d3d12.h |
Header defining a D3D12 graphics interface. | |
file | xrt_gfx_egl.h |
Header defining an XRT graphics provider. | |
file | xrt_gfx_gl.h |
Header for misc OpenGL code, not a complete graphics provider. | |
file | xrt_gfx_gles.h |
Header for misc OpenGL ES code, not a complete graphics provider. | |
file | xrt_gfx_vk.h |
Header defining an XRT graphics provider. | |
file | xrt_gfx_win32.h |
Header defining an XRT graphics provider. | |
file | xrt_gfx_xlib.h |
Header defining an XRT graphics provider. | |
file | xrt_handles.h |
Native handle types. | |
file | xrt_instance.h |
Header for xrt_instance object. | |
file | xrt_limits.h |
Header for limits of the XRT interfaces. | |
file | xrt_openxr_includes.h |
Include all of the openxr headers in one place. | |
file | xrt_prober.h |
Common interface to probe for devices. | |
file | xrt_results.h |
Internal result type for XRT. | |
file | xrt_session.h |
Header for session object. | |
file | xrt_settings.h |
Common settings structs to be transferred between different parts of Monado, mainly for tracking and camera usage. | |
file | xrt_space.h |
Header defining xrt space and space overseer. | |
file | xrt_system.h |
Header for system objects. | |
file | xrt_tracking.h |
Header defining the tracking system integration in Monado. | |
file | xrt_visibility_mask.h |
Header defining visibility mask helper struct. | |
file | xrt_vulkan_includes.h |
Include all of the Vulkan headers in one place, and cope with any "messy" includes implied by it. | |
file | xrt_windows.h |
A minimal way to include Windows.h. | |
file | target_builder_legacy.c |
Fallback builder the old method of probing devices. | |
file | target_builder_lighthouse.c |
Builder for Lighthouse-tracked devices (vive, index, tundra trackers, etc.) | |
file | target_builder_north_star.c |
System builder for North Star headsets. | |
file | target_builder_remote.c |
Remote driver builder. | |
file | target_builder_rgb_tracking.c |
Builder to setup rgb tracking devices into a system. | |
file | target_builder_simulated.c |
Simulated driver builder. | |
file | target_builder_simulavr.c |
Builder for SimulaVR devices. | |
file | target_builder_steamvr.c |
Builder for SteamVR proprietary driver wrapper. | |
file | target_builder_wmr.c |
Windows Mixed Reality driver driver builder. | |
Data Structures | |
struct | t_image_boundary_circle |
Circular image boundary. More... | |
struct | t_camera_extra_info_one_view |
Information about image boundary and camera orientation for one view. More... | |
struct | t_camera_extra_info |
Information about image boundaries and camera orientations for all the cameras used in a tracking system. More... | |
struct | xrt_layer_advanced_blend_data |
Advanced blend provides explicit control over source and destination blend factors, with separate controls for color and alpha. More... | |
struct | xrt_sub_image |
Specifies a sub-image in a layer. More... | |
struct | xrt_layer_projection_view_data |
All of the pure data values associated with a single view in a projection layer. More... | |
struct | xrt_layer_projection_data |
All the pure data values associated with a projection layer. More... | |
struct | xrt_layer_depth_data |
All the pure data values associated with a depth information attached to a layer. More... | |
struct | xrt_layer_depth_test_data |
struct | xrt_layer_projection_depth_data |
All the pure data values associated with a projection layer with depth swapchain attached. More... | |
struct | xrt_layer_quad_data |
All the pure data values associated with a quad layer. More... | |
struct | xrt_layer_cube_data |
All the pure data values associated with a cube layer. More... | |
struct | xrt_layer_cylinder_data |
All the pure data values associated with a cylinder layer. More... | |
struct | xrt_layer_equirect1_data |
All the pure data values associated with a equirect1 layer. More... | |
struct | xrt_layer_equirect2_data |
All the pure data values associated with a equirect2 layer. More... | |
interface | xrt_passthrough |
interface | xrt_passthrough_layer |
struct | xrt_layer_passthrough_data |
All the pure data values associated with a passthrough layer. More... | |
struct | xrt_layer_data |
All the pure data values associated with a composition layer. More... | |
struct | xrt_layer_frame_data |
Per frame data for the layer submission calls, used in xrt_compositor::layer_begin. More... | |
interface | xrt_swapchain |
Common swapchain interface/base. More... | |
struct | xrt_compositor_fence |
Compositor fence used for synchronization. More... | |
struct | xrt_compositor_semaphore |
Compositor semaphore used for synchronization, needs to be as capable as a Vulkan pipeline semaphore. More... | |
struct | xrt_swapchain_create_info |
Swapchain creation info. More... | |
struct | xrt_passthrough_create_info |
Passthrough creation info. More... | |
struct | xrt_passthrough_layer_create_info |
Passthrough layer creation info. More... | |
struct | xrt_swapchain_create_properties |
Struct used to negotiate properties of a swapchain that is created outside of the compositor. More... | |
struct | xrt_session_info |
Session information, mostly overlay extension data. More... | |
struct | xrt_compositor_info |
Capabilities and information about the compositor and device together. More... | |
struct | xrt_begin_session_info |
Begin Session information not known until clients have created an xrt-instance such as which extensions are enabled, view type, etc. More... | |
interface | xrt_compositor |
Common compositor client interface/base. More... | |
struct | xrt_swapchain_gl |
Base class for an OpenGL (ES) client swapchain. More... | |
struct | xrt_compositor_gl |
Base class for an OpenGL (ES) client compositor. More... | |
struct | xrt_swapchain_vk |
Base class for a Vulkan client swapchain. More... | |
struct | xrt_compositor_vk |
Base class for a Vulkan client compositor. More... | |
struct | xrt_swapchain_d3d11 |
Base class for a D3D11 client swapchain. More... | |
struct | xrt_compositor_d3d11 |
Base class for a D3D11 client compositor. More... | |
struct | xrt_d3d_requirements |
Graphics usage requirements for D3D APIs. More... | |
struct | xrt_swapchain_d3d12 |
Base class for a D3D12 client swapchain. More... | |
struct | xrt_compositor_d3d12 |
Base class for a D3D12 client compositor. More... | |
struct | xrt_image_native |
A single image of a swapchain based on native buffer handles. More... | |
interface | xrt_swapchain_native |
Base class for a swapchain that exposes a native buffer handle to be imported into a client API. More... | |
interface | xrt_compositor_native |
Main compositor server interface. More... | |
struct | xrt_system_compositor_info |
Capabilities and information about the system compositor (and its wrapped native compositor, if any), and device together. More... | |
interface | xrt_multi_compositor_control |
Special functions to control multi session/clients. More... | |
struct | xrt_system_compositor |
The system compositor handles composition for a system. More... | |
struct | xrt_image_native_allocator |
Allocator for system native images, in general you do not need to free the images as they will be consumed by importing them to the graphics API. More... | |
struct | xrt_uuid |
To transport UUIDs between different APIs. More... | |
struct | xrt_luid |
To transport LUIDs between different APIs. More... | |
struct | xrt_limited_unique_id |
A limited unique id, it is only unique for the process it is in, so must not be used or synchronized across process boundaries. More... | |
struct | xrt_reference |
A base class for reference counted objects. More... | |
struct | xrt_quat |
A quaternion with single floats. More... | |
struct | xrt_vec1 |
A 1 element vector with single floats. More... | |
struct | xrt_vec2 |
A 2 element vector with single floats. More... | |
struct | xrt_vec3 |
A 3 element vector with single floats. More... | |
struct | xrt_vec3_f64 |
A 3 element vector with single doubles. More... | |
struct | xrt_vec3_i32 |
A 3 element vector with 32 bit integers. More... | |
struct | xrt_vec2_i32 |
A 2 element vector with 32 bit integers. More... | |
struct | xrt_colour_rgb_u8 |
A 3 element colour with 8 bits per channel. More... | |
struct | xrt_colour_rgba_u8 |
A 4 element colour with 8 bits per channel. More... | |
struct | xrt_colour_rgb_f32 |
A 3 element colour with floating point channels. More... | |
struct | xrt_colour_rgba_f32 |
A 4 element colour with floating point channels. More... | |
struct | xrt_size |
Image size. More... | |
struct | xrt_offset |
Image offset. More... | |
struct | xrt_rect |
Image rectangle. More... | |
struct | xrt_rect_f32 |
Image rectangle. More... | |
struct | xrt_normalized_rect |
Normalized image rectangle, coordinates and size in 0 . More... | |
struct | xrt_pose |
A pose composed of a position and orientation. More... | |
struct | xrt_fov |
Describes a projection matrix fov. More... | |
struct | xrt_matrix_2x2 |
A tightly packed 2x2 matrix of floats. More... | |
struct | xrt_matrix_3x3 |
A tightly packed 3x3 matrix of floats. More... | |
struct | xrt_matrix_3x3_f64 |
A tightly packed 3x3 matrix of doubles. More... | |
struct | xrt_matrix_4x4 |
A tightly packed 4x4 matrix of floats. More... | |
struct | xrt_matrix_4x4_f64 |
A tightly packed 4x4 matrix of double. More... | |
struct | xrt_api_requirements |
A range of API versions supported. More... | |
struct | xrt_space_relation |
A relation with two spaces, includes velocity and acceleration. More... | |
struct | xrt_relation_chain |
A chain of space relations and their associated validity flags. More... | |
struct | xrt_hand_joint_value |
Location of a single hand joint. More... | |
struct | xrt_hand_joint_set |
Joint set type used for hand tracking. More... | |
union | xrt_input_value |
A union of all input types. More... | |
union | xrt_output_value |
A union of all output types. More... | |
struct | xrt_view |
A per-lens/display view information. More... | |
struct | xrt_hmd_parts |
All of the device components that deals with interfacing to a users head. More... | |
struct | xrt_input |
A single named input, that sits on a xrt_device. More... | |
struct | xrt_output |
A single named output, that sits on a xrt_device. More... | |
struct | xrt_binding_input_pair |
A binding pair, going from a binding point to a device input. More... | |
struct | xrt_binding_output_pair |
A binding pair, going from a binding point to a device output. More... | |
struct | xrt_binding_profile |
A binding profile, has lists of binding pairs to goes from device in name to the device it hangs off on. More... | |
struct | xrt_frame |
Basic frame data structure - holds a pointer to buffer. More... | |
struct | xrt_frame_context |
Object used to track all sinks and frame producers in a graph. More... | |
struct | xrt_fs_capture_parameters |
Controlling the camera capture parameters. More... | |
struct | xrt_fs_mode |
struct | xrt_application_info |
Non-process-specific information provided by the application at instance create time. More... | |
struct | xrt_instance_info |
Information provided by the application at instance create time. More... | |
interface | xrt_instance |
This interface acts as a root object for Monado. More... | |
struct | xrt_prober_device |
A probed device, may or may not be opened. More... | |
struct | xrt_prober |
The main prober that probes and manages found but not opened HMD devices that are connected to the system. More... | |
struct | xrt_builder_estimate |
A estimate from a setter upper about how many devices they can open. More... | |
struct | xrt_builder |
Sets up a collection of devices and builds a system, a setter upper. More... | |
struct | xrt_prober_entry |
Entry for a single device. More... | |
struct | xrt_prober_entry_lists |
Main root of all of the probing device. More... | |
struct | xrt_session_event_state_change |
Session state changes event, type XRT_SESSION_EVENT_STATE_CHANGE. More... | |
struct | xrt_session_event_overlay |
Primary session state changes event, type XRT_SESSION_EVENT_OVERLAY_CHANGE. More... | |
struct | xrt_session_event_loss_pending |
Loss pending event, XRT_SESSION_EVENT_LOSS_PENDING. More... | |
struct | xrt_session_event_lost |
Session lost event, type XRT_SESSION_EVENT_LOST. More... | |
struct | xrt_session_event_display_refresh_rate_change |
Display refresh rate of compositor changed event, type XRT_SESSION_EVENT_DISPLAY_REFRESH_RATE_CHANGE. More... | |
struct | xrt_session_event_reference_space_change_pending |
Event that tells the application that the reference space has a pending change to it, maps to XrEventDataReferenceSpaceChangePending , type XRT_SESSION_EVENT_REFERENCE_SPACE_CHANGE_PENDING. More... | |
union | xrt_session_event |
Union of all session events, used to return multiple events through one call. More... | |
struct | xrt_session_event_sink |
Used internally from producers of events to push events into session, some sinks might multiplex events to multiple sessions. More... | |
struct | xrt_session |
The XRT representation of XrSession , this object does not have all of the functionality of a session, most are partitioned to the session level compositor object. More... | |
struct | xrt_tracking_override |
struct | xrt_settings_tracking |
Holding enough information to recreate a tracking pipeline. More... | |
struct | xrt_space |
A space very similar to a OpenXR XrSpace but not a full one-to-one mapping, but used to power XrSpace. More... | |
struct | xrt_space_overseer |
Object that oversees and manages spaces, one created for each XR system. More... | |
struct | xrt_system |
A system is a collection of devices, policies and optionally a compositor that is organised into a chosive group that is usable by one user, most of the functionality of a system is exposed through other objects, this is the main object. More... | |
struct | xrt_system_roles |
Data associating a device index (in xrt_system_devices::xdevs) with a given "role" for dynamic role switching. More... | |
struct | xrt_tracking_origin |
A tracking system or device origin. More... | |
interface | xrt_tracking_factory |
Tracking factory. More... | |
struct | xrt_tracking_sample |
IMU Sample. More... | |
struct | xrt_imu_sample |
IMU Sample. More... | |
struct | xrt_pose_sample |
Pose sample. More... | |
struct | xrt_hand_masks_sample |
Masks (bounding boxes) of different hands from current views. More... | |
interface | xrt_imu_sink |
An object to send IMU samples to. More... | |
interface | xrt_pose_sink |
An object to send pairs of timestamps and poses to. More... | |
interface | xrt_hand_masks_sink |
An object to push xrt_hand_masks_sample to. More... | |
struct | xrt_slam_sinks |
Container of pointers to sinks that could be used for a SLAM system. More... | |
interface | xrt_tracked_psmv |
A single tracked PS Move controller, camera and ball are not synced. More... | |
interface | xrt_tracked_psvr |
A tracked PSVR headset. More... | |
interface | xrt_tracked_slam |
An adapter that wraps an external SLAM tracker to provide SLAM tracking. More... | |
struct | xrt_visibility_mask |
Visibility mask helper, the indices and vertices are tightly packed after this struct. More... | |
interface | xrt_device |
A single HMD or input device. More... | |
interface | xrt_frame_sink |
A object that is sent frames. More... | |
interface | xrt_frame_node |
A interface object used for destroying a frame graph. More... | |
interface | xrt_fs |
Frameserver that generates frames. More... | |
interface | xrt_auto_prober |
An interface to be exposed by a device driver that should probe for the existence of its own device on the system, rather than using shared probers with vendor/product IDs, etc. More... | |
Macros | |
#define | XRT_DEBUGBREAK() |
To trigger a trap/break in the debugger. More... | |
#define | container_of(ptr, type, field) (type *)((char *)ptr - offsetof(type, field)) |
Get the holder from a pointer to a field. More... | |
#define | XRT_STRUCT_INIT {} |
Very small default init for structs that works in both C and C++. More... | |
#define | XRT_UUID_SIZE 16 |
Internal define for VK_UUID_SIZE and XR_UUID_SIZE_EXT. More... | |
#define | XRT_LUID_SIZE 8 |
Internal define for VK_LUID_SIZE. More... | |
#define | XRT_MATRIX_2X2_ELEMENTS 4 |
The number of values in xrt_matrix_2x2. More... | |
#define | XRT_MATRIX_2X2_VECS 2 |
The number of 2d vectors in xrt_matrix_2x2. More... | |
#define | XRT_MATRIX_3X3_ELEMENTS 9 |
The number of values in xrt_matrix_3x3. More... | |
#define | XRT_MATRIX_4X4_ELEMENTS 16 |
The number of values in a 4x4 matrix like xrt_matrix_4x4 and xrt_matrix_4x4_f64. More... | |
#define | XRT_SPACE_REFERENCE_TYPE_COUNT (XRT_SPACE_REFERENCE_TYPE_UNBOUNDED + 1) |
The number of enumerations in xrt_reference_space_type. More... | |
#define | XRT_SPACE_REFERENCE_TYPE_INVALID ((enum xrt_reference_space_type)(-1)) |
An invalid xrt_reference_space_type, since it's invalid it's not listed in the enum. More... | |
#define | XRT_INPUT_TYPE_BITWIDTH 8u |
The number of bits reserved for the input type in xrt_input_name. More... | |
#define | XRT_INPUT_TYPE_BITMASK 0xffu |
The mask associated with XRT_INPUT_TYPE_BITWIDTH. More... | |
#define | XRT_INPUT_NAME(id, type) ((UINT32_C(id) << XRT_INPUT_TYPE_BITWIDTH) | (uint32_t)XRT_INPUT_TYPE_##type) |
Create an enum value for xrt_input_name that packs an ID and input type. More... | |
#define | XRT_GET_INPUT_TYPE(name) ((enum xrt_input_type)(name & XRT_INPUT_TYPE_BITMASK)) |
Extract the xrt_input_type from an xrt_input_name. More... | |
#define | XRT_GET_INPUT_ID(name) ((uint32_t)(name >> XRT_INPUT_TYPE_BITWIDTH)) |
Extract the xrt_input_name id from an xrt_input_name. More... | |
#define | XRT_HAND_JOINT_COUNT 26 |
Number of joints in a hand. More... | |
#define | XRT_FINGER_COUNT 5 |
Number of fingers on a hand. More... | |
#define | XRT_OUTPUT_TYPE_BITWIDTH 8u |
The number of bits reserved for the input type in xrt_output_name. More... | |
#define | XRT_OUTPUT_TYPE_BITMASK 0xffu |
The mask associated with XRT_OUTPUT_TYPE_BITWIDTH. More... | |
#define | XRT_MIN_HAPTIC_DURATION -1 |
Value used to indicate a haptic pulse of the minimal supported duration. More... | |
#define | XRT_FREQUENCY_UNSPECIFIED 0 |
Value used to indicate a haptic pulse of some runtime defined optimal frequency. More... | |
#define | XRT_INFINITE_DURATION (0x7fffffffffffffffLL) |
Value used as a timeout to indicate the timeout should never occur. More... | |
#define | XRT_MAX_APPLICATION_NAME_SIZE 128 |
#define | XRT_MAX_VIEWS 2 |
#define | XRT_MAX_IPC_HANDLES 16 |
Maximum number of handles sent in one call. More... | |
#define | XRT_MAX_SWAPCHAIN_IMAGES 8 |
Max swapchain images, artificial limit. More... | |
#define | XRT_MAX_SWAPCHAIN_FORMATS 16 |
Max formats supported by a compositor, artificial limit. More... | |
#define | XRT_MAX_SWAPCHAIN_CREATE_INFO_FORMAT_LIST_COUNT 8 |
Max formats in the swapchain creation info formats list, artificial limit. More... | |
#define | XRT_MAX_SUPPORTED_REFRESH_RATES 16 |
Max number of supported display refresh rates, artificial limit. More... | |
#define | XRT_MAX_LAYERS 128 |
Max number of layers which can be handled at once. More... | |
#define | XRT_MAX_DEVICES_PER_PROBE 16 |
The maximum number of devices that a single xrt_prober_entry::found or xrt_auto_prober::lelo_dallas_autoprobe function called by the prober can create per-call. More... | |
#define | XRT_MAX_AUTO_PROBERS 16 |
The maximum number of xrt_auto_prober instances that can be handled. More... | |
#define | XRT_SETTINGS_CAMERA_NAME_LENGTH 256 |
#define | XRT_SETTINGS_PATH_LENGTH 1024 |
#define | XRT_MAX_TRACKING_OVERRIDES 16 |
#define | XRT_SYSTEM_MAX_DEVICES (32) |
Maximum number of devices simultaneously usable by an implementation of xrt_system_devices. More... | |
Typedefs | |
typedef struct xrt_uuid | xrt_uuid_t |
Typedef for xrt_uuid. More... | |
typedef struct xrt_luid | xrt_luid_t |
Typedef for xrt_luid. More... | |
typedef struct xrt_limited_unique_id | xrt_limited_unique_id_t |
Typedef for xrt_limited_unique_id. More... | |
typedef void(* | xrt_prober_list_video_func_t) (struct xrt_prober *xp, struct xrt_prober_device *pdev, const char *product, const char *manufacturer, const char *serial, void *ptr) |
Callback for listing video devices. More... | |
typedef struct xrt_builder *(* | xrt_builder_create_func_t) (void) |
Function pointer type for creating a xrt_builder. More... | |
typedef struct xrt_auto_prober *(* | xrt_auto_prober_create_func_t) (void) |
Function pointer type for creating a auto prober. More... | |
typedef enum xrt_result | xrt_result_t |
Result type used across Monado. More... | |
Enumerations | |
enum | t_image_boundary_type { HT_IMAGE_BOUNDARY_NONE , HT_IMAGE_BOUNDARY_CIRCLE } |
Image boundary type. More... | |
enum | xrt_layer_type { XRT_LAYER_PROJECTION , XRT_LAYER_PROJECTION_DEPTH , XRT_LAYER_QUAD , XRT_LAYER_CUBE , XRT_LAYER_CYLINDER , XRT_LAYER_EQUIRECT1 , XRT_LAYER_EQUIRECT2 , XRT_LAYER_PASSTHROUGH } |
Layer type. More... | |
enum | xrt_layer_composition_flags { XRT_LAYER_COMPOSITION_CORRECT_CHROMATIC_ABERRATION_BIT = 1u << 0u , XRT_LAYER_COMPOSITION_BLEND_TEXTURE_SOURCE_ALPHA_BIT = 1u << 1u , XRT_LAYER_COMPOSITION_UNPREMULTIPLIED_ALPHA_BIT = 1u << 2u , XRT_LAYER_COMPOSITION_VIEW_SPACE_BIT = 1u << 3u , XRT_LAYER_COMPOSITION_COLOR_BIAS_SCALE = 1u << 4u , XRT_COMPOSITION_LAYER_PROCESSING_NORMAL_SUPER_SAMPLING_BIT_FB = 1u << 5u , XRT_COMPOSITION_LAYER_PROCESSING_QUALITY_SUPER_SAMPLING_BIT_FB = 1u << 6u , XRT_COMPOSITION_LAYER_PROCESSING_NORMAL_SHARPENING_BIT_FB = 1u << 7u , XRT_COMPOSITION_LAYER_PROCESSING_QUALITY_SHARPENING_BIT_FB = 1u << 8u , XRT_LAYER_COMPOSITION_ADVANCED_BLENDING_BIT = 1u << 9u , XRT_LAYER_COMPOSITION_DEPTH_TEST = 1u << 10u } |
Bit field for holding information about how a layer should be composited. More... | |
enum | xrt_compare_op_fb { XRT_COMPARE_OP_NEVER_FB = 0 , XRT_COMPARE_OP_LESS_FB = 1 , XRT_COMPARE_OP_EQUAL_FB = 2 , XRT_COMPARE_OP_LESS_OR_EQUAL_FB = 3 , XRT_COMPARE_OP_GREATER_FB = 4 , XRT_COMPARE_OP_NOT_EQUAL_FB = 5 , XRT_COMPARE_OP_GREATER_OR_EQUAL_FB = 6 , XRT_COMPARE_OP_ALWAYS_FB = 7 , XRT_COMPARE_OP_MAX_ENUM_FB = 0x7FFFFFFF } |
XrCompareOpFB. More... | |
enum | xrt_layer_eye_visibility { XRT_LAYER_EYE_VISIBILITY_NONE = 0x0 , XRT_LAYER_EYE_VISIBILITY_LEFT_BIT = 0x1 , XRT_LAYER_EYE_VISIBILITY_RIGHT_BIT = 0x2 , XRT_LAYER_EYE_VISIBILITY_BOTH = 0x3 } |
Which view is the layer visible to? More... | |
enum | xrt_blend_factor { XRT_BLEND_FACTOR_ZERO = 0 , XRT_BLEND_FACTOR_ONE = 1 , XRT_BLEND_FACTOR_SRC_ALPHA = 2 , XRT_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 3 , XRT_BLEND_FACTOR_DST_ALPHA = 4 , XRT_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 5 , XRT_BLEND_FACTOR_MAX_ENUM_FB = 0x7FFFFFFF } |
Blend factors. More... | |
enum | xrt_swapchain_create_flags { XRT_SWAPCHAIN_CREATE_PROTECTED_CONTENT = (1u << 0u) , XRT_SWAPCHAIN_CREATE_STATIC_IMAGE = (1u << 1u) } |
Special flags for creating swapchain images. More... | |
enum | xrt_swapchain_usage_bits { XRT_SWAPCHAIN_USAGE_COLOR = 0x00000001 , XRT_SWAPCHAIN_USAGE_DEPTH_STENCIL = 0x00000002 , XRT_SWAPCHAIN_USAGE_UNORDERED_ACCESS = 0x00000004 , XRT_SWAPCHAIN_USAGE_TRANSFER_SRC = 0x00000008 , XRT_SWAPCHAIN_USAGE_TRANSFER_DST = 0x00000010 , XRT_SWAPCHAIN_USAGE_SAMPLED = 0x00000020 , XRT_SWAPCHAIN_USAGE_MUTABLE_FORMAT = 0x00000040 , XRT_SWAPCHAIN_USAGE_INPUT_ATTACHMENT = 0x00000080 } |
Usage of the swapchain images. More... | |
enum | xrt_barrier_direction { XRT_BARRIER_TO_APP = 1 , XRT_BARRIER_TO_COMP = 2 } |
The direction of a transition. More... | |
enum | xrt_view_type { XRT_VIEW_TYPE_MONO = 1 , XRT_VIEW_TYPE_STEREO = 2 } |
View type to be rendered to by the compositor. More... | |
enum | xrt_compositor_frame_point { XRT_COMPOSITOR_FRAME_POINT_WOKE } |
enum | xrt_thread_hint { XRT_THREAD_HINT_APPLICATION_MAIN = 1 , XRT_THREAD_HINT_APPLICATION_WORKER = 2 , XRT_THREAD_HINT_RENDERER_MAIN = 3 , XRT_THREAD_HINT_RENDERER_WORKER = 4 } |
Hints the XR runtime what type of task the thread is doing. More... | |
enum | xrt_blend_mode { XRT_BLEND_MODE_OPAQUE = 1 , XRT_BLEND_MODE_ADDITIVE = 2 , XRT_BLEND_MODE_ALPHA_BLEND = 3 , XRT_BLEND_MODE_MAX_ENUM } |
Blend mode that the device supports, exact mirror of XrEnvironmentBlendMode. More... | |
enum | xrt_stereo_format { XRT_STEREO_FORMAT_NONE , XRT_STEREO_FORMAT_SBS , XRT_STEREO_FORMAT_INTERLEAVED , XRT_STEREO_FORMAT_OAU } |
What type of stereo format a frame has. More... | |
enum | xrt_reference_space_type { XRT_SPACE_REFERENCE_TYPE_VIEW , XRT_SPACE_REFERENCE_TYPE_LOCAL , XRT_SPACE_REFERENCE_TYPE_LOCAL_FLOOR , XRT_SPACE_REFERENCE_TYPE_STAGE , XRT_SPACE_REFERENCE_TYPE_UNBOUNDED } |
Type of a OpenXR mapped reference space, maps to the semantic spaces on the xrt_space_overseer struct. More... | |
enum | xrt_space_relation_flags { XRT_SPACE_RELATION_ORIENTATION_VALID_BIT = (1u << 0u) , XRT_SPACE_RELATION_POSITION_VALID_BIT = (1u << 1u) , XRT_SPACE_RELATION_LINEAR_VELOCITY_VALID_BIT = (1u << 2u) , XRT_SPACE_RELATION_ANGULAR_VELOCITY_VALID_BIT = (1u << 3u) , XRT_SPACE_RELATION_ORIENTATION_TRACKED_BIT = (1u << 4u) , XRT_SPACE_RELATION_POSITION_TRACKED_BIT = (1u << 5u) , XRT_SPACE_RELATION_BITMASK_ALL , XRT_SPACE_RELATION_BITMASK_NONE = 0 } |
Flags of which components of a xrt_space_relation is valid. More... | |
enum | xrt_device_type { XRT_DEVICE_TYPE_UNKNOWN = 0 , XRT_DEVICE_TYPE_HMD , XRT_DEVICE_TYPE_RIGHT_HAND_CONTROLLER , XRT_DEVICE_TYPE_LEFT_HAND_CONTROLLER , XRT_DEVICE_TYPE_ANY_HAND_CONTROLLER , XRT_DEVICE_TYPE_GENERIC_TRACKER , XRT_DEVICE_TYPE_HAND_TRACKER , XRT_DEVICE_TYPE_EYE_TRACKER , XRT_DEVICE_TYPE_FACE_TRACKER , XRT_DEVICE_TYPE_BODY_TRACKER } |
How an xrt_device can be used. More... | |
enum | xrt_input_type { XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE = 0x00 , XRT_INPUT_TYPE_VEC1_MINUS_ONE_TO_ONE = 0x01 , XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE = 0x02 , XRT_INPUT_TYPE_VEC3_MINUS_ONE_TO_ONE = 0x03 , XRT_INPUT_TYPE_BOOLEAN = 0x04 , XRT_INPUT_TYPE_POSE = 0x05 , XRT_INPUT_TYPE_HAND_TRACKING = 0x06 , XRT_INPUT_TYPE_FACE_TRACKING = 0x07 , XRT_INPUT_TYPE_BODY_TRACKING = 0x08 } |
Base type of this inputs. More... | |
enum | xrt_input_name { XRT_INPUT_GENERIC_HEAD_POSE = ((UINT32_C( 0x0000 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_GENERIC_HEAD_DETECT = ((UINT32_C( 0x0001 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_GENERIC_HAND_TRACKING_LEFT = ((UINT32_C( 0x0002 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_HAND_TRACKING ) , XRT_INPUT_GENERIC_HAND_TRACKING_RIGHT = ((UINT32_C( 0x0004 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_HAND_TRACKING ) , XRT_INPUT_GENERIC_TRACKER_POSE = ((UINT32_C( 0x0005 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_GENERIC_PALM_POSE = ((UINT32_C( 0x0006 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_GENERIC_EYE_GAZE_POSE = ((UINT32_C( 0x0007 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_GENERIC_LOCAL_SPACE_POSE = ((UINT32_C( 0x0008 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_GENERIC_LOCAL_FLOOR_SPACE_POSE = ((UINT32_C( 0x0009 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_GENERIC_STAGE_SPACE_POSE = ((UINT32_C( 0x000A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_GENERIC_UNBOUNDED_SPACE_POSE = ((UINT32_C( 0x000B ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_SIMPLE_SELECT_CLICK = ((UINT32_C( 0x0010 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_SIMPLE_MENU_CLICK = ((UINT32_C( 0x0011 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_SIMPLE_GRIP_POSE = ((UINT32_C( 0x0012 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_SIMPLE_AIM_POSE = ((UINT32_C( 0x0013 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_PSMV_PS_CLICK = ((UINT32_C( 0x0020 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSMV_MOVE_CLICK = ((UINT32_C( 0x0021 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSMV_START_CLICK = ((UINT32_C( 0x0022 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSMV_SELECT_CLICK = ((UINT32_C( 0x0023 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSMV_SQUARE_CLICK = ((UINT32_C( 0x0024 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSMV_CROSS_CLICK = ((UINT32_C( 0x0025 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSMV_CIRCLE_CLICK = ((UINT32_C( 0x0026 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSMV_TRIANGLE_CLICK = ((UINT32_C( 0x0027 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSMV_TRIGGER_VALUE = ((UINT32_C( 0x0028 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_PSMV_GRIP_POSE = ((UINT32_C( 0x0029 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_PSMV_AIM_POSE = ((UINT32_C( 0x002A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_PSMV_BODY_CENTER_POSE = ((UINT32_C( 0x002B ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_PSMV_BALL_CENTER_POSE = ((UINT32_C( 0x002C ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_HYDRA_1_CLICK = ((UINT32_C( 0x0030 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_HYDRA_2_CLICK = ((UINT32_C( 0x0031 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_HYDRA_3_CLICK = ((UINT32_C( 0x0032 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_HYDRA_4_CLICK = ((UINT32_C( 0x0033 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_HYDRA_MIDDLE_CLICK = ((UINT32_C( 0x0034 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_HYDRA_BUMPER_CLICK = ((UINT32_C( 0x0035 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_HYDRA_JOYSTICK_CLICK = ((UINT32_C( 0x0036 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_HYDRA_JOYSTICK_VALUE = ((UINT32_C( 0x0037 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_HYDRA_TRIGGER_VALUE = ((UINT32_C( 0x0038 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_HYDRA_POSE = ((UINT32_C( 0x0039 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_DAYDREAM_TOUCHPAD_CLICK = ((UINT32_C( 0x0040 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_DAYDREAM_BAR_CLICK = ((UINT32_C( 0x0041 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_DAYDREAM_CIRCLE_CLICK = ((UINT32_C( 0x0042 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_DAYDREAM_VOLUP_CLICK = ((UINT32_C( 0x0043 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_DAYDREAM_VOLDN_CLICK = ((UINT32_C( 0x0044 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_DAYDREAM_TOUCHPAD = ((UINT32_C( 0x0045 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_DAYDREAM_POSE = ((UINT32_C( 0x0046 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_DAYDREAM_TOUCHPAD_TOUCH = ((UINT32_C( 0x0047 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_SYSTEM_CLICK = ((UINT32_C( 0x0050 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_SYSTEM_TOUCH = ((UINT32_C( 0x0051 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_A_CLICK = ((UINT32_C( 0x0052 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_A_TOUCH = ((UINT32_C( 0x0053 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_B_CLICK = ((UINT32_C( 0x0054 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_B_TOUCH = ((UINT32_C( 0x0055 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_SQUEEZE_VALUE = ((UINT32_C( 0x0056 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_INDEX_SQUEEZE_FORCE = ((UINT32_C( 0x0057 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_INDEX_TRIGGER_CLICK = ((UINT32_C( 0x0058 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_TRIGGER_VALUE = ((UINT32_C( 0x0059 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_INDEX_TRIGGER_TOUCH = ((UINT32_C( 0x005A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_THUMBSTICK = ((UINT32_C( 0x005B ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_INDEX_THUMBSTICK_CLICK = ((UINT32_C( 0x005D ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_THUMBSTICK_TOUCH = ((UINT32_C( 0x005E ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_TRACKPAD = ((UINT32_C( 0x005F ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_INDEX_TRACKPAD_FORCE = ((UINT32_C( 0x0061 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_INDEX_TRACKPAD_TOUCH = ((UINT32_C( 0x0062 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_INDEX_GRIP_POSE = ((UINT32_C( 0x0063 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_INDEX_AIM_POSE = ((UINT32_C( 0x0064 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_VIVE_SYSTEM_CLICK = ((UINT32_C( 0x0070 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_SQUEEZE_CLICK = ((UINT32_C( 0x0071 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_MENU_CLICK = ((UINT32_C( 0x0072 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_TRIGGER_CLICK = ((UINT32_C( 0x0073 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_TRIGGER_VALUE = ((UINT32_C( 0x0074 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_VIVE_TRACKPAD = ((UINT32_C( 0x0075 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_VIVE_TRACKPAD_CLICK = ((UINT32_C( 0x0076 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_TRACKPAD_TOUCH = ((UINT32_C( 0x0077 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_GRIP_POSE = ((UINT32_C( 0x0078 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_VIVE_AIM_POSE = ((UINT32_C( 0x0079 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_VIVEPRO_SYSTEM_CLICK = ((UINT32_C( 0x0080 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVEPRO_VOLUP_CLICK = ((UINT32_C( 0x0081 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVEPRO_VOLDN_CLICK = ((UINT32_C( 0x0082 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVEPRO_MUTE_MIC_CLICK = ((UINT32_C( 0x0083 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_WMR_MENU_CLICK = ((UINT32_C( 0x0090 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_WMR_SQUEEZE_CLICK = ((UINT32_C( 0x0091 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_WMR_TRIGGER_VALUE = ((UINT32_C( 0x0092 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_WMR_THUMBSTICK_CLICK = ((UINT32_C( 0x0093 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_WMR_THUMBSTICK = ((UINT32_C( 0x0094 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_WMR_TRACKPAD_CLICK = ((UINT32_C( 0x0095 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_WMR_TRACKPAD_TOUCH = ((UINT32_C( 0x0096 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_WMR_TRACKPAD = ((UINT32_C( 0x0097 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_WMR_GRIP_POSE = ((UINT32_C( 0x0098 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_WMR_AIM_POSE = ((UINT32_C( 0x0099 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_WMR_HOME_CLICK = ((UINT32_C( 0x009A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_MENU_CLICK = ((UINT32_C( 0x00A0 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_VIEW_CLICK = ((UINT32_C( 0x00A1 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_A_CLICK = ((UINT32_C( 0x00A2 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_B_CLICK = ((UINT32_C( 0x00A3 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_X_CLICK = ((UINT32_C( 0x00A4 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_Y_CLICK = ((UINT32_C( 0x00A5 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_DPAD_DOWN_CLICK = ((UINT32_C( 0x00A6 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_DPAD_RIGHT_CLICK = ((UINT32_C( 0x00A7 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_DPAD_UP_CLICK = ((UINT32_C( 0x00A8 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_DPAD_LEFT_CLICK = ((UINT32_C( 0x00A9 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_SHOULDER_LEFT_CLICK = ((UINT32_C( 0x00AA ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_SHOULDER_RIGHT_CLICK = ((UINT32_C( 0x00AB ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_THUMBSTICK_LEFT_CLICK = ((UINT32_C( 0x00AC ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_THUMBSTICK_LEFT = ((UINT32_C( 0x00AD ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_XBOX_THUMBSTICK_RIGHT_CLICK = ((UINT32_C( 0x00AE ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_XBOX_THUMBSTICK_RIGHT = ((UINT32_C( 0x00AF ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_XBOX_LEFT_TRIGGER_VALUE = ((UINT32_C( 0x00B0 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_XBOX_RIGHT_TRIGGER_VALUE = ((UINT32_C( 0x00B1 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_GO_SYSTEM_CLICK = ((UINT32_C( 0x00B0 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_GO_TRIGGER_CLICK = ((UINT32_C( 0x00B1 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_GO_BACK_CLICK = ((UINT32_C( 0x00B2 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_GO_TRACKPAD_CLICK = ((UINT32_C( 0x00B3 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_GO_TRACKPAD_TOUCH = ((UINT32_C( 0x00B4 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_GO_TRACKPAD = ((UINT32_C( 0x00B5 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_GO_GRIP_POSE = ((UINT32_C( 0x00B6 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_GO_AIM_POSE = ((UINT32_C( 0x00B7 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_TOUCH_X_CLICK = ((UINT32_C( 0x00C0 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_X_TOUCH = ((UINT32_C( 0x00C1 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_Y_CLICK = ((UINT32_C( 0x00C2 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_Y_TOUCH = ((UINT32_C( 0x00C3 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_MENU_CLICK = ((UINT32_C( 0x00C4 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_A_CLICK = ((UINT32_C( 0x00C5 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_A_TOUCH = ((UINT32_C( 0x00C6 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_B_CLICK = ((UINT32_C( 0x00C7 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_B_TOUCH = ((UINT32_C( 0x00C8 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_SYSTEM_CLICK = ((UINT32_C( 0x00C9 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_SQUEEZE_VALUE = ((UINT32_C( 0x00CA ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_TRIGGER_TOUCH = ((UINT32_C( 0x00CB ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_TRIGGER_VALUE = ((UINT32_C( 0x00CC ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_THUMBSTICK_CLICK = ((UINT32_C( 0x00CD ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_THUMBSTICK_TOUCH = ((UINT32_C( 0x00CE ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_THUMBSTICK = ((UINT32_C( 0x00CF ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_TOUCH_THUMBREST_TOUCH = ((UINT32_C( 0x00D0 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_GRIP_POSE = ((UINT32_C( 0x00D1 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_TOUCH_AIM_POSE = ((UINT32_C( 0x00D2 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_TOUCH_TRIGGER_PROXIMITY = ((UINT32_C( 0x00D3 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_THUMB_PROXIMITY = ((UINT32_C( 0x00D4 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_HAND_SELECT_VALUE = ((UINT32_C( 0x00E0 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_HAND_SQUEEZE_VALUE = ((UINT32_C( 0x00E1 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_HAND_GRIP_POSE = ((UINT32_C( 0x00E2 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_HAND_AIM_POSE = ((UINT32_C( 0x00E3 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_G2_CONTROLLER_X_CLICK = ((UINT32_C( 0x00F0 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_G2_CONTROLLER_Y_CLICK = ((UINT32_C( 0x00F1 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_G2_CONTROLLER_A_CLICK = ((UINT32_C( 0x00F2 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_G2_CONTROLLER_B_CLICK = ((UINT32_C( 0x00F3 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_G2_CONTROLLER_MENU_CLICK = ((UINT32_C( 0x00F4 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_G2_CONTROLLER_SQUEEZE_VALUE = ((UINT32_C( 0x00F5 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_G2_CONTROLLER_TRIGGER_VALUE = ((UINT32_C( 0x00F6 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_G2_CONTROLLER_THUMBSTICK_CLICK = ((UINT32_C( 0x00F7 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_G2_CONTROLLER_THUMBSTICK = ((UINT32_C( 0x00F8 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_G2_CONTROLLER_GRIP_POSE = ((UINT32_C( 0x00F9 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_G2_CONTROLLER_AIM_POSE = ((UINT32_C( 0x00FA ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_G2_CONTROLLER_HOME_CLICK = ((UINT32_C( 0x00FB ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_G2_CONTROLLER_SQUEEZE_CLICK = ((UINT32_C( 0x00FC ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ODYSSEY_CONTROLLER_MENU_CLICK = ((UINT32_C( 0x0100 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ODYSSEY_CONTROLLER_SQUEEZE_CLICK = ((UINT32_C( 0x0101 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ODYSSEY_CONTROLLER_TRIGGER_VALUE = ((UINT32_C( 0x0102 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_ODYSSEY_CONTROLLER_THUMBSTICK_CLICK = ((UINT32_C( 0x0103 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ODYSSEY_CONTROLLER_THUMBSTICK = ((UINT32_C( 0x0104 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_ODYSSEY_CONTROLLER_TRACKPAD_CLICK = ((UINT32_C( 0x0105 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ODYSSEY_CONTROLLER_TRACKPAD_TOUCH = ((UINT32_C( 0x0106 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ODYSSEY_CONTROLLER_TRACKPAD = ((UINT32_C( 0x0107 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_ODYSSEY_CONTROLLER_GRIP_POSE = ((UINT32_C( 0x0108 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_ODYSSEY_CONTROLLER_AIM_POSE = ((UINT32_C( 0x0109 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_ODYSSEY_CONTROLLER_HOME_CLICK = ((UINT32_C( 0x010A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ML2_CONTROLLER_MENU_CLICK = ((UINT32_C( 0x0200 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ML2_CONTROLLER_SELECT_CLICK = ((UINT32_C( 0x0201 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ML2_CONTROLLER_TRIGGER_CLICK = ((UINT32_C( 0x0202 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ML2_CONTROLLER_TRIGGER_VALUE = ((UINT32_C( 0x0203 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_ML2_CONTROLLER_TRACKPAD_CLICK = ((UINT32_C( 0x0204 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ML2_CONTROLLER_TRACKPAD_TOUCH = ((UINT32_C( 0x0205 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_ML2_CONTROLLER_TRACKPAD_FORCE = ((UINT32_C( 0x0206 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_ML2_CONTROLLER_TRACKPAD = ((UINT32_C( 0x0207 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_ML2_CONTROLLER_GRIP_POSE = ((UINT32_C( 0x0208 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_ML2_CONTROLLER_AIM_POSE = ((UINT32_C( 0x0209 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_ML2_CONTROLLER_SHOULDER_CLICK = ((UINT32_C( 0x020A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_TRACKER_SYSTEM_CLICK = ((UINT32_C( 0x0210 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_TRACKER_MENU_CLICK = ((UINT32_C( 0x0211 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_TRACKER_TRIGGER_CLICK = ((UINT32_C( 0x0212 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_TRACKER_SQUEEZE_CLICK = ((UINT32_C( 0x0213 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_TRACKER_TRIGGER_VALUE = ((UINT32_C( 0x0214 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_VIVE_TRACKER_TRACKPAD = ((UINT32_C( 0x0215 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_VIVE_TRACKER_TRACKPAD_CLICK = ((UINT32_C( 0x0216 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_TRACKER_TRACKPAD_TOUCH = ((UINT32_C( 0x0217 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_TRACKER_GRIP_POSE = ((UINT32_C( 0x0218 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_PSSENSE_PS_CLICK = ((UINT32_C( 0x0300 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_SHARE_CLICK = ((UINT32_C( 0x0301 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_OPTIONS_CLICK = ((UINT32_C( 0x0302 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_SQUARE_CLICK = ((UINT32_C( 0x0303 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_SQUARE_TOUCH = ((UINT32_C( 0x0304 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_TRIANGLE_CLICK = ((UINT32_C( 0x0305 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_TRIANGLE_TOUCH = ((UINT32_C( 0x0306 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_CROSS_CLICK = ((UINT32_C( 0x0307 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_CROSS_TOUCH = ((UINT32_C( 0x0308 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_CIRCLE_CLICK = ((UINT32_C( 0x0309 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_CIRCLE_TOUCH = ((UINT32_C( 0x030a ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_SQUEEZE_CLICK = ((UINT32_C( 0x030b ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_SQUEEZE_TOUCH = ((UINT32_C( 0x030c ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_SQUEEZE_PROXIMITY = ((UINT32_C( 0x030d ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_PSSENSE_TRIGGER_CLICK = ((UINT32_C( 0x030e ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_TRIGGER_TOUCH = ((UINT32_C( 0x030f ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_TRIGGER_VALUE = ((UINT32_C( 0x0310 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_PSSENSE_TRIGGER_PROXIMITY = ((UINT32_C( 0x0311 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_PSSENSE_THUMBSTICK = ((UINT32_C( 0x0312 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_PSSENSE_THUMBSTICK_CLICK = ((UINT32_C( 0x0313 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_THUMBSTICK_TOUCH = ((UINT32_C( 0x0314 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PSSENSE_GRIP_POSE = ((UINT32_C( 0x0315 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_PSSENSE_AIM_POSE = ((UINT32_C( 0x0316 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_HAND_PINCH_POSE = ((UINT32_C( 0x0401 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_HAND_POKE_POSE = ((UINT32_C( 0x0402 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_HAND_PINCH_VALUE = ((UINT32_C( 0x0403 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_HAND_AIM_ACTIVATE_VALUE = ((UINT32_C( 0x0404 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_HAND_GRASP_VALUE = ((UINT32_C( 0x0405 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_HAND_PINCH_READY = ((UINT32_C( 0x0406 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_HAND_AIM_ACTIVATE_READY = ((UINT32_C( 0x0407 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_HAND_GRASP_READY = ((UINT32_C( 0x0408 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_X_CLICK = ((UINT32_C( 0x0500 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_X_TOUCH = ((UINT32_C( 0x0501 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_Y_CLICK = ((UINT32_C( 0x0502 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_Y_TOUCH = ((UINT32_C( 0x0503 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_MENU_CLICK = ((UINT32_C( 0x0504 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_HEART_RATE_VALUE = ((UINT32_C( 0x0505 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_OPPO_MR_A_CLICK = ((UINT32_C( 0x0506 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_A_TOUCH = ((UINT32_C( 0x0507 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_B_CLICK = ((UINT32_C( 0x0508 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_B_TOUCH = ((UINT32_C( 0x0509 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_HOME_CLICK = ((UINT32_C( 0x050A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_SQUEEZE_VALUE = ((UINT32_C( 0x050B ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_OPPO_MR_TRIGGER_TOUCH = ((UINT32_C( 0x050C ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_TRIGGER_VALUE = ((UINT32_C( 0x050D ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_OPPO_MR_GRIP_POSE = ((UINT32_C( 0x050E ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_OPPO_MR_AIM_POSE = ((UINT32_C( 0x050F ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_OPPO_MR_THUMBSTICK_CLICK = ((UINT32_C( 0x0510 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_THUMBSTICK_TOUCH = ((UINT32_C( 0x0511 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_OPPO_MR_THUMBSTICK = ((UINT32_C( 0x0512 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_GENERIC_FACE_TRACKING = ((UINT32_C( 0x0600 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_FACE_TRACKING ) , XRT_INPUT_HTC_EYE_FACE_TRACKING = ((UINT32_C( 0x0601 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_FACE_TRACKING ) , XRT_INPUT_HTC_LIP_FACE_TRACKING = ((UINT32_C( 0x0602 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_FACE_TRACKING ) , XRT_INPUT_FB_FACE_TRACKING2_AUDIO = ((UINT32_C( 0x0603 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_FACE_TRACKING ) , XRT_INPUT_FB_FACE_TRACKING2_VISUAL = ((UINT32_C( 0x0604 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_FACE_TRACKING ) , XRT_INPUT_GENERIC_BODY_TRACKING = ((UINT32_C( 0x0700 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BODY_TRACKING ) , XRT_INPUT_FB_BODY_TRACKING = ((UINT32_C( 0x0701 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BODY_TRACKING ) , XRT_INPUT_PICO_NEO3_X_CLICK = ((UINT32_C( 0x0800 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_X_TOUCH = ((UINT32_C( 0x0801 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_Y_CLICK = ((UINT32_C( 0x0802 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_Y_TOUCH = ((UINT32_C( 0x0803 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_MENU_CLICK = ((UINT32_C( 0x0804 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_SYSTEM_CLICK = ((UINT32_C( 0x0805 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_TRIGGER_CLICK = ((UINT32_C( 0x0806 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_TRIGGER_VALUE = ((UINT32_C( 0x0807 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_PICO_NEO3_TRIGGER_TOUCH = ((UINT32_C( 0x0808 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_THUMBSTICK_CLICK = ((UINT32_C( 0x0809 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_THUMBSTICK_TOUCH = ((UINT32_C( 0x080A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_THUMBSTICK = ((UINT32_C( 0x080B ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_PICO_NEO3_SQUEEZE_CLICK = ((UINT32_C( 0x080C ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_SQUEEZE_VALUE = ((UINT32_C( 0x080D ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_PICO_NEO3_GRIP_POSE = ((UINT32_C( 0x080E ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_PICO_NEO3_AIM_POSE = ((UINT32_C( 0x080F ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_PICO_NEO3_A_CLICK = ((UINT32_C( 0x0810 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_A_TOUCH = ((UINT32_C( 0x0811 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_B_CLICK = ((UINT32_C( 0x0812 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_NEO3_B_TOUCH = ((UINT32_C( 0x0813 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_X_CLICK = ((UINT32_C( 0x0900 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_X_TOUCH = ((UINT32_C( 0x0901 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_Y_CLICK = ((UINT32_C( 0x0902 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_Y_TOUCH = ((UINT32_C( 0x0903 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_SYSTEM_CLICK = ((UINT32_C( 0x0905 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_TRIGGER_CLICK = ((UINT32_C( 0x0906 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_TRIGGER_VALUE = ((UINT32_C( 0x0907 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_PICO4_TRIGGER_TOUCH = ((UINT32_C( 0x0908 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_THUMBSTICK_CLICK = ((UINT32_C( 0x0909 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_THUMBSTICK_TOUCH = ((UINT32_C( 0x090A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_THUMBSTICK = ((UINT32_C( 0x090B ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_PICO4_SQUEEZE_CLICK = ((UINT32_C( 0x090C ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_SQUEEZE_VALUE = ((UINT32_C( 0x090D ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_PICO4_GRIP_POSE = ((UINT32_C( 0x090E ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_PICO4_AIM_POSE = ((UINT32_C( 0x090F ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_PICO4_A_CLICK = ((UINT32_C( 0x0910 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_A_TOUCH = ((UINT32_C( 0x0911 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_B_CLICK = ((UINT32_C( 0x0912 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_B_TOUCH = ((UINT32_C( 0x0913 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO4_MENU_CLICK = ((UINT32_C( 0x0914 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_G3_MENU_CLICK = ((UINT32_C( 0x0A01 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_G3_TRIGGER_CLICK = ((UINT32_C( 0x0A02 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_G3_TRIGGER_VALUE = ((UINT32_C( 0x0A03 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_PICO_G3_THUMBSTICK_CLICK = ((UINT32_C( 0x0A04 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_G3_THUMBSTICK_TOUCH = ((UINT32_C( 0x0A05 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_PICO_G3_THUMBSTICK = ((UINT32_C( 0x0A06 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_PICO_G3_GRIP_POSE = ((UINT32_C( 0x0A07 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_PICO_G3_AIM_POSE = ((UINT32_C( 0x0A08 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_VIVE_COSMOS_X_CLICK = ((UINT32_C( 0x0B00 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_COSMOS_Y_CLICK = ((UINT32_C( 0x0B01 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_COSMOS_MENU_CLICK = ((UINT32_C( 0x0B02 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_COSMOS_A_CLICK = ((UINT32_C( 0x0B03 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_COSMOS_B_CLICK = ((UINT32_C( 0x0B04 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_COSMOS_SYSTEM_CLICK = ((UINT32_C( 0x0B05 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_COSMOS_SHOULDER_CLICK = ((UINT32_C( 0x0B06 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_COSMOS_SQUEEZE_CLICK = ((UINT32_C( 0x0B07 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_COSMOS_TRIGGER_CLICK = ((UINT32_C( 0x0B08 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_COSMOS_TRIGGER_VALUE = ((UINT32_C( 0x0B09 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_VIVE_COSMOS_THUMBSTICK_CLICK = ((UINT32_C( 0x0B0A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_COSMOS_THUMBSTICK_TOUCH = ((UINT32_C( 0x0B0B ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_COSMOS_THUMBSTICK = ((UINT32_C( 0x0B0C ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_VIVE_COSMOS_GRIP_POSE = ((UINT32_C( 0x0B0D ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_VIVE_COSMOS_AIM_POSE = ((UINT32_C( 0x0B0E ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_VIVE_FOCUS3_X_CLICK = ((UINT32_C( 0x0C00 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_Y_CLICK = ((UINT32_C( 0x0C01 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_MENU_CLICK = ((UINT32_C( 0x0C02 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_A_CLICK = ((UINT32_C( 0x0C03 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_B_CLICK = ((UINT32_C( 0x0C04 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_SYSTEM_CLICK = ((UINT32_C( 0x0C05 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_SQUEEZE_CLICK = ((UINT32_C( 0x0C06 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_SQUEEZE_TOUCH = ((UINT32_C( 0x0C07 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_SQUEEZE_VALUE = ((UINT32_C( 0x0C08 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_VIVE_FOCUS3_TRIGGER_CLICK = ((UINT32_C( 0x0C09 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_TRIGGER_TOUCH = ((UINT32_C( 0x0C0A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_TRIGGER_VALUE = ((UINT32_C( 0x0C0B ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_VIVE_FOCUS3_THUMBSTICK_CLICK = ((UINT32_C( 0x0C0C ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_THUMBSTICK_TOUCH = ((UINT32_C( 0x0C0D ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_THUMBSTICK = ((UINT32_C( 0x0C0E ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_VIVE_FOCUS3_THUMBREST_TOUCH = ((UINT32_C( 0x0C0F ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_VIVE_FOCUS3_GRIP_POSE = ((UINT32_C( 0x0C10 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_VIVE_FOCUS3_AIM_POSE = ((UINT32_C( 0x0C11 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_TOUCH_PRO_X_CLICK = ((UINT32_C( 0x0D00 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_X_TOUCH = ((UINT32_C( 0x0D01 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_Y_CLICK = ((UINT32_C( 0x0D02 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_Y_TOUCH = ((UINT32_C( 0x0D03 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_MENU_CLICK = ((UINT32_C( 0x0D04 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_A_CLICK = ((UINT32_C( 0x0D05 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_A_TOUCH = ((UINT32_C( 0x0D06 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_B_CLICK = ((UINT32_C( 0x0D07 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_B_TOUCH = ((UINT32_C( 0x0D08 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_SYSTEM_CLICK = ((UINT32_C( 0x0D09 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_SQUEEZE_VALUE = ((UINT32_C( 0x0D0A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_PRO_TRIGGER_TOUCH = ((UINT32_C( 0x0D0B ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_TRIGGER_VALUE = ((UINT32_C( 0x0D0C ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_PRO_THUMBSTICK_CLICK = ((UINT32_C( 0x0D0D ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_THUMBSTICK_TOUCH = ((UINT32_C( 0x0D0E ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_THUMBSTICK = ((UINT32_C( 0x0D0F ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_TOUCH_PRO_THUMBREST_TOUCH = ((UINT32_C( 0x0D10 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_THUMBREST_FORCE = ((UINT32_C( 0x0D11 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_PRO_GRIP_POSE = ((UINT32_C( 0x0D12 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_TOUCH_PRO_AIM_POSE = ((UINT32_C( 0x0D13 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_TOUCH_PRO_TRIGGER_PROXIMITY = ((UINT32_C( 0x0D14 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_THUMB_PROXIMITY = ((UINT32_C( 0x0D15 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PRO_TRIGGER_CURL = ((UINT32_C( 0x0D16 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_PRO_TRIGGER_SLIDE = ((UINT32_C( 0x0D17 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_PRO_STYLUS_FORCE = ((UINT32_C( 0x0D18 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_PLUS_X_CLICK = ((UINT32_C( 0x0E00 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_X_TOUCH = ((UINT32_C( 0x0E01 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_Y_CLICK = ((UINT32_C( 0x0E02 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_Y_TOUCH = ((UINT32_C( 0x0E03 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_MENU_CLICK = ((UINT32_C( 0x0E04 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_A_CLICK = ((UINT32_C( 0x0E05 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_A_TOUCH = ((UINT32_C( 0x0E06 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_B_CLICK = ((UINT32_C( 0x0E07 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_B_TOUCH = ((UINT32_C( 0x0E08 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_SYSTEM_CLICK = ((UINT32_C( 0x0E09 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_SQUEEZE_VALUE = ((UINT32_C( 0x0E0A ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_PLUS_TRIGGER_TOUCH = ((UINT32_C( 0x0E0B ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_TRIGGER_PROXIMITY = ((UINT32_C( 0x0E0C ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_TRIGGER_VALUE = ((UINT32_C( 0x0E0D ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_PLUS_TRIGGER_FORCE = ((UINT32_C( 0x0E0E ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_PLUS_THUMBSTICK_CLICK = ((UINT32_C( 0x0E0F ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_THUMBSTICK_TOUCH = ((UINT32_C( 0x0E10 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_THUMBSTICK = ((UINT32_C( 0x0E11 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC2_MINUS_ONE_TO_ONE ) , XRT_INPUT_TOUCH_PLUS_THUMBREST_TOUCH = ((UINT32_C( 0x0E12 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_GRIP_POSE = ((UINT32_C( 0x0E13 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_TOUCH_PLUS_AIM_POSE = ((UINT32_C( 0x0E14 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_POSE ) , XRT_INPUT_TOUCH_PLUS_THUMB_PROXIMITY = ((UINT32_C( 0x0E15 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_BOOLEAN ) , XRT_INPUT_TOUCH_PLUS_TRIGGER_CURL = ((UINT32_C( 0x0E16 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) , XRT_INPUT_TOUCH_PLUS_TRIGGER_SLIDE = ((UINT32_C( 0x0E17 ) << 8u ) | (uint32_t)XRT_INPUT_TYPE_VEC1_ZERO_TO_ONE ) } |
Every internal input source known to monado with a baked in type. More... | |
enum | xrt_hand_joint { XRT_HAND_JOINT_PALM = 0 , XRT_HAND_JOINT_WRIST = 1 , XRT_HAND_JOINT_THUMB_METACARPAL = 2 , XRT_HAND_JOINT_THUMB_PROXIMAL = 3 , XRT_HAND_JOINT_THUMB_DISTAL = 4 , XRT_HAND_JOINT_THUMB_TIP = 5 , XRT_HAND_JOINT_INDEX_METACARPAL = 6 , XRT_HAND_JOINT_INDEX_PROXIMAL = 7 , XRT_HAND_JOINT_INDEX_INTERMEDIATE = 8 , XRT_HAND_JOINT_INDEX_DISTAL = 9 , XRT_HAND_JOINT_INDEX_TIP = 10 , XRT_HAND_JOINT_MIDDLE_METACARPAL = 11 , XRT_HAND_JOINT_MIDDLE_PROXIMAL = 12 , XRT_HAND_JOINT_MIDDLE_INTERMEDIATE = 13 , XRT_HAND_JOINT_MIDDLE_DISTAL = 14 , XRT_HAND_JOINT_MIDDLE_TIP = 15 , XRT_HAND_JOINT_RING_METACARPAL = 16 , XRT_HAND_JOINT_RING_PROXIMAL = 17 , XRT_HAND_JOINT_RING_INTERMEDIATE = 18 , XRT_HAND_JOINT_RING_DISTAL = 19 , XRT_HAND_JOINT_RING_TIP = 20 , XRT_HAND_JOINT_LITTLE_METACARPAL = 21 , XRT_HAND_JOINT_LITTLE_PROXIMAL = 22 , XRT_HAND_JOINT_LITTLE_INTERMEDIATE = 23 , XRT_HAND_JOINT_LITTLE_DISTAL = 24 , XRT_HAND_JOINT_LITTLE_TIP = 25 , XRT_HAND_JOINT_MAX_ENUM = 0x7FFFFFFF } |
Number of joints in a hand. More... | |
enum | xrt_hand { XRT_HAND_LEFT = 0 , XRT_HAND_RIGHT = 1 } |
Enumeration for left and right hand. More... | |
enum | xrt_finger { XRT_FINGER_LITTLE = 0 , XRT_FINGER_RING , XRT_FINGER_MIDDLE , XRT_FINGER_INDEX , XRT_FINGER_THUMB } |
Names for fingers on a hand. More... | |
enum | xrt_output_type { XRT_OUTPUT_TYPE_VIBRATION = 0x00 , XRT_OUTPUT_TYPE_FORCE_FEEDBACK = 0x01 } |
Base type of this output. More... | |
enum | xrt_output_name { XRT_OUTPUT_NAME_SIMPLE_VIBRATION = ((UINT32_C( 0x0010 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_PSMV_RUMBLE_VIBRATION = ((UINT32_C( 0x0020 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_INDEX_HAPTIC = ((UINT32_C( 0x0030 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_VIVE_HAPTIC = ((UINT32_C( 0x0040 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_WMR_HAPTIC = ((UINT32_C( 0x0050 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_XBOX_HAPTIC_LEFT = ((UINT32_C( 0x0060 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_XBOX_HAPTIC_RIGHT = ((UINT32_C( 0x0061 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_XBOX_HAPTIC_LEFT_TRIGGER = ((UINT32_C( 0x0062 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_XBOX_HAPTIC_RIGHT_TRIGGER = ((UINT32_C( 0x0063 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_TOUCH_HAPTIC = ((UINT32_C( 0x0070 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_FORCE_FEEDBACK_LEFT = ((UINT32_C( 0x0080 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_FORCE_FEEDBACK ) , XRT_OUTPUT_NAME_FORCE_FEEDBACK_RIGHT = ((UINT32_C( 0x0081 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_FORCE_FEEDBACK ) , XRT_OUTPUT_NAME_G2_CONTROLLER_HAPTIC = ((UINT32_C( 0x0090 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_ODYSSEY_CONTROLLER_HAPTIC = ((UINT32_C( 0x00A0 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_ML2_CONTROLLER_VIBRATION = ((UINT32_C( 0x00B0 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_PSSENSE_VIBRATION = ((UINT32_C( 0x00C0 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_PSSENSE_TRIGGER_FEEDBACK = ((UINT32_C( 0x00C1 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_FORCE_FEEDBACK ) , XRT_OUTPUT_NAME_VIVE_TRACKER_HAPTIC = ((UINT32_C( 0x00D0 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_OPPO_MR_HAPTIC = ((UINT32_C( 0x00E0 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_PICO_NEO3_HAPTIC = ((UINT32_C( 0x00F0 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_PICO4_HAPTIC = ((UINT32_C( 0x0100 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_VIVE_COSMOS_HAPTIC = ((UINT32_C( 0x0200 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_VIVE_FOCUS3_HAPTIC = ((UINT32_C( 0x0300 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_TOUCH_PRO_HAPTIC = ((UINT32_C( 0x0400 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_TOUCH_PRO_HAPTIC_TRIGGER = ((UINT32_C( 0x0500 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_TOUCH_PRO_HAPTIC_THUMB = ((UINT32_C( 0x0600 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) , XRT_OUTPUT_NAME_TOUCH_PLUS_HAPTIC = ((UINT32_C( 0x0700 ) << 8u ) | (uint32_t)XRT_OUTPUT_TYPE_VIBRATION ) } |
Name of a output with a baked in type. More... | |
enum | xrt_form_factor { XRT_FORM_FACTOR_HMD , XRT_FORM_FACTOR_HANDHELD } |
What form factor is this device, mostly maps onto OpenXR's XrFormFactor . More... | |
enum | xrt_visibility_mask_type { XRT_VISIBILITY_MASK_TYPE_HIDDEN_TRIANGLE_MESH = 1 , XRT_VISIBILITY_MASK_TYPE_VISIBLE_TRIANGLE_MESH = 2 , XRT_VISIBILITY_MASK_TYPE_LINE_LOOP = 3 } |
Visibility mask, mirror of XrVisibilityMaskKHR. More... | |
enum | xrt_fs_capture_type { XRT_FS_CAPTURE_TYPE_TRACKING = 0 , XRT_FS_CAPTURE_TYPE_CALIBRATION = 1 } |
Enum describing which type of capture we are doing. More... | |
enum | xrt_result { XRT_SUCCESS = 0 , XRT_TIMEOUT = 2 , XRT_SPACE_BOUNDS_UNAVAILABLE = 3 , XRT_ERROR_IPC_FAILURE = -1 , XRT_ERROR_NO_IMAGE_AVAILABLE = -2 , XRT_ERROR_VULKAN = -3 , XRT_ERROR_OPENGL = -4 , XRT_ERROR_FAILED_TO_SUBMIT_VULKAN_COMMANDS = -5 , XRT_ERROR_SWAPCHAIN_FLAG_VALID_BUT_UNSUPPORTED = -6 , XRT_ERROR_ALLOCATION = -7 , XRT_ERROR_POSE_NOT_ACTIVE = -8 , XRT_ERROR_FENCE_CREATE_FAILED = -9 , XRT_ERROR_NATIVE_HANDLE_FENCE_ERROR = -10 , XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED = -11 , XRT_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED = -12 , XRT_ERROR_EGL_CONFIG_MISSING = -13 , XRT_ERROR_THREADING_INIT_FAILURE = -14 , XRT_ERROR_IPC_SESSION_NOT_CREATED = -15 , XRT_ERROR_IPC_SESSION_ALREADY_CREATED = -16 , XRT_ERROR_PROBER_NOT_SUPPORTED = -17 , XRT_ERROR_PROBER_CREATION_FAILED = -18 , XRT_ERROR_PROBER_LIST_LOCKED = -19 , XRT_ERROR_PROBER_LIST_NOT_LOCKED = -20 , XRT_ERROR_PROBING_FAILED = -21 , XRT_ERROR_DEVICE_CREATION_FAILED = -22 , XRT_ERROR_D3D = -23 , XRT_ERROR_D3D11 = -24 , XRT_ERROR_D3D12 = -25 , XRT_ERROR_RECENTERING_NOT_SUPPORTED = -26 , XRT_ERROR_COMPOSITOR_NOT_SUPPORTED = -27 , XRT_ERROR_IPC_COMPOSITOR_NOT_CREATED = -28 , XRT_ERROR_NOT_IMPLEMENTED = -29 , XRT_ERROR_UNSUPPORTED_SPACE_TYPE = -30 , XRT_ERROR_ANDROID = -31 , XRT_ERROR_FEATURE_NOT_SUPPORTED = -32 , XRT_ERROR_INPUT_UNSUPPORTED = -33 } |
Result type used across Monado. More... | |
enum | xrt_session_event_type { XRT_SESSION_EVENT_NONE = 0 , XRT_SESSION_EVENT_STATE_CHANGE = 1 , XRT_SESSION_EVENT_OVERLAY_CHANGE = 2 , XRT_SESSION_EVENT_LOSS_PENDING = 3 , XRT_SESSION_EVENT_LOST = 4 , XRT_SESSION_EVENT_DISPLAY_REFRESH_RATE_CHANGE = 5 , XRT_SESSION_EVENT_REFERENCE_SPACE_CHANGE_PENDING = 6 , XRT_SESSION_EVENT_PERFORMANCE_CHANGE = 7 , XRT_SESSION_EVENT_PASSTHRU_STATE_CHANGE = 8 , XRT_SESSION_EVENT_VISIBILITY_MASK_CHANGE = 9 } |
Type of a xrt_session event. More... | |
enum | xrt_settings_camera_type { XRT_SETTINGS_CAMERA_TYPE_REGULAR_MONO = 0 , XRT_SETTINGS_CAMERA_TYPE_REGULAR_SBS = 1 , XRT_SETTINGS_CAMERA_TYPE_SLAM = 2 , XRT_SETTINGS_CAMERA_TYPE_PS4 = 3 , XRT_SETTINGS_CAMERA_TYPE_LEAP_MOTION = 4 } |
Camera type. More... | |
enum | xrt_tracking_override_type { XRT_TRACKING_OVERRIDE_DIRECT = 0 , XRT_TRACKING_OVERRIDE_ATTACHED } |
Tracking override type. More... | |
enum | xrt_tracking_type { XRT_TRACKING_TYPE_NONE , XRT_TRACKING_TYPE_RGB , XRT_TRACKING_TYPE_LIGHTHOUSE , XRT_TRACKING_TYPE_HYDRA , XRT_TRACKING_TYPE_EXTERNAL_SLAM , XRT_TRACKING_TYPE_OTHER } |
What kind of tracking system is this. More... | |
Functions | |
void | xrt_gfx_gl_get_versions (struct xrt_api_requirements *ver) |
void | xrt_gfx_gles_get_versions (struct xrt_api_requirements *ver) |
void | xrt_gfx_vk_get_versions (struct xrt_api_requirements *ver) |
static uint32_t * | xrt_visibility_mask_get_indices (const struct xrt_visibility_mask *mask) |
Visibility mask helper function to get the indices. More... | |
static struct xrt_vec2 * | xrt_visibility_mask_get_vertices (const struct xrt_visibility_mask *mask) |
Visibility mask helper function to get the vertices. More... | |
static size_t | xrt_visibility_mask_get_size (const struct xrt_visibility_mask *mask) |
Visibility mask helper function to get the total size of the struct. More... | |
static void | xrt_swapchain_reference (struct xrt_swapchain **dst, struct xrt_swapchain *src) |
Update the reference counts on swapchain(s). More... | |
static xrt_result_t | xrt_swapchain::xrt_swapchain_acquire_image (struct xrt_swapchain *xsc, uint32_t *out_index) |
Obtain the index of the next image to use, without blocking on being able to write to it. More... | |
static xrt_result_t | xrt_swapchain::xrt_swapchain_inc_image_use (struct xrt_swapchain *xsc, uint32_t index) |
Increments the use counter of a swapchain image. More... | |
static xrt_result_t | xrt_swapchain::xrt_swapchain_dec_image_use (struct xrt_swapchain *xsc, uint32_t index) |
Decrements the use counter of a swapchain image. More... | |
static xrt_result_t | xrt_swapchain::xrt_swapchain_wait_image (struct xrt_swapchain *xsc, int64_t timeout_ns, uint32_t index) |
Wait until image index is available for exclusive use, or until timeout_ns expires. More... | |
static xrt_result_t | xrt_swapchain::xrt_swapchain_barrier_image (struct xrt_swapchain *xsc, enum xrt_barrier_direction direction, uint32_t index) |
Do any barrier transitions to and from the application. More... | |
static xrt_result_t | xrt_swapchain::xrt_swapchain_release_image (struct xrt_swapchain *xsc, uint32_t index) |
See xrReleaseSwapchainImage, state tracker needs to track index. More... | |
static xrt_result_t | xrt_compositor_fence::xrt_compositor_fence_wait (struct xrt_compositor_fence *xcf, uint64_t timeout) |
Waits on the fence with the given timeout. More... | |
static void | xrt_compositor_fence::xrt_compositor_fence_destroy (struct xrt_compositor_fence **xcf_ptr) |
Destroys the fence. More... | |
static void | xrt_compositor_semaphore_reference (struct xrt_compositor_semaphore **dst, struct xrt_compositor_semaphore *src) |
Update the reference counts on compositor semaphore(s). More... | |
static xrt_result_t | xrt_compositor_semaphore::xrt_compositor_semaphore_wait (struct xrt_compositor_semaphore *xcsem, uint64_t value, uint64_t timeout) |
Does a CPU side wait on the semaphore to reach the given value. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_get_swapchain_create_properties (struct xrt_compositor *xc, const struct xrt_swapchain_create_info *info, struct xrt_swapchain_create_properties *xsccp) |
For a given xrt_swapchain_create_info struct returns a filled out xrt_swapchain_create_properties. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_create_passthrough (struct xrt_compositor *xc, const struct xrt_passthrough_create_info *info) |
Create a passthrough. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_create_passthrough_layer (struct xrt_compositor *xc, const struct xrt_passthrough_layer_create_info *info) |
Create a passthrough layer. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_destroy_passthrough (struct xrt_compositor *xc) |
Destroy a passthrough. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_get_display_refresh_rate (struct xrt_compositor *xc, float *out_display_refresh_rate_hz) |
Get the current display refresh rate. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_request_display_refresh_rate (struct xrt_compositor *xc, float display_refresh_rate_hz) |
Request system to change the display refresh rate to the requested value. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_set_performance_level (struct xrt_compositor *xc, enum xrt_perf_domain domain, enum xrt_perf_set_level level) |
Set CPU/GPU performance level. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_get_reference_bounds_rect (struct xrt_compositor *xc, enum xrt_reference_space_type reference_space_type, struct xrt_vec2 *bounds) |
Get the extents of the reference space's bounds rectangle. More... | |
static void | xrt_compositor::xrt_comp_destroy (struct xrt_compositor **xc_ptr) |
Teardown the compositor. More... | |
static void | xrt_swapchain_native_reference (struct xrt_swapchain_native **dst, struct xrt_swapchain_native *src) |
Update the reference counts on swapchain(s). More... | |
static xrt_result_t | xrt_compositor_native::xrt_comp_native_create_swapchain (struct xrt_compositor_native *xcn, const struct xrt_swapchain_create_info *info, struct xrt_swapchain_native **out_xscn) |
Create a native swapchain with a set of images. More... | |
static void | xrt_compositor_native::xrt_comp_native_destroy (struct xrt_compositor_native **xcn_ptr) |
Teardown the compositor. More... | |
static xrt_result_t | xrt_system_compositor::xrt_syscomp_set_state (struct xrt_system_compositor *xsc, struct xrt_compositor *xc, bool visible, bool focused) |
Sets the state of the compositor, generating any events to the client if the state is actually changed. More... | |
static xrt_result_t | xrt_system_compositor::xrt_syscomp_set_z_order (struct xrt_system_compositor *xsc, struct xrt_compositor *xc, int64_t z_order) |
Set the rendering Z order for rendering, visible has higher priority then z_order but is still saved until visible again. More... | |
static xrt_result_t | xrt_system_compositor::xrt_syscomp_set_main_app_visibility (struct xrt_system_compositor *xsc, struct xrt_compositor *xc, bool visible) |
Tell this client/session if the main application is visible or not. More... | |
static xrt_result_t | xrt_system_compositor::xrt_syscomp_notify_loss_pending (struct xrt_system_compositor *xsc, struct xrt_compositor *xc, int64_t loss_time_ns) |
Notify this client/session if the compositor is going to lose the ability of rendering. More... | |
static xrt_result_t | xrt_system_compositor::xrt_syscomp_notify_lost (struct xrt_system_compositor *xsc, struct xrt_compositor *xc) |
Notify this client/session if the compositor lost the ability of rendering. More... | |
static xrt_result_t | xrt_system_compositor::xrt_syscomp_notify_display_refresh_changed (struct xrt_system_compositor *xsc, struct xrt_compositor *xc, float from_display_refresh_rate_hz, float to_display_refresh_rate_hz) |
Notify this client/session if the display refresh rate has been changed. More... | |
static xrt_result_t | xrt_system_compositor::xrt_syscomp_create_native_compositor (struct xrt_system_compositor *xsc, const struct xrt_session_info *xsi, struct xrt_session_event_sink *xses, struct xrt_compositor_native **out_xcn) |
Create a new native compositor. More... | |
static void | xrt_system_compositor::xrt_syscomp_destroy (struct xrt_system_compositor **xsc_ptr) |
Teardown the system compositor. More... | |
static void | xrt_image_native_allocator::xrt_images_destroy (struct xrt_image_native_allocator **xina_ptr) |
Destroy the image allocator. More... | |
static void | xrt_reference::xrt_reference_inc (struct xrt_reference *xref) |
Increment the reference, probably want xrt_reference_inc_and_was_zero. More... | |
static void | xrt_reference::xrt_reference_dec (struct xrt_reference *xref) |
Decrement the reference, probably want xrt_reference_dec_and_is_zero. More... | |
static XRT_CHECK_RESULT bool | xrt_reference::xrt_reference_inc_and_was_zero (struct xrt_reference *xref) |
Increment the reference and return true if the value was zero. More... | |
static XRT_CHECK_RESULT bool | xrt_reference::xrt_reference_dec_and_is_zero (struct xrt_reference *xref) |
Decrement the reference and return true if the value is now zero. More... | |
static void | xrt_frame_reference (struct xrt_frame **dst, struct xrt_frame *src) |
Update the reference counts on frame(s). More... | |
struct xrt_compositor_d3d11 * | xrt_compositor_native::xrt_gfx_d3d11_provider_create (struct xrt_compositor_native *xcn, ID3D11Device *device) |
Create a D3D11 compositor client. More... | |
struct xrt_compositor_d3d12 * | xrt_compositor_native::xrt_gfx_d3d12_provider_create (struct xrt_compositor_native *xcn, ID3D12Device *device, ID3D12CommandQueue *queue) |
Create a D3D12 compositor client. More... | |
xrt_result_t | xrt_compositor_native::xrt_gfx_provider_create_gl_egl (struct xrt_compositor_native *xcn, EGLDisplay display, EGLConfig config, EGLContext context, PFNEGLGETPROCADDRESSPROC get_gl_procaddr, bool renderdoc_enabled, struct xrt_compositor_gl **out_xcgl) |
Create an OpenGL(ES) compositor client using EGL. More... | |
struct xrt_compositor_vk * | xrt_compositor_native::xrt_gfx_vk_provider_create (struct xrt_compositor_native *xcn, VkInstance instance, PFN_vkGetInstanceProcAddr get_instance_proc_addr, VkPhysicalDevice physical_device, VkDevice device, bool external_fence_fd_enabled, bool external_semaphore_fd_enabled, bool timeline_semaphore_enabled, bool debug_utils_enabled, bool renderdoc_enabled, uint32_t queue_family_index, uint32_t queue_index) |
Create a Vulkan compositor client. More... | |
struct xrt_compositor_gl * | xrt_compositor_native::xrt_gfx_provider_create_gl_win32 (struct xrt_compositor_native *xcn, void *hDC, void *hGLRC) |
Create an OpenGL compositor client using Win32. More... | |
struct xrt_compositor_gl * | xrt_compositor_native::xrt_gfx_provider_create_gl_xlib (struct xrt_compositor_native *xcn, Display *xDisplay, uint32_t visualid, GLXFBConfig glxFBConfig, GLXDrawable glxDrawable, GLXContext glxContext) |
Create an OpenGL compositor client using xlib. More... | |
static xrt_result_t | xrt_instance::xrt_instance_create_system (struct xrt_instance *xinst, struct xrt_system **out_xsys, struct xrt_system_devices **out_xsysd, struct xrt_space_overseer **out_xso, struct xrt_system_compositor **out_xsysc) |
Creates all of the system resources like the devices and system compositor. More... | |
static xrt_result_t | xrt_instance::xrt_instance_get_prober (struct xrt_instance *xinst, struct xrt_prober **out_xp) |
Get the instance xrt_prober, if any. More... | |
static void | xrt_instance::xrt_instance_destroy (struct xrt_instance **xinst_ptr) |
Destroy an xrt_instance - helper function. More... | |
static void | xrt_space_reference (struct xrt_space **dst, struct xrt_space *src) |
Update the reference counts on space(s). More... | |
static void | xrt_imu_sink::xrt_sink_push_imu (struct xrt_imu_sink *sink, struct xrt_imu_sample *sample) |
static void | xrt_pose_sink::xrt_sink_push_pose (struct xrt_pose_sink *sink, struct xrt_pose_sample *sample) |
static void | xrt_hand_masks_sink::xrt_sink_push_hand_masks (struct xrt_hand_masks_sink *sink, struct xrt_hand_masks_sample *hand_masks) |
static void | xrt_tracked_psmv::xrt_tracked_psmv_get_tracked_pose (struct xrt_tracked_psmv *psmv, enum xrt_input_name name, timepoint_ns when_ns, struct xrt_space_relation *out_relation) |
static void | xrt_tracked_psmv::xrt_tracked_psmv_push_imu (struct xrt_tracked_psmv *psmv, timepoint_ns timestamp_ns, struct xrt_tracking_sample *sample) |
static void | xrt_tracked_psmv::xrt_tracked_psmv_destroy (struct xrt_tracked_psmv **xtmv_ptr) |
static void | xrt_tracked_psmv::xrt_tracked_psvr_get_tracked_pose (struct xrt_tracked_psvr *psvr, timepoint_ns when_ns, struct xrt_space_relation *out_relation) |
static void | xrt_tracked_psmv::xrt_tracked_psvr_push_imu (struct xrt_tracked_psvr *psvr, timepoint_ns timestamp_ns, struct xrt_tracking_sample *sample) |
static void | xrt_tracked_psmv::xrt_tracked_psvr_destroy (struct xrt_tracked_psvr **xtvr_ptr) |
static void | xrt_tracked_slam::xrt_tracked_slam_get_tracked_pose (struct xrt_tracked_slam *slam, timepoint_ns when_ns, struct xrt_space_relation *out_relation) |
Variables | |
const char * | xrt_gfx_vk_instance_extensions |
A space-delimited string of Vulkan instance extensions required from a client. More... | |
const char * | xrt_gfx_vk_device_extensions |
A space-delimited string of Vulkan device extensions required from a client. More... | |
Function pointers for extensions | |
static xrt_result_t | xrt_comp_set_thread_hint (struct xrt_compositor *xc, enum xrt_thread_hint hint, uint32_t thread_id) |
Set thread attributes according to thread type. More... | |
Swapchain and sync creation and import methods | |
static xrt_result_t | xrt_compositor::xrt_comp_create_swapchain (struct xrt_compositor *xc, const struct xrt_swapchain_create_info *info, struct xrt_swapchain **out_xsc) |
Create a swapchain with a set of images. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_import_swapchain (struct xrt_compositor *xc, const struct xrt_swapchain_create_info *info, struct xrt_image_native *native_images, uint32_t image_count, struct xrt_swapchain **out_xsc) |
Create a swapchain from a set of native images. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_import_fence (struct xrt_compositor *xc, xrt_graphics_sync_handle_t handle, struct xrt_compositor_fence **out_xcf) |
Create a compositor fence from a native sync handle. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_create_semaphore (struct xrt_compositor *xc, xrt_graphics_sync_handle_t *out_handle, struct xrt_compositor_semaphore **out_xcsem) |
Create a compositor semaphore, also returns a native handle. More... | |
Session methods | |
static xrt_result_t | xrt_compositor::xrt_comp_begin_session (struct xrt_compositor *xc, const struct xrt_begin_session_info *info) |
See xrBeginSession. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_end_session (struct xrt_compositor *xc) |
See xrEndSession, unlike the OpenXR one the state tracker is responsible to call discard frame before calling this function. More... | |
Frame-related methods | |
Related to the OpenXR | |
static xrt_result_t | xrt_compositor::xrt_comp_predict_frame (struct xrt_compositor *xc, int64_t *out_frame_id, int64_t *out_wake_time_ns, int64_t *out_predicted_gpu_time_ns, int64_t *out_predicted_display_time_ns, int64_t *out_predicted_display_period_ns) |
This function and mark_frame function calls are a alternative to wait_frame. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_mark_frame (struct xrt_compositor *xc, int64_t frame_id, enum xrt_compositor_frame_point point, int64_t when_ns) |
This function and predict_frame function calls are a alternative to wait_frame. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_wait_frame (struct xrt_compositor *xc, int64_t *out_frame_id, int64_t *out_predicted_display_time, int64_t *out_predicted_display_period) |
See xrWaitFrame. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_begin_frame (struct xrt_compositor *xc, int64_t frame_id) |
See xrBeginFrame. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_discard_frame (struct xrt_compositor *xc, int64_t frame_id) |
Explicitly discard a frame. More... | |
Layer submission methods | |
Equivalent to | |
static xrt_result_t | xrt_compositor::xrt_comp_layer_begin (struct xrt_compositor *xc, const struct xrt_layer_frame_data *data) |
Begins layer submission. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_layer_projection (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc[XRT_MAX_VIEWS], const struct xrt_layer_data *data) |
Adds a projection layer for submissions. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_layer_projection_depth (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc[XRT_MAX_VIEWS], struct xrt_swapchain *d_xsc[XRT_MAX_VIEWS], const struct xrt_layer_data *data) |
Adds a projection layer for submission, has depth information. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_layer_quad (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
Adds a quad layer for submission, the center of the quad is specified by the pose and extends outwards from it. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_layer_cube (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
Adds a cube layer for submission. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_layer_cylinder (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
Adds a cylinder layer for submission. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_layer_equirect1 (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
Adds a equirect1 layer for submission. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_layer_equirect2 (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
Adds a equirect2 layer for submission. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_layer_passthrough (struct xrt_compositor *xc, struct xrt_device *xdev, const struct xrt_layer_data *data) |
Adds a passthrough layer for submission. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_layer_commit (struct xrt_compositor *xc, xrt_graphics_sync_handle_t sync_handle) |
Commits all of the submitted layers. More... | |
static xrt_result_t | xrt_compositor::xrt_comp_layer_commit_with_semaphore (struct xrt_compositor *xc, struct xrt_compositor_semaphore *xcsem, uint64_t value) |
Commits all of the submitted layers, with a semaphore. More... | |
Factory | |
Implemented in each target. | |
xrt_result_t | xrt_instance_create (struct xrt_instance_info *ii, struct xrt_instance **out_xinst) |
Create an implementation of the xrt_instance interface. More... | |
The main interface shared between the different components of Monado.
Platform-specific information for an instance.
Does not get transported between processes.
#define container_of | ( | ptr, | |
type, | |||
field | |||
) | (type *)((char *)ptr - offsetof(type, field)) |
#include <xrt/xrt_compiler.h>
Get the holder from a pointer to a field.
#define XRT_DEBUGBREAK | ( | ) |
#include <xrt/xrt_compiler.h>
To trigger a trap/break in the debugger.
#define XRT_FINGER_COUNT 5 |
#include <xrt/xrt_defines.h>
Number of fingers on a hand.
#define XRT_FREQUENCY_UNSPECIFIED 0 |
#include <xrt/xrt_defines.h>
Value used to indicate a haptic pulse of some runtime defined optimal frequency.
#define XRT_GET_INPUT_ID | ( | name | ) | ((uint32_t)(name >> XRT_INPUT_TYPE_BITWIDTH)) |
#include <xrt/xrt_defines.h>
Extract the xrt_input_name id from an xrt_input_name.
name | An xrt_input_name value |
#define XRT_GET_INPUT_TYPE | ( | name | ) | ((enum xrt_input_type)(name & XRT_INPUT_TYPE_BITMASK)) |
#include <xrt/xrt_defines.h>
Extract the xrt_input_type from an xrt_input_name.
name | An xrt_input_name value |
#define XRT_HAND_JOINT_COUNT 26 |
#include <xrt/xrt_defines.h>
Number of joints in a hand.
Corresponds to XR_HAND_JOINT_COUNT_EXT.
#define XRT_INFINITE_DURATION (0x7fffffffffffffffLL) |
#include <xrt/xrt_defines.h>
Value used as a timeout to indicate the timeout should never occur.
#define XRT_INPUT_NAME | ( | id, | |
type | |||
) | ((UINT32_C(id) << XRT_INPUT_TYPE_BITWIDTH) | (uint32_t)XRT_INPUT_TYPE_##type) |
#include <xrt/xrt_defines.h>
Create an enum value for xrt_input_name that packs an ID and input type.
id | an integer |
type | The suffix of an xrt_input_type value name: XRT_INPUT_TYPE_ is prepended automatically. |
#define XRT_INPUT_TYPE_BITMASK 0xffu |
#include <xrt/xrt_defines.h>
The mask associated with XRT_INPUT_TYPE_BITWIDTH.
#define XRT_INPUT_TYPE_BITWIDTH 8u |
#include <xrt/xrt_defines.h>
The number of bits reserved for the input type in xrt_input_name.
#define XRT_LUID_SIZE 8 |
#include <xrt/xrt_defines.h>
Internal define for VK_LUID_SIZE.
#define XRT_MATRIX_2X2_ELEMENTS 4 |
#include <xrt/xrt_defines.h>
The number of values in xrt_matrix_2x2.
#define XRT_MATRIX_2X2_VECS 2 |
#include <xrt/xrt_defines.h>
The number of 2d vectors in xrt_matrix_2x2.
#define XRT_MATRIX_3X3_ELEMENTS 9 |
#include <xrt/xrt_defines.h>
The number of values in xrt_matrix_3x3.
#define XRT_MATRIX_4X4_ELEMENTS 16 |
#include <xrt/xrt_defines.h>
The number of values in a 4x4 matrix like xrt_matrix_4x4 and xrt_matrix_4x4_f64.
#define XRT_MAX_AUTO_PROBERS 16 |
#include <xrt/xrt_prober.h>
The maximum number of xrt_auto_prober instances that can be handled.
#define XRT_MAX_DEVICES_PER_PROBE 16 |
#include <xrt/xrt_prober.h>
The maximum number of devices that a single xrt_prober_entry::found or xrt_auto_prober::lelo_dallas_autoprobe function called by the prober can create per-call.
#define XRT_MAX_IPC_HANDLES 16 |
#include <xrt/xrt_limits.h>
Maximum number of handles sent in one call.
#define XRT_MAX_LAYERS 128 |
#include <xrt/xrt_limits.h>
Max number of layers which can be handled at once.
#define XRT_MAX_SUPPORTED_REFRESH_RATES 16 |
#include <xrt/xrt_limits.h>
Max number of supported display refresh rates, artificial limit.
#define XRT_MAX_SWAPCHAIN_CREATE_INFO_FORMAT_LIST_COUNT 8 |
#include <xrt/xrt_limits.h>
Max formats in the swapchain creation info formats list, artificial limit.
#define XRT_MAX_SWAPCHAIN_FORMATS 16 |
#include <xrt/xrt_limits.h>
Max formats supported by a compositor, artificial limit.
#define XRT_MAX_SWAPCHAIN_IMAGES 8 |
#include <xrt/xrt_limits.h>
Max swapchain images, artificial limit.
Must be smaller or the same as XRT_MAX_IPC_HANDLES.
#define XRT_MIN_HAPTIC_DURATION -1 |
#include <xrt/xrt_defines.h>
Value used to indicate a haptic pulse of the minimal supported duration.
#define XRT_OUTPUT_TYPE_BITMASK 0xffu |
#include <xrt/xrt_defines.h>
The mask associated with XRT_OUTPUT_TYPE_BITWIDTH.
#define XRT_OUTPUT_TYPE_BITWIDTH 8u |
#include <xrt/xrt_defines.h>
The number of bits reserved for the input type in xrt_output_name.
#define XRT_SPACE_REFERENCE_TYPE_COUNT (XRT_SPACE_REFERENCE_TYPE_UNBOUNDED + 1) |
#include <xrt/xrt_defines.h>
The number of enumerations in xrt_reference_space_type.
#define XRT_SPACE_REFERENCE_TYPE_INVALID ((enum xrt_reference_space_type)(-1)) |
#include <xrt/xrt_defines.h>
An invalid xrt_reference_space_type, since it's invalid it's not listed in the enum.
#define XRT_STRUCT_INIT {} |
#include <xrt/xrt_compiler.h>
Very small default init for structs that works in both C and C++.
Helps with code that needs to be compiled with both C and C++.
#define XRT_SYSTEM_MAX_DEVICES (32) |
#include <xrt/xrt_system.h>
Maximum number of devices simultaneously usable by an implementation of xrt_system_devices.
#define XRT_UUID_SIZE 16 |
#include <xrt/xrt_defines.h>
Internal define for VK_UUID_SIZE and XR_UUID_SIZE_EXT.
typedef struct xrt_auto_prober *(* xrt_auto_prober_create_func_t) (void) |
#include <xrt/xrt_prober.h>
Function pointer type for creating a auto prober.
typedef struct xrt_builder *(* xrt_builder_create_func_t) (void) |
#include <xrt/xrt_prober.h>
Function pointer type for creating a xrt_builder.
typedef struct xrt_limited_unique_id xrt_limited_unique_id_t |
#include <xrt/xrt_defines.h>
Typedef for xrt_limited_unique_id.
typedef struct xrt_luid xrt_luid_t |
#include <xrt/xrt_defines.h>
Typedef for xrt_luid.
typedef void(* xrt_prober_list_video_func_t) (struct xrt_prober *xp, struct xrt_prober_device *pdev, const char *product, const char *manufacturer, const char *serial, void *ptr) |
#include <xrt/xrt_prober.h>
Callback for listing video devices.
xp | Prober |
pdev | Prober device being iterated |
product | Product string, if available |
manufacturer | Manufacturer string, if available |
serial | Serial number string, if available |
ptr | Your opaque userdata pointer as provided to xrt_prober_list_video_devices |
typedef enum xrt_result xrt_result_t |
#include <xrt/xrt_results.h>
Result type used across Monado.
0 is XRT_SUCCESS, positive values are "special" non-error return codes (like timeout), negative values are errors.
typedef struct xrt_uuid xrt_uuid_t |
#include <xrt/xrt_defines.h>
Typedef for xrt_uuid.
#include <tracking/t_hand_tracking.h>
Image boundary type.
Currently used by hand-tracking to determine if parts of the hand are not visible to the camera, ie. they are outside of the camera's vignette.
Feel free to move this out of t_hand_tracking if this becomes more generally applicable.
#include <xrt/xrt_compositor.h>
The direction of a transition.
enum xrt_blend_factor |
#include <xrt/xrt_compositor.h>
Blend factors.
enum xrt_blend_mode |
#include <xrt/xrt_defines.h>
Blend mode that the device supports, exact mirror of XrEnvironmentBlendMode.
This is not a bitmask because we want to be able to express a preference order that may vary by device, etc.
enum xrt_compare_op_fb |
#include <xrt/xrt_compositor.h>
XrCompareOpFB.
#include <xrt/xrt_compositor.h>
Enumerator | |
---|---|
XRT_COMPOSITOR_FRAME_POINT_WOKE | The client woke up after waiting. |
enum xrt_device_type |
#include <xrt/xrt_defines.h>
How an xrt_device can be used.
enum xrt_finger |
#include <xrt/xrt_defines.h>
Names for fingers on a hand.
enum xrt_form_factor |
#include <xrt/xrt_defines.h>
What form factor is this device, mostly maps onto OpenXR's XrFormFactor
.
Enumerator | |
---|---|
XRT_FORM_FACTOR_HMD | Head mounted display. |
XRT_FORM_FACTOR_HANDHELD | Handheld display. |
enum xrt_fs_capture_type |
enum xrt_hand |
#include <xrt/xrt_defines.h>
Enumeration for left and right hand.
enum xrt_hand_joint |
enum xrt_input_name |
#include <xrt/xrt_defines.h>
Every internal input source known to monado with a baked in type.
Values are maintained in XRT_INPUT_LIST.
enum xrt_input_type |
#include <xrt/xrt_defines.h>
Base type of this inputs.
#include <xrt/xrt_compositor.h>
Bit field for holding information about how a layer should be composited.
Enumerator | |
---|---|
XRT_LAYER_COMPOSITION_VIEW_SPACE_BIT | The layer is locked to the device and the pose should only be adjusted for the IPD. |
XRT_LAYER_COMPOSITION_COLOR_BIAS_SCALE | If this flag is set the compositor should use the scale and bias from the xrt_layer_data struct. |
XRT_COMPOSITION_LAYER_PROCESSING_NORMAL_SUPER_SAMPLING_BIT_FB | Normal super sampling, see XrCompositionLayerSettingsFlagsFB. |
XRT_COMPOSITION_LAYER_PROCESSING_QUALITY_SUPER_SAMPLING_BIT_FB | Quality super sampling, see XrCompositionLayerSettingsFlagsFB. |
XRT_COMPOSITION_LAYER_PROCESSING_NORMAL_SHARPENING_BIT_FB | Normal sharpening, see XrCompositionLayerSettingsFlagsFB. |
XRT_COMPOSITION_LAYER_PROCESSING_QUALITY_SHARPENING_BIT_FB | Quality sharpening, see XrCompositionLayerSettingsFlagsFB. |
XRT_LAYER_COMPOSITION_ADVANCED_BLENDING_BIT | This layer has advanced blending information, this bit supersedes the behavior of XRT_LAYER_COMPOSITION_BLEND_TEXTURE_SOURCE_ALPHA_BIT, see |
XRT_LAYER_COMPOSITION_DEPTH_TEST | Depth testing is requested when composing this layer if this flag is set, see XrCompositionLayerDepthTestFB. |
#include <xrt/xrt_compositor.h>
Which view is the layer visible to?
Used for quad layers.
enum xrt_layer_type |
#include <xrt/xrt_compositor.h>
Layer type.
enum xrt_output_name |
enum xrt_output_type |
#include <xrt/xrt_defines.h>
Base type of this output.
#include <xrt/xrt_defines.h>
Type of a OpenXR mapped reference space, maps to the semantic spaces on the xrt_space_overseer struct.
This is used to refer to indirectly for instance when letting the overseer know that an application is using a particular reference space.
enum xrt_result |
#include <xrt/xrt_results.h>
Result type used across Monado.
0 is XRT_SUCCESS, positive values are "special" non-error return codes (like timeout), negative values are errors.
Enumerator | |
---|---|
XRT_SUCCESS | The operation succeeded. |
XRT_TIMEOUT | The operation was given a timeout and timed out. The value 2 picked so it matches VK_TIMEOUT. |
XRT_SPACE_BOUNDS_UNAVAILABLE | The space’s bounds are not known at the moment. |
XRT_ERROR_IPC_FAILURE | A problem occurred either with the IPC transport itself, with invalid commands from the client, or with invalid responses from the server. |
XRT_ERROR_NO_IMAGE_AVAILABLE | Returned when trying to acquire or release an image and there is no image left to acquire/no space in the queue left to release to. |
XRT_ERROR_VULKAN | Other unspecified error related to Vulkan. |
XRT_ERROR_OPENGL | Other unspecified error related to OpenGL. |
XRT_ERROR_FAILED_TO_SUBMIT_VULKAN_COMMANDS | The function tried to submit Vulkan commands but received an error. |
XRT_ERROR_SWAPCHAIN_FLAG_VALID_BUT_UNSUPPORTED | Returned when a swapchain create flag is passed that is valid, but not supported by the main compositor (and lack of support is also valid). For use when e.g. the protected content image flag is requested but isn't supported. |
XRT_ERROR_ALLOCATION | Could not allocate native image buffer(s). |
XRT_ERROR_POSE_NOT_ACTIVE | The pose is no longer active, this happens when the application tries to get a pose that is no longer active. |
XRT_ERROR_FENCE_CREATE_FAILED | Creating a fence failed. |
XRT_ERROR_NATIVE_HANDLE_FENCE_ERROR | Getting or giving the native fence handle caused a error. |
XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED | Multiple not supported on this layer level (IPC, compositor). |
XRT_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED | The requested format is not supported by Monado. |
XRT_ERROR_EGL_CONFIG_MISSING | The given config was EGL_NO_CONFIG_KHR and EGL_KHR_no_config_context is not supported by the display. |
XRT_ERROR_THREADING_INIT_FAILURE | Failed to initialize threading components. |
XRT_ERROR_IPC_SESSION_NOT_CREATED | The client has not created a session on this IPC connection, which is needed for the given command. |
XRT_ERROR_IPC_SESSION_ALREADY_CREATED | The client has already created a session on this IPC connection. |
XRT_ERROR_PROBER_NOT_SUPPORTED | The prober list has not been locked before this call. |
XRT_ERROR_PROBER_CREATION_FAILED | Creating the xrt_prober failed. |
XRT_ERROR_PROBER_LIST_LOCKED | The prober list is locked (already). |
XRT_ERROR_PROBER_LIST_NOT_LOCKED | The prober list has not been locked before this call. |
XRT_ERROR_PROBING_FAILED | The probring failed. |
XRT_ERROR_DEVICE_CREATION_FAILED | Creating a xrt_device failed. |
XRT_ERROR_D3D | Some D3D error, from code shared between D3D11 and D3D12. |
XRT_ERROR_D3D11 | Some D3D11 error. |
XRT_ERROR_D3D12 | Some D3D12 error. |
XRT_ERROR_RECENTERING_NOT_SUPPORTED | The xrt_space_overseer doesn't support recentering driven from the application side of things. |
XRT_ERROR_COMPOSITOR_NOT_SUPPORTED | The system doesn't support compositor, this error can be returned when trying to create the system compositor or trying to create the native compositor. |
XRT_ERROR_IPC_COMPOSITOR_NOT_CREATED | The client has not created a compositor on this IPC connection, which is needed for the given command. |
XRT_ERROR_NOT_IMPLEMENTED | The interface function called is not implemented by its interface. |
XRT_ERROR_UNSUPPORTED_SPACE_TYPE | The supplied space type is not supported for this operation. |
XRT_ERROR_ANDROID | Some other Android error, typically a logic error that should be impossible to reach. |
XRT_ERROR_FEATURE_NOT_SUPPORTED | Returned when a feature is not supported by the device. |
XRT_ERROR_INPUT_UNSUPPORTED | The input provided is a valid value from the enum xrt_input_name but is not supported by the driver. |
#include <xrt/xrt_session.h>
Type of a xrt_session event.
#include <xrt/xrt_settings.h>
Camera type.
#include <xrt/xrt_defines.h>
Flags of which components of a xrt_space_relation is valid.
enum xrt_stereo_format |
#include <xrt/xrt_defines.h>
What type of stereo format a frame has.
Enumerator | |
---|---|
XRT_STEREO_FORMAT_SBS | Side by side. |
XRT_STEREO_FORMAT_INTERLEAVED | Interleaved pixels. |
XRT_STEREO_FORMAT_OAU | Over & Under. |
#include <xrt/xrt_compositor.h>
Special flags for creating swapchain images.
Enumerator | |
---|---|
XRT_SWAPCHAIN_CREATE_PROTECTED_CONTENT | Our compositor just ignores this bit. |
XRT_SWAPCHAIN_CREATE_STATIC_IMAGE | Signals that the allocator should only allocate one image. |
#include <xrt/xrt_compositor.h>
Usage of the swapchain images.
enum xrt_thread_hint |
#include <xrt/xrt_compositor.h>
Hints the XR runtime what type of task the thread is doing.
#include <xrt/xrt_settings.h>
Tracking override type.
enum xrt_tracking_type |
#include <xrt/xrt_tracking.h>
What kind of tracking system is this.
enum xrt_view_type |
#include <xrt/xrt_compositor.h>
View type to be rendered to by the compositor.
#include <xrt/xrt_defines.h>
Visibility mask, mirror of XrVisibilityMaskKHR.
|
inlinestatic |
See xrBeginFrame.
Must have made a call to either predict_frame or wait_frame before calling this function. After this function is called you must call layer_commit.
[in] | xc | The compositor |
[in] | frame_id | Frame id |
Helper for calling through the function pointer.
References xrt_compositor::begin_frame.
|
inlinestatic |
See xrBeginSession.
Helper for calling through the function pointer.
References xrt_compositor::begin_session, and xrt_compositor::info.
Referenced by oxr_session_begin().
|
inlinestatic |
Create a passthrough.
Helper for calling through the function pointer.
References xrt_compositor::create_passthrough, and xrt_compositor::info.
|
inlinestatic |
Create a passthrough layer.
Helper for calling through the function pointer.
References xrt_compositor::create_passthrough_layer, and xrt_compositor::info.
|
inlinestatic |
Create a compositor semaphore, also returns a native handle.
Helper for calling through the function pointer.
References xrt_compositor::create_semaphore.
|
inlinestatic |
Create a swapchain with a set of images.
The pointer pointed to by out_xsc
has to either be NULL or a valid xrt_swapchain pointer. If there is a valid xrt_swapchain pointed by the pointed pointer it will have it reference decremented.
Helper for calling through the function pointer.
References xrt_compositor::create_swapchain, and xrt_compositor::info.
Referenced by xrt_compositor_native::xrt_comp_native_create_swapchain().
|
inlinestatic |
Teardown the compositor.
The state tracker must have made sure that no frames or sessions are currently pending.
Helper for calling through the function pointer: does a null check and sets xc_ptr to null if freed.
References xrt_compositor::destroy.
|
inlinestatic |
Destroy a passthrough.
Helper for calling through the function pointer.
References xrt_compositor::destroy_passthrough.
|
inlinestatic |
Explicitly discard a frame.
This isn't in the OpenXR API but is explicit in the XRT interfaces.
Two calls to xrBeginFrame without intervening xrEndFrame will cause the state tracker to call:
Helper for calling through the function pointer.
References xrt_compositor::discard_frame.
|
inlinestatic |
See xrEndSession, unlike the OpenXR one the state tracker is responsible to call discard frame before calling this function.
See discard_frame.
Helper for calling through the function pointer.
References xrt_compositor::end_session.
|
inlinestatic |
Get the current display refresh rate.
xc | Self pointer |
out_display_refresh_rate_hz | Current display refresh rate in Hertz. |
Helper for calling through the function pointer.
References xrt_compositor::get_display_refresh_rate.
|
inlinestatic |
Get the extents of the reference space's bounds rectangle.
Helper for calling through the function pointer.
References xrt_compositor::get_reference_bounds_rect, and XRT_ERROR_NOT_IMPLEMENTED.
|
inlinestatic |
For a given xrt_swapchain_create_info struct returns a filled out xrt_swapchain_create_properties.
Helper for calling through the function pointer.
References xrt_compositor::get_swapchain_create_properties, and xrt_compositor::info.
Referenced by base_create_swapchain(), client_d3d11_create_swapchain(), and client_d3d12_create_swapchain().
|
inlinestatic |
Create a compositor fence from a native sync handle.
Helper for calling through the function pointer.
References xrt_compositor::import_fence.
|
inlinestatic |
Create a swapchain from a set of native images.
The pointer pointed to by out_xsc
has to either be NULL or a valid xrt_swapchain pointer. If there is a valid xrt_swapchain pointed by the pointed pointer it will have it reference decremented.
Helper for calling through the function pointer.
References xrt_compositor::import_swapchain, and xrt_compositor::info.
|
inlinestatic |
Begins layer submission.
This and the other layer_*
calls are equivalent to xrEndFrame, except split over multiple calls. It's only after xrt_compositor::layer_commit that layers will be displayed. From the point of view of the swapchain, the image is used as soon as it's given in a call.
Helper for calling through the function pointer.
|
inlinestatic |
Commits all of the submitted layers.
Only after this call will the compositor actually use the layers.
Helper for calling through the function pointer.
References xrt_compositor::layer_commit.
|
inlinestatic |
Commits all of the submitted layers, with a semaphore.
Only after this call will the compositor actually use the layers.
xc | Self pointer |
xcsem | Semaphore that will be signalled when the app GPU work has completed. |
value | Semaphore value upone completion of GPU work. |
Helper for calling through the function pointer.
References xrt_compositor::layer_commit_with_semaphore.
|
inlinestatic |
Adds a cube layer for submission.
xc | Self pointer |
xdev | The device the layer is relative to. |
xsc | Swapchain. |
data | All of the pure data bits (not pointers/handles), including what part of the supplied swapchain object to use. |
Helper for calling through the function pointer.
|
inlinestatic |
Adds a cylinder layer for submission.
xc | Self pointer |
xdev | The device the layer is relative to. |
xsc | Swapchain. |
data | All of the pure data bits (not pointers/handles), including what part of the supplied swapchain object to use. |
Helper for calling through the function pointer.
|
inlinestatic |
Adds a equirect1 layer for submission.
xc | Self pointer |
xdev | The device the layer is relative to. |
xsc | Swapchain. |
data | All of the pure data bits (not pointers/handles), including what part of the supplied swapchain object to use. |
Helper for calling through the function pointer.
|
inlinestatic |
Adds a equirect2 layer for submission.
xc | Self pointer |
xdev | The device the layer is relative to. |
xsc | Swapchain. |
data | All of the pure data bits (not pointers/handles), including what part of the supplied swapchain object to use. |
Helper for calling through the function pointer.
|
inlinestatic |
Adds a passthrough layer for submission.
xc | Self pointer |
xdev | The device the layer is relative to. |
data | All of the pure data bits (not pointers/handles), including what part of the supplied swapchain object to use. |
Helper for calling through the function pointer.
|
inlinestatic |
Adds a projection layer for submissions.
Note that e.g. the same swapchain object may be passed as both l_xsc
and r_xsc
- the parameters in data
identify the subrect and array texture index to use for each of the views.
xc | Self pointer |
xdev | The device the layer is relative to. |
xsc | Array of swapchain objects containing eye RGB data. |
data | All of the pure data bits (not pointers/handles), including what parts of the supplied swapchain objects to use for each view. |
Helper for calling through the function pointer.
|
inlinestatic |
Adds a projection layer for submission, has depth information.
Note that e.g. the same swapchain object may be passed as both l_xsc
and r_xsc
- the parameters in data
identify the subrect and array texture index to use for each of the views. This flexibility is required by the OpenXR API and is passed through to the compositor to preserve the maximum information
xc | Self pointer |
xdev | The device the layer is relative to. |
xsc | Array of swapchain objects containing eye RGB data. |
d_xsc | Array of swapchain objects containing eye depth data. |
data | All of the pure data bits (not pointers/handles), including what parts of the supplied swapchain objects to use for each view. |
Helper for calling through the function pointer.
|
inlinestatic |
Adds a quad layer for submission, the center of the quad is specified by the pose and extends outwards from it.
xc | Self pointer |
xdev | The device the layer is relative to. |
xsc | Swapchain. |
data | All of the pure data bits (not pointers/handles), including what part of the supplied swapchain object to use. |
Helper for calling through the function pointer.
|
inlinestatic |
This function and predict_frame function calls are a alternative to wait_frame.
If point is XRT_COMPOSITOR_FRAME_POINT_WOKE it is to mark that the client woke up from waiting on a frame.
[in] | xc | The compositor |
[in] | frame_id | Frame id |
[in] | point | What type of frame point to mark. |
[in] | when_ns | When this point happened. |
Helper for calling through the function pointer.
References xrt_compositor::mark_frame.
|
inlinestatic |
Create a native swapchain with a set of images.
A specialized version of xrt_comp_create_swapchain, for use only on xrt_compositor_native.
Helper for calling through the base's function pointer then performing the known-safe downcast.
The pointer pointed to by out_xsc
has to either be NULL or a valid xrt_swapchain pointer. If there is a valid xrt_swapchain pointed by the pointed pointer it will have it reference decremented.
References xrt_compositor_native::base, xrt_compositor::xrt_comp_create_swapchain(), XRT_SUCCESS, and xrt_swapchain_native::xrt_swapchain_native_reference().
|
inlinestatic |
Teardown the compositor.
The state tracker must have made sure that no frames or sessions are currently pending.
Helper for calling through the function pointer: does a null check and sets xcn_ptr to null if freed.
References xrt_compositor_native::base, and xrt_compositor::destroy.
|
inlinestatic |
This function and mark_frame function calls are a alternative to wait_frame.
The only requirement on the compositor for the frame_id
is that it is a positive number and larger then the last returned frame_id.
After a call to predict_frame, the state tracker is not allowed to call this function until after a call to mark_frame (with point XRT_COMPOSITOR_FRAME_POINT_WOKE), followed by either begin_frame or discard_frame.
[in] | xc | The compositor |
[out] | out_frame_id | Frame id |
[out] | out_wake_time_ns | When we want the client to be awoken to begin rendering. |
[out] | out_predicted_gpu_time_ns | When we expect the client to finish the GPU work. If not computed/available, set to 0. |
[out] | out_predicted_display_time_ns | When the pixels turns into photons. |
[out] | out_predicted_display_period_ns | The period for the frames. |
Helper for calling through the function pointer.
References xrt_compositor::predict_frame.
|
inlinestatic |
Request system to change the display refresh rate to the requested value.
xc | Self pointer |
display_refresh_rate_hz | Requested display refresh rate in Hertz. |
Helper for calling through the function pointer.
References xrt_compositor::request_display_refresh_rate.
|
inlinestatic |
Set CPU/GPU performance level.
Helper for calling through the function pointer.
References xrt_compositor::set_performance_level.
|
inlinestatic |
#include <xrt/xrt_compositor.h>
Set thread attributes according to thread type.
References xrt_compositor::set_thread_hint.
|
inlinestatic |
See xrWaitFrame.
This function has the same semantics as calling predict_frame, sleeping, and then calling mark_frame with a point of XRT_COMPOSITOR_FRAME_POINT_WOKE.
The only requirement on the compositor for the frame_id
is that it is a positive number and larger then the last returned frame_id
.
After a call to wait_frame, the state tracker is not allowed to call this function until after a call to either begin_frame or discard_frame.
If the caller can do its own blocking, use the pair of functions xrt_compositor::predict_frame and xrt_compositor::mark_frame instead of this single blocking function.
Helper for calling through the function pointer.
References xrt_compositor::wait_frame.
|
inlinestatic |
Destroys the fence.
Helper for calling through the function pointer: does a null check and sets xcf_ptr to null if freed.
References xrt_compositor_fence::destroy.
|
inlinestatic |
Waits on the fence with the given timeout.
Helper for calling through the function pointer.
References xrt_compositor_fence::wait.
|
related |
Update the reference counts on compositor semaphore(s).
[in,out] | dst | Pointer to a object reference: if the object reference is non-null will decrement its counter. The reference that dst points to will be set to src . |
[in] | src | New object for dst to refer to (may be null). If non-null, will have its refcount increased. |
References xrt_compositor_semaphore::destroy, xrt_compositor_semaphore::reference, xrt_reference::xrt_reference_dec_and_is_zero(), and xrt_reference::xrt_reference_inc().
|
inlinestatic |
Does a CPU side wait on the semaphore to reach the given value.
Helper for calling through the function pointer.
References xrt_compositor_semaphore::wait.
Update the reference counts on frame(s).
[in,out] | dst | Pointer to a object reference: if the object reference is non-null will decrement its counter. The reference that dst points to will be set to src . |
[in] | src | New object for dst to refer to (may be null). If non-null, will have its refcount increased. |
References xrt_reference::xrt_reference_dec_and_is_zero(), and xrt_reference::xrt_reference_inc().
Referenced by queue_refclear(), and queue_try_refpush().
struct xrt_compositor_d3d11 * xrt_gfx_d3d11_provider_create | ( | struct xrt_compositor_native * | xcn, |
ID3D11Device * | device | ||
) |
Create a D3D11 compositor client.
References client_d3d11_compositor::client_d3d11_compositor_create().
struct xrt_compositor_d3d12 * xrt_gfx_d3d12_provider_create | ( | struct xrt_compositor_native * | xcn, |
ID3D12Device * | device, | ||
ID3D12CommandQueue * | queue | ||
) |
Create a D3D12 compositor client.
References client_d3d12_compositor::client_d3d12_compositor_create().
xrt_result_t xrt_gfx_provider_create_gl_egl | ( | struct xrt_compositor_native * | xcn, |
EGLDisplay | display, | ||
EGLConfig | config, | ||
EGLContext | context, | ||
PFNEGLGETPROCADDRESSPROC | get_gl_procaddr, | ||
bool | renderdoc_enabled, | ||
struct xrt_compositor_gl ** | out_xcgl | ||
) |
Create an OpenGL(ES) compositor client using EGL.
struct xrt_compositor_gl * xrt_gfx_provider_create_gl_win32 | ( | struct xrt_compositor_native * | xcn, |
void * | hDC, | ||
void * | hGLRC | ||
) |
Create an OpenGL compositor client using Win32.
References client_gl_win32_compositor::base, and client_gl_win32_compositor::client_gl_win32_compositor_create().
struct xrt_compositor_gl * xrt_gfx_provider_create_gl_xlib | ( | struct xrt_compositor_native * | xcn, |
Display * | xDisplay, | ||
uint32_t | visualid, | ||
GLXFBConfig | glxFBConfig, | ||
GLXDrawable | glxDrawable, | ||
GLXContext | glxContext | ||
) |
Create an OpenGL compositor client using xlib.
References client_gl_xlib_compositor::base, and client_gl_xlib_compositor::client_gl_xlib_compositor_create().
struct xrt_compositor_vk * xrt_gfx_vk_provider_create | ( | struct xrt_compositor_native * | xcn, |
VkInstance | instance, | ||
PFN_vkGetInstanceProcAddr | get_instance_proc_addr, | ||
VkPhysicalDevice | physical_device, | ||
VkDevice | device, | ||
bool | external_fence_fd_enabled, | ||
bool | external_semaphore_fd_enabled, | ||
bool | timeline_semaphore_enabled, | ||
bool | debug_utils_enabled, | ||
bool | renderdoc_enabled, | ||
uint32_t | queue_family_index, | ||
uint32_t | queue_index | ||
) |
Create a Vulkan compositor client.
|
inlinestatic |
Destroy the image allocator.
Helper for calling through the function pointer: does a null check and sets xina_ptr to null if freed.
References xrt_image_native_allocator::destroy.
Referenced by ipc_syscomp_destroy().
|
related |
Create an implementation of the xrt_instance interface.
Creating more then one xrt_instance is probably never the right thing to do, so avoid it.
Each target must implement this function.
[in] | ii | A pointer to a info struct containing information about the application. |
[out] | out_xinst | A pointer to an xrt_instance pointer. Will be populated. |
References u_trace_marker_init().
|
inlinestatic |
Creates all of the system resources like the devices and system compositor.
The system compositor is optional.
Should only be called once.
xinst | Pointer to self | |
[out] | out_xsys | Return of system, required. |
[out] | out_xsysd | Return of devices, required. |
[out] | out_xsysc | Return of system compositor, optional. |
Helper for calling through the function pointer.
References xrt_instance::create_system.
|
inlinestatic |
Destroy an xrt_instance - helper function.
[in,out] | xinst_ptr | A pointer to your instance implementation pointer. |
Will destroy the instance if *xinst_ptr is not NULL. Will then set *xinst_ptr to NULL.
References xrt_instance::destroy.
|
inlinestatic |
Get the instance xrt_prober, if any.
If the instance is not using an xrt_prober, it may return null.
The instance retains ownership of the prober and is responsible for destroying it.
Can be called multiple times. (The prober is usually created at instance construction time.)
xinst | Pointer to self | |
[out] | out_xp | Pointer to xrt_prober pointer, will be populated or set to NULL. |
Helper for calling through the function pointer.
References xrt_instance::get_prober.
Referenced by u_system_devices_create_from_prober().
|
inlinestatic |
Decrement the reference, probably want xrt_reference_dec_and_is_zero.
|
inlinestatic |
Decrement the reference and return true if the value is now zero.
Referenced by t_stereo_camera_calibration::t_stereo_camera_calibration_reference(), u_space_reference(), u_worker_group_reference(), u_worker_thread_pool_reference(), xrt_compositor_semaphore::xrt_compositor_semaphore_reference(), xrt_frame::xrt_frame_reference(), xrt_space::xrt_space_reference(), and xrt_swapchain::xrt_swapchain_reference().
|
inlinestatic |
Increment the reference, probably want xrt_reference_inc_and_was_zero.
Referenced by t_stereo_camera_calibration::t_stereo_camera_calibration_reference(), u_space_reference(), u_worker_group_reference(), u_worker_thread_pool_reference(), xrt_compositor_semaphore::xrt_compositor_semaphore_reference(), xrt_frame::xrt_frame_reference(), xrt_space::xrt_space_reference(), and xrt_swapchain::xrt_swapchain_reference().
|
inlinestatic |
Increment the reference and return true if the value was
zero.
Update the reference counts on space(s).
[in,out] | dst | Pointer to a object reference: if the object reference is non-null will decrement its counter. The reference that dst points to will be set to src . |
[in] | src | New object for dst to refer to (may be null). If non-null, will have its refcount increased. |
References xrt_space::destroy, xrt_space::reference, xrt_reference::xrt_reference_dec_and_is_zero(), and xrt_reference::xrt_reference_inc().
|
inlinestatic |
Obtain the index of the next image to use, without blocking on being able to write to it.
See xrAcquireSwapchainImage.
Caller must make sure that no image is acquired before calling xrt_swapchain_acquire_image.
xsc | Self pointer | |
[out] | out_index | Image index to use next |
Call xrt_swapchain_wait_image before writing to the image index output from this function.
Helper for calling through the function pointer.
References xrt_swapchain::acquire_image.
|
inlinestatic |
Do any barrier transitions to and from the application.
xsc | Self pointer |
direction | Direction of the barrier transition. |
index | Image index to barrier transition. |
Helper for calling through the function pointer.
|
inlinestatic |
Decrements the use counter of a swapchain image.
wait_image will return once the image use counter is 0.
Helper for calling through the function pointer.
References xrt_swapchain::dec_image_use.
|
inlinestatic |
Increments the use counter of a swapchain image.
Helper for calling through the function pointer.
References xrt_swapchain::inc_image_use.
|
related |
Update the reference counts on swapchain(s).
[in,out] | dst | Pointer to a object reference: if the object reference is non-null will decrement its counter. The reference that dst points to will be set to src . |
[in] | src | New object for dst to refer to (may be null). If non-null, will have its refcount increased. |
References xrt_swapchain::xrt_swapchain_reference().
Referenced by u_swapchain_debug_clear(), u_swapchain_debug_destroy(), u_swapchain_debug_set(), and xrt_compositor_native::xrt_comp_native_create_swapchain().
|
related |
Update the reference counts on swapchain(s).
[in,out] | dst | Pointer to a object reference: if the object reference is non-null will decrement its counter. The reference that dst points to will be set to src . |
[in] | src | New object for dst to refer to (may be null). If non-null, will have its refcount increased. |
References xrt_swapchain::destroy, xrt_swapchain::reference, xrt_reference::xrt_reference_dec_and_is_zero(), and xrt_reference::xrt_reference_inc().
Referenced by comp_swapchain_create(), comp_swapchain_import(), slot_clear_locked(), and xrt_swapchain_native::xrt_swapchain_native_reference().
|
inlinestatic |
See xrReleaseSwapchainImage, state tracker needs to track index.
Helper for calling through the function pointer.
References xrt_swapchain::release_image.
Referenced by oxr_swapchain_common_release().
|
inlinestatic |
Wait until image index
is available for exclusive use, or until timeout_ns
expires.
See xrWaitSwapchainImage, which is the basis for this API. The state tracker needs to track image index, which should have come from xrt_swapchain_acquire_image
xsc | Self pointer |
timeout_ns | Timeout in nanoseconds, |
index | Image index to wait for. |
Helper for calling through the function pointer.
References xrt_swapchain::wait_image.
Referenced by client_d3d11_swapchain_wait_image(), and client_d3d12_swapchain_wait_image().
|
inlinestatic |
Create a new native compositor.
This signals that you want to start XR, and as such implicitly brings up a new session. Does not "call" xrBeginSession
.
Some system compositors might only support one xrt_compositor
active at a time, will return XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED
if this is the case.
In a multi-session capable system compositor, this may return a "proxy" for feeding a single client's layers to a compositor or a layer merging mechanism, rather than a raw native compositor (not wrapping or forwarding) directly.
Helper for calling through the function pointer.
References xrt_system_compositor::create_native_compositor.
|
inlinestatic |
Teardown the system compositor.
The state tracker must make sure that no compositors are alive.
Helper for calling through the function pointer: does a null check and sets xcn_ptr to null if freed.
References xrt_system_compositor::destroy.
|
inlinestatic |
Notify this client/session if the display refresh rate has been changed.
Helper for calling through the function pointer.
If the system compositor xsc
does not implement xrt_multi_composition_control, this returns XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
References xrt_multi_compositor_control::notify_display_refresh_changed, xrt_system_compositor::xmcc, and XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
|
inlinestatic |
Notify this client/session if the compositor is going to lose the ability of rendering.
loss_time_ns | System monotonic timestamps, such as returned by os_monotonic_get_ns(). |
Helper for calling through the function pointer.
If the system compositor xsc
does not implement xrt_multi_compositor_control, this returns XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
References xrt_multi_compositor_control::notify_loss_pending, xrt_system_compositor::xmcc, and XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
|
inlinestatic |
Notify this client/session if the compositor lost the ability of rendering.
Helper for calling through the function pointer.
If the system compositor xsc
does not implement xrt_multi_compositor_control, this returns XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
References xrt_multi_compositor_control::notify_lost, xrt_system_compositor::xmcc, and XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
|
inlinestatic |
Tell this client/session if the main application is visible or not.
Helper for calling through the function pointer.
If the system compositor xsc
does not implement xrt_multi_compositor_control, this returns XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
References xrt_multi_compositor_control::set_main_app_visibility, xrt_system_compositor::xmcc, and XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
|
inlinestatic |
Sets the state of the compositor, generating any events to the client if the state is actually changed.
Input focus is enforced/handled by a different component but is still signaled by the compositor.
Helper for calling through the function pointer.
If the system compositor xsc
does not implement xrt_multi_compositor_control, this returns XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
References xrt_multi_compositor_control::set_state, xrt_system_compositor::xmcc, and XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
|
inlinestatic |
Set the rendering Z order for rendering, visible has higher priority then z_order but is still saved until visible again.
This a signed 64 bit integer compared to a unsigned 32 bit integer in OpenXR, so that non-overlay clients can be handled like overlay ones.
Helper for calling through the function pointer.
If the system compositor xsc
does not implement xrt_multi_compositor_control, this returns XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
References xrt_multi_compositor_control::set_z_order, xrt_system_compositor::xmcc, and XRT_ERROR_MULTI_SESSION_NOT_IMPLEMENTED.
|
inlinestatic |
#include <xrt/xrt_visibility_mask.h>
Visibility mask helper function to get the indices.
|
inlinestatic |
#include <xrt/xrt_visibility_mask.h>
Visibility mask helper function to get the total size of the struct.
|
inlinestatic |
#include <xrt/xrt_visibility_mask.h>
Visibility mask helper function to get the vertices.
|
extern |
#include <xrt/xrt_gfx_vk.h>
A space-delimited string of Vulkan device extensions required from a client.
Should be kept synchronized with the "Client" column in Vulkan extensions used by Monado
|
extern |
#include <xrt/xrt_gfx_vk.h>
A space-delimited string of Vulkan instance extensions required from a client.
Should be kept synchronized with the "Client" column in Vulkan extensions used by Monado