Monado OpenXR Runtime
Data Structures | Macros | Enumerations
xrt_defines.h File Reference

Common defines and enums for XRT. More...

#include "xrt/xrt_compiler.h"
#include "util/u_time.h"
Include dependency graph for xrt_defines.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

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_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_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_4x4
 A tightly packed 4x4 matrix of floats. 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...
 
union  xrt_input_value
 A union of all input types. More...
 
union  xrt_output_value
 A union of all output types. More...
 

Macros

#define XRT_INPUT_NAME(id, type)   ((id << 8) | 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)   (name & 0xff)
 Extract the xrt_input_type from an xrt_input_name. More...
 
#define XRT_OUTPUT_NAME(id, type)   ((id << 8) | XRT_OUTPUT_TYPE_##type)
 

Enumerations

enum  xrt_blend_mode { XRT_BLEND_MODE_OPAQUE = 1 << 0, XRT_BLEND_MODE_ADDITIVE = 1 << 1, XRT_BLEND_MODE_ALPHA_BLEND = 1 << 2 }
 Which blend mode does the device support, used as both a bitfield and value. More...
 
enum  xrt_distortion_model { XRT_DISTORTION_MODEL_NONE = 1 << 0, XRT_DISTORTION_MODEL_PANOTOOLS = 1 << 1, XRT_DISTORTION_MODEL_VIVE = 1 << 2, XRT_DISTORTION_MODEL_MESHUV = 1 << 3 }
 Which distortion model does the device expose, used both as a bitfield and value. More...
 
enum  xrt_format {
  XRT_FORMAT_R8G8B8X8, XRT_FORMAT_R8G8B8A8, XRT_FORMAT_R8G8B8, XRT_FORMAT_R8G8,
  XRT_FORMAT_R8, XRT_FORMAT_L8, XRT_FORMAT_BITMAP_8X1, XRT_FORMAT_BITMAP_8X8,
  XRT_FORMAT_YUV888, XRT_FORMAT_YUYV422, XRT_FORMAT_UYVY422, XRT_FORMAT_MJPEG
}
 Common formats, use u_format_* functions to reason about them. 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_space_relation_flags {
  XRT_SPACE_RELATION_ORIENTATION_VALID_BIT = 0x00000001, XRT_SPACE_RELATION_POSITION_VALID_BIT = 0x00000002, XRT_SPACE_RELATION_LINEAR_VELOCITY_VALID_BIT = 0x00000004, XRT_SPACE_RELATION_ANGULAR_VELOCITY_VALID_BIT = 0x00000008,
  XRT_SPACE_RELATION_LINEAR_ACCELERATION_VALID_BIT = 0x00000010, XRT_SPACE_RELATION_ANGULAR_ACCELERATION_VALID_BIT = 0x00000020, XRT_SPACE_RELATION_ORIENTATION_TRACKED_BIT = 0x00000040, XRT_SPACE_RELATION_POSITION_TRACKED_BIT = 0x00000080,
  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_name {
  XRT_DEVICE_GENERIC_HMD = 1, XRT_DEVICE_PSMV = 2, XRT_DEVICE_HYDRA = 3, XRT_DEVICE_DAYDREAM = 4,
  XRT_DEVICE_INDEX_CONTROLLER = 5, XRT_DEVICE_VIVE_WAND = 6
}
 A enum that is used to name devices so that the state trackers can reason about the devices easier. 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
}
 Base type of this inputs. More...
 
