Ryan Pavlik
307d33b327
Allow XR_KHR_android_create_instance to be optional.
...
It's essentially replaced by KHR_loader_init_android,
and will eventually not be provided by new/updated runtimes
2022-05-06 09:28:15 -07:00
jascase901
51d96f6fa2
include required for linux support.
2022-04-24 13:07:59 -07:00
jascase901
aeb269b24a
use static assert macro instead of keyword
...
This change fixes a linker error I noticed when compiling on my windows
sytstem. see #551
According to this link the macro is prefered to the keyword.
https://docs.microsoft.com/en-us/cpp/c-language/static-assert-c?view=msvc-170#:~:text=The%20_Static_assert%20keyword%2C%20and%20the%20static_assert%20macro%2C%20both,runtime%20and%20incur%20a%20runtime%20cost.%20Microsoft-specific%20behavior
2022-04-24 13:07:59 -07:00
bjorn
b32244b787
OpenXR: Make update idempotent;
...
The state tracking here is getting pretty complicated... oh well!
2022-03-30 13:33:02 -07:00
bjorn
0238549e66
OpenXR: sync all subaction paths;
2022-03-30 13:33:02 -07:00
bjorn
2ec5a1a9dd
OpenXR: Valve Index grip improvements;
2022-03-30 11:13:55 -07:00
bjorn
3972a8df20
Reset OpenXR event type after polling;
...
Otherwise the struct will have the wrong type when polling the next
event. Kind of annoying.
2022-03-29 08:56:26 -07:00
bjorn
243e686ea4
rm lovr.headset.getDisplayMask;
2022-03-22 19:45:44 -07:00
bjorn
1eed2bc83c
lovr.headset.isFocused;
2022-03-22 19:43:00 -07:00
bjorn
1f3c5dea79
dt uses headset time instead of system time;
2022-03-22 17:52:16 -07:00
bjorn
2da18d419b
mv util src;
2022-03-22 00:13:38 -07:00
bjorn
721d4e180d
Clean up OpenXR extensions;
...
One per line, with scannable name strings.
2022-03-21 17:01:03 -07:00
bjorn
428b569bfc
OpenXR uses COUNTOF;
2022-03-21 17:00:56 -07:00
bjorn
339f75f579
Sketch support for XR_FB_hand_tracking_aim;
...
This adds support for /point devices and the trigger axis (mapped to
pinch) with hand tracking.
2022-03-21 15:45:48 -07:00
bjorn
0c17046847
Add eye/gaze device;
...
This provides an accurate pose for what the user is looking at, instead
of the poses of the individual eyes. Supported on some OpenXR
implementations.
2022-03-21 15:05:23 -07:00
bjorn
9214ac8b29
rm unnecessary include;
2022-03-21 12:33:46 -07:00
bjorn
ad4072d109
OpenXR: Bail if extensions can't be queried;
2022-03-21 12:27:32 -07:00
bjorn
0b2c2525ba
rm openxr_oculus.h;
...
It is now an empty file in the Oculus OpenXR SDK, because the
corresponding extensions have been integrated into the main OpenXR SDK.
2022-03-21 01:00:28 -07:00
bjorn
bebeff4fc2
OpenXR: Support getDisplayFrequency;
...
Quest only. We don't support setting/querying/events yet, since it
isn't clear that this will be standardized behavior.
2022-03-21 00:51:24 -07:00
bjorn
e4eb4e0df1
OpenXR: Support vive trackers;
2022-03-20 18:04:06 -07:00
bjorn
ef9754c114
OpenXR: Rework actions;
...
Inline in the driver, less hand-centric.
2022-03-20 15:39:02 -07:00
bjorn
29cbe63b1d
OpenXR: Add support for XR_FB_hand_tracking_mesh;
...
This adds the ability to load and animate a mesh for hand tracking on
the Oculus Quest. It is more or less identical to the current
functionality on the vrapi driver.
One key part of this change is that getPose in OpenXR will see if action
spaces are active before locating their spaces. This is due to some
behavior observed on the Oculus Quest with hand tracking where pose
actions for controllers would return invalid data with all of the
location flags erroneously set. The only way to detect and work around
this is to check the pose action state. When this happens, we fall back
to returning the pose of the wrist joint, which is where the Oculus hand
mesh wants to be drawn. In the event that both controllers and hand
tracking are active, the controller pose will be returned by getPose but
the wrist joint can still be accessed using getSkeleton.
Note that this does not yet include support for properly scaling the
hand mesh.
There are numerous opportunities for optimization here that may be
investigated in the future, though performance is well within an
acceptable range right now.
2022-03-19 17:49:13 -07:00
bjorn
36c7b93fed
Details;
2022-03-17 19:30:53 -07:00
bjorn
99e2809db5
OpenXR: formatting; Use infinite swapchain wait timeout;
2022-03-17 19:30:21 -07:00
bjorn
ad4ce298f1
s/os_get_context/os_get_win32_context;
2022-03-17 19:14:34 -07:00
bjorn
c35c2bb7eb
OpenXR doesn't crash if lovr.draw errors;
...
renderTo is idempotent in openxr driver now.
2022-03-17 19:11:07 -07:00
bjorn
99a42c5c71
OpenXR: Support /point devices;
2022-03-17 17:58:30 -07:00
bjorn
4417481a92
OpenXR: Support ABXY buttons;
2022-03-17 16:33:37 -07:00
bjorn
450ee72c89
OpenXR: Windows graphics plugin properly uses HDC instead of HWND;
...
The HWND was getting passed in directly instead of first converting
it to an HDC. This was causing SteamVR to fail to create its OpenGL
context.
2022-03-15 15:21:31 -07:00
bjorn
17c05b1760
Merge branch 'master' into dev
2022-03-14 14:10:25 -07:00
bjorn
a11121d739
OpenXR: fix thumbrest action;
2022-03-14 14:10:12 -07:00
bjorn
fdfcb5539f
Merge branch 'master' into dev
2022-03-14 13:19:59 -07:00
bjorn
54154a643a
Thumbrest support;
2022-03-06 17:43:04 -08:00
bjorn
3ff64fa3ef
OpenXR: Fix instance extension enumeration;
2022-01-29 15:31:44 -08:00
bjorn
8d3d233e91
Include unknwn.h to fix OpenXR on some windows systems;
2021-12-27 15:16:50 +02:00
bjorn
20e4567bd6
Merge branch 'master' into dev
2021-12-20 17:12:39 +02:00
bjorn
e1527a949a
openxr: fix xrLocateViews call;
...
- The input parameter is a count, not a size
- The view structs must be initialized with a type
2021-10-24 13:03:05 -07:00
bjorn
0582746137
Fix OpenXR compilation;
2021-06-12 14:42:30 -06:00
bjorn
92400df89d
lovr.headset.init -> lovr.headset.start;
...
- We need some headset initialization to happen upfront
- But we still want some delayed initialization for when graphics is ready
- Go back to headset initialization happening when module is required
- Add lovr.headset.start that can be used for post-graphics init
2021-06-10 17:26:15 -06:00
Jakob Bornecrantz
28a0356a9a
Add overlay support for OpenXR
2021-04-16 14:20:05 -06:00
Jakob Bornecrantz
70ef04e595
Add overlay parameter to headset init
2021-04-16 14:20:05 -06:00
Jakob Bornecrantz
909b43f34a
Order OpenXR extension adding
2021-04-16 14:20:05 -06:00
bjorn
4f5adbc64c
lovr.system;
2021-02-25 09:00:12 -07:00
bjorn
72284c2c5b
Merge branch 'master' into dev
2021-02-12 08:16:36 -07:00
bjorn
bc4cde1653
Adjust lovrRelease signature;
2021-02-08 17:52:26 -07:00
bjorn
3ded60948f
rm core/ref; rm lovrAlloc; util does refcounting;
2021-02-08 17:26:44 -07:00
bjorn
1dd692a009
lovrPlatformGetWindow -> lovrPlatformGetWin32Window;
2021-02-07 16:57:08 -07:00
bjorn
323436898a
Add WIN32_LEAN_AND_MEAN;
2021-02-07 16:49:34 -07:00
Christoph Haag
394759c1ab
initialize XrSystemProperties type
2021-01-22 15:43:01 +01:00
Jakob Bornecrantz
cf22c11dd5
Do not try to create hand tracking devices if handTracking is not supported
2020-11-18 21:31:09 +00:00