Commit graph

270 commits

Author SHA1 Message Date
Jakob Bornecrantz 80dd892987 xrt: Add serial and manufacturer to xrt_prober video device probing interface 2020-04-28 18:51:07 +00:00
Christoph Haag d4e4a690db d/vive_controller: Add basic 3dof vive_controller_driver
v2: Add basic 3DOF Index Controller support

Only the "gen1" watchman usb protocol is supported (almost same as vive wand).
Note: Lighthouse v2 data is not properly ignored, the IMU data is only parsed correctly
when controller is not hit by lighthouse lasers.

Supported:
* trigger value
* trigger button
* trackpad x, y
* trackpad touch
* thumbstick x, y
* thumbstick click
* system click
* a click,
* b click

Not supported:
* trigger touch
* touchpad force
* thumbstick touch
* system touch
* a touch
* b touch
* grip squeeze
* finger tracking
2020-04-28 10:22:42 +00:00
Ryan Pavlik 427808d09a build: Use version script in Meson build too. 2020-04-27 17:33:43 -05:00
Ryan Pavlik 95b5c03f10 build: Relink if version script changes. 2020-04-27 17:33:38 -05:00
Ryan Pavlik a11f5cc429 target/oxr: Mark the runtime target as a module, not a shared library. 2020-04-24 20:34:53 +00:00
Jakob Bornecrantz 945f2c82ed targets: Move xrt_instance implementation into targets 2020-04-11 12:31:58 +01:00
Jakob Bornecrantz c39cb39643 st/oxr: Use new xrt_instance object 2020-04-10 13:48:18 +01:00
Jakob Bornecrantz fa0789343e targets: Add stub implementations of xrt_gfx_provider_create_fd
This is needed by st/prober's default implementation of xrt_instance.
2020-04-10 13:48:18 +01:00
Jakob Bornecrantz de20d87f87 xrt: Make it possible for the prober to pass in JSON data to the drivers 2020-04-10 12:29:21 +00:00
Jakob Bornecrantz a8a4d8c3dd d/arduino: Add new flexible arduino based input device 2020-03-27 10:22:19 +00:00
Ryan Pavlik a974562d43 t/openxr: Unify configured files for Meson and CMake. 2020-03-23 17:29:43 -05:00
Ryan Pavlik 377ae07e53 xrt: Add missing SPDX tags 2020-03-23 17:29:43 -05:00
Ryan Pavlik 09c189b6ba build: Install more targets 2020-03-23 17:29:43 -05:00
Pete Black b6613db5d4 d/dd: Add Daydream driver 2020-03-11 21:36:49 +00:00
Ryan Pavlik fe40691052 build: Start using version script to reduce the number of exported symbols 2020-03-04 09:55:16 -06:00
Ryan Pavlik 71c29425d4 build: Fix linking issues preventing the OpenXR runtime from working. 2020-03-04 09:54:47 -06:00
Ryan Pavlik 92205ab5be build: Refactor CMake build to use static libraries instead of object bundles.
This allows transitive dependencies to work easier and improves compatibility.
It takes a little bit more storage at build time, and possibly a little extra time.
2020-03-04 11:15:35 +00:00
Ryan Pavlik 81d9983398 build: Improve handling of common dependencies, and portability 2020-03-03 10:33:14 +00:00
Ryan Pavlik fdaede836c build: Make it possible to turn off the main compositor lib and runtime target. 2020-03-03 10:33:14 +00:00
Jakob Bornecrantz 0619190d2b build: Refactor how config defines are handled
With loads of changes from Ryan.
2020-03-03 10:33:14 +00:00
Jakob Bornecrantz ca3c266dc1 comp: Split client and main in the build system as well 2020-03-02 12:01:04 +00:00
Jakob Bornecrantz 09aa8794b2 aux/vk: Refactor out helper code into own library 2020-03-02 11:58:40 +00:00
Jakob Bornecrantz d6d934e35f d/rs: Meson build 2020-02-10 20:07:31 +00:00
Jakob Bornecrantz 53201debdc d/rs: Add a simple pure 6DOF device, for the T26[1|5] devices 2020-02-10 20:07:31 +00:00
Nova 981fe55a27 d/ns: Add North Star stub driver 2020-01-25 17:06:51 +00:00
Jakob Bornecrantz d305f773ea d/ohmd: Do not open External Device by default 2020-01-25 14:42:02 +00:00
Jakob Bornecrantz 356e4c18c1 d/dummy: Add dummy HMD driver 2020-01-25 14:42:02 +00:00
Ryan Pavlik 871395d5b5 build: Adjust meson build equivalently 2020-01-14 12:28:23 -06:00
Ryan Pavlik 47f704277a xrt: Let BUILD_TRACKING mean you need more than just the IMU fusion.
This is required to build anything that uses the IMU fusion module
without OpenCV.
2020-01-14 11:51:12 -06:00
Ryan Pavlik c1928468af t/gui: Fix SDL flag enum type 2020-01-09 17:35:54 -06:00
Ryan Pavlik c123195800 t/oxr: Fix type issue with sdl2 code 2020-01-09 17:35:54 -06:00
Ryan Pavlik 13c099f59e xrt: Fix for mismatched parameter names 2020-01-09 22:54:01 +00:00
Ryan Pavlik 5c830f16b2 t/oxr: Fix linking in absence of SDL2 2019-12-07 18:25:37 +00:00
Ryan Pavlik 24158bd747 t/gui: Apply clang-tidy fixes to remove redundant returns. 2019-12-07 18:24:56 +00:00
Ryan Pavlik d9fb855f6e t/cli: Fix type correctness 2019-12-07 18:24:56 +00:00
Christoph Haag b17f1c2f97 st/oxr: Initialize sdl on main thread
Calling SDL_Init() in different threads in the same process crashes.

