Files
OpenVR-AdvancedSettings-frame/src/utils/FrameRateUtils.cpp
T
ykeara 05c12cd4a0 Re-Add color overlay (#311)
* fixed Chaperone toggle, toggle state on launch

* made update rates based on variable frame rate assuming 90 default

* added overlay color back in

* fixed opacity value not synching

* updated to ovr 1.8.19

* fixed license issue

* rolled back ovr update

* fixed overlay toggle state, formatting, and clamped max opacity to .85%
2019-11-08 14:45:26 -06:00

42 lines
1.3 KiB
C++

#include "FrameRateUtils.h"
#include <easylogging++.h>
namespace utils
{
/* Adjusts update rate for event loop ticks so that regardless of ticks we
* maintain the approximate same time value for the updates, if Key is not set
* in SteamVR we assume HMD is @ 90 hz
* */
unsigned int adjustUpdateRate( const unsigned int baseRefreshKey )
{
double updateRate;
vr::EVRSettingsError vrSettingsError;
updateRate = static_cast<double>(
vr::VRSettings()->GetInt32( vr::k_pch_SteamVR_Section,
vr::k_pch_SteamVR_PreferredRefreshRate,
&vrSettingsError ) );
if ( vrSettingsError != vr::VRSettingsError_None )
{
LOG( WARNING ) << "Could not read \""
<< vr::k_pch_SteamVR_PreferredRefreshRate
<< "\" setting: "
<< vr::VRSettings()->GetSettingsErrorNameFromEnum(
vrSettingsError );
return baseRefreshKey;
}
// Assume Base 90 hz Refresh
double multiplier = updateRate / 90.0;
unsigned int adjustedRefreshKey = static_cast<unsigned int>(
static_cast<double>( baseRefreshKey ) * multiplier );
if ( adjustedRefreshKey < 45 )
{
return baseRefreshKey;
}
return adjustedRefreshKey;
}
} // end namespace utils