enum  xrt_input_name {
  XRT_INPUT_GENERIC_HEAD_POSE = XRT_INPUT_NAME(0x0000, POSE), XRT_INPUT_GENERIC_HEAD_DETECT = XRT_INPUT_NAME(0x0001, BOOLEAN), XRT_INPUT_PSMV_PS_CLICK = XRT_INPUT_NAME(0x0020, BOOLEAN), XRT_INPUT_PSMV_MOVE_CLICK = XRT_INPUT_NAME(0x0021, BOOLEAN),
  XRT_INPUT_PSMV_START_CLICK = XRT_INPUT_NAME(0x0022, BOOLEAN), XRT_INPUT_PSMV_SELECT_CLICK = XRT_INPUT_NAME(0x0023, BOOLEAN), XRT_INPUT_PSMV_SQUARE_CLICK = XRT_INPUT_NAME(0x0024, BOOLEAN), XRT_INPUT_PSMV_CROSS_CLICK = XRT_INPUT_NAME(0x0025, BOOLEAN),
  XRT_INPUT_PSMV_CIRCLE_CLICK = XRT_INPUT_NAME(0x0026, BOOLEAN), XRT_INPUT_PSMV_TRIANGLE_CLICK = XRT_INPUT_NAME(0x0027, BOOLEAN), XRT_INPUT_PSMV_TRIGGER_VALUE = XRT_INPUT_NAME(0x0028, VEC1_ZERO_TO_ONE), XRT_INPUT_PSMV_BODY_CENTER_POSE = XRT_INPUT_NAME(0x0029, POSE),
  XRT_INPUT_PSMV_BALL_CENTER_POSE = XRT_INPUT_NAME(0x002A, POSE), XRT_INPUT_PSMV_BALL_TIP_POSE = XRT_INPUT_NAME(0x002B, POSE), XRT_INPUT_HYDRA_1_CLICK = XRT_INPUT_NAME(0x0030, BOOLEAN), XRT_INPUT_HYDRA_2_CLICK = XRT_INPUT_NAME(0x0031, BOOLEAN),
  XRT_INPUT_HYDRA_3_CLICK = XRT_INPUT_NAME(0x0032, BOOLEAN), XRT_INPUT_HYDRA_4_CLICK = XRT_INPUT_NAME(0x0033, BOOLEAN), XRT_INPUT_HYDRA_MIDDLE_CLICK = XRT_INPUT_NAME(0x0034, BOOLEAN), XRT_INPUT_HYDRA_BUMPER_CLICK = XRT_INPUT_NAME(0x0035, BOOLEAN),
  XRT_INPUT_HYDRA_JOYSTICK_CLICK = XRT_INPUT_NAME(0x0036, BOOLEAN), XRT_INPUT_HYDRA_JOYSTICK_VALUE = XRT_INPUT_NAME(0x0037, VEC2_MINUS_ONE_TO_ONE), XRT_INPUT_HYDRA_TRIGGER_VALUE = XRT_INPUT_NAME(0x0038, VEC1_ZERO_TO_ONE), XRT_INPUT_HYDRA_POSE = XRT_INPUT_NAME(0x0039, POSE),
  XRT_INPUT_DAYDREAM_TOUCHPAD_CLICK = XRT_INPUT_NAME(0x0040, BOOLEAN), XRT_INPUT_DAYDREAM_BAR_CLICK = XRT_INPUT_NAME(0x0041, BOOLEAN), XRT_INPUT_DAYDREAM_CIRCLE_CLICK = XRT_INPUT_NAME(0x0042, BOOLEAN), XRT_INPUT_DAYDREAM_VOLUP_CLICK = XRT_INPUT_NAME(0x0043, BOOLEAN),
  XRT_INPUT_DAYDREAM_VOLDN_CLICK = XRT_INPUT_NAME(0x0044, BOOLEAN), XRT_INPUT_DAYDREAM_TOUCHPAD_VALUE_X = XRT_INPUT_NAME(0x0045, VEC1_ZERO_TO_ONE), XRT_INPUT_DAYDREAM_TOUCHPAD_VALUE_Y = XRT_INPUT_NAME(0x0046, VEC1_ZERO_TO_ONE), XRT_INPUT_DAYDREAM_POSE = XRT_INPUT_NAME(0x0047, POSE),
  XRT_INPUT_INDEX_SYSTEM_CLICK = XRT_INPUT_NAME(0x0050, BOOLEAN), XRT_INPUT_INDEX_SYSTEM_TOUCH = XRT_INPUT_NAME(0x0051, BOOLEAN), XRT_INPUT_INDEX_A_CLICK = XRT_INPUT_NAME(0x0052, BOOLEAN), XRT_INPUT_INDEX_A_TOUCH = XRT_INPUT_NAME(0x0053, BOOLEAN),
  XRT_INPUT_INDEX_B_CLICK = XRT_INPUT_NAME(0x0054, BOOLEAN), XRT_INPUT_INDEX_B_TOUCH = XRT_INPUT_NAME(0x0055, BOOLEAN), XRT_INPUT_INDEX_SQUEEZE_VALUE = XRT_INPUT_NAME(0x0056, VEC1_ZERO_TO_ONE), XRT_INPUT_INDEX_SQUEEZE_FORCE = XRT_INPUT_NAME(0x0057, VEC1_ZERO_TO_ONE),
  XRT_INPUT_INDEX_TRIGGER_CLICK = XRT_INPUT_NAME(0x0058, BOOLEAN), XRT_INPUT_INDEX_TRIGGER_VALUE = XRT_INPUT_NAME(0x0059, VEC1_ZERO_TO_ONE), XRT_INPUT_INDEX_TRIGGER_TOUCH = XRT_INPUT_NAME(0x005A, BOOLEAN), XRT_INPUT_INDEX_THUMBSTICK_X = XRT_INPUT_NAME(0x005B, VEC1_ZERO_TO_ONE),
  XRT_INPUT_INDEX_THUMBSTICK_Y = XRT_INPUT_NAME(0x005C, VEC1_ZERO_TO_ONE), XRT_INPUT_INDEX_THUMBSTICK_CLICK = XRT_INPUT_NAME(0x005D, BOOLEAN), XRT_INPUT_INDEX_THUMBSTICK_TOUCH = XRT_INPUT_NAME(0x005E, BOOLEAN), XRT_INPUT_INDEX_TRACKPAD_X = XRT_INPUT_NAME(0x005F, VEC1_ZERO_TO_ONE),
  XRT_INPUT_INDEX_TRACKPAD_Y = XRT_INPUT_NAME(0x0060, VEC1_ZERO_TO_ONE), XRT_INPUT_INDEX_TRACKPAD_FORCE = XRT_INPUT_NAME(0x0061, VEC1_ZERO_TO_ONE), XRT_INPUT_INDEX_TRACKPAD_TOUCH = XRT_INPUT_NAME(0x0062, BOOLEAN), XRT_INPUT_INDEX_GRIP_POSE = XRT_INPUT_NAME(0x0063, POSE),
  XRT_INPUT_INDEX_AIM_POSE = XRT_INPUT_NAME(0x0064, POSE), XRT_INPUT_VIVE_SYSTEM_CLICK = XRT_INPUT_NAME(0x0070, BOOLEAN), XRT_INPUT_VIVE_SQUEEZE_CLICK = XRT_INPUT_NAME(0x0071, BOOLEAN), XRT_INPUT_VIVE_MENU_CLICK = XRT_INPUT_NAME(0x0072, BOOLEAN),
  XRT_INPUT_VIVE_TRIGGER_CLICK = XRT_INPUT_NAME(0x0073, BOOLEAN), XRT_INPUT_VIVE_TRIGGER_VALUE = XRT_INPUT_NAME(0x0074, VEC1_ZERO_TO_ONE), XRT_INPUT_VIVE_TRACKPAD_X = XRT_INPUT_NAME(0x0075, VEC1_ZERO_TO_ONE), XRT_INPUT_VIVE_TRACKPAD_Y = XRT_INPUT_NAME(0x0076, VEC1_ZERO_TO_ONE),
  XRT_INPUT_VIVE_TRACKPAD_CLICK = XRT_INPUT_NAME(0x0077, BOOLEAN), XRT_INPUT_VIVE_TRACKPAD_TOUCH = XRT_INPUT_NAME(0x0077, BOOLEAN), XRT_INPUT_VIVE_GRIP_POSE = XRT_INPUT_NAME(0x0078, POSE), XRT_INPUT_VIVE_AIM_POSE = XRT_INPUT_NAME(0x0079, POSE)
}
 Name of a input with a baked in type. More...
 
enum  xrt_output_type { XRT_OUTPUT_TYPE_VIBRATION = 0x00 }
 Base type of this output. More...
 
enum  xrt_output_name { XRT_OUTPUT_NAME_PSMV_RUMBLE_VIBRATION = XRT_OUTPUT_NAME(0x0020, VIBRATION), XRT_OUTPUT_NAME_INDEX_HAPTIC = XRT_OUTPUT_NAME(0x0030, VIBRATION), XRT_OUTPUT_NAME_VIVE_HAPTIC = XRT_OUTPUT_NAME(0x0040, VIBRATION) }
 Name of a output with a baked in type. More...
 

Detailed Description

Common defines and enums for XRT.

Author
Jakob Bornecrantz jakob.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m

Macro Definition Documentation

◆ XRT_OUTPUT_NAME

#define XRT_OUTPUT_NAME (   id,
  type 
)    ((id << 8) | XRT_OUTPUT_TYPE_##type)

Enumeration Type Documentation

◆ xrt_device_name

A enum that is used to name devices so that the state trackers can reason about the devices easier.

Enumerator
XRT_DEVICE_GENERIC_HMD 
XRT_DEVICE_PSMV 
XRT_DEVICE_HYDRA 
XRT_DEVICE_DAYDREAM 
XRT_DEVICE_INDEX_CONTROLLER 
XRT_DEVICE_VIVE_WAND 

◆ xrt_distortion_model

Which distortion model does the device expose, used both as a bitfield and value.

Enumerator
XRT_DISTORTION_MODEL_NONE 
XRT_DISTORTION_MODEL_PANOTOOLS 
XRT_DISTORTION_MODEL_VIVE 
XRT_DISTORTION_MODEL_MESHUV 

◆ xrt_format

enum xrt_format

Common formats, use u_format_* functions to reason about them.

Enumerator
XRT_FORMAT_R8G8B8X8 
XRT_FORMAT_R8G8B8A8 
XRT_FORMAT_R8G8B8 
XRT_FORMAT_R8G8 
XRT_FORMAT_R8 
XRT_FORMAT_L8 
XRT_FORMAT_BITMAP_8X1 
XRT_FORMAT_BITMAP_8X8 
XRT_FORMAT_YUV888 
XRT_FORMAT_YUYV422 
XRT_FORMAT_UYVY422 
XRT_FORMAT_MJPEG