Commit graph

1235 commits

Author SHA1 Message Date
Jakob Bornecrantz b3e84f9041 xrt: Make sure that auto probers can add non-HMD devices after a HMD has been found 2020-01-23 15:51:36 +00:00
Jakob Bornecrantz c2560ae6d2 xrt: Switch to new quirking sink
This is done in one commit as split out they would leave the code
in a fairly broken state.
2020-01-17 14:31:50 +00:00
Jakob Bornecrantz 4024bd454a xrt: Expose the name of the frameserver source 2020-01-17 14:31:45 +00:00
Jakob Bornecrantz 6603882a2d u/sink: Add new quirking sink 2020-01-17 14:31:45 +00:00
Jakob Bornecrantz 30e9338aba t/calib: Don't lose any pixels in stereo rectification 2020-01-17 14:01:52 +00:00
Jakob Bornecrantz 1085db150b t/calib: Fix rectify for stereo fisheye camera 2020-01-17 14:00:22 +00:00
Jakob Bornecrantz ba10152765 t/calib: Print out rectify matricies 2020-01-17 14:00:22 +00:00
Jakob Bornecrantz 67d33550cf t/calib: Change how default arguments are applied 2020-01-17 12:09:08 +00:00
Jakob Bornecrantz 8564bbec4f st/prober: Update GUI with new truths 2020-01-16 23:04:14 +00:00
Ryan Pavlik e35c87d59e comp: Fix glXGetProcAddress prototype when building as C++ 2020-01-16 22:37:43 +00:00
Ryan Pavlik 5592ed28da xrt: Make vkGetInstanceProcAddr prototype available. 2020-01-16 22:37:39 +00:00
Ryan Pavlik 0df4dc2be1 st/prober: Fix typo 2020-01-16 22:37:29 +00:00
Jakob Bornecrantz d1af0b7f15 t/calib: Play around with mono calibration a bit 2020-01-16 22:34:04 +00:00
Jakob Bornecrantz 62013c142b t/helper: Introduce a small debug frame helper 2020-01-16 18:15:21 +00:00
Jakob Bornecrantz 50eda5a262 t/hsv: Copy stereo format to result frame 2020-01-16 17:47:08 +00:00
Jakob Bornecrantz 5d6ed6973c u/sink: Copy stereo format to result frame 2020-01-16 17:47:08 +00:00
Ryan Pavlik c957072dfc t/calib: Remove references to left and right from new structs 2020-01-16 09:14:07 -06:00
Ryan Pavlik 81acc290cb t/calib: Clean up emplace_back calls. 2020-01-16 09:14:07 -06:00
Ryan Pavlik 2d20f2066a t/psmv: Update existing blob tracker to work with simpler input 2020-01-16 09:12:50 -06:00
Ryan Pavlik 91fdfd0c94 t/file: Have matrix reader be more careful about loading, and optionally transpose
The, actually consistently use result of matrix read and built-in transpose to simplify code
2020-01-16 09:08:32 -06:00
Ryan Pavlik bc49fd4803 t/calib: Use cv::Mat_<> for wrappers since the element type is known 2020-01-16 09:08:32 -06:00
Ryan Pavlik fcdebc6e9d aux/tracking: Re-organize structs related to camera calibration.
Removes the "raw" data structures for camera calibration, not needed.
The only thing they contained beyond the revised regular structures
was derived data that the consumer might parameterize differently.

Renames t_settings_stereo to t_stereo_camera_calibration.
The calibration info is data (that could be stored on the device, etc),
not settings.
2020-01-16 09:07:52 -06:00
Jakob Bornecrantz 771006f97b t/calib: Fix OpenCV type-related assertions and some perf enhancments
Pre-reserve, use emplace to avoid copies.
This is a combination of Ryan's patches and mine.

t/calib: performance improvements
t/calib: Fix doxygen warning
t/calib: Fix asserts and some perf enhancments
2020-01-16 00:02:56 +00:00
Samantha Bowen 14bfd17f39 d/ohmd: Add position tracking. 2020-01-15 21:07:05 +00:00
Ryan Pavlik b44f14d348 st/gui: Display the calibration status data. 2020-01-14 15:55:50 -06:00
Ryan Pavlik 9790ca7602 t/calib: Add interface for getting some status info on calib process. 2020-01-14 15:55:50 -06:00
Ryan Pavlik dec5d8de7d st/gui: Update camera calibration config GUI 2020-01-14 15:55:50 -06:00
Ryan Pavlik 871395d5b5 build: Adjust meson build equivalently 2020-01-14 12:28:23 -06:00
Ryan Pavlik 066f57d7d8 external: Update flexkalman 2020-01-14 11:51:12 -06:00
Ryan Pavlik c68d3bfe54 build: Adjust CMake build to allow actually disabling dependencies/options 2020-01-14 11:51:12 -06:00
Ryan Pavlik f834d20300 xrt: Move OpenXR platform defines to build system 2020-01-14 11:51:12 -06: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 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 67a561d0ea st/oxr: Fix ifdef guards 2020-01-14 11:51:12 -06:00
Ryan Pavlik 682f41a37c comp: Fix build when VK_USE_PLATFORM_XLIB_XRANDR_EXT is not defined 2020-01-14 11:51:12 -06:00
Ryan Pavlik 358cde31b7 comp: Add a comment explaining why a function is guarded 2020-01-14 11:51:12 -06:00
Ryan Pavlik d03db42075 d/hdk: Does not require hidapi 2020-01-14 11:51:12 -06:00
Jakob Bornecrantz 382813edd6 d/vive: Dump JSON config on debug instead of spew 2020-01-14 15:59:41 +00:00
Jakob Bornecrantz 8ded6bac8b d/vive: Extract lighthouse data 2020-01-14 15:59:41 +00:00
Jakob Bornecrantz 5bf65b41fa math: Add some more functions 2020-01-14 15:59:41 +00:00
Jakob Bornecrantz 796d9c49ec t/calib: Support stereo fisheye in the config file 2020-01-14 15:42:31 +00:00
Jakob Bornecrantz 4ae650a006 t/calib: Support stereo fisheye in stereo calibration 2020-01-14 15:42:31 +00:00
Jakob Bornecrantz 0e6b908f80 t/callib: Move stereo calibration to new interaction 2020-01-14 15:42:31 +00:00
Jakob Bornecrantz 3f9d94cb8a d/psmv: Mark ball pose as active depending on tracking 2020-01-13 21:59:37 +00:00
Jakob Bornecrantz c383a933ea st/oxr: Propegate device input active status through API 2020-01-13 21:59:37 +00:00
Jakob Bornecrantz 7082a599c7 xrt: Make it possible for the device set active status on inputs 2020-01-13 21:59:37 +00:00
Jakob Bornecrantz 998b198b44 math: Fix math_pose_invert 2020-01-13 10:37:14 +00:00
Ryan Pavlik 4cc9380f0b st/oxr: Fix missing include. 2020-01-09 17:36:24 -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 9e953083fc st/oxr: Move shipped binding data into a separate header to avoid re-declaration of statics 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 ae466ce70e d/vive: Fix typos. 2020-01-09 16:32:18 -06:00
Jakob Bornecrantz b816afce63 d/vive: Extract Index canting parameter from the config 2020-01-09 15:22:14 +00:00
Jakob Bornecrantz 7618f4c5a4 math: Make it possible to get a rotation from a rotation matrix 2020-01-09 15:22:14 +00:00
Jakob Bornecrantz 35fcd2ae3d xrt: Add xrt_matrix_3x3 2020-01-09 15:22:14 +00:00
Ryan Pavlik 2ad93677e8 src/external: Remove nxjson 2020-01-09 15:21:04 +00:00
Ryan Pavlik 290bd7937b d/vive: Port to cJSON.
Replacing nxjson because of license issues: upstream of nxjson is LGPL3.
2020-01-09 15:21:04 +00:00
Jakob Bornecrantz eda46d3bea util: Add some wrapper files around cJSON
This makes cJSON files be accessible from everywhere in Monado,
and adds a nice place to add common helpers.
2020-01-09 15:21:04 +00:00
Ryan Pavlik b564499abf src/external: Add cJSON.
MIT licensed, single-source-file, API quite similar to nxjson,
seemingly somewhat well tested and active.
2020-01-09 15:21:04 +00:00
Jakob Bornecrantz d6ca37bc70 d/vive: Set last acc and gyro values 2020-01-09 15:21:04 +00:00
Jakob Bornecrantz 8306e00bd1 d/vive: Apply all axis flip after scale and bias 2020-01-09 15:21:04 +00:00
Jakob Bornecrantz 995ecfaac2 d/vive: Tidy IMU code 2020-01-09 15:21:04 +00:00
Jakob Bornecrantz 4895ab704c d/vive: Tidy and refactor config parsing 2020-01-09 15:21:04 +00:00
Christoph Haag bc20d84171 st/oxr: Also make sure to keep actions with outputs active 2020-01-09 02:13:08 +01:00
Christoph Haag a3d04090c5 st/oxr: Always make actions active that have inputs
If an applications only syncs a subset of action sets, the actions from all
sets that are not synced get the active bit reset.

