12 #define XRT_DEVICE_NAME_LEN 256 130 float distortion_k[4];
132 float aberration_k[4];
143 float undistort_r2_cutoff[2];
149 float coefficients[2][3][3];
166 size_t num_indices[2];
168 size_t offset_indices[2];
257 uint64_t at_timestamp_ns,
258 uint64_t *out_relation_timestamp_ns,
298 xrt_device_update_inputs(
struct xrt_device *xdev)
307 xrt_device_get_tracked_pose(
struct xrt_device *xdev,
309 uint64_t requested_timestamp_ns,
310 uint64_t *out_actual_timestamp_ns,
314 out_actual_timestamp_ns, out_relation);
321 xrt_device_set_output(
struct xrt_device *xdev,
332 xrt_device_get_view_pose(
struct xrt_device *xdev,
337 xdev->
get_view_pose(xdev, eye_relation, view_index, out_pose);
344 xrt_device_destroy(
struct xrt_device **xdev_ptr)
int w_pixels
Definition: xrt_device.h:99
A tracking system or device origin.
Definition: xrt_tracking.h:53
struct xrt_hmd_parts * hmd
Null if this device does not interface with the users head.
Definition: xrt_device.h:211
void(* update_inputs)(struct xrt_device *xdev)
Update any attached inputs.
Definition: xrt_device.h:233
size_t num_uv_channels
1 or 3 for (chromatic aberration).
Definition: xrt_device.h:161
A 3 element vector with single floats.
Definition: xrt_defines.h:133
A pose composed of a position and orientation.
Definition: xrt_defines.h:231
enum xrt_device_name name
Enum identifier of the device.
Definition: xrt_device.h:205
void(* destroy)(struct xrt_device *xdev)
Destroy device.
Definition: xrt_device.h:291
xrt_distortion_model
Which distortion model does the device expose, used both as a bitfield and value. ...
Definition: xrt_defines.h:48
float aspect_x_over_y
Definition: xrt_device.h:139
int * indices
Indices, for triangle strip.
Definition: xrt_device.h:164
float * vertices
Data.
Definition: xrt_device.h:155
float warp_scale
Panotools warp scale.
Definition: xrt_device.h:134
size_t stride
Stride of vertices.
Definition: xrt_device.h:159
A relation with two spaces, includes velocity and acceleration.
Definition: xrt_defines.h:336
void(* set_output)(struct xrt_device *xdev, enum xrt_output_name name, union xrt_output_value *value)
Set a output value.
Definition: xrt_device.h:266
size_t num_vertices
Number of vertices.
Definition: xrt_device.h:157
struct xrt_view::@85 viewport
Viewpport position on the screen, in absolute screen coordinates, this field is only used by Composit...
float grow_for_undistort
Definition: xrt_device.h:140
struct xrt_input * inputs
Array of input structs.
Definition: xrt_device.h:219
uint64_t nominal_frame_interval_ns
Nominal frame interval.
Definition: xrt_device.h:102
struct xrt_view::@86 display
Pixel and phyisical properties of this display, not in absolute screen coordinates that the composito...
A union of all output types.
Definition: xrt_defines.h:547
size_t total_num_indices
Total number of indices.
Definition: xrt_device.h:170
Common defines and enums for XRT.
xrt_output_name
Name of a output with a baked in type.
Definition: xrt_defines.h:532
int h_pixels
Definition: xrt_device.h:100
float h_meters
Definition: xrt_device.h:59
float y_meters
Definition: xrt_device.h:69
size_t num_inputs
Number of inputs.
Definition: xrt_device.h:217
All of the device components that deals with interfacing to a users head.
Definition: xrt_device.h:92
xrt_blend_mode
Which blend mode does the device support, used as both a bitfield and value.
Definition: xrt_defines.h:35
Describes a projection matrix fov.
Definition: xrt_defines.h:242
struct xrt_tracking_origin * tracking_origin
Always set, pointing to the tracking system for this device.
Definition: xrt_device.h:214
size_t num_outputs
Number of outputs.
Definition: xrt_device.h:222
float x_meters
Definition: xrt_device.h:68
A per-lens view information.
Definition: xrt_device.h:28
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:357
struct xrt_output * outputs
Array of output structs.
Definition: xrt_device.h:224
Definition: xrt_device.h:192
struct xrt_matrix_2x2 rot
Rotation 2d matrix used to rotate the position of the output of the distortion shaders onto the scree...
Definition: xrt_device.h:77
void(* get_tracked_pose)(struct xrt_device *xdev, enum xrt_input_name name, uint64_t at_timestamp_ns, uint64_t *out_relation_timestamp_ns, struct xrt_space_relation *out_relation)
Get relationship of a tracked device to the device "base space".
Definition: xrt_device.h:255
uint32_t y_pixels
Definition: xrt_device.h:41
uint32_t w_pixels
Definition: xrt_device.h:42
struct xrt_fov fov
Fov expressed in OpenXR.
Definition: xrt_device.h:82
A single HMD or input device.
Definition: xrt_device.h:202
A tightly packed 2x2 matrix of floats.
Definition: xrt_defines.h:255
void(* get_view_pose)(struct xrt_device *xdev, struct xrt_vec3 *eye_relation, uint32_t view_index, struct xrt_pose *out_pose)
Get the per view pose in relation to the view space.
Definition: xrt_device.h:283
xrt_input_name
Name of a input with a baked in type.
Definition: xrt_defines.h:421
float w_meters
Definition: xrt_device.h:58
uint32_t x_pixels
Definition: xrt_device.h:40
struct xrt_view::@87 lens_center
Position in meters relative to display origin, before any rotation is applied by xrt_view::rot.
uint32_t h_pixels
Definition: xrt_device.h:43
#define XRT_DEVICE_NAME_LEN
Definition: xrt_device.h:12