From 95b7eaa664e43447d3a46c4adce0f69d13d20e48 Mon Sep 17 00:00:00 2001 From: ykeara Date: Sat, 12 Jan 2019 14:49:07 -0600 Subject: [PATCH] SteamVRTab SSOverride update (#40) * Added Manual Override Checkbox * added profile logic/synch fixed bug with profile * Added Function definitions + re-arranged code into more logical blocks * formatting and fixed reset function in steamvrtabcontroler * updated documentation * removed some comments(for later standardization), params as const (where applicable), changed SS minimum value to .2 to match with steamVR minimum * changed c style cast to c++ * re-applied formatting * removed un-used lines in steamvrtabcontroller.h --- Readme.md | 3 +- docs/screenshots/SteamVRPage.png | Bin 58727 -> 67473 bytes src/res/qml/SteamVRPage.qml | 33 +- src/tabcontrollers/SteamVRTabController.cpp | 504 ++++++++++++-------- src/tabcontrollers/SteamVRTabController.h | 19 +- 5 files changed, 344 insertions(+), 215 deletions(-) diff --git a/Readme.md b/Readme.md index 90902a1..76248ba 100644 --- a/Readme.md +++ b/Readme.md @@ -126,7 +126,8 @@ If you want to try latest and greatest unreleased features, you can download lat - **Profile**: Allows to apply/define/delete supersampling profiles that save supersampling and reprojection settings. - **Application Supersampling**: Supersampling setting for OpenVR applications/games. Application supersampling [now behaves linearly](https://steamcommunity.com/games/250820/announcements/detail/1256913672017664045) where 2.0 means twice the number of pixel. - - **Note**: Manual Override for Super-Sampling must be checked in the SteamVR/OpenVR settings menu. + - **Note**: Manual Supersampling Override be checked. +- **Enable Manual Supersampling Override**: Enables user control of Supersampling, instead of SteamVR auto profiles. - **Enable Motion Smoothing**: Enables Motion Smoothing, and disables asynchronous reprojection. - **Restart SteamVR**: Restart SteamVR (May crash the Steam overlay when SteamVR Home is running when you restart. Therefore I advice that you close SteamVR Home before restarting). diff --git a/docs/screenshots/SteamVRPage.png b/docs/screenshots/SteamVRPage.png index 53b18c64951a8b6b9e681dc5a634d4c8d15c0ddc..81c835b1506bbb224fdde91ae6213f74e8feb7ed 100644 GIT binary patch literal 67473 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 = var_widget; } -void SteamVRTabController::reloadSteamVRProfiles() -{ - steamvrProfiles.clear(); - auto settings = OverlayController::appSettings(); - settings->beginGroup( "steamVRSettings" ); - auto profileCount = settings->beginReadArray( "steamVRProfiles" ); - for ( int i = 0; i < profileCount; i++ ) - { - settings->setArrayIndex( i ); - steamvrProfiles.emplace_back(); - auto& entry = steamvrProfiles[i]; - entry.profileName - = settings->value( "profileName" ).toString().toStdString(); - entry.includesSupersampling - = settings->value( "includesSupersampling", false ).toBool(); - if ( entry.includesSupersampling ) - { - entry.supersampling - = settings->value( "supersampling", 1.0f ).toFloat(); - } - entry.includesSupersampleFiltering - = settings->value( "includesSupersampleFiltering", false ).toBool(); - if ( entry.includesSupersampleFiltering ) - { - entry.supersampleFiltering - = settings->value( "supersampleFiltering", true ).toBool(); - } - entry.includesMotionSmoothing - = settings->value( "includesMotionSmoothing", false ).toBool(); - if ( entry.includesMotionSmoothing ) - { - entry.motionSmooth - = settings->value( "motionSmooth", true ).toBool(); - } - } - settings->endArray(); - settings->endGroup(); -} - -void SteamVRTabController::saveSteamVRProfiles() -{ - auto settings = OverlayController::appSettings(); - settings->beginGroup( "steamVRSettings" ); - settings->beginWriteArray( "steamVRProfiles" ); - unsigned i = 0; - for ( auto& p : steamvrProfiles ) - { - settings->setArrayIndex( i ); - settings->setValue( "profileName", - QString::fromStdString( p.profileName ) ); - settings->setValue( "includesSupersampling", p.includesSupersampling ); - if ( p.includesSupersampling ) - { - settings->setValue( "supersampling", p.supersampling ); - } - settings->setValue( "includesSupersampleFiltering", - p.includesSupersampleFiltering ); - if ( p.includesSupersampleFiltering ) - { - settings->setValue( "supersampleFiltering", - p.supersampleFiltering ); - } - settings->setValue( "includesMotionSmoothing", - p.includesMotionSmoothing ); - if ( p.includesMotionSmoothing ) - { - settings->setValue( "motionSmooth", p.motionSmooth ); - } - - i++; - } - settings->endArray(); - settings->endGroup(); -} - -Q_INVOKABLE unsigned SteamVRTabController::getSteamVRProfileCount() -{ - return ( unsigned ) steamvrProfiles.size(); -} - -Q_INVOKABLE QString - SteamVRTabController::getSteamVRProfileName( unsigned index ) -{ - if ( index >= steamvrProfiles.size() ) - { - return QString(); - } - else - { - return QString::fromStdString( steamvrProfiles[index].profileName ); - } -} -// TODO DISC does it make any sense to check these settings once every ~ -// 1second. primary purpose seems to be to re-sync settings if changed via other -// means? void SteamVRTabController::eventLoopTick() { if ( settingsUpdateCounter >= 50 ) { vr::EVRSettingsError vrSettingsError; + // checks supersampling override and resynchs if necessry + // also prints error if can't find. + auto sso = vr::VRSettings()->GetBool( + vr::k_pch_SteamVR_Section, + vr::k_pch_SteamVR_SupersampleManualOverride_Bool, + &vrSettingsError ); + if ( vrSettingsError != vr::VRSettingsError_None ) + { + LOG( WARNING ) << "Could not read \"" + << vr::k_pch_SteamVR_SupersampleManualOverride_Bool + << "\" setting: " + << vr::VRSettings()->GetSettingsErrorNameFromEnum( + vrSettingsError ); + } + setAllowSupersampleOverride( sso ); // checks supersampling and re-synchs if necessary auto ss = vr::VRSettings()->GetFloat( vr::k_pch_SteamVR_Section, @@ -185,10 +106,192 @@ void SteamVRTabController::eventLoopTick() } } -void SteamVRTabController::setSuperSampling( float value, bool notify ) +/* -----------------------------------------*/ +/*------------------------------------------*/ +/*Profile Logic Functions*/ + +void SteamVRTabController::addSteamVRProfile( + const QString name, + const bool includeSupersampling, + const bool includeSupersampleFiltering, + const bool includeMotionSmoothing ) +{ + SteamVRProfile* profile = nullptr; + for ( auto& p : steamvrProfiles ) + { + if ( p.profileName.compare( name.toStdString() ) == 0 ) + { + profile = &p; + break; + } + } + if ( !profile ) + { + auto i = steamvrProfiles.size(); + steamvrProfiles.emplace_back(); + profile = &steamvrProfiles[i]; + } + profile->profileName = name.toStdString(); + profile->includesSupersampling = includeSupersampling; + if ( includeSupersampling ) + { + profile->supersampleOverride = m_allowSupersampleOverride; + profile->supersampling = m_superSampling; + } + profile->includesSupersampleFiltering = includeSupersampleFiltering; + if ( includeSupersampleFiltering ) + { + profile->supersampleFiltering = m_allowSupersampleFiltering; + } + profile->includesMotionSmoothing = includeMotionSmoothing; + if ( includeMotionSmoothing ) + { + profile->motionSmooth = m_motionSmoothing; + } + saveSteamVRProfiles(); + OverlayController::appSettings()->sync(); + emit steamVRProfilesUpdated(); + emit steamVRProfileAdded(); +} + +void SteamVRTabController::applySteamVRProfile( const unsigned index ) +{ + if ( index < steamvrProfiles.size() ) + { + auto& profile = steamvrProfiles[index]; + if ( profile.includesSupersampling ) + { + setAllowSupersampleOverride( profile.supersampleOverride ); + setSuperSampling( profile.supersampling ); + } + if ( profile.includesSupersampleFiltering ) + { + setAllowSupersampleFiltering( profile.supersampleFiltering ); + } + if ( profile.includesMotionSmoothing ) + { + setMotionSmoothing( profile.motionSmooth ); + } + vr::VRSettings()->Sync( true ); + } +} + +void SteamVRTabController::deleteSteamVRProfile( const unsigned index ) +{ + if ( index < steamvrProfiles.size() ) + { + auto pos = steamvrProfiles.begin() + index; + steamvrProfiles.erase( pos ); + saveSteamVRProfiles(); + OverlayController::appSettings()->sync(); + emit steamVRProfilesUpdated(); + } +} + +void SteamVRTabController::reloadSteamVRProfiles() +{ + steamvrProfiles.clear(); + auto settings = OverlayController::appSettings(); + settings->beginGroup( "steamVRSettings" ); + auto profileCount = settings->beginReadArray( "steamVRProfiles" ); + for ( int i = 0; i < profileCount; i++ ) + { + settings->setArrayIndex( i ); + steamvrProfiles.emplace_back(); + auto& entry = steamvrProfiles[i]; + entry.profileName + = settings->value( "profileName" ).toString().toStdString(); + entry.includesSupersampling + = settings->value( "includesSupersampling", false ).toBool(); + if ( entry.includesSupersampling ) + { + entry.supersampleOverride + = settings->value( "supersamplingOverride", false ).toBool(); + entry.supersampling + = settings->value( "supersampling", 1.0f ).toFloat(); + } + entry.includesSupersampleFiltering + = settings->value( "includesSupersampleFiltering", false ).toBool(); + if ( entry.includesSupersampleFiltering ) + { + entry.supersampleFiltering + = settings->value( "supersampleFiltering", true ).toBool(); + } + entry.includesMotionSmoothing + = settings->value( "includesMotionSmoothing", false ).toBool(); + if ( entry.includesMotionSmoothing ) + { + entry.motionSmooth + = settings->value( "motionSmooth", true ).toBool(); + } + } + settings->endArray(); + settings->endGroup(); +} + +void SteamVRTabController::saveSteamVRProfiles() +{ + auto settings = OverlayController::appSettings(); + settings->beginGroup( "steamVRSettings" ); + settings->beginWriteArray( "steamVRProfiles" ); + unsigned i = 0; + for ( auto& p : steamvrProfiles ) + { + settings->setArrayIndex( i ); + settings->setValue( "profileName", + QString::fromStdString( p.profileName ) ); + settings->setValue( "includesSupersampling", p.includesSupersampling ); + if ( p.includesSupersampling ) + { + settings->setValue( "supersamplingOverride", + p.supersampleOverride ); + settings->setValue( "supersampling", p.supersampling ); + } + settings->setValue( "includesSupersampleFiltering", + p.includesSupersampleFiltering ); + if ( p.includesSupersampleFiltering ) + { + settings->setValue( "supersampleFiltering", + p.supersampleFiltering ); + } + settings->setValue( "includesMotionSmoothing", + p.includesMotionSmoothing ); + if ( p.includesMotionSmoothing ) + { + settings->setValue( "motionSmooth", p.motionSmooth ); + } + + i++; + } + settings->endArray(); + settings->endGroup(); +} +int SteamVRTabController::getSteamVRProfileCount() +{ + return static_cast( steamvrProfiles.size() ); +} + +QString SteamVRTabController::getSteamVRProfileName( const unsigned index ) +{ + if ( index >= steamvrProfiles.size() ) + { + return QString(); + } + else + { + return QString::fromStdString( steamvrProfiles[index].profileName ); + } +} + +/* -----------------------------------------*/ +/*------------------------------------------*/ +/*SuperSample (value) functions*/ + +void SteamVRTabController::setSuperSampling( float value, const bool notify ) { bool override = false; - if ( value <= 0.01f ) + // Mirrors Desktop Clamp + if ( value <= 0.2f ) { LOG( WARNING ) << "Encountered a supersampling value <= 0.01, setting " "supersampling to 1.0"; @@ -215,26 +318,16 @@ float SteamVRTabController::superSampling() const { return m_superSampling; } - +/* -----------------------------------------*/ +/*------------------------------------------*/ +/*Motion Smoothing boolean/toggle functions*/ bool SteamVRTabController::motionSmoothing() const { return m_motionSmoothing; } -/* -Name: setMotionSmoothing - -input: bool value, bool notify -output: none - -@value - value to be passed to m_motionSMoothing -@notify - whether QML is informed of change (default true) - -Description: -sets value of m_motionSmoothing AND applies changes in Steam/OpenVr -*/ - -void SteamVRTabController::setMotionSmoothing( bool value, bool notify ) +void SteamVRTabController::setMotionSmoothing( const bool value, + const bool notify ) { if ( m_motionSmoothing != value ) { @@ -250,21 +343,6 @@ void SteamVRTabController::setMotionSmoothing( bool value, bool notify ) } } -/* -Name: initMotionSmoothing - -input: none -output: none - -description: Gets the Value of Motion Smoothing from Steam/OpenVR. -Sets the member variable of motion smoothing for UI -Adds error to log if unable to find variable. - -OnError: -default value of true for motion smoothing is initialized, if user has disabled -motion smoothing on their end, they will have to toggle the variable twice to -get it to re-sync. -*/ void SteamVRTabController::initMotionSmoothing() { bool temporary = false; @@ -285,13 +363,17 @@ void SteamVRTabController::initMotionSmoothing() setMotionSmoothing( temporary, true ); } +/* -----------------------------------------*/ +/*------------------------------------------*/ +/*Supersample Filtering boolean/toggle functions*/ + bool SteamVRTabController::allowSupersampleFiltering() const { return m_allowSupersampleFiltering; } -void SteamVRTabController::setAllowSupersampleFiltering( bool value, - bool notify ) +void SteamVRTabController::setAllowSupersampleFiltering( const bool value, + const bool notify ) { if ( m_allowSupersampleFiltering != value ) { @@ -309,6 +391,56 @@ void SteamVRTabController::setAllowSupersampleFiltering( bool value, } } +/* -----------------------------------------*/ +/*------------------------------------------*/ +/*SuperSampling Override boolean/toggle functions*/ + +bool SteamVRTabController::allowSupersampleOverride() const +{ + return m_allowSupersampleOverride; +} + +void SteamVRTabController::setAllowSupersampleOverride( const bool value, + const bool notify ) +{ + if ( m_allowSupersampleOverride != value ) + { + m_allowSupersampleOverride = value; + vr::VRSettings()->SetBool( + vr::k_pch_SteamVR_Section, + vr::k_pch_SteamVR_SupersampleManualOverride_Bool, + m_allowSupersampleOverride ); + vr::VRSettings()->Sync(); + if ( notify ) + { + emit allowSupersampleOverrideChanged( m_allowSupersampleOverride ); + } + } +} + +void SteamVRTabController::initSupersampleOverride() +{ + bool temporary = false; + vr::EVRSettingsError vrSettingsError; + temporary = vr::VRSettings()->GetBool( + vr::k_pch_SteamVR_Section, + vr::k_pch_SteamVR_SupersampleManualOverride_Bool, + &vrSettingsError ); + if ( vrSettingsError != vr::VRSettingsError_None ) + { + LOG( WARNING ) << "Could not get SuperSampling Override State \"" + << vr::k_pch_SteamVR_SupersampleManualOverride_Bool + << "\" setting: " + << vr::VRSettings()->GetSettingsErrorNameFromEnum( + vrSettingsError ); + } + vr::VRSettings()->Sync(); + setAllowSupersampleOverride( temporary, true ); +} + +/*------------------------------------------*/ +/* -----------------------------------------*/ + void SteamVRTabController::reset() { vr::EVRSettingsError vrSettingsError; @@ -339,6 +471,45 @@ void SteamVRTabController::reset() vrSettingsError ); } + vr::VRSettings()->RemoveKeyInSection( + vr::k_pch_SteamVR_Section, + vr::k_pch_SteamVR_SupersampleManualOverride_Bool, + &vrSettingsError ); + if ( vrSettingsError != vr::VRSettingsError_None ) + { + LOG( WARNING ) << "Could not remove \"" + << vr::k_pch_SteamVR_SupersampleManualOverride_Bool + << "\" setting: " + << vr::VRSettings()->GetSettingsErrorNameFromEnum( + vrSettingsError ); + } + + vr::VRSettings()->RemoveKeyInSection( + vr::k_pch_SteamVR_Section, + vr::k_pch_SteamVR_SupersampleScale_Float, + &vrSettingsError ); + if ( vrSettingsError != vr::VRSettingsError_None ) + { + LOG( WARNING ) << "Could not remove \"" + << vr::k_pch_SteamVR_SupersampleScale_Float + << "\" setting: " + << vr::VRSettings()->GetSettingsErrorNameFromEnum( + vrSettingsError ); + } + + vr::VRSettings()->RemoveKeyInSection( + vr::k_pch_SteamVR_Section, + vr::k_pch_SteamVR_MotionSmoothing_Bool, + &vrSettingsError ); + if ( vrSettingsError != vr::VRSettingsError_None ) + { + LOG( WARNING ) << "Could not remove \"" + << vr::k_pch_SteamVR_MotionSmoothing_Bool + << "\" setting: " + << vr::VRSettings()->GetSettingsErrorNameFromEnum( + vrSettingsError ); + } + vr::VRSettings()->Sync(); settingsUpdateCounter = 999; // Easiest way to get default values } @@ -352,79 +523,4 @@ void SteamVRTabController::restartSteamVR() QProcess::startDetached( cmd ); } -void SteamVRTabController::addSteamVRProfile( QString name, - bool includeSupersampling, - bool includeSupersampleFiltering, - bool includeMotionSmoothing ) -{ - SteamVRProfile* profile = nullptr; - for ( auto& p : steamvrProfiles ) - { - if ( p.profileName.compare( name.toStdString() ) == 0 ) - { - profile = &p; - break; - } - } - if ( !profile ) - { - auto i = steamvrProfiles.size(); - steamvrProfiles.emplace_back(); - profile = &steamvrProfiles[i]; - } - profile->profileName = name.toStdString(); - profile->includesSupersampling = includeSupersampling; - if ( includeSupersampling ) - { - profile->supersampling = m_superSampling; - } - profile->includesSupersampleFiltering = includeSupersampleFiltering; - if ( includeSupersampleFiltering ) - { - profile->supersampleFiltering = m_allowSupersampleFiltering; - } - profile->includesMotionSmoothing = includeMotionSmoothing; - if ( includeMotionSmoothing ) - { - profile->motionSmooth = m_motionSmoothing; - } - saveSteamVRProfiles(); - OverlayController::appSettings()->sync(); - emit steamVRProfilesUpdated(); - emit steamVRProfileAdded(); -} - -void SteamVRTabController::applySteamVRProfile( unsigned index ) -{ - if ( index < steamvrProfiles.size() ) - { - auto& profile = steamvrProfiles[index]; - if ( profile.includesSupersampling ) - { - setSuperSampling( profile.supersampling ); - } - if ( profile.includesSupersampleFiltering ) - { - setAllowSupersampleFiltering( profile.supersampleFiltering ); - } - if ( profile.includesMotionSmoothing ) - { - setMotionSmoothing( profile.motionSmooth ); - } - vr::VRSettings()->Sync( true ); - } -} - -void SteamVRTabController::deleteSteamVRProfile( unsigned index ) -{ - if ( index < steamvrProfiles.size() ) - { - auto pos = steamvrProfiles.begin() + index; - steamvrProfiles.erase( pos ); - saveSteamVRProfiles(); - OverlayController::appSettings()->sync(); - emit steamVRProfilesUpdated(); - } -} - } // namespace advsettings diff --git a/src/tabcontrollers/SteamVRTabController.h b/src/tabcontrollers/SteamVRTabController.h index a6c2220..1974bc6 100644 --- a/src/tabcontrollers/SteamVRTabController.h +++ b/src/tabcontrollers/SteamVRTabController.h @@ -21,6 +21,7 @@ struct SteamVRProfile bool supersampleFiltering = false; bool motionSmooth = false; bool includesMotionSmoothing = false; + bool supersampleOverride = false; }; class SteamVRTabController : public QObject @@ -28,27 +29,27 @@ class SteamVRTabController : public QObject Q_OBJECT Q_PROPERTY( float superSampling READ superSampling WRITE setSuperSampling NOTIFY superSamplingChanged ) - /*Q_PROPERTY( - float compositorSuperSampling READ compositorSuperSampling WRITE - setCompositorSuperSampling NOTIFY compositorSuperSamplingChanged ) - */ Q_PROPERTY( bool motionSmoothing READ motionSmoothing WRITE setMotionSmoothing NOTIFY motionSmoothingChanged ) Q_PROPERTY( bool allowSupersampleFiltering READ allowSupersampleFiltering WRITE setAllowSupersampleFiltering NOTIFY allowSupersampleFilteringChanged ) + Q_PROPERTY( + bool allowSupersampleOverride READ allowSupersampleOverride WRITE + setAllowSupersampleOverride NOTIFY allowSupersampleOverrideChanged ) private: OverlayController* parent; QQuickWindow* widget; float m_superSampling = 1.0; - // float m_compositorSuperSampling = 1.0; bool m_motionSmoothing = true; bool m_allowSupersampleFiltering = true; + bool m_allowSupersampleOverride = false; void initMotionSmoothing(); + void initSupersampleOverride(); std::vector steamvrProfiles; @@ -61,21 +62,21 @@ public: void eventLoopTick(); float superSampling() const; - // float compositorSuperSampling() const; bool motionSmoothing() const; bool allowSupersampleFiltering() const; + bool allowSupersampleOverride() const; void reloadSteamVRProfiles(); void saveSteamVRProfiles(); - Q_INVOKABLE unsigned getSteamVRProfileCount(); + Q_INVOKABLE int getSteamVRProfileCount(); Q_INVOKABLE QString getSteamVRProfileName( unsigned index ); public slots: void setSuperSampling( float value, bool notify = true ); - // void setCompositorSuperSampling( float value, bool notify = true ); void setMotionSmoothing( bool value, bool notify = true ); void setAllowSupersampleFiltering( bool value, bool notify = true ); + void setAllowSupersampleOverride( bool value, bool notify = true ); void addSteamVRProfile( QString name, bool includeSupersampling, @@ -89,9 +90,9 @@ public slots: signals: void superSamplingChanged( float value ); - // void compositorSuperSamplingChanged( float value ); void motionSmoothingChanged( bool value ); void allowSupersampleFilteringChanged( bool value ); + void allowSupersampleOverrideChanged( bool value ); void steamVRProfilesUpdated(); void steamVRProfileAdded();