Commit graph

262 commits

Author SHA1 Message Date
Ryan Pavlik aa809a99ea build: Small tweak to conditional build flags 2020-05-12 11:46:53 -05:00
Christoph Haag 5908c33439 d/survive: Add survive driver 2020-05-09 13:12:06 +00:00
Ryan Pavlik acbac4f1a6 t/service: Add ability to generate, link, install systemd unit files 2020-05-07 16:54:17 -05:00
Ryan Pavlik 5935fad73b ipc: Add ability for service to be launched by systemd socket activation. 2020-05-07 16:54:11 -05:00
Jakob Bornecrantz 7c8a8a3f87 ipc: Add code to enable a service process
This enables out of process compositing.
2020-04-29 14:58:24 +01:00
Ryan Pavlik 47710e0532 t/openxr: Fix build without OpenGL 2020-04-28 21:36:46 +00:00
Ryan Pavlik 7fab448cf0 build: Support building with system cJSON.
Fixes #62.
2020-04-24 20:34:53 +00:00
Lubosz Sarnecki d752759cd2 cmake: Add pedantic warnings for C++. 2020-04-07 15:00:17 +02:00
Lubosz Sarnecki 4d0c49096d comp/window_direct_mode: Use XCB/Xlib interop.
Since there currently is no Vulkan extension that takes XCB handles to
aqcuire the display Xlib interop needs to be used.

Before this patch Monado was opening connections for both APIs, which
introduced overhead.

Even though all XCB handles can be casted to Xlib ones, this cannot be
done with the main xcb_connection_t / Display. In it's design the
interop between both APIs can create a xcb_connection_t from a XCB
handle, but not the other way round. So in an interop case the Xlib
connection is the main one, since it's on a higher level.
More information on this can be found here:
https://xcb.freedesktop.org/MixingCalls/

Unfortunately the clean solution for this would be to specify a Vulkan
extension that takes XCB handles. This would make sense since Vulkan
is aware of XCB in other parts of the API as well. In Mesa the Xlib
structs will be ultimately casted to XCB.
2020-03-31 17:47:17 +02:00
Jakob Bornecrantz a8a4d8c3dd d/arduino: Add new flexible arduino based input device 2020-03-27 10:22:19 +00: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
Pete Black 6b4ec70d14 aux/os: Add D-Bus based BLE code 2020-03-11 21:36:49 +00:00
Ryan Pavlik 6b2b9c4ff4 build: Adjust usage of pkgconfig.
The existing thing would find pkg-config when cross-building for 32-bit,
but then immediately complain it wasn't found.
2020-03-03 17:30:45 -06: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 09aa8794b2 aux/vk: Refactor out helper code into own library 2020-03-02 11:58:40 +00:00
Jakob Bornecrantz 5a49fa9bc8 cmake: Build minimum version
Ubuntu 18.04 is the only debian based distro currently that doesn't have
cmake 3.13 packaged. And Ubuntu 18.04 is not supported for other reasons.

Closes #50
2020-02-13 09:46:54 +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 356e4c18c1 d/dummy: Add dummy HMD driver 2020-01-25 14:42:02 +00:00
Ryan Pavlik 130a649f92 build: Move checking of sufficient enabled drivers to the drivers dir 2020-01-14 11:51:12 -06:00
Ryan Pavlik 639b524ec9 build: Adjust looking for OpenGL and EGL 2020-01-14 11:51:12 -06:00
Ryan Pavlik 286e11921c build: Adjust options to be more complete. 2019-12-07 18:25:37 +00:00
Ryan Pavlik 60460c9c5e build: Pass -Wl,--no-undefined when linking 2019-12-07 18:25:37 +00:00
Jakob Bornecrantz 76d6133142 cmake: Fix v4l2 flag not being set 2019-11-10 01:36:46 +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
Christoph Haag dfd6691d71 cmake: Add cmake option for psvr driver
Removes BUILD_WITH_HIDAPI option since only the psvr driver uses hidapi.
2019-10-31 02:12:27 +01:00
Christoph Haag 9f6b5ad841 cmake: Expand enabled drivers sanity check
Makes it possible to build monado with only one native driver enabled.
2019-10-31 01:50:30 +01:00
Christoph Haag a9e6c24eb2 cmake: Add cmake option for hdk, psmv and hydra driver 2019-10-31 01:50:30 +01:00
Christoph Haag 0a39bd8600 cmake: Add cmake option for native vive driver 2019-10-31 01:17:11 +01: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 Borncrantz 0bc91ab1cd cmake: Make sure to link to pthreads 2019-10-15 21:00:12 +02: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
Lubosz Sarnecki 871f6bfc87 cmake: Remove unused and deprecated FindWayland.cmake script.
Martin Gräßlin's script from 2013 does not look for the
Wayland protocols directory and the scanner.
2019-10-02 12:22:36 +02: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
Jakob Bornecrantz 44d58037b7 t/gui: Add SDL2 based GUI target 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz 79402d0081 aux/track: Add stub calibration tracker 2019-08-20 13:07:42 +01:00
Benjamin Saunders c111f528b8 oxr: Optionally install as the default runtime 2019-08-19 12:09:49 -05: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
Ryan Pavlik 1f0b43632c build: Adjust OpenCV components add JPEG and use libusb cmake file 2019-06-28 17:38:32 +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 334d62dfcd build: Only show the XRT_BUILD_ defines where they're needed. 2019-06-21 13:17:55 -05:00
Benjamin Saunders e5325d5a66 oxr: Use absolute path to runtime in manifest by default 2019-06-19 08:15:08 -07: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
Jakob Bornecrantz b71e143eaa d/psmv: Add PS Move driver 2019-06-18 17:56:10 +01:00
Jakob Bornecrantz 42cddb2580 d/psvr: Add a experimental PSVR driver
Hidden behind a env variable.
2019-05-06 16:46:10 +00:00
Jakob Bornecrantz ade0594914 build: Add libudev on Linux 2019-05-02 14:08:11 +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 6f41fbc43d build: Tidy whitespace 2019-04-24 02:19:53 +01:00
Jakob Bornecrantz dfe5e3935f build: Make libusb, libuvc, FFMPEG and OpenCV usable in build
Only libusb is required.
2019-04-24 02:19:53 +01:00
Ryan Pavlik 87d13d9a00 build: Remove unused BUILD_TESTS option.
BUILD_TESTING is the normal one used in CMake projects,
as far as I can tell.
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
Lubosz Sarnecki 00afe442f8 comp: Introduce XRT_COMPOSITOR_VULKAN_VALIDATION.
For enabling Vulkan validation during runtime.
Add CMake option to disable Vulkan validation at build time.
By default the DEBUG extension is enabled but the validation layers
are not when the ENV variable is not set to true.
2019-03-29 10:59:41 +01: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