Once the application starts syncing the previously not synced sets again,
the actions have to become active again.
2020-01-09 02:12:59 +01:00
Jakob Bornecrantz ba104f59f3 d/vive: Tidy motherboard thread 2019-12-22 14:08:14 +00:00
Jakob Bornecrantz 85197f1584 d/vive: Tidy sensors thread 2019-12-22 14:08:14 +00:00
Jakob Bornecrantz 784b53ded2 d/vive: Spew instead of debug vive_device_update_inputs 2019-12-22 13:35:37 +00:00
Ryan Pavlik 5c830f16b2 t/oxr: Fix linking in absence of SDL2 2019-12-07 18:25:37 +00:00
Ryan Pavlik 6d60227e06 comp: More renaming for clarity 2019-12-07 18:25:37 +00:00
Ryan Pavlik 9668437c78 comp: Rename comp_xlib_client to indicate it's also GL related 2019-12-07 18:25:37 +00:00
Ryan Pavlik e49fdd8523 st/oxr: EGL extension requires OpenGL enabled 2019-12-07 18:25:37 +00:00
Ryan Pavlik 51c3240c23 st/oxr: Improve extension support header. 2019-12-07 18:25:37 +00:00
Ryan Pavlik f25b5d7f8d st/gui: clang-tidy 2019-12-07 18:25:37 +00:00
Ryan Pavlik c92590930d d/vive: clang-tidy 2019-12-07 18:25:37 +00:00
Ryan Pavlik 5772f86292 d/psvr: clang-tidy 2019-12-07 18:25:36 +00:00
Ryan Pavlik a36d351a18 d/psmv: clang-tidy 2019-12-07 18:25:36 +00:00
Ryan Pavlik 56f8e3272e a/tracking: clang-tidy 2019-12-07 18:25:36 +00:00
Ryan Pavlik ceb600167c u/var: Clang tidy and make param names consistent/expressive 2019-12-07 18:25:34 +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
Ryan Pavlik 06ce6617f5 st/oxr: Port logger realloc to helper macro 2019-12-07 18:24:56 +00:00
Ryan Pavlik c9f1b2be4b d/vive: Port realloc to helper macro 2019-12-07 18:24:56 +00:00
Ryan Pavlik a6d9eea394 comp: Port memory allocation to the helper macros 2019-12-07 18:24:56 +00:00
Ryan Pavlik 2d86dfd560 d/v4l2: Type safety fixes and realloc porting 2019-12-07 18:24:56 +00:00
Ryan Pavlik b47428b451 st/p: Convert to realloc macro 2019-12-07 18:24:56 +00:00
Ryan Pavlik f6d3aabc08 st/oxr: Convert remaining realloc in binding code 2019-12-07 18:24:56 +00:00
Ryan Pavlik 2b5fa2c57f st/p: Fix enum types in libusb usage 2019-12-07 18:24:56 +00:00
Ryan Pavlik 447b3550e8 st/oxr: Fix enum types in shipped bindings 2019-12-07 18:24:56 +00:00
Ryan Pavlik 2751824e16 st/gui: Type safety fixes 2019-12-07 18:24:56 +00:00
Ryan Pavlik e11eb0203f d/vive: Initializer order fix 2019-12-07 18:24:56 +00:00
Ryan Pavlik 282f38ca62 d/vive: Type safety fix 2019-12-07 18:24:52 +00:00
Ryan Pavlik be8530db74 d/psvr: Type correctness fixes 2019-12-07 18:21:28 +00:00
Ryan Pavlik a7a7545d0d d/psmv: Casting/type safety fixes 2019-12-07 18:21:22 +00:00
Ryan Pavlik 86db0622f9 d/vive: Split nxjson sources from vive sources 2019-12-07 18:21:17 +00:00
Christoph Haag fcd43180e6 comp: Error when forcing a nonexistent vulkan gpu index
Instead of segfaulting.
2019-12-03 20:33:46 +01:00
Ryan Pavlik 808892742b st/p: Fix allocation size error with realloc macro 2019-12-03 09:39:06 -06:00
Ryan Pavlik f20a0e14e0 st/oxr: Fix oversized allocation in binding code 2019-12-03 09:39:06 -06:00
Ryan Pavlik 4f6b4761cb aux/util: Add U_ARRAY_REALLOC_OR_FREE to safely wrap realloc. 2019-12-03 09:39:06 -06:00
Ryan Pavlik a602b2247f st/oxr: Fix bug in get current interaction profile.
We returned the path instead of putting it in the out value.
2019-12-03 09:39:06 -06:00
Ryan Pavlik 7ca4fb34d5 d/v4l2: typo fix 2019-12-03 09:39:06 -06:00
Ryan Pavlik 90e57a4e8a xrt: Fix types related to EGL.
Fixes #46
2019-12-03 09:30:31 -06:00
Jakob Bornecrantz ba9fd61bb8 u/sink: Reject frames that don't have a valid JPEG header 2019-11-23 00:01:05 +00:00
Jakob Bornecrantz cdec2ca367 t/calib: Add resolution size to image name 2019-11-22 23:59:35 +00:00
Jakob Bornecrantz ab0d94201a t/calib: s/grey/gray/g 2019-11-22 15:53:17 +00:00
Jakob Bornecrantz 6cba920668 t/calib: Force the principal point to the center of the image 2019-11-22 15:51:58 +00:00
Jakob Bornecrantz 9b60bd7c77 t/calib: Add support to load images 2019-11-22 14:20:56 +00:00
Jakob Bornecrantz 0cbd3e8601 t/calib: Do not fix principal point and tweak balance 2019-11-22 14:19:22 +00:00
Jakob Bornecrantz 392b42e900 t/calib: Don't double wait for frame after finding a measurement 2019-11-22 14:09:29 +00:00
Jakob Bornecrantz 3f202d0d6f t/calib: Make cooldown period separate from wait period 2019-11-22 12:36:23 +00:00
Jakob Bornecrantz 86dc9e1a6b t/calib: Re-organize parameters and make it possible to select board type 2019-11-22 12:36:23 +00:00
Jakob Bornecrantz 9a4b55758a st/gui: Add support for mirror RGB option 2019-11-21 22:43:04 +00:00
Jakob Bornecrantz de67590bbf t/calib: Tweak defaults 2019-11-21 22:43:04 +00:00
Jakob Bornecrantz 504a34bc95 t/calib: Tidy messages 2019-11-21 22:43:04 +00:00
Jakob Bornecrantz 276e81c373 t/calib: Add option to mirror RGB image 2019-11-21 22:40:00 +00:00
Jakob Bornecrantz 94c55fc206 t/calib: Ensure that camera is still before taking measurment 2019-11-21 22:40:00 +00:00
Jakob Bornecrantz 50d28369c4 m/headers: Rename C++ headers to hpp and tidy headers 2019-11-21 14:54:17 +00:00
Jakob Bornecrantz 54f7c2ed1d t/headers: Rename C++ headers to hpp and tidy headers 2019-11-21 13:00:52 +00:00
Jakob Bornecrantz 84f9ad962c st/gui: Tidy UI 2019-11-20 23:50:42 +00:00
Jakob Bornecrantz ff4b91c688 st/gui: Expose fisheye option 2019-11-20 23:50:42 +00:00
Jakob Bornecrantz dc6da46852 st/gui: Add option to save image and add separators" 2019-11-20 23:50:42 +00:00
Jakob Bornecrantz d6317b2a14 st/gui: Expose new parameters to calibration 2019-11-20 23:50:42 +00:00
Jakob Bornecrantz 587c71182b t/calib: Make it possible to use fisheye functions (mono only) 2019-11-20 23:50:26 +00:00
Jakob Bornecrantz a36af4227f t/calib: Make it possible to save images used during calibration (mono only) 2019-11-20 23:49:56 +00:00
Jakob Bornecrantz 26d7e91615 t/calib: Even more docs 2019-11-20 22:05:23 +00:00
Jakob Bornecrantz 4925ea657f t/calib: Add support for [asym]circles grid, not active right now 2019-11-20 22:05:23 +00:00
Jakob Bornecrantz bd02e47078 t/calib: Add mono calibration 2019-11-20 22:05:16 +00:00
Jakob Bornecrantz 49f9a1a46f t/calib: Add stub for hacking in measurments 2019-11-20 22:03:20 +00:00
Jakob Bornecrantz 6bc617b8e3 t/calib: Tidy TermCriteria 2019-11-20 22:03:20 +00:00
Jakob Bornecrantz 645a45c167 t/calib: Tweak default params 2019-11-20 22:03:20 +00:00
Jakob Bornecrantz c16756c330 t/calib: Ensure everything have initializers 2019-11-20 22:03:20 +00:00
Jakob Bornecrantz ebb41601ed t/calib: Some doc-comments and typedefs to clarify code 2019-11-20 22:03:20 +00:00
Jakob Bornecrantz 79b7d2504a t/calib: Expand mono calibration a bit 2019-11-18 19:14:02 +00:00
Simon Ser 9347ecfe00
xrt: check arraySize==1 when using OpenGL ES 2
Only OpenGL ES 3 supports GL_TEXTURE_2D_ARRAY.
2019-11-18 15:16:16 +01:00
Simon Ser c395f85565
oxr: add XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR support 2019-11-18 15:16:16 +01:00
Simon Ser 81cace0250
comp: replace glCreateTextures with glGenTextures+glBindTexture
glCreateTextures is only available on OpenGL 4.5. It's not supported on
OpenGL ES.
2019-11-18 15:16:16 +01:00
Simon Ser a8b2370946
xrt: accept OpenGL ES in oxr_session_populate_egl 2019-11-18 15:16:15 +01:00
Simon Ser 5eacb6f309
xrt: add support for OpenGL ES
This commit advertises the extension and adds support for
xrGetOpenGLESGraphicsRequirementsKHR
2019-11-18 15:16:15 +01:00
Jakob Bornecrantz b358e22fd7 t/calib: Stub in support for mono calibration 2019-11-17 22:11:41 +00:00
Jakob Bornecrantz ad45aeb0a7 t/calib: Refactor loading a bit more 2019-11-17 22:09:01 +00:00
Jakob Bornecrantz 4af9978803 st/gui: Correctly destroy timekeeping 2019-11-17 20:53:18 +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 2ad2243fe7 t/doc: Do not put directory in aux_tracking group 2019-11-16 23:29:29 +00:00
Jakob Bornecrantz 38ec113c04 t/calib: Add comments to sizes 2019-11-16 23:29:10 +00:00
Jakob Bornecrantz 8917607a49 t/calib: Also expose disparity_to_depth on both raw and refined settings 2019-11-16 23:27:32 +00:00
Jakob Bornecrantz 6d8abd87a8 t/calib: Tidy and rename calibration data to settings 2019-11-16 23:17:11 +00:00
Jakob Bornecrantz f364b7a45b t/calib: Make prober load calibration data instead of trackers 2019-11-16 12:17:07 +00:00
Jakob Bornecrantz 5a600ffbcf t/calib: Make destroy funcitons take pointer to pointer 2019-11-16 11:42:33 +00:00
Jakob Bornecrantz ee3d9d08f6 u/time: Send in a pointer to pointer to the timekeeping destroy function 2019-11-15 20:30:01 +00:00
Jakob Bornecrantz 786e67f189 u/time: Mark exported functions as C to get even better errors 2019-11-15 20:28:24 +00:00
Jakob Bornecrantz 76445c8fe9 d/psvr: Fix use after free of timekeeping 2019-11-15 15:23:25 +00:00
Jakob Bornecrantz b33811930b d/psvr: Get data info packet 0x82 2019-11-15 14:55:18 +00:00
Jakob Bornecrantz 419f038017 t/calib: Also save the fisheye distortion always 2019-11-14 17:05:16 +00:00
Jakob Bornecrantz f9599a6763 t/imu: Make sure imu_fusion is aligned 2019-11-14 16:35:56 +00:00
Jakob Bornecrantz 08e898c111 comp: Do not use cut-off in vive shader 2019-11-14 15:12:17 +00:00
Ryan Pavlik e01cf5efd3 t_imu: Actually return non-zero leftover acceleration data. 2019-11-14 12:14:58 +00:00
Ryan Pavlik 2823193302 t_imu_fusion: Add capability to get world non-gravity acceleration 2019-11-14 12:14:58 +00:00
Ryan Pavlik 21352ca338 t_imu: Add param for accelerometer output 2019-11-14 12:14:58 +00:00
Ryan Pavlik a17413744b t_calibration: clang-tidy 2019-11-14 12:14:58 +00:00
Ryan Pavlik 4d411723a1 t/psvr: Fix parameter names 2019-11-14 12:14:58 +00:00
Ryan Pavlik e9d64c4c41 a/math: Clang-tidy 2019-11-14 12:14:58 +00:00
Ryan Pavlik 0a9efbf443 t_imu: Comments 2019-11-14 12:14:58 +00:00
Ryan Pavlik 958c1b7df9 t_imu_fusion: Perform some filtering of accelerometer signal 2019-11-14 12:14:58 +00:00
Ryan Pavlik 29c630cec8 d/psvr: Port PSVR to use timestamps 2019-11-14 12:14:58 +00:00
Ryan Pavlik 194938c405 d/psmv: Port positional tracking to use t_imu_fusion with timestamps 2019-11-14 12:14:58 +00:00
Ryan Pavlik 7bb9fad5e6 t_imu_fusion: adjust to use timepoints directly 2019-11-14 12:14:58 +00:00
Ryan Pavlik aaf08a2abd d/psmv: Porting to changed API that uses timestamps instead of dt 2019-11-14 12:14:58 +00:00
Ryan Pavlik 7314bd75b7 t_imu: Change C API to take timestamps instead of dt 2019-11-14 12:14:58 +00:00
Ryan Pavlik 1440c95f78 t/psmv: Angular rate limit. 2019-11-14 12:14:58 +00:00
Ryan Pavlik 83f652bda1 aux/tracking: Add low-pass IIR filter 2019-11-14 12:14:58 +00:00
Ryan Pavlik ca7397be45 d/psmv: Initial port to imu fusion for orientation-only 2019-11-14 12:14:58 +00:00
Julian Eisel 05b069b0a0 Fix two use-after-free's and multiple memory leaks 2019-11-13 21:53:16 +01:00
Ryan Pavlik af0515232f t_imu_fusion: Fix initialization of orientation from accelerometer. 2019-11-11 18:14:44 -06:00
Ryan Pavlik 08903e67b3 u_var: Update comments/prototypes. 2019-11-11 18:14:14 -06:00
Ryan Pavlik 355476d6b7 aux/tracking: Remove accidentally-left-in parameters from t_imu 2019-11-11 17:57:40 -06:00
Ryan Pavlik 882388b320 st/prober: Fix typo 2019-11-11 17:57:40 -06:00
Ryan Pavlik e44dd1a755 d/vive: Use define for standard gravity 2019-11-11 17:57:40 -06:00
Ryan Pavlik 5eaced0e4d aux/tracking: Use define for standard gravity 2019-11-11 17:57:40 -06:00
Ryan Pavlik 8a0ab71c09 t_imu: Comments. 2019-11-11 17:57:40 -06:00
Ryan Pavlik 8ce507391a external: Update flexkalman 2019-11-11 17:57:34 -06:00
Jakob Bornecrantz 76d6133142 cmake: Fix v4l2 flag not being set 2019-11-10 01:36:46 +00:00
Jakob Bornecrantz c6e6ba7485 t/psmv: Expose ball last position to debug gui 2019-11-10 01:36:44 +00:00
Jakob Bornecrantz 47bc4de56d t/doc: Fallout from latest codespell version 2019-11-09 12:53:42 +00:00
Jakob Bornecrantz a29dd8c0a4 st/oxr: Improve destruction of GUI hack 2019-11-09 12:53:42 +00:00
Jakob Bornecrantz 86244f726f st/oxr: Improve error condition handling on instance creation 2019-11-09 12:53:42 +00:00
Christoph Haag e78e5c8045 st/oxr: Return appropriate errors for incomplete OpenGL XLib binding
* xDisplay must be a pointer to a Display value
* glxDrawable must be a valid GLXDrawable value
* glxContext must be a valid GLXContext value

