chaperoneGeometryQuads was converted from an implicit pointer array to a
std::vector because the only thing the pointer array did was hide the
fact that it was an array.
Audio profiles are not currently activated due to SteamVR changes.
micVol has been changed to default initilize to 1.0f since that was
being applied in the settings load anyway.
Looping through the vectors was done for almost all vectors
individually. Because there are some weird off by one issues that could
crop up it's easier to just have a function for it.
Passing a C style string (const char*) to any of the templated functions
would lead to a compile error. It was necessary to wrap the raw string
in a std::string call, which is obviously not ideal.
Using automatic type deduction was necessary because `std::vector<const
char*` is not the same as `std::vector<std::string>`.
Release log:
https://github.com/ValveSoftware/openvr/releases/tag/v1.9.16
```
Removed sync function. Saving of settings is controlled automatically by
the system now. All existing calls to Sync can be deleted. Calls to sync
using old APIs do nothing.
```
As of SteamVR 1.10.1 the overlay width feature has been implemented by
Valve in the standard settings.
OpenVR features related to overlay translation have been removed and the
main reason for including them (multi monitor setups) have been solved
by Valve giving each screen an individual overlay.
For some unknown reason, the jump to Qt 5.14.0 broke the way we're using
the COPIES/file_copies function only on MSVC.
The `mkspecs/features/file_copies.prf` file itself has not been changed.
Enabling the switch on release builds will optimize the binaries as
normal, but will still include debug symbols. This is advantageous for
bugs that do not show up in debug builds without optimizations.
Due to the SettingsController being a static object it will be
initialized before the main method has been run. This will cause
easylogging to log using the default logging style instead of the
defined application style. Because of this the settings are propogated
up through a function into the main method.
The `customTickRateMs()` function is being called every millisecond,
adding the verification to every call leads to unnecessary overhead.
The tick rate is verified when loading and when saving.