In this SDL2 code X11_XOpenDisplay() will be a null pointer on the second thread;

    if (SDL_X11_LoadSymbols()) {
        display = X11_XOpenDisplay(NULL);

This becomes a problem when monado starts the debug UI in a thread,
and then an OpenXR client application tries to initialize SDL.

Two consecutive SDL_Init() in the same thread is harmless though.
2019-11-17 13:59:21 +00:00
Jakob Bornecrantz a29dd8c0a4 st/oxr: Improve destruction of GUI hack 2019-11-09 12:53:42 +00:00
Ryan Pavlik e8660a18bd build: Use CMAKE_POSITION_INDEPENDENT_CODE instead of target props.
Reduces repetitive code.
2019-11-01 16:51:54 -05:00
Jakob Bornecrantz 5f4ddcc414 t/cli: Add a just probe command 2019-10-25 18:34:18 +01:00
Jakob Bornecrantz 8301bd8d4c external: Refactor out sdl functions from main cimguo.cpp 2019-10-22 21:37:03 +01:00
Lubosz Sarnecki 02dc839ca8 d/vive: Add initial support for the Valve Index. 2019-10-22 19:18:47 +02:00
Lubosz Sarnecki 2ed3109c95 d/vive: Add initial support for Vive Pro. 2019-10-22 19:18:47 +02:00
Lubosz Sarnecki e063e8245e d/vive: Add native driver for the Vive.
This adds a driver for the Vive family of devices based on Philipp
Zabel's ouvrt.
The driver currently only handles the IMU and main board report streams,
but is able to acquire the JSON configuration and utilize it for IMU
calibration as well as distortion configuration.
2019-10-22 19:18:47 +02:00
Jakob Bornecrantz e56271d968 st/oxr: Add super hacky debug gui 2019-10-15 20:54:57 +01:00
Jakob Bornecrantz 5f1078675d st/gui: Do not call prober select in debug scene 2019-10-15 20:54:52 +01:00
Jakob Borncrantz 0bc91ab1cd cmake: Make sure to link to pthreads 2019-10-15 21:00:12 +02:00
Lubosz Sarnecki 6ec8721899 xrt: Add num_devices to prober found interface.
In order to access multiple devices the prober found interface needs to
pass the length of the device list. This patch updates the found
interface in all drivers.
2019-10-11 15:56:20 +01:00
Drew DeVault 202d1d72aa openxr/meson.build: remove install: true
This removes the meson feature warnings.
2019-10-10 22:58:10 +00:00
Jakob Bornecrantz 7680038f8b t/gui: Request forward compatible OpenGL version and minimum 3.2 2019-10-10 16:06:57 +01:00
Jakob Bornecrantz 102e36efc9 st/gui: Don't include glad directly 2019-10-09 22:11:41 +01:00
Jakob Bornecrantz 1afc4df95c st/gui: Refactor gui code into it's own state tracker 2019-10-09 21:53:21 +01:00
Jakob Bornecrantz e327d56bf4 aux/ogl: Introduce a single small OpenGL library 2019-10-09 17:07:23 +01:00
Jakob Bornecrantz 420f25c7f7 t/gui: Refactor out SDL2 code 2019-10-09 16:32:58 +01:00
Lubosz Sarnecki 979536dd4b xrt/comp/cmake: Enable build of Wayland backend.
Add pkgconfig based Wayland build including protocol generation.
2019-10-02 12:22:42 +02:00
Jakob Bornecrantz 3e27720083 t/gui: Better handling of sink interceptors 2019-09-28 18:02:41 +01:00
Jakob Bornecrantz 6dcf69df83 aux/tracking: Adjust checkerboard corners for subpixel accuracy 2019-09-28 02:47:42 +01:00
Jakob Bornecrantz ee3f54adb6 aux/tracking: Add parameters to calibration 2019-09-27 20:49:31 +01:00
Jakob Bornecrantz c295c8e6c9 xrt: Refactor meson and cmake (most) to fix cmake build 2019-09-27 12:19:48 +01:00
Jakob Bornecrantz d848ea010f xrt: s/XRT_BUILD_*/XRT_BUILD_DRIVER_*/g 2019-09-27 12:03:36 +01:00
Drew DeVault 064aef3526 build: port to meson 2019-09-26 15:05:22 +00:00
Jakob Bornecrantz b1febd8971 t/gui: Add a calibration scene 2019-09-23 11:46:06 +01:00
Jakob Bornecrantz b50415a367 t/gui: Add main menu and pure debug scene 2019-09-21 18:33:45 +01:00
Jakob Bornecrantz 65eeb19939 targets: Link with tracking if built 2019-09-21 18:21:05 +01:00
Ryan Pavlik f123c41146 t/gui: Support quat values 2019-09-20 10:07:50 +01:00
Ryan Pavlik f10eaafcdb t/gui: Align floats by always outputting the + or - 2019-09-20 10:07:46 +01:00
Lubosz Sarnecki 910f16fd30 targets/cli: Fix build with OpenHMD disabled.
Without this patch the build is failing due to linker errors
when BUILD_WITH_OPENHMD is set to false.
2019-09-20 10:15:17 +02:00
Jakob Bornecrantz 9d1353c626 t/gui: Connect it all together 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz a507aee906 t/gui: Add two scenes 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz 74bdb0cb38 t/gui: Add imgui code 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz 71b3de9c46 t/gui: Add scene manager 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz c474112782 t/gui: Add OpenGL sink code 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz 968952aa9e t/gui: Add st/prober code 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz 44d58037b7 t/gui: Add SDL2 based GUI target 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz 3d744c5959 d/psmv: Add support for ZCM2 2019-09-15 15:29:45 +01:00
Jakob Bornecrantz 29b1713be9 xrt: Add enum xrt_device_name so that state trackers can reason about device 2019-09-04 12:47:18 +01:00
Jakob Bornecrantz 005abd5429 t/cli: Tidy CMakeLists.txt file 2019-08-27 08:52:57 +01:00
Benjamin Saunders c111f528b8 oxr: Optionally install as the default runtime 2019-08-19 12:09:49 -05:00
Ryan Pavlik e824b83112 st/oxr: Install manifest to major version "1" subdir 2019-08-17 03:31:40 +00:00
Ryan Pavlik c048bc0052 targets: Clang-tidy fixes (name consistency) 2019-08-16 17:25:29 -05:00
Benjamin Saunders dbbfe8e455 Handle CMAKE_INSTALL_LIBDIR being absolute
This seems to be common in distro packaging environments.
2019-08-16 14:52:45 +00:00
Ryan Pavlik 853f8ab68e d/hdk: Port to internal HID wrapper.
Not entirely feature-complete due to lack of access to descriptor strings.
2019-08-15 12:36:01 +00:00
Ryan Pavlik 2cd28914c7 d/hydra: Initially-functional multi-device Razer Hydra driver.
Not pretty - no filtering on tracking, coordinate system
probably a little bit wrong still, no hemisphere tracking,
but enough to show movement and resizing in hello_xr.
2019-07-29 03:01:57 +00:00
Jakob Bornecrantz 718a81608a d/v4l2: Add new frameserver 2019-07-23 17:41:34 +01:00
Jakob Bornecrantz a544b4b56f aux/util: Add sink format converters 2019-07-23 17:41:34 +01:00
Jakob Bornecrantz e336590153 t/cli: Use new prober function helpers 2019-06-30 14:35:27 +01:00
Jakob Bornecrantz af7238ec21 t/common: Link with Libusb1 2019-06-28 17:49:24 +01:00
Jakob Bornecrantz 1e8d683a49 t/common: Add PSVR to list of defines in targets_enabled 2019-06-28 16:53:53 +01:00
Jakob Bornecrantz 58da7263f1 t/common: Fix typo in PSMV define 2019-06-28 16:53:32 +01:00
Jakob Bornecrantz ef36766aca t/cli: Stub for calibration 2019-06-28 14:03:50 +01:00
Jakob Bornecrantz 249b9a03ca t/cli: Turn prober command into a cli interface for Monado 2019-06-28 14:03:50 +01:00
Ryan Pavlik 0d75b465bd build: Move enabled-driver defines to a header, instead of compiler options for every target. 2019-06-26 10:52:27 -05:00
Jakob Bornecrantz ec69936890 build: Revert "Only show the XRT_BUILD_ defines where they're needed."
This reverts commit 334d62dfcd.
2019-06-26 16:17:06 +01:00
Ryan Pavlik 1f84814721 st/prober: Allow "found" functions called by prober to make more than one device. 2019-06-22 11:34:51 +01:00
Jakob Bornecrantz 46fa9cbd25 t/prober: Refactor closing down a bit 2019-06-21 21:56:06 +01:00
Ryan Pavlik cfb443843f targets/common: Add comment to target_entry_list 2019-06-21 13:17:55 -05:00
Ryan Pavlik 334d62dfcd build: Only show the XRT_BUILD_ defines where they're needed. 2019-06-21 13:17:55 -05:00
Ryan Pavlik c5fea837f3 oxr: Allow relative vs absolute manifest path to be selected at configure time. 2019-06-19 08:15:08 -07:00
Ryan Pavlik 88efae1078 oxr: Generate the dev manifest using the same template as installed. 2019-06-19 08:15:08 -07:00
Ryan Pavlik fc98db1439 oxr: Use an absolute path in the installed runtime manifest. 2019-06-19 08:15:08 -07:00
Ryan Pavlik 66086c1b0b oxr: Reduce proportion of install that's platform-guarded 2019-06-19 08:15:08 -07:00
Benjamin Saunders 40d8446ba8 oxr: Use absolute path of runtime library in manifest
Improves robustness when there might be multiple libraries by the same
name visible to the loader.
2019-06-19 08:15:08 -07:00
Jakob Bornecrantz 43f2a0f054 t/common: Code style 2019-06-19 12:10:12 +01:00
Ryan Pavlik 02be89bf35 targets: De-duplicate conditional inclusion of driver objects/libraries. 2019-06-18 18:44:17 +00:00
Jakob Bornecrantz b71e143eaa d/psmv: Add PS Move driver 2019-06-18 17:56:10 +01:00
Jakob Bornecrantz 8aec512de3 xrt: Update prober interface 2019-06-10 14:47:19 +01:00
Jakob Bornecrantz 43dfb400a6 prober: Add small helper program to debug st/prober 2019-05-16 20:41:35 +01:00
Jakob Bornecrantz 702eba0f53 openxr: Use prober target 2019-05-16 20:41:35 +01:00
Jakob Bornecrantz d97df04c11 xrt: Add new prober interface and code 2019-05-16 20:41:35 +01:00
Jakob Bornecrantz e2bd986bc5 os: Add a minimal hidraw wrapper 2019-05-13 18:26:02 +01:00
Jakob Bornecrantz d9cdd04b7a openxr: Don't unconditionally link with OpenHMD driver 2019-05-13 18:09:40 +01:00
Jakob Bornecrantz 83159a02c1 d/psvr: Add to meta prober and OpenXR target
Still hidden behind a env variable.
2019-05-06 16:46:10 +00:00
Jakob Bornecrantz dc9ab44a5a xrt: Rename xrt_prober to xrt_auto_prober 2019-05-03 18:53:07 +01:00
Jakob Bornecrantz 9c05e853cc build: Refactor flags and definitions (and fix fallout)
Defines:
* XRT_HAVE_[name] is a external dep indicator.
* XRT_DRIVER_[name] if a internal driver is built.

CMake variables:
* BUILD_WITH_[name] is a external dep indicator.
* BUILD_DRIVER_[name] tells if we should build a specific driver.
2019-04-29 17:18:09 +01:00
Jakob Bornecrantz 2d6b3c2113 openxr: Use meta prober 2019-04-15 09:52:44 +01:00
Ryan Pavlik 917366a730 build: Fix typo.
Left over from an abandoned alternate approach.
2019-04-08 15:19:18 -05:00
Ryan Pavlik d4b47a0edb build: Don't say CMAKE_INSTALL_PREFIX in an install destination
This can make it harder for packagers, or at least isn't
"best practices" without a good reason.
2019-04-08 19:11:04 +00:00
Ryan Pavlik 5cfa0907b6 build: Use and obey config options for driver selection.
We had BUILD_WITH_OPENHMD but it was unused,
while the HDK driver always built if the deps were found.
2019-04-08 19:11:04 +00:00
Ryan Pavlik eec53ca35d build: Use FindOpenHMD.
Fixes a gripe/todo in the build system, too :D
2019-04-08 19:11:04 +00:00
Benjamin Saunders f016492a81 build: Add missing GLX dependency
Fixes loading by applications that do not themselves link GLX.
2019-03-22 20:11:51 -07:00
Jakob Bornecrantz 15a97422ba xrt: Add all of Monado 2019-03-18 05:52:32 +00:00