intentionally not checked:
* glxFBConfig must be a valid GLXFBConfig value
We don't care about this one for now.
2019-11-08 16:07:10 +01:00
Drew DeVault 4c7f830ea5 d/vive: reset orientation on headset button 2019-11-07 09:39:33 -05:00
Jakob Bornecrantz 1f02c54858 d/vive: Fix copy typo 2019-11-07 13:45:56 +00:00
Lubosz Sarnecki 2ffa77d923 d/vive: Handle error when config could not be read. 2019-11-07 14:16:09 +01:00
Lubosz Sarnecki db1e5b9f16 d/vive: Initialize useful defaults.
This initializes default values in the display, distortion and IMU
properties so the runtime is happy in case the JSON config could not be
read.

This patch also moves default value initialization for the Index
into one place with the others, for cases we do not have the data.
2019-11-07 14:16:09 +01:00
Jakob Bornecrantz e7e550fa8d d/psmv: Fix build 2019-11-06 19:51:24 +00:00
Jakob Bornecrantz a54cdb2632 d/psvr: Can we get some info out of the calibration data 2019-11-06 19:50:07 +00:00
Jakob Bornecrantz 845af78c20 d/psvr: Only flip Z-axis after calibration is applied 2019-11-06 19:50:07 +00:00
Jakob Bornecrantz c60b9881e2 d/psmv: More verbose error handling 2019-11-06 19:48:01 +00:00
Drew DeVault e5a9cbb2f9
Implement XR_MND_egl_enable
This extension introduces a more robust way of creating an XrSession for
OpenGL. It also lays the groundwork for future OpenGL ES support.

