26#include "xrt/xrt_config_build.h"
32#define IPC_CRED_SIZE 1
33#define IPC_BUF_SIZE 512
34#define IPC_MAX_VIEWS 8
35#define IPC_MAX_FORMATS 32
36#define IPC_MAX_DEVICES 8
37#define IPC_MAX_LAYERS XRT_MAX_LAYERS
38#define IPC_MAX_SLOTS 128
39#define IPC_MAX_CLIENTS 8
40#define IPC_MAX_RAW_VIEWS 32
41#define IPC_EVENT_QUEUE_SIZE 32
43#define IPC_SHARED_MAX_INPUTS 1024
44#define IPC_SHARED_MAX_OUTPUTS 128
45#define IPC_SHARED_MAX_BINDINGS 64
48#define IPC_VERSION_NAME_LEN 64
50#if defined(XRT_OS_WINDOWS) && !defined(XRT_ENV_MINGW)
68 char name[XRT_TRACKING_NAME_LEN];
78 "invalid structure size, maybe different 32/64 bits sizes or padding");
101 "invalid structure size, maybe different 32/64 bits sizes or padding");
118 char str[XRT_DEVICE_NAME_LEN];
138 bool orientation_tracking_supported;
139 bool position_tracking_supported;
140 bool hand_tracking_supported;
141 bool eye_gaze_supported;
142 bool face_tracking_supported;
143 bool body_tracking_supported;
144 bool force_feedback_supported;
145 bool form_factor_check_supported;
146 bool stage_supported;
147 bool battery_status_supported;
148 bool planes_supported;
153 "invalid structure size, maybe different 32/64 bits sizes or padding");
182 "invalid structure size, maybe different 32/64 bits sizes or padding");
192 uint32_t layer_count;
197 "invalid structure size, maybe different 32/64 bits sizes or padding");
287 uint32_t blend_mode_count;
290 struct xrt_input inputs[IPC_SHARED_MAX_INPUTS];
292 struct xrt_output outputs[IPC_SHARED_MAX_OUTPUTS];
300 uint64_t startup_timestamp;
305 "invalid structure size, maybe different 32/64 bits sizes or padding");
317 "invalid structure size, maybe different 32/64 bits sizes or padding");
321 uint32_t ids[IPC_MAX_CLIENTS];
326 "invalid structure size, maybe different 32/64 bits sizes or padding");
338 bool primary_application;
340 bool session_visible;
341 bool session_focused;
342 bool session_overlay;
350 "invalid structure size, maybe different 32/64 bits sizes or padding");
362 "invalid structure size, maybe different 32/64 bits sizes or padding");
369 struct xrt_fov fovs[XRT_MAX_VIEWS];
370 struct xrt_pose poses[XRT_MAX_VIEWS];
375 "invalid structure size, maybe different 32/64 bits sizes or padding");
xrt_plane_detection_capability_flags_ext
Caps for a plane detector, see xrt_device.
Definition: xrt_plane_detector.h:30
xrt_blend_mode
Blend mode that the device supports, exact mirror of XrEnvironmentBlendMode.
Definition: xrt_defines.h:109
#define XRT_SYSTEM_MAX_DEVICES
Maximum number of devices simultaneously usable by an implementation of xrt_system_devices.
Definition: xrt_system.h:142
#define XRT_MAX_SWAPCHAIN_IMAGES
Max swapchain images, artificial limit.
Definition: xrt_limits.h:34
xrt_tracking_type
What kind of tracking system is this.
Definition: xrt_tracking.h:45
xrt_device_type
How an xrt_device can be used.
Definition: xrt_defines.h:788
State for a connected application.
Definition: ipc_protocol.h:334
Arguments for creating swapchains from native images.
Definition: ipc_protocol.h:357
Initial info from a client when it connects.
Definition: ipc_protocol.h:311
Definition: ipc_protocol.h:320
Arguments for xrt_device::get_view_poses with two views.
Definition: ipc_protocol.h:368
Data for a single composition layer.
Definition: ipc_protocol.h:163
struct xrt_layer_data data
All basic (trivially-serializable) data associated with a layer, aside from which swapchain(s) are us...
Definition: ipc_protocol.h:178
uint32_t swapchain_ids[XRT_MAX_VIEWS *2]
Up to two indices of swapchains to use.
Definition: ipc_protocol.h:172
uint32_t xdev_id
Definition: ipc_protocol.h:165
Render state for a single client, including all layers.
Definition: ipc_protocol.h:190
A binding in the shared memory area.
Definition: ipc_protocol.h:86
uint32_t output_count
Number of outputs.
Definition: ipc_protocol.h:95
uint32_t input_count
Number of inputs.
Definition: ipc_protocol.h:90
uint32_t first_input_index
Offset into the array of pairs where this input bindings starts.
Definition: ipc_protocol.h:92
uint32_t first_output_index
Offset into the array of pairs where this output bindings starts.
Definition: ipc_protocol.h:97
A device in the shared memory area.
Definition: ipc_protocol.h:109
uint32_t first_input_index
'Offset' into the array of inputs where the inputs starts.
Definition: ipc_protocol.h:131
uint32_t binding_profile_count
Number of bindings.
Definition: ipc_protocol.h:124
uint32_t first_binding_profile_index
'Offset' into the array of bindings where the bindings starts.
Definition: ipc_protocol.h:126
uint32_t input_count
Number of inputs.
Definition: ipc_protocol.h:129
uint32_t output_count
Number of outputs.
Definition: ipc_protocol.h:134
uint32_t first_output_index
'Offset' into the array of outputs where the outputs starts.
Definition: ipc_protocol.h:136
char str[XRT_DEVICE_NAME_LEN]
A string describing the device.
Definition: ipc_protocol.h:118
uint32_t tracking_origin_index
Which tracking system origin is this device attached to.
Definition: ipc_protocol.h:115
char serial[XRT_DEVICE_NAME_LEN]
A unique identifier. Persistent across configurations, if possible.
Definition: ipc_protocol.h:121
enum xrt_device_name name
Enum identifier of the device.
Definition: ipc_protocol.h:111
A big struct that contains all data that is shared to a client, no pointers allowed in this.
Definition: ipc_protocol.h:215
struct ipc_shared_memory::@245::@247::@248 display
Pixel properties of this display, not in absolute screen coordinates that the compositor sees.
uint32_t itrack_count
Number of elements in itracks that are populated/valid.
Definition: ipc_protocol.h:224
char u_git_tag[64]
The git revision of the service, used by clients to detect version mismatches.
Definition: ipc_protocol.h:219
struct ipc_shared_memory::@244 roles
Various roles for the devices.
struct ipc_shared_tracking_origin itracks[XRT_SYSTEM_MAX_DEVICES]
Array of shared tracking origin data.
Definition: ipc_protocol.h:231
struct ipc_shared_device isdevs[XRT_SYSTEM_MAX_DEVICES]
Array of shared data per device.
Definition: ipc_protocol.h:243
uint32_t isdev_count
Number of elements in isdevs that are populated/valid.
Definition: ipc_protocol.h:236
A tracking in the shared memory area.
Definition: ipc_protocol.h:66
char name[XRT_TRACKING_NAME_LEN]
For debugging.
Definition: ipc_protocol.h:68
enum xrt_tracking_type type
What can the state tracker expect from this tracking system.
Definition: ipc_protocol.h:71
struct xrt_pose offset
Initial offset of the tracking origin.
Definition: ipc_protocol.h:74
Non-process-specific information provided by the application at instance create time.
Definition: xrt_instance.h:72
A binding pair, going from a binding point to a device output.
Definition: xrt_device.h:204
Describes a projection matrix fov.
Definition: xrt_defines.h:488
All the pure data values associated with a composition layer.
Definition: xrt_compositor.h:396
Per frame data for the layer submission calls, used in xrt_compositor::layer_begin.
Definition: xrt_compositor.h:482
A single named output, that sits on a xrt_device.
Definition: xrt_device.h:182
A query for a plane.
Definition: xrt_plane_detector.h:97
A pose composed of a position and orientation.
Definition: xrt_defines.h:467
A relation with two spaces, includes velocity and acceleration.
Definition: xrt_defines.h:659
Header holding common defines.
Header declaring XRT graphics interfaces.
Common defines and enums for XRT.
xrt_device_name
A enum that is used to name devices so that the state trackers can reason about the devices easier.
Definition: xrt_defines.h:714
Header defining an xrt display or controller device.
Header for xrt_instance object.
Header for limits of the XRT interfaces.
Internal result type for XRT.
Header for session object.
Header defining xrt space and space overseer.
Header for system objects.
Header defining the tracking system integration in Monado.