Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can we contribute to OpenXR to get Keyboard/Mouse support to be official? #77

Open
Lokathor opened this issue Dec 11, 2019 · 5 comments
Labels
Long Term Goal Issues where we expect progress to be slow Needs Champion We need someone who can help drive this forward.

Comments

@Lokathor
Copy link
Member

OpenXR is currently the "standard" for working with VR, but it unfortunately only supports VR. It would be nice if the general concept (mapping hardware inputs to semantic actions within the game) could be used with keyboard and mouse too. This is an open standard, so it should be possible to help drive this forward, but also we would have to naturally work with many other groups in the process to we can expect it to be a slow change.

@Lokathor Lokathor added Long Term Goal Issues where we expect progress to be slow Needs Champion We need someone who can help drive this forward. labels Dec 11, 2019
This was referenced Dec 11, 2019
@Ralith
Copy link

Ralith commented Dec 11, 2019

This should be approached as an OpenXR extension, which will need to begin life as a vendor extension, consisting of a specification of the added interfaces and an implementation for some existing runtime. KhronosGroup/OpenXR-Docs#40 is an example of an in-progress vendor extension being developed external to Khronos, beginning as a Monado extension with the objective of eventually becoming a multi-vendor extension. Monado is the only existing open-source OpenXR runtime and is in early stages (Linux only, major functionality incomplete, little hardware support) but welcomes contribution.

Some care will be necessary as OpenXR does not yet provide for relative input like raw mouse motion, needed for first-person cameras, due to its state-oriented interface. New functionality, ideally an input event queue, will need to be introduced, perhaps as a separate extension.

@rpavlik
Copy link

rpavlik commented May 28, 2020

Personally I'd love to use the OpenXR action system even outside of VR :) SteamInput is similar but proprietary, and also "earlier" evolution-wise: the OpenXR action system is more capable and incorporates lessons from SteamInput as well as the SteamVR Input action system.

I'd love to hear proposals for an input event queue, as well - I've been assured that it's not strictly necessary for VR, but it still seems more natural to me, and probably essential for non-VR uses.

KhronosGroup/OpenXR-Docs#48 is a vendor extension that was merged (essentially the finished version of 40)

@repi
Copy link

repi commented Jun 8, 2020

Could be quite neat long term approach, though having OpenXR available and having the crate be lean and mean likely would be a bunch of work and take time.

Pinging @VZout for visibility who recently integrated OpenXR here at Embark (for VR).

@Ralith
Copy link

Ralith commented Jun 8, 2020

Discussion in the Monado discord tentatively concluded that the OpenXR loader architecture is probably a large barrier: a non-VR application on a system with VR-only runtimes installed will have a difficult time selecting a suitable runtime without significant changes to how runtime discovery works. It might be easier to build something new modeled on the same concepts, at least for the time being.

@repi
Copy link

repi commented Jun 8, 2020

That is understandable

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Long Term Goal Issues where we expect progress to be slow Needs Champion We need someone who can help drive this forward.
Projects
None yet
Development

No branches or pull requests

4 participants