https://github.com/KhronosGroup/OpenXR-Docs/pull/40

Signed-off-by: Simon Ser <contact@emersion.fr>
Signed-off-by: Drew DeVault <sir@cmpwn.com>
2019-11-06 10:07:21 +01:00
Simon Ser eefeec12fd oxr: check input type in oxr_swapchain_gl_enumerate_images
Don't blindly cast the input struct to XrSwapchainImageOpenGLKHR, check
that the type is XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR.
2019-11-05 16:32:04 +00:00
Christoph Haag 3b87d518c4 build: Fix meson build without v4l2 2019-11-05 15:36:52 +01:00
Jakob Bornecrantz 93218fa9e4 d/psvr: Tweak panotools values 2019-11-05 12:31:42 +00:00
Jakob Bornecrantz 5e3565c28f st/oxr: Set maximum image rect size to 200% 2019-11-05 12:31:42 +00:00
Jakob Bornecrantz defdd97288 st/oxr: Fix recommended swapchain image height 2019-11-05 12:31:42 +00:00
Jakob Bornecrantz 9eedb05f1b st/prober: Do not autoprobe if we have a HMD 2019-11-05 12:15:56 +00:00
Simon Ser 9183f53c5f
xrt: allow NULL args in various functions
The spec says NULL arguments are valid when the argument just exists for
extensibility. Fix the implementation to accept NULL args.
2019-11-05 10:40:21 +01:00
Simon Ser 8ade6b654b
xrt: introduce OXR_VERIFY_ARG_TYPE_CAN_BE_NULL
It's like OXR_VERIFY_ARG_TYPE_AND_NOT_NULL, but doesn't ensure the argument
is non-NULL.
2019-11-05 10:21:23 +01:00
Simon Ser 1b51db68f9
xrt: rename OXR_VERIFY_ARG_TYPE_AND_NULL to …_NOT_NULL 2019-11-05 10:15:35 +01:00
Jakob Bornecrantz 072e9afb54 t/psvr: Counter tracking origin offset
At least until we have proper tracking for the PSVR.
2019-11-03 14:23:03 +00:00
Jakob Bornecrantz 7c73a1b6bd xrt: Tidy xrt_compiler.h and silence some doxygen warnings 2019-11-02 22:54:23 +00:00
Jakob Bornecrantz b59676e184 st/oxr: Comment all parameters 2019-11-02 22:40:26 +00:00
Ryan Pavlik 059234bbfc d/vive: Cleanup scopes, types, leak in vive_sensors_read_config 2019-11-01 22:41:22 +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
Drew DeVault 6bce0838e0 d/vive: Fix minor typo in vive driver 2019-11-01 14:35:41 +00:00
Simon Ser 36102bfa1e
comp: make Wayland window unresizable
This prevents the compositor from issuing resize requests. We ignore
those anyway.
2019-10-31 16:42:26 +01:00
Christoph Haag 746cccca36 meson: HDK driver does not depend on hidapi 2019-10-31 02:26:19 +01:00
Christoph Haag 680b8971b3 d/hdk: Remove unused hidapi include 2019-10-31 01:50:30 +01:00
Jakob Bornecrantz b5ee4f0dbd comp: Make it obvious that you should implement destroy yourself 2019-10-30 11:06:02 +00:00
Jakob Bornecrantz 46b9d28e8d t/imu: No fancy new c++ syntax until clang-format-8 is used on CI
Go to your room clang-format and think about what you have done.
2019-10-29 20:08:59 +00:00
Jakob Bornecrantz 477e740568 d/psmv: Fix flipped bit for cross and square 2019-10-29 20:08:49 +00:00
Jakob Bornecrantz e84ca2de34 st/oxr: Use xrt_compositor helpers 2019-10-28 21:00:56 +00:00
Jakob Bornecrantz 1abdae5b64 xrt: Add helper functions for xrt_compositor 2019-10-28 20:56:33 +00:00
Jakob Bornecrantz c11640d66b st/oxr: Make sure actions that are not marked as active are deactivated 2019-10-28 14:58:59 +00:00
Jakob Bornecrantz 312a99ecf8 st/oxr: Implement any sub-action path handling 2019-10-28 14:58:59 +00:00
Christoph Haag 7d9ef2f371 comp: Add setting to force a vulkan gpu index 2019-10-25 21:05:06 +02:00
Jakob Bornecrantz 186f3ff7e0 st/prober: Ignore I2C based hid devices 2019-10-25 18:39:34 +01:00
Jakob Bornecrantz 5f4ddcc414 t/cli: Add a just probe command 2019-10-25 18:34:18 +01:00
Ryan Pavlik 56f61412f5 d/psmv: Fix possible alignment issues and endianness comments 2019-10-25 18:08:20 +01:00
Jakob Bornecrantz 06ffb8da8f d/psvr: Remove none used inbuilt mesh 2019-10-25 13:05:54 +00:00
pblack 73420739d9 d/psvr: Adjust values and remove comments 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz c5e1511271 d/psvr: Use new mesh distortion generator functions 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz be712c7049 d/ohmd: Use mesh shader for none distortion 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz ef6931b7f9 aux/util: Refactor mesh generation 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz b403da22eb aux/util: Add distortion mesh generation 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz b67d65b4a5 aux/util: Add function to free device and stuff hanging off it 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz 9b6625961a comp: Implement new mesh shader 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz 9d238d7313 xrt: Refactor mesh distortion fields 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz cdafcda626 math: Add some vec2 functions 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz c906caabf4 d/psvr: Disable mesh distortion 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz babd3af4ae d/psvr: Add link to documention 2019-10-25 12:32:40 +01:00
Jakob Bornecrantz b9e1ca6e55 d/psvr: Document calibration data getting process better 2019-10-25 12:27:54 +01:00
Jakob Bornecrantz fda43c5a19 d/psvr: Add code to get device name and calibration data 2019-10-25 11:11:45 +01:00
Jakob Bornecrantz 6580e3ee3f d/psmv: Use U_ZERO 2019-10-24 22:45:07 +01:00
Jakob Bornecrantz 6bfb1d9110 d/psmv: Fix buttons parsing 2019-10-24 22:16:40 +01:00
Ryan Pavlik 6b8b1ae935 st/oxr: Fix changed since last sync and support for more input types 2019-10-24 22:16:40 +01:00
Jakob Bornecrantz aa52da072f xrt: Remove relation input type 2019-10-24 21:51:07 +01:00
Ryan Pavlik 0ebf754996 xrt: Add XRT_GET_INPUT_TYPE, document XRT_INPUT_NAME 2019-10-24 21:43:18 +01:00
Ryan Pavlik 166bee167e xrt: Comment the input types 2019-10-24 21:43:14 +01:00
Ryan Pavlik 6b0f18bf6e tracking: Build kalman things as a single TU 2019-10-24 18:51:21 +02:00
Jakob Bornecrantz 8f6da565e2 d/v4l2: Align up the buffer size 2019-10-24 16:43:45 +01:00
Ryan Pavlik d3d6f15107 st/prober: More data in the "failed to get interface number" messages. 2019-10-24 15:45:41 +01:00
Ryan Pavlik 1ce0124d5c t/psmv: Simple two-state machine for tracking. 2019-10-24 15:45:41 +01:00
Ryan Pavlik af85f6af6b t/psmv: Reset filter if we get non-finite 2019-10-24 15:44:01 +01:00
Ryan Pavlik 28abcf7ce6 t/psmv: Filter the blobs selected 2019-10-24 15:44:01 +01:00
Ryan Pavlik c713ca61f2 t/psmv: Rotate IMU into something like camera space 2019-10-24 15:44:01 +01:00
Jakob Bornecrantz ccd139ab68 xrt: Add xrt_atomic_cmpxchg 2019-10-23 23:39:22 +01:00
Ryan Pavlik e90ea99aa8 comp: Adjust frame waiting logic to behave correctly.
Some sub-calculations are still slightly hacky,
but now the overall structure is correct.
2019-10-23 17:18:46 +02:00
Jakob Bornecrantz 742fe05dd8 comp: Cody style shaders 2019-10-23 11:07:33 +01:00
Jakob Bornecrantz 127e5e67b4 comp: Cut-off is not needed 2019-10-23 10:21:33 +01:00
Jakob Bornecrantz 8301bd8d4c external: Refactor out sdl functions from main cimguo.cpp 2019-10-22 21:37:03 +01:00
Jakob Bornecrantz 60be24e119 external: If out non-implemented imgui init functions 2019-10-22 21:24:58 +01:00
Ryan Pavlik 939c41aba9 st/oxr: If the app called request-exit, go to exiting instead of ready. 2019-10-22 21:14:04 +02:00
Jakob Bornecrantz 6b99e2fbdc d/psvr: Add new imu code, but it's stubbed out... Unless? 2019-10-22 19:51:24 +01:00
Jakob Bornecrantz 35ae8f31ce d/vive: Add some variable tracking 2019-10-22 18:52:52 +01:00
Ryan Pavlik 713830338e st/oxr: Allow wait frame in headless since it does more than just waiting. 2019-10-22 17:29:04 +00:00
Lubosz Sarnecki 5becb60714 d/vive: Use different device string for each variant. 2019-10-22 19:18:47 +02: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
Lubosz Sarnecki 8e6cc11d69 external: Add nxjson. 2019-10-22 19:18:47 +02:00
Lubosz Sarnecki a1d729af8f os/hid: Add os_hid_get_feature_timeout. 2019-10-22 19:18:47 +02:00
Lubosz Sarnecki 6eb1086578 st/prober: Add string functions.
Functions for printing and matching xrt_proper_string.
2019-10-22 19:18:47 +02:00
Ryan Pavlik e2428ee7fa st/oxr: Handle request exit session and stopping state 2019-10-22 18:00:00 +02:00
Jakob Bornecrantz 0826ff9273 st/oxr: xrCreateActionSpace is fully implemented 2019-10-22 15:19:23 +01:00
pblack e32902843c comp: Add chromatic aberration correction to mesh 2019-10-22 14:44:26 +01:00
Jakob Bornecrantz cd5153dead xrt: Spelling 2019-10-22 12:10:20 +01:00
Jakob Bornecrantz 937f5d582a st/oxr: Refactor logging options to instance 2019-10-22 11:47:25 +01:00
Jakob Bornecrantz ce57fae37d st/oxr: Actually implement oxr_slog_abort 2019-10-22 11:45:21 +01:00
Jakob Bornecrantz 0b16e1e94d d/v4l2: Set the timestamp 2019-10-22 09:44:39 +01:00
Jakob Bornecrantz 4d0b2f0b81 d/v4l2: Better control quirking tools 2019-10-21 17:21:28 +01:00
Jakob Bornecrantz 24bc8135e0 t/hsv: Add a debug sink 2019-10-19 23:15:51 +01:00
Jakob Bornecrantz dcd9bbb4d7 st/gui: Use r8g8b8 or l8 converter 2019-10-19 23:15:49 +01:00
Jakob Bornecrantz f38f631fe8 aux/util: Add special r8g8b8x8 or l8 converter 2019-10-19 23:15:48 +01:00
Jakob Bornecrantz 078ac7c59e st/oxr: Slightly better error message 2019-10-19 22:18:29 +01: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 7239282aab st/prober: Add tracking factory variable tracking 2019-10-15 21:05:37 +02:00
Jakob Borncrantz d245fc33c9 d/ohmd: Add variable tracking 2019-10-15 21:00:12 +02:00
Jakob Borncrantz 0bc91ab1cd cmake: Make sure to link to pthreads 2019-10-15 21:00:12 +02:00
Ryan Pavlik f4f07da0c2 t/file: Comment matrix sizes since entirely generic matrix types used. 2019-10-15 20:50:32 +02:00
Ryan Pavlik bc081bee80 t/psmv: cleanup/comments 2019-10-15 20:50:32 +02:00
Jakob Bornecrantz f8ee9281f8 t/calibration: Move more data storage to C portion 2019-10-13 10:48:07 +01:00
Jakob Bornecrantz 43c366ad41 t/file: Save more calibration data 2019-10-12 22:07:49 +01:00
Jakob Bornecrantz 9ec1205f37 t/api: Add comments and put all files in tracking group 2019-10-12 12:24:19 +01:00
Jakob Bornecrantz a435817a6f t/file: Add comments and restyle (NFC) 2019-10-12 12:23:42 +01:00
Lubosz Sarnecki 783a36fbcc st/prober: Add libusb error strings and can open function.
The prober will now output libusb errors as string. This patch also adds
a `can_open` function to the prober, that opens and closes device with
libusb to ensure devices can be opened.

