Merge branch 'master' into media-keys

This commit is contained in:
username223
2019-01-12 21:56:38 +01:00
committed by GitHub
5 changed files with 344 additions and 215 deletions
+2 -1
View File
@@ -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. - **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. - **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. - **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). - **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).
Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 66 KiB

+32 -1
View File
@@ -183,6 +183,7 @@ MyStackViewPage {
} }
MyPushButton2 { MyPushButton2 {
id: steamvrSupersampleDecrement
text: "-" text: "-"
Layout.preferredWidth: 40 Layout.preferredWidth: 40
onClicked: { onClicked: {
@@ -192,7 +193,7 @@ MyStackViewPage {
MySlider { MySlider {
id: steamvrSupersamplingSlider id: steamvrSupersamplingSlider
from: 0.1 from: 0.2
to: 5.0 to: 5.0
stepSize: 0.1 stepSize: 0.1
value: 1.0 value: 1.0
@@ -208,6 +209,7 @@ MyStackViewPage {
} }
MyPushButton2 { MyPushButton2 {
id: steamvrSupersampleIncrement
text: "+" text: "+"
Layout.preferredWidth: 40 Layout.preferredWidth: 40
onClicked: { onClicked: {
@@ -239,6 +241,24 @@ MyStackViewPage {
} }
} }
} }
MyToggleButton {
id: steamvrAllowSupersampleOverrideToggle
text: "Enable Manual Supersampling Override"
onCheckedChanged: {
SteamVRTabController.setAllowSupersampleOverride(this.checked, false)
if(!this.checked){
steamvrSupersamplingText.enabled = false
steamvrSupersamplingSlider.enabled = false
steamvrSupersampleIncrement.enabled = false
steamvrSupersampleDecrement.enabled = false
}else{
steamvrSupersamplingText.enabled = true
steamvrSupersamplingSlider.enabled = true
steamvrSupersampleIncrement.enabled = true
steamvrSupersampleDecrement.enabled = true
}
}
}
MyToggleButton { MyToggleButton {
id: steamvrAllowSupersampleFilteringToggle id: steamvrAllowSupersampleFilteringToggle
text: "Enable Advanced Supersample Filtering" text: "Enable Advanced Supersample Filtering"
@@ -286,8 +306,16 @@ MyStackViewPage {
if (s1 <= steamvrSupersamplingSlider.to) { if (s1 <= steamvrSupersamplingSlider.to) {
steamvrSupersamplingSlider.value = s1 steamvrSupersamplingSlider.value = s1
} }
steamvrAllowSupersampleOverrideToggle.checked = SteamVRTabController.allowSupersampleOverride
steamvrAllowSupersampleFilteringToggle.checked = SteamVRTabController.allowSupersampleFiltering steamvrAllowSupersampleFilteringToggle.checked = SteamVRTabController.allowSupersampleFiltering
steamvrMotionSmoothingToggle.checked = SteamVRTabController.motionSmoothing steamvrMotionSmoothingToggle.checked = SteamVRTabController.motionSmoothing
if(!steamvrAllowSupersampleOverrideToggle.checked){
steamvrSupersamplingText.enabled = false
steamvrSupersamplingSlider.enabled = false
steamvrSupersampleIncrement.enabled = false
steamvrSupersampleDecrement.enabled = false
}
reloadSteamVRProfiles() reloadSteamVRProfiles()
} }
@@ -300,6 +328,9 @@ MyStackViewPage {
} }
steamvrSupersamplingText.text = s1 steamvrSupersamplingText.text = s1
} }
onAllowSupersampleOverrideChanged: {
steamvrAllowSupersampleOverrideToggle.checked = SteamVRTabController.allowSupersampleOverride
}
onAllowSupersampleFilteringChanged: { onAllowSupersampleFilteringChanged: {
steamvrAllowSupersampleFilteringToggle.checked = SteamVRTabController.allowSupersampleFiltering steamvrAllowSupersampleFilteringToggle.checked = SteamVRTabController.allowSupersampleFiltering
} }
+300 -204
View File
@@ -8,6 +8,7 @@ namespace advsettings
void SteamVRTabController::initStage1() void SteamVRTabController::initStage1()
{ {
initMotionSmoothing(); initMotionSmoothing();
initSupersampleOverride();
eventLoopTick(); eventLoopTick();
reloadSteamVRProfiles(); reloadSteamVRProfiles();
} }
@@ -19,106 +20,26 @@ void SteamVRTabController::initStage2( OverlayController* var_parent,
this->widget = var_widget; this->widget = 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() void SteamVRTabController::eventLoopTick()
{ {
if ( settingsUpdateCounter >= 50 ) if ( settingsUpdateCounter >= 50 )
{ {
vr::EVRSettingsError vrSettingsError; 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 // checks supersampling and re-synchs if necessary
auto ss = vr::VRSettings()->GetFloat( auto ss = vr::VRSettings()->GetFloat(
vr::k_pch_SteamVR_Section, 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<int>( 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; bool override = false;
if ( value <= 0.01f ) // Mirrors Desktop Clamp
if ( value <= 0.2f )
{ {
LOG( WARNING ) << "Encountered a supersampling value <= 0.01, setting " LOG( WARNING ) << "Encountered a supersampling value <= 0.01, setting "
"supersampling to 1.0"; "supersampling to 1.0";
@@ -215,26 +318,16 @@ float SteamVRTabController::superSampling() const
{ {
return m_superSampling; return m_superSampling;
} }
/* -----------------------------------------*/
/*------------------------------------------*/
/*Motion Smoothing boolean/toggle functions*/
bool SteamVRTabController::motionSmoothing() const bool SteamVRTabController::motionSmoothing() const
{ {
return m_motionSmoothing; return m_motionSmoothing;
} }
/* void SteamVRTabController::setMotionSmoothing( const bool value,
Name: setMotionSmoothing const bool notify )
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 )
{ {
if ( m_motionSmoothing != value ) 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() void SteamVRTabController::initMotionSmoothing()
{ {
bool temporary = false; bool temporary = false;
@@ -285,13 +363,17 @@ void SteamVRTabController::initMotionSmoothing()
setMotionSmoothing( temporary, true ); setMotionSmoothing( temporary, true );
} }
/* -----------------------------------------*/
/*------------------------------------------*/
/*Supersample Filtering boolean/toggle functions*/
bool SteamVRTabController::allowSupersampleFiltering() const bool SteamVRTabController::allowSupersampleFiltering() const
{ {
return m_allowSupersampleFiltering; return m_allowSupersampleFiltering;
} }
void SteamVRTabController::setAllowSupersampleFiltering( bool value, void SteamVRTabController::setAllowSupersampleFiltering( const bool value,
bool notify ) const bool notify )
{ {
if ( m_allowSupersampleFiltering != value ) 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() void SteamVRTabController::reset()
{ {
vr::EVRSettingsError vrSettingsError; vr::EVRSettingsError vrSettingsError;
@@ -339,6 +471,45 @@ void SteamVRTabController::reset()
vrSettingsError ); 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(); vr::VRSettings()->Sync();
settingsUpdateCounter = 999; // Easiest way to get default values settingsUpdateCounter = 999; // Easiest way to get default values
} }
@@ -352,79 +523,4 @@ void SteamVRTabController::restartSteamVR()
QProcess::startDetached( cmd ); 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 } // namespace advsettings
+10 -9
View File
@@ -21,6 +21,7 @@ struct SteamVRProfile
bool supersampleFiltering = false; bool supersampleFiltering = false;
bool motionSmooth = false; bool motionSmooth = false;
bool includesMotionSmoothing = false; bool includesMotionSmoothing = false;
bool supersampleOverride = false;
}; };
class SteamVRTabController : public QObject class SteamVRTabController : public QObject
@@ -28,27 +29,27 @@ class SteamVRTabController : public QObject
Q_OBJECT Q_OBJECT
Q_PROPERTY( float superSampling READ superSampling WRITE setSuperSampling Q_PROPERTY( float superSampling READ superSampling WRITE setSuperSampling
NOTIFY superSamplingChanged ) NOTIFY superSamplingChanged )
/*Q_PROPERTY(
float compositorSuperSampling READ compositorSuperSampling WRITE
setCompositorSuperSampling NOTIFY compositorSuperSamplingChanged )
*/
Q_PROPERTY( bool motionSmoothing READ motionSmoothing WRITE Q_PROPERTY( bool motionSmoothing READ motionSmoothing WRITE
setMotionSmoothing NOTIFY motionSmoothingChanged ) setMotionSmoothing NOTIFY motionSmoothingChanged )
Q_PROPERTY( bool allowSupersampleFiltering READ allowSupersampleFiltering Q_PROPERTY( bool allowSupersampleFiltering READ allowSupersampleFiltering
WRITE setAllowSupersampleFiltering NOTIFY WRITE setAllowSupersampleFiltering NOTIFY
allowSupersampleFilteringChanged ) allowSupersampleFilteringChanged )
Q_PROPERTY(
bool allowSupersampleOverride READ allowSupersampleOverride WRITE
setAllowSupersampleOverride NOTIFY allowSupersampleOverrideChanged )
private: private:
OverlayController* parent; OverlayController* parent;
QQuickWindow* widget; QQuickWindow* widget;
float m_superSampling = 1.0; float m_superSampling = 1.0;
// float m_compositorSuperSampling = 1.0;
bool m_motionSmoothing = true; bool m_motionSmoothing = true;
bool m_allowSupersampleFiltering = true; bool m_allowSupersampleFiltering = true;
bool m_allowSupersampleOverride = false;
void initMotionSmoothing(); void initMotionSmoothing();
void initSupersampleOverride();
std::vector<SteamVRProfile> steamvrProfiles; std::vector<SteamVRProfile> steamvrProfiles;
@@ -61,21 +62,21 @@ public:
void eventLoopTick(); void eventLoopTick();
float superSampling() const; float superSampling() const;
// float compositorSuperSampling() const;
bool motionSmoothing() const; bool motionSmoothing() const;
bool allowSupersampleFiltering() const; bool allowSupersampleFiltering() const;
bool allowSupersampleOverride() const;
void reloadSteamVRProfiles(); void reloadSteamVRProfiles();
void saveSteamVRProfiles(); void saveSteamVRProfiles();
Q_INVOKABLE unsigned getSteamVRProfileCount(); Q_INVOKABLE int getSteamVRProfileCount();
Q_INVOKABLE QString getSteamVRProfileName( unsigned index ); Q_INVOKABLE QString getSteamVRProfileName( unsigned index );
public slots: public slots:
void setSuperSampling( float value, bool notify = true ); void setSuperSampling( float value, bool notify = true );
// void setCompositorSuperSampling( float value, bool notify = true );
void setMotionSmoothing( bool value, bool notify = true ); void setMotionSmoothing( bool value, bool notify = true );
void setAllowSupersampleFiltering( bool value, bool notify = true ); void setAllowSupersampleFiltering( bool value, bool notify = true );
void setAllowSupersampleOverride( bool value, bool notify = true );
void addSteamVRProfile( QString name, void addSteamVRProfile( QString name,
bool includeSupersampling, bool includeSupersampling,
@@ -89,9 +90,9 @@ public slots:
signals: signals:
void superSamplingChanged( float value ); void superSamplingChanged( float value );
// void compositorSuperSamplingChanged( float value );
void motionSmoothingChanged( bool value ); void motionSmoothingChanged( bool value );
void allowSupersampleFilteringChanged( bool value ); void allowSupersampleFilteringChanged( bool value );
void allowSupersampleOverrideChanged( bool value );
void steamVRProfilesUpdated(); void steamVRProfilesUpdated();
void steamVRProfileAdded(); void steamVRProfileAdded();