Add ability to change IVRInput bindings, move openvr_init into namespace

openvr_init was not in a namespace. This led to it being globally
available. This was not intended.

The solution to overlays not showing up in the bindings interface was
chosen for ease of implementation and relative ease of end user use.
The Kinect2VR project are using a solution where there is a button to
shutdown background mode and use scene mode temporarily. This did not
work for our project for unknown reasons. The IVRInput system would
become non responsive and spam error messages when VR was shut down.
Implementation is here:
https://github.com/sharkyh20/KinectToVR/blob/12aeb8b33ab20eeb588c72c5d5186dd4d87784d7/SFMLProject/inc/GUIHandler.h#L700

The command line flag will be represented as a .bat file for the end
user, like desktop mode and restarting the VR server.

When Valve solves the issue of overlays not showing up in the bindings
menu, the entire function can essentially be deleted.
Official issues here:
https://github.com/ValveSoftware/openvr/issues/914
https://github.com/ValveSoftware/openvr/issues/926
https://github.com/ValveSoftware/openvr/issues/879

It is also possible to make the app appear by changing the
C:\Program Files (x86)\Steam\config\vrappconfig\*.vrappconfig file for
the project to have a "last_launch_time" of something greater than zero.
From experimentation it seems that there's a cutoff time around 2 weeks
before the current time. Setting it to the day before seems to be a good bet.
(In unix time).
This commit is contained in:
Vasily
2019-01-20 22:05:21 +01:00
parent 0c71c289b9
commit 706f21ebea
4 changed files with 84 additions and 3 deletions
+5
View File
@@ -1,5 +1,9 @@
#pragma once
namespace openvr_init
{
[[noreturn]] void openBindingsMenu();
/*!
Initializes OpenVR and checks validity of interface versions. Shuts down OpenVR
when destroyed.
@@ -33,3 +37,4 @@ public:
// Move assignment
const OpenVR_Init operator=( OpenVR_Init&& ) = delete;
};
} // namespace openvr_init