This makes it possible to ensure early that permissions on the device
are correct.
2019-10-11 15:56:30 +01: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
Lubosz Sarnecki 3e8bd73e34 d/hdk: Use float to avoid implicit cast. 2019-10-11 15:55:18 +01:00
Jakob Bornecrantz fece0458b6 t/psmv: Make it possible to get the tracked ball pose 2019-10-11 15:40:42 +01:00
Jakob Bornecrantz a0a4fa3399 st/oxr: Fixes for ball on stick bindings 2019-10-11 15:40:39 +01:00
Drew DeVault bca5899fcc meson: fix build with 0.52+ 2019-10-10 23:21:27 +00:00
Drew DeVault 202d1d72aa openxr/meson.build: remove install: true
This removes the meson feature warnings.
2019-10-10 22:58:10 +00:00
Drew DeVault 7f16e7230f oxr_verify.cpp: rewrite in C 2019-10-10 22:54:19 +00:00
Drew DeVault d7debdb724 oxr_logger.cpp: rewrite in C 2019-10-10 22:54:19 +00:00
Drew DeVault 6c275f0aae oxr_event.cpp: rewrite in C 2019-10-10 22:54:19 +00:00
Drew DeVault 904d58d365 oxr: track list of sessions; poll sessions 2019-10-10 22:51:21 +00:00
Drew DeVault a736812f63 oxr: mostly implement XR_SESSION_LOSS_PENDING
This is missing support for xrPollEvents, which needs to be handled
separately as it's not properly rigged up throughout Monado yet.
2019-10-10 22:51:21 +00:00
Jakob Bornecrantz bffe802449 t/psmv: Adjust room position in prober instead 2019-10-10 23:47:51 +01:00
Ryan Pavlik 3630dae537 t/psmv: FindLowestScore template param renames
Less terse
2019-10-10 21:48:09 +00:00
Ryan Pavlik 430e27d084 t/psmv: Use new imu fusion in psmv positional tracking. 2019-10-10 21:48:09 +00:00
Ryan Pavlik 18f9760986 tracking: Add t_imu: simple IMU fusion for absolute orientation 2019-10-10 21:48:09 +00:00
Ryan Pavlik b00f5315c2 t/psmv: Initial Kalman filter.
Rotation a little out of control right now because still using bad fusion.
2019-10-10 21:48:09 +00:00
Ryan Pavlik 85b6c7222d tracking: Add t_fusion for Kalman filter added code. 2019-10-10 21:48:09 +00:00
Ryan Pavlik c660183848 external: Add multi-header version of FlexKalman.
Takes off a little build time compared to single-header version.
2019-10-10 21:48:09 +00:00
Jakob Bornecrantz 315d3b65f1 comp: Do not destry VK_NULL_HANDLE buffers and memory 2019-10-10 22:11:09 +01:00
Jakob Bornecrantz 7680038f8b t/gui: Request forward compatible OpenGL version and minimum 3.2 2019-10-10 16:06:57 +01:00
pblack 1dacea071d d/psvr: Add hacked mesh distortion 2019-10-10 13:28:01 +01:00
Jakob Bornecrantz e86628884b comp: Add disabled shader debugging code 2019-10-10 13:28:01 +01:00
Jakob Bornecrantz 2db8138e8e comp: Hack in a flip of the right eye 2019-10-10 13:28:01 +01:00
Jakob Bornecrantz fafbe287e1 comp: Clamp UV textures to a black border 2019-10-10 13:28:01 +01:00
pblack 898c1b4a9f comp: Add mesh distortion shader 2019-10-10 13:28:01 +01:00
pblack b351e8cd75 aux/util: Don't overwrite distortion info 2019-10-10 01:52:45 +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
Jakob Bornecrantz 473047962f d/psvr: Correct screen size 2019-10-08 11:19:14 +01:00
Jakob Bornecrantz acd2c50470 aux/math: Rework offset transformation
This reverts commit 0d9aaae470, and changes it.
2019-10-08 11:19:14 +01:00
Jakob Bornecrantz 0d9aaae470 aux/math: Correct(?) transform 2019-10-08 01:04:46 +00:00
Jakob Bornecrantz 68e7544f57 comp: Free window swapchain VkImageViews & VkSwapchainKHR 2019-10-08 00:04:25 +01:00
Jakob Bornecrantz 649bf88379 comp: Make sure to free VkImageViews on swapchains 2019-10-07 23:48:39 +01:00
Jakob Bornecrantz 0108207b3d comp: Use VK_NULL_HANDLE 2019-10-07 23:27:09 +01:00
Jakob Bornecrantz 1d9009a461 comp: Set array_size 2019-10-07 23:26:43 +01:00
Benjamin Saunders 3d5872f346 comp: Fix missing usages on Vulkan client swapchains 2019-10-07 22:08:56 +01:00
Ryan Pavlik 23e7f99a71 t/psmv: More algorithm simplification/optimization 2019-10-07 12:39:56 +00:00
Ryan Pavlik 7e358ea721 t/psmv: Simplify final stage of tracking. 2019-10-07 12:39:56 +00:00
Ryan Pavlik d7d12a69f8 aux/tracking: Remove unused functions.
Use cv::norm instead.
2019-10-07 12:39:56 +00:00
Ryan Pavlik 09f984258f t/psmv: Improve finding the nearest blob.
No more need to construct a vector every time.
2019-10-07 12:39:56 +00:00
Ryan Pavlik 5d9311bd30 d/psmv: Fix size of tracking ball. 2019-10-07 12:39:56 +00:00
Ryan Pavlik 76aa839f5b a/track: Simplify. 2019-10-07 12:39:56 +00:00
Ryan Pavlik 37d4eae37a a/track: Fix typo. 2019-10-07 12:39:56 +00:00
Jakob Bornecrantz d8cd9ffcdd st/prober: Better error printing 2019-10-04 10:32:02 +01:00
Jakob Bornecrantz f2fcfd98e1 aux/os: Return 'errno' on device open failure 2019-10-04 10:32:02 +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 51f3fac192 aux/tracking: Refactor calibration data handling 2019-09-29 15:43:54 +01:00
Jakob Bornecrantz b37eb0f55b xrt: Add xrt_size struct 2019-09-29 15:43:54 +01:00
Jakob Bornecrantz cbee61a008 xrt: Don't derive pointer alignment 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz ec7e98538c st/prober: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 76527b73f8 st/oxr: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 0987927343 aux/util: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 423da670fa aux/tracking: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz b95e114160 aux/math: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 3bee6e3a8b d/ohmd: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 30de1d0928 d/psvr: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 5cd4d272a2 comp: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 42f4784d14 xrt: Code style, pointer star location 2019-09-29 11:45:19 +01:00
Jakob Bornecrantz 70f632be10 aux/tracking: Refactor PS Move tracking code 2019-09-28 18:06:05 +01:00
pblack 5d616cd077 aux/tracking: Port PS Move tracker 2019-09-28 18:04:19 +01:00
Jakob Bornecrantz 3e27720083 t/gui: Better handling of sink interceptors 2019-09-28 18:02:41 +01:00
Jakob Bornecrantz bc26f68c74 aux/calibration: Do fast pass for checkerboard detection and tidy file 2019-09-28 15:17:48 +01:00
Jakob Bornecrantz b5eae545e7 aux/tracking: Fix build on new OpenCV versions 2019-09-28 02:55:37 +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 8d0aa220c1 aux/tracking: Tidy calibration 2019-09-27 20:49:31 +01:00
Jakob Bornecrantz ea5203fbc0 aux/tracking: Fix position hack in PSVR 2019-09-27 20:28:04 +01:00
Jakob Bornecrantz cc2f456663 aux/tracking: Fix warnings 2019-09-27 20:28:04 +01:00
Jakob Bornecrantz 216f7df355 d/ohmd: Less distorted view on external device 2019-09-27 20:28:04 +01:00
Jakob Bornecrantz fcc316d6f1 st/prober: First ball is red 2019-09-27 20:28:04 +01:00
Jakob Bornecrantz 58305a33c6 meson: OCD 2019-09-27 12:25:05 +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
Jakob Bornecrantz 765d263b96 d/psvr: Use os_nanosleep 2019-09-27 11:44:54 +01:00
Jakob Bornecrantz b8205d77fe meson: Add all tracking files
PSVR and PSMV trackers are independant from the drivers, so build them all always.
2019-09-26 22:34:14 +01:00
Jakob Bornecrantz 6081b147fc cmake: Tidy auxiliary file 2019-09-26 22:34:14 +01:00
Jakob Bornecrantz 953ce6480d st/prober: Gate tracking on OpenCV instead of PSMV and PSVR 2019-09-26 22:34:14 +01:00
Drew DeVault b4f0c79abd comp_compositor.c: prefer Wayland over XCB 2019-09-26 12:15:27 -04:00
Drew DeVault 9bcfa56f2f compositor: overhaul Wayland backend
This simplifies the Wayland backend, fixes the build configuration for
it, ports it to xdg-shell stable, and reworks some false assumptions
from the original port.
2019-09-26 12:15:27 -04:00
Drew DeVault 064aef3526 build: port to meson 2019-09-26 15:05:22 +00:00
Drew DeVault c6586cfd1e comp_compositor: use nanosleep instead of usleep
Improves portability
2019-09-26 15:05:22 +00:00
Jakob Bornecrantz 9c7c818637 d/v4l2: Use more portable sysconf(_SC_PAGESIZE) 2019-09-26 16:03:48 +01:00
pblack 3d7ec1546b aux/tracking: Port calibration to new gui/node setup 2019-09-26 09:32:46 +01:00
Ryan Pavlik 24260bb042 st/oxr: Silence meaningless negotiate errors/warnings.
Loader just indiscriminately populates all function pointers.
2019-09-24 22:01:05 +00:00
Ryan Pavlik bbd63ff071 st/oxr: Disable partial implementation of debug extension for now. 2019-09-24 14:16:31 -05:00
Ryan Pavlik 80b0c14590 st/oxr: Paths cannot end with a slash. 2019-09-24 10:20:16 -05:00
Ryan Pavlik b7aebc2146 st/oxr: Implement oxr_xrStructureTypeToString 2019-09-24 10:20:16 -05:00
Ryan Pavlik 192a219d1c st/oxr: Implement oxr_xrResultToString 2019-09-24 10:20:16 -05:00
Jakob Bornecrantz a211b392df st/prober: Set origin for PSVR tracker as well
Spotted by Pete Black.
2019-09-24 01:14:48 +01:00
Jakob Bornecrantz b1febd8971 t/gui: Add a calibration scene 2019-09-23 11:46:06 +01:00
Jakob Bornecrantz 4a0a95dab8 aux/tracking: Fix calibration code to work with new frame semantics 2019-09-23 11:43:23 +01:00
Jakob Bornecrantz 79eba848ae st/prober: Add hardcoded tracking system integration for PSMV and PSVR 2019-09-22 12:00:48 +01:00
Jakob Bornecrantz 871b06cd72 aux/tracking: Add stub PSVR tracker 2019-09-22 11:50:34 +01:00
Jakob Bornecrantz 37590e7525 aux/tracking: Add stub PSMV tracker 2019-09-21 19:12:12 +01:00
Jakob Bornecrantz a4ee0dd838 d/psvr: Use tracking interface 2019-09-21 19:02:13 +01:00
Jakob Bornecrantz b47efb1520 d/psmv: Use tracking interface 2019-09-21 18:33:45 +01:00
Jakob Bornecrantz b50415a367 t/gui: Add main menu and pure debug scene 2019-09-21 18:33:45 +01:00
Jakob Bornecrantz 387bc123f8 xrt: Expand tracking interface 2019-09-21 18:22:06 +01:00
Jakob Bornecrantz 65eeb19939 targets: Link with tracking if built 2019-09-21 18:21:05 +01:00
Jakob Bornecrantz ba12a0aa0e aux/tracking: Track hsv filter sinks 2019-09-21 18:21:05 +01:00
Jakob Bornecrantz ef3074afa7 aux/util: Add sink as tracker variable 2019-09-21 18:21:05 +01:00
Jakob Bornecrantz 046c9e18b9 d/psmv: Fix timestamp parsing (ZCM2) 2019-09-20 12:06:58 +01:00
Ryan Pavlik 63d62cf4fe d/psmv: Fix timestamp parsing (ZCM1) 2019-09-20 12:06:48 +01:00
Ryan Pavlik f123c41146 t/gui: Support quat values 2019-09-20 10:07:50 +01:00
Ryan Pavlik 65cc62daf9 aux/util: Add quat support to variable tracker 2019-09-20 10:07:48 +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
Lubosz Sarnecki 9dec3dda81 drv_psvr: Fix prototype warnings in clang. 2019-09-20 10:14:49 +02:00
Jakob Bornecrantz 51dafe7b05 xrt: Add usb_dev_class to xrt_prober_device 2019-09-18 13:03:01 +01:00
Jakob Bornecrantz ad373c55b7 os: Include xrt_config.h in os_threading.h 2019-09-17 11:42:28 +01:00
Jakob Bornecrantz ff341e43f0 d/psvr: Use standard gravity value 2019-09-16 16:36:54 +01:00
Jakob Bornecrantz d3eb48ada4 d/psmv: Normalize acceleration to gravity 2019-09-16 16:36:48 +01:00
Jakob Bornecrantz 1bcf537785 aux/math: Add standard gravity value 2019-09-16 16:36:47 +01:00
Jakob Bornecrantz 46389cd6ae xrt: Send in real prober to auto probers 2019-09-15 23:24:58 +01:00
Jakob Bornecrantz 59a2b87c43 d/psmv: Tidy code and add some comments 2019-09-15 23:22:25 +01:00
Jakob Bornecrantz d4e139f09e d/psmv: Use gyro_bias from calibration data on ZCM2 2019-09-15 23:22:25 +01:00
Jakob Bornecrantz 548f4edee3 d/psmv: Don't use the copy sample on ZCM2 2019-09-15 23:22:25 +01: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 d48b3385f8 ext/imgui: Add Dear ImGui 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz a673f9b7fc st/oxr: Add Monado ball on a stick controller 2019-09-15 15:44:39 +01:00
Jakob Bornecrantz 79ad85e9b7 st/oxr: Add interaction profile code
Not a complete implementation but gets us far enough to
respect the bindings that a application gives us.
2019-09-15 15:44:39 +01:00
Jakob Bornecrantz 2337299279 st/oxr: Make sure action keys don't start at zero 2019-09-15 15:44:39 +01:00
Jakob Bornecrantz 2db3df9027 st/oxr: Add oxr_sink_logger, the slog-inator! 2019-09-15 15:44:39 +01:00
Jakob Bornecrantz 81213f119c os: Tidy threading 2019-09-15 15:43:57 +01:00
Jakob Bornecrantz ee5fe9a4e5 d/psmv: Even more tidy 2019-09-15 15:43:57 +01:00
Jakob Bornecrantz 0641342b7d d/psmv: Tidy driver 2019-09-15 15:29:47 +01:00
Jakob Bornecrantz 3d744c5959 d/psmv: Add support for ZCM2 2019-09-15 15:29:45 +01:00
Jakob Bornecrantz e98fb81c56 d/psmv: Make calibration values slight more readable 2019-09-15 15:29:43 +01:00
Jakob Bornecrantz 7dcfe5ca50 d/psmv: Flip axis once more 2019-09-15 15:29:41 +01:00
Jakob Bornecrantz 932b8dfd70 d/psmv: Refactor calibration and make room for ZCM2 2019-09-15 12:28:53 +01:00
Jakob Bornecrantz b5c7f080de d/psmv: Use new thread helper to create a pulling thread 2019-09-13 22:17:34 +01:00
Jakob Bornecrantz 0d09d225dd os: Add wrappers for threading primitives 2019-09-13 22:11:02 +01:00
Jakob Bornecrantz e82f3616c9 d/psmv: Tick time 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz b5c37bcf10 d/psmv: Don't force sending of update packet when setting output 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz 523c9980c9 d/psmv: Super simple sensor "fusion" 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz 1488dcf579 d/psmv: Add stub update fusion function 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz d2acc9d6e4 d/psmv: Also set gyro data 2019-09-11 22:20:22 +01:00
Jakob Bornecrantz c5e5c98c9c d/psmv: Shouldn't negate Z-axis in gyro calibration data 2019-09-11 22:20:20 +01:00
Jakob Bornecrantz 5b02974ae0 d/psmv: Correctly handle z-axis 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz e179349644 d/psvr: Super simple sensor "fusion" 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz 750b8bb755 d/psvr: Expose more data via variable code 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz c2c230b3de d/psvr: Refactor and improve packet reading 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz bf9bcf8e26 d/psvr: Read sensor packets when updating input 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz 8d001ca95f st/oxr: Even more fixes for system xdevs 2019-09-09 21:57:37 +01:00
Jakob Bornecrantz affd1cb2c1 st/oxr: Tidy 2019-09-09 20:47:43 +01:00
Jakob Bornecrantz b84413cc35 st/oxr: Fix system xdev init 2019-09-09 20:47:30 +01:00
Jakob Bornecrantz 94d4822afb d/psmv: Use correct calibration value 2019-09-08 10:01:55 +01:00
Jakob Bornecrantz 962de77ca0 st/oxr: Carry around extra xrt_devices
Pretty much only used for enabling 3 PS Move Controllers right now.
2019-09-08 10:01:55 +01:00
Jakob Bornecrantz 2abc98dbec aux/util: Add split sink 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz 798ef43342 st/prober: Make sure the usb-product is always filled out 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz c021199b98 xrt: Add interface to prober to open video devices 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz 3b1abffa2d xrt: Refactor frameserver start stream arguments 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz 1b35846506 d/psmv: Expose more variables and add gui annotations 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz 10d9fbcd9e aux/util: Add some gui annotations to variable tracking 2019-09-07 14:32:53 +01:00
Jakob Bornecrantz 2a6e194b2d d/psmv: Improve accelerometer adjustment 2019-09-06 19:14:12 +01:00
Jakob Bornecrantz 2e5c8f43a0 d/psmv: Export a whole lot more variables 2019-09-06 19:14:12 +01:00
Jakob Bornecrantz 9cf6108899 aux/util: Add more types to variable tracker 2019-09-06 18:12:15 +01:00
Jakob Bornecrantz 5e3d5295b7 xrt: Add xrt_vec3_i32 2019-09-06 18:12:15 +01:00
Jakob Bornecrantz 3f13224502 d/psmv: Fix strict aliasing warnings when compiling with optimisations 2019-09-06 15:46:17 +01:00
Jakob Bornecrantz aaaa9fc235 st/oxr: Fix strict aliasing warnings when compiling with optimisations 2019-09-06 15:46:17 +01:00
Jakob Bornecrantz e8ead02c4c st/oxr: Silence warning from snprintf when compiling with optimisations 2019-09-06 15:46:06 +01:00
Jakob Bornecrantz d6465bc017 d/psvr: Enable by default 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 8570493db1 d/psvr: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 9192c9c6b5 d/psmv: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 676bc81f40 d/v4l2: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz d8f8f670d3 st/prober: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 591e6d3b29 st/oxr: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz a9e88f3f20 aux/util: Add variable tracking code 2019-09-06 14:37:42 +01:00
Jakob Bornecrantz 58008d2ff1 d/psmv: Return error code 2019-09-05 22:18:14 +01:00
Jakob Bornecrantz 1ae8acc71c d/psmv: Read calibration data 2019-09-05 17:24:57 +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 a0f2793457 xrt: It's a cross not a x 2019-09-03 15:26:10 +01:00
Jakob Bornecrantz 5de401ea58 comp: Tidy wait frame 2019-08-31 14:17:41 +01:00
Jakob Bornecrantz cfb1ca3052 comp: Ensure nominal_frame_interval_ns is a sane value 2019-08-31 14:17:41 +01:00
Jakob Bornecrantz cfa89b84c1 d/psmv: Tidy doc 2019-08-27 09:04:03 +01:00
Jakob Bornecrantz 005abd5429 t/cli: Tidy CMakeLists.txt file 2019-08-27 08:52:57 +01:00
Jakob Bornecrantz 358183115f aux/track: Micro optimize hsv filter 2019-08-27 08:34:40 +01:00
Jakob Bornecrantz f5a93699cb xrt: Add XRT_NO_INLINE define 2019-08-27 08:34:40 +01:00
Jakob Bornecrantz 1e93ba2461 xrt: Refactor frame interface 2019-08-27 08:17:21 +01:00
Jakob Bornecrantz b9c3ac797e xrt: Add colour structs 2019-08-27 08:17:21 +01:00
Jakob Bornecrantz 7f3651775b xrt: Add xrt_reference struct 2019-08-27 08:17:21 +01:00
Jakob Bornecrantz 6774a7e1b3 xrt: Add atomics and container_of helpers 2019-08-27 08:17:21 +01:00
Jakob Bornecrantz 98d7c3542c d/v4l2: Minor fixes 2019-08-27 08:17:21 +01:00
Jakob Bornecrantz 0f9b5786f3 st/oxr: Remove unnecessary NULL check 2019-08-22 16:46:42 +01:00
Ryan Pavlik a8ae7c432d aux/tracking: Fix class vs struct warnings in calibration and hsv debug code. 2019-08-21 14:29:37 -05:00
Ryan Pavlik 12de62fdbc d/psmv: Fix typo in bit mask.
Found by clang-tidy.
2019-08-21 14:28:54 -05:00
Ryan Pavlik dae90d4b42 st/oxr: Fix potential null-deref in events.
Found by clang-tidy
2019-08-21 14:28:32 -05:00
Ryan Pavlik 624fe8ab59 st/oxr: Change iteration of actions. 2019-08-21 14:28:07 -05:00
Jakob Bornecrantz 79402d0081 aux/track: Add stub calibration tracker 2019-08-20 13:07:42 +01:00
Jakob Bornecrantz a2ffb18852 aux/util: Add a special yuv or yuyv converter sink 2019-08-20 12:40:05 +01:00
Jakob Bornecrantz fc88d7d099 aux/util: Add more formats 2019-08-20 12:40:05 +01:00
Jakob Bornecrantz 36f24036eb xrt: Add more formats 2019-08-20 12:40:05 +01:00
Jakob Bornecrantz c8f16be641 xrt: Refactor out frame from frameserver 2019-08-20 12:35:55 +01:00
Christoph Haag d9736ba3b7 comp: wait for next frame in xrWaitFrame
fixes 6e396ed

It was unnecessary to move the wait to xrEndFrame.
It does not matter if the compositor renders the frame immediately because the
frame physically can not be displayed before the next HMD refresh.

On the other hand, leaving too short of a time for the compositor to render
may delay the frame past its predicted time.
2019-08-20 10:10:10 +00:00
Ryan Pavlik 2389c207f5 st/oxr: debug utils extension cleanup 2019-08-19 17:12:33 -05:00
Ryan Pavlik 077d0c39c5 st/oxr: Unify handling of extensions. 2019-08-19 17:12:33 -05:00
Benjamin Saunders c111f528b8 oxr: Optionally install as the default runtime 2019-08-19 12:09:49 -05:00
Jakob Bornecrantz a0fcaf9b6b aux/util: Disable use of conversion table for YUV to RGB for now 2019-08-17 10:34:40 +01:00
Jakob Bornecrantz 042d30c590 comp: Fix warnings 2019-08-17 10:34:12 +01:00