Christoph Haag
4ea68b89a4
xrt: Add u_process, backed by libbsd's pidfile
...
Delete stale ipc files in ipc server when not already running.
If built without libbsd, fall back to previous behavior of complaining about existing ipc files and exit.
2021-04-15 21:42:06 +00:00
Moses Turner
6f93b4c718
inc/xrt: switch blend mode to array
...
In order of how preferred they are.
2021-04-11 04:08:49 -05:00
Ryan Pavlik
d6d933f20d
xrt: Fix doxygen warnings.
2021-04-09 18:16:54 -05:00
Jakob Bornecrantz
efdba1602f
xrt: Pass along display_time_ns to layer begin
2021-04-07 00:50:10 +01:00
Jakob Bornecrantz
f3abddf224
xrt: Add multi session managment interface
2021-04-07 00:50:10 +01:00
Jakob Bornecrantz
353c7735bf
xrt: Add alternative functions to wait_frame
2021-04-07 00:50:10 +01:00
Jakob Bornecrantz
1f3896d729
xrt: Add new error code
2021-04-07 00:50:10 +01:00
Jakob Bornecrantz
2ab99b821b
xrt: Add compositor fence interface
2021-04-07 00:50:10 +01:00
Jakob Bornecrantz
2b63fd8078
xrt: Add helper push frame function
2021-04-03 03:07:21 +01:00
Moses Turner
6a833b1131
st/oxr+xrt: add is_active to struct xrt_hand_joint_set to give drivers an easy way to deactivate hands
2021-04-01 02:02:26 +02:00
Christoph Haag
4061bf7707
d/multi: Add "attached" tracking override type
...
Example usage: Leap Motion attached to a Northstar headset.
2021-04-01 02:02:26 +02:00
Ryan Pavlik
061ae2f7b7
xrt: Fix more narrowing conversion warnings.
2021-03-31 12:02:41 -05:00
Ryan Pavlik
58ebd7ee20
xrt: Adjust how we define ssize_t on MSVC
2021-03-30 20:46:00 +00:00
Mateo de Mayo
12d52193da
d/qwerty: Connect the debug UI to the Qwerty driver
...
It was necessary to add a list of xdevs to oxr_sdl2_hack_start and to
populate such list from its callees.
That includes sdl2_program.gui_program->xdevs which was not being filled
for the monado-service target.
2021-03-29 15:41:25 -03:00
Mateo de Mayo
e6db1fae74
d/qwerty: Implement still HMD creation
2021-03-29 15:41:25 -03:00
Jakob Bornecrantz
63f5c86257
xrt: Make xrt_swapchain be reference counted
2021-03-24 17:50:08 +00:00
Christoph Haag
aab94e7add
build/meson: Allow disabling tracking
...
The tracking code uses ifdefs with XRT_HAVE_OPENCV.
2021-03-24 18:05:51 +01:00
Jakob Bornecrantz
0571e0337e
xrt: Add XRT_ERROR_EGL_CONFIG_MISSING error
2021-03-12 00:06:36 +00:00
Jakob Bornecrantz
8be59f73ec
xrt: Return xrt_result_t from xrt_gfx_provider_create_gl_egl
2021-03-12 00:06:36 +00:00
Christoph Haag
851a600a6a
build/meson: Add systemd feature option for monado-service
2021-03-10 01:57:55 +01:00
Christoph Haag
eb594409dd
xrt: Increase number of autoprobers to 16
...
We actually have a total of 11 auto probers.
2021-03-09 14:16:28 +01:00
Jakob Bornecrantz
3077660f1d
u/tracing: Add trace marker code
2021-03-08 11:20:52 +00:00
Mateo de Mayo
75e908552f
doc: Fix missing entities from modules documentation
2021-03-06 20:34:35 -03:00
Christoph Haag
5e4c62c8aa
aux/util: Move json config parsing to aux/util
2021-03-02 19:43:19 +01:00
Christoph Haag
ff16eab9df
xrt: implement multi device wrappers for tracking overrides
...
Example config ~/.config/monado/config_v0.json
{
"active": "tracking",
"tracking": {
"version": 0,
"tracking_overrides": [
{
"target_device_serial": "LHR-E8CC625B",
"tracker_device_serial": "LHR-1D80A098",
"offset": {
"orientation": {
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"position": {
"x": 0,
"y": 0,
"z": 0
}
}
}
]
}
}
v2: Add multi device wrapper
2021-03-02 19:43:19 +01:00
Christoph Haag
13db11901c
d/rs: Add prober and create xrt_device for rs
2021-03-02 19:43:19 +01:00
Christoph Haag
58e68e0a4a
st/prober: Allow querying entries and autoprobers
2021-03-02 17:50:19 +00:00
Christoph Haag
37c96ee7fb
xrt: Add a static driver_name to probers
2021-03-02 17:50:19 +00:00
Jakob Bornecrantz
d6eda06ae2
doc: Remove md prefix from all Markdown pages
2021-03-01 19:42:52 +00:00
Jakob Bornecrantz
ecfec5028e
xrt: Add doccomment and fix doxygen error
2021-03-01 19:31:25 +00:00
Mateo de Mayo
116d77f52e
st/prober: Allow autoprobe function to create more than one device.
2021-02-28 15:27:52 +00:00
Jakob Bornecrantz
78dbbec891
st/prober: Improve xrt_prober_destroy
2021-02-15 16:13:07 +00:00
Jakob Bornecrantz
2c012374da
st/prober: Add copydocs
2021-02-15 16:13:07 +00:00
Jakob Bornecrantz
a6fe8e8b1e
st/prober: Clarify xrt_prober_get_string_descriptor
2021-02-15 16:13:06 +00:00
Jakob Bornecrantz
a55c6f3cc4
st/prober: Tidy and add doc-comment
2021-02-15 16:13:00 +00:00
Christoph Haag
c67a6ccd34
xrt: Add xrt_device::serial for uniquely identifying devices if possible
...
d: Make controller serials unique by appending number
For drivers that do not (yet) know a persistent unique id per device.
2021-02-12 00:38:51 +01:00
Christoph Haag
47ed26a5e8
xrt: Add XRT_INPUT_GENERIC_TRACKER_POSE
2021-02-11 20:54:31 +01:00
Jakob Bornecrantz
35da4a51ea
d/vf: Refactor code to add videotestsrc capability and break out gstreamer detection
2021-02-02 13:53:48 +00:00
Jakob Bornecrantz
5b6e6bf6a6
xrt: Add XRT_FORMAT_BAYER_GR8 format
2021-01-27 16:09:07 +00:00
Jakob Bornecrantz
fa2748637a
xrt: Expose more information on frame servers
2021-01-27 16:09:07 +00:00
Christoph Haag
b64b6f75fe
comp: Return proper errors for OpenGL xrCreateSwapchain
2021-01-26 15:26:47 +00:00
Christoph Haag
edd6a4cf70
xrt: Move oxr_binding_data.h to json profile generator
...
Move json profile generator to auxiliary/bindings and make generated_bindings static library.
aux/bindings: Add hardware type
aux/bindings: Add various steamvr specific things to bindings
Paths like "/input/menu/click" are used in SteamVR input profiles.
2021-01-20 18:23:09 +01:00
Christoph Haag
e09d2db8e5
xrt: Add various device and input enum values
2021-01-20 18:23:09 +01:00
Christoph Haag
69fc55e15e
xrt: cast XRT_GET_INPUT_TYPE result
...
Useful for C++ compilers.
2021-01-20 18:23:09 +01:00
Jakob Bornecrantz
afea93f297
xrt: Remove prepare function from xrt_compositor
2021-01-20 15:04:09 +00:00
Jakob Bornecrantz
2b8c835b68
xrt: Introduce xrt_system_compositor
2021-01-20 15:04:09 +00:00
Christoph Haag
9481013081
comp: add VkDisplayKHR window backend
...
Must be activated/selected with an env var for now: XRT_COMPOSITOR_FORCE_VK_DISPLAY=2
2021-01-19 17:00:46 +00:00
Jakob Bornecrantz
2b996f30c4
xrt: Reflow after column change
2021-01-15 13:50:32 +00:00
Christoph Haag
e2c1bc1d16
xrt: Rename hand_origin to hand_pose
...
hand_origin is confusing because it implies it is the origin of the coordinate system the hand is in.
It actually is the hand pose in the "global" coordinate system.
2021-01-06 13:29:36 +00:00
Jakob Bornecrantz
15320d9ebe
c/client: Insert fence and give sync handle on layer_commit (EGL for now only)
2020-12-28 15:22:46 +00:00
Jakob Bornecrantz
1302b07d68
xrt: Add sync_handle argument to layer_commit
2020-12-28 15:22:06 +00:00
Lubosz Sarnecki
8bdff9a61a
u/logging: Implement optional color logging.
...
Check if stderr is a tty.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
dc45a201db
c+ipc+st: Complete equirect1 boilerplate.
2020-12-14 18:59:28 +00:00
Lubosz Sarnecki
c8bdfae83e
src: Consistently append 1 to equirect1 code.
...
Rename XRT_FEATURE_OPENXR_LAYER_EQUIRECT_LEGACY to XRT_FEATURE_OPENXR_LAYER_EQUIRECT1.
Use correct define in verify_equirect1_layer function.
Rename equirect to equirect1.
meson: enable equirect1 by default.
2020-12-14 18:59:28 +00:00
Lubosz Sarnecki
f334b8b6c7
src: Consistently append 2 to equirect2 code.
...
Rename XRT_FEATURE_OPENXR_LAYER_EQUIRECT to XRT_FEATURE_OPENXR_LAYER_EQUIRECT2.
Rename equirect to equirect2.
Rename shader files.
2020-12-14 18:59:28 +00:00
Jakob Bornecrantz
743c289be5
xrt: Code style
2020-12-09 21:03:50 +00:00
Christoph Haag
f0d21c1dcc
d/vf: Add video file playback driver
2020-12-07 12:30:26 +00:00
Christoph Haag
e480352cee
t/hand: Add hand tracking module
2020-12-07 12:30:26 +00:00
Christoph Haag
717d3a27ef
d/ht: Add hand tracking driver code skeleton
2020-12-07 12:30:26 +00:00
Christoph Haag
f7a8e8810b
xrt: Split hand tracking input name into left/right
...
oxr_hand_tracker now stores which xdev and input name it tracks.
2020-12-07 11:43:51 +00:00
Ryan Pavlik
535f20b503
inc/xrt: Reference the Vulkan extension table from related data.
2020-12-06 23:07:05 +00:00
Lubosz Sarnecki
049bc385b1
xrt: Remove unused XRT_DEVICE_ANDROID.
2020-12-01 18:05:32 +01:00
Ryan Pavlik
04318b4104
meson: Generate a mock Android config header.
2020-12-01 18:05:31 +01:00
Christoph Haag
f5ef3985ba
xrt: Add support for locating hand joints in action spaces
2020-11-23 20:42:54 +00:00
Ryan Pavlik
af8459e407
inc/xrt: Comments
2020-11-23 14:18:20 -06:00
Christoph Haag
9e788df463
xrt: Remove lens center from xrt_view
...
It's only used internally in drivers now.
2020-11-12 16:04:00 +01:00
Christoph Haag
0af755814c
xrt: Improve comment documenting xrt_view::viewport
2020-11-12 16:03:27 +01:00
Christoph Haag
c7ebf91821
xrt: Improve comment documenting xrt_view::display
2020-11-12 16:03:27 +01:00
Christoph Haag
1ad25d1050
xrt: Document that xrt_hmd_parts::screens dimensions are before rotation
2020-11-12 16:03:27 +01:00
Christoph Haag
cb62514fd0
steamvr: Implement basic SteamVR driver
...
v3:
targets: Add Monado-SteamVR driver target
st/ovrd: Add OpenVR driver header
build: Factor out sdl hack into lib_sdl2_hack and update steamvr build
build: Revert lib_sdl2_refactor
steamvr: Emulate Index Controller by default
steamvr: Use oxr_handle_destroy instead of exposing oxr_instance_destroy
steamvr: don't use oxr internals
steamvr: communicate 3dof tracking to steamvr
steamvr: use util functions for device assignment and tracking origin setup
steamvr: Install plugin to <prefix>/share/steamvr-monado
steamvr: Use thread for updating poses every 1ms
Makes a big difference for the Index @144Hz on the vive driver.
Still somewhat choppy on survive driver - prediction should solve it.
Main-author: Christoph Haag <christoph.haag@collabora.com>
Co-author: Jakob Bornecrantz <jakob@collabora.com>
2020-11-09 19:21:27 +00:00
Jakob Bornecrantz
7c807a8605
xrt: Add device driver provided bindings
2020-11-05 14:41:55 +00:00
Lubosz Sarnecki
f4113ef15b
d/android: Add Android sensors driver.
2020-10-30 18:20:35 -05:00
Ryan Pavlik
0f43bbe924
inc/xrt: Add Android config header to store package name.
2020-10-28 09:32:49 -05:00
Lubosz Sarnecki
663dfe8990
meson: Add equirect2 to build.
2020-10-26 01:34:10 +00:00
Lubosz Sarnecki
3195ba8351
c/main: Implement XR_KHR_composition_layer_equirect2.
2020-10-26 01:34:10 +00:00
Jakob Bornecrantz
f3394320b1
xrt: Add simple controller input profile
2020-10-15 21:07:40 +00:00
Christoph Haag
1f021a6eda
xrt: Add defines for minimum haptic frequency and unspecified haptic frequency
2020-10-13 19:27:53 +02:00
Christoph Haag
256e2c68d8
xrt: Implement & hook up hand joint tracking infrastructure
...
Include <inttypes.h> to satisfy older compilers
2020-10-12 22:13:47 +02:00
Ryan Pavlik
3faa32753d
inc/xrt: have the vulkan includes include windows.h neatly.
...
The Vulkan header itself already does it, we just want to do it first
with the right defines.
2020-10-08 17:26:22 -05:00
Ryan Pavlik
8b416da12b
xrt: Add Win32 Vulkan platform define when needed
2020-10-08 17:26:22 -05:00
Ryan Pavlik
938e8cb393
inc/xrt: Windows uses Win32 HANDLEs for things.
2020-10-08 17:26:22 -05:00
Ryan Pavlik
60b4fc2ba1
inc/xrt: Add a header for minimally including Windows.h
2020-10-08 17:26:22 -05:00
Christoph Haag
5bea856f20
build/meson: Add XRT_HAVE_DBUS when dbus is found
2020-10-05 16:05:02 +00:00
Jakob Bornecrantz
92caeae39c
xrt: Define XRT_FEATURE_COMPOSITOR_MAIN and XRT_FEATURE_OPENXR
2020-10-05 16:46:06 +01:00
Jakob Bornecrantz
942ba178a0
st/oxr: Add extension support for XR_KHR_composition_layer_equirect2
2020-10-05 16:45:48 +01:00
Jakob Bornecrantz
33879da21a
xrt: Add XRT_HAVE_DBUS
2020-10-05 14:19:52 +01:00
Jakob Bornecrantz
9a675cc7f3
xrt: Rename xrt_uv_triplet
2020-09-30 15:35:57 +01:00
Christoph Haag
29188d681c
xrt: Remove all but mesh distortion values from xrt_hmd_parts::distortion
...
Move vive values to struct u_vive_values in u_distortion_mesh.
Move openhmd values to private struct inside ohmd driver.
2020-09-30 02:05:05 +02:00
Christoph Haag
2e7451ca5e
comp: Support only mesh and no istortion, remove pano and vive shaders
...
Also changes hardcoded binding indices into variables to make following the code easier
e.g. when adding new UBOs.
2020-09-30 02:05:04 +02:00
Christoph Haag
fb71c71a8c
xrt: Replace mesh generator with xdev->compute_distortion()
...
Each HMD driver now has to implement compute_distortion() which will be called
by the compositor implementation to generate a mesh (usually).
u_distortion_mesh contains implementations for the defaults (panotools, OpenHMD, vive).
Also adds compute_distortion function for Vive distortion
There are differences between OpenHMD and Panotools values, main differences for now:
* psvr has 5 pano coefficients, ohmd has 3
* psvr uses viewport size and lens center in pixels for distortion calculation, ohmd in meter
* psvr uses different distortion scaling than ohmd
2020-09-28 17:04:15 +01:00
Ryan Pavlik
54f6aa2166
inc/xrt: Some MSVC and Windows support
2020-09-18 13:56:11 +01:00
Ryan Pavlik
3ff56f4a3c
inc/xrt: Add Windows implementations of atomic intrinsics.
2020-09-18 13:56:05 +01:00
Jakob Bornecrantz
8e24dda794
xrt: Remove out_timestamp argument to xrt_device::get_tracked_pose
2020-09-07 23:37:09 +01:00
Jakob Bornecrantz
eaffa05a37
xrt: Remove acceleration components from xrt_space_relation
2020-09-07 23:36:34 +01:00
Jakob Bornecrantz
4d85db6051
xrt: Add xrt_space_graph
2020-09-07 16:14:46 +01:00
Christoph Haag
4a1d8b3a41
xrt: Fix vive input defines
2020-09-04 01:46:47 +02:00
Jakob Bornecrantz
6846ab7637
xrt: Add stream capture type
2020-09-02 11:52:59 +01:00
Christoph Haag
cde94cc8a2
build: Remove libv4l2 dependency from meson
...
We use the linux/v4l2-common.h header to access v4l devices, not libv4l from v4l-utils.
2020-08-28 12:10:53 +00:00
Pete Black
20ee4114b0
xrt: Fix typo in comment
2020-08-28 11:38:03 +00:00
Jakob Bornecrantz
4e6a137c62
ipc: Make it possible to toggle inputs on and off
2020-08-28 11:33:38 +00:00