Prior to this, the existing `xrt_device_name` entry
`XRT_DEVICE_HAND_INTERACTION` was re-used for `XR_EXT_hand_interaction`
bindings however this `xrt_device_name` is used to look up the older
hand-interaction profile `XR_MSFT_hand_interaction`. This commit adds a new
`xrt_device_name` entry dedicated for `XR_EXT_hand_interaction` and fixes the
incorrect profile look for suggested bindings during runtime.
Currently there does not seem to be a way to access the SteamVR
dashboard with the Reverb G2 (controllers).
This adds a binding that allows to use the system/home button to
open the SteamVR dashboard.
Remark: In the OpenXR 1.0 spec there is no binding for
/input/system in XR_EXT_hp_mixed_reality_controller. However on Windows
this button would supposedly allow to (indirectly?) access the
SteamVR dashboard. (Which I can't confirm myself, as I don't have
access to a Windows OS right now.) To properly support system buttons in
OpenXR introduce XR_MNDX_system_buttons.
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Jakob Bornecrantz <jakob@collabora.com>
A requirement of interaction profile (extensions) specify that some/all
actions must be supported by all other profiles. This commit
modifies the binding generation to support data-inheritance in bindings.json:
* Adds support for profiles in bindings.json to inherit & override other profiles
* Adds a new concept of virtual profiles for profile like extensions
(e.g. `XR_EXT_palm_pose`) which do not define a profile themselves but
require their newly defined actions to be supported by all profiles.
* Generates verify bindings functions which only check extensions actions
only if the extension is enabled.
The binding code has support for this extenstion, but the bindings are not
used in any of the drivers so totally untested and would lead to the wrong
expectations of the applications.