From 00a28807d8635318bd56a176f5643a9d20db189b Mon Sep 17 00:00:00 2001 From: ksuprynowicz Date: Sat, 24 Dec 2022 23:00:58 +0100 Subject: [PATCH] Secondary camera now has the same antialiasing settings as main one --- .../scripting/RenderScriptingInterface.cpp | 59 +++++++++++-------- .../src/scripting/RenderScriptingInterface.h | 4 +- 2 files changed, 38 insertions(+), 25 deletions(-) diff --git a/interface/src/scripting/RenderScriptingInterface.cpp b/interface/src/scripting/RenderScriptingInterface.cpp index 5ecb1a6e43a..de56ffb3210 100644 --- a/interface/src/scripting/RenderScriptingInterface.cpp +++ b/interface/src/scripting/RenderScriptingInterface.cpp @@ -132,36 +132,49 @@ void RenderScriptingInterface::setAntialiasingMode(AntialiasingConfig::Mode mode } } +void setAntialiasingModeForView(AntialiasingConfig::Mode mode, JitterSampleConfig *jitterCamConfig, AntialiasingConfig *antialiasingConfig) { + switch (mode) { + case AntialiasingConfig::Mode::NONE: + jitterCamConfig->none(); + antialiasingConfig->blend = 1; + antialiasingConfig->setDebugFXAA(false); + break; + case AntialiasingConfig::Mode::TAA: + jitterCamConfig->play(); + antialiasingConfig->blend = 0.25; + antialiasingConfig->setDebugFXAA(false); + break; + case AntialiasingConfig::Mode::FXAA: + jitterCamConfig->none(); + antialiasingConfig->blend = 0.25; + antialiasingConfig->setDebugFXAA(true); + break; + default: + jitterCamConfig->none(); + antialiasingConfig->blend = 1; + antialiasingConfig->setDebugFXAA(false); + break; + } +} + void RenderScriptingInterface::forceAntialiasingMode(AntialiasingConfig::Mode mode) { _renderSettingLock.withWriteLock([&] { _antialiasingMode = mode; auto mainViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig("RenderMainView.JitterCam"); auto mainViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig("RenderMainView.Antialiasing"); + auto secondViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig("RenderSecondView.JitterCam"); + auto secondViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig("RenderSecondView.Antialiasing"); + if (mode != AntialiasingConfig::Mode::NONE + && mode != AntialiasingConfig::Mode::TAA + && mode != AntialiasingConfig::Mode::FXAA) { + _antialiasingMode = AntialiasingConfig::Mode::NONE; + } if (mainViewJitterCamConfig && mainViewAntialiasingConfig) { - switch (mode) { - case AntialiasingConfig::Mode::NONE: - mainViewJitterCamConfig->none(); - mainViewAntialiasingConfig->blend = 1; - mainViewAntialiasingConfig->setDebugFXAA(false); - break; - case AntialiasingConfig::Mode::TAA: - mainViewJitterCamConfig->play(); - mainViewAntialiasingConfig->blend = 0.25; - mainViewAntialiasingConfig->setDebugFXAA(false); - break; - case AntialiasingConfig::Mode::FXAA: - mainViewJitterCamConfig->none(); - mainViewAntialiasingConfig->blend = 0.25; - mainViewAntialiasingConfig->setDebugFXAA(true); - break; - default: - _antialiasingMode = AntialiasingConfig::Mode::NONE; - mainViewJitterCamConfig->none(); - mainViewAntialiasingConfig->blend = 1; - mainViewAntialiasingConfig->setDebugFXAA(false); - break; - } + setAntialiasingModeForView( mode, mainViewJitterCamConfig, mainViewAntialiasingConfig); + } + if (secondViewJitterCamConfig && secondViewAntialiasingConfig) { + setAntialiasingModeForView( mode, secondViewJitterCamConfig, secondViewAntialiasingConfig); } _antialiasingModeSetting.set(_antialiasingMode); diff --git a/interface/src/scripting/RenderScriptingInterface.h b/interface/src/scripting/RenderScriptingInterface.h index 88262b14c11..62c50b10f1c 100644 --- a/interface/src/scripting/RenderScriptingInterface.h +++ b/interface/src/scripting/RenderScriptingInterface.h @@ -194,7 +194,7 @@ public slots: int _renderMethod{ RENDER_FORWARD ? render::Args::RenderMethod::FORWARD : render::Args::RenderMethod::DEFERRED }; bool _shadowsEnabled{ true }; bool _ambientOcclusionEnabled{ false }; - AntialiasingConfig::Mode _antialiasingMode{ AntialiasingConfig::Mode::TAA }; + AntialiasingConfig::Mode _antialiasingMode{ AntialiasingConfig::Mode::NONE }; float _viewportResolutionScale{ 1.0f }; // Actual settings saved on disk @@ -202,7 +202,7 @@ public slots: Setting::Handle _shadowsEnabledSetting { "shadowsEnabled", true }; Setting::Handle _ambientOcclusionEnabledSetting { "ambientOcclusionEnabled", false }; //Setting::Handle _antialiasingModeSetting { "antialiasingMode", AntialiasingConfig::Mode::TAA }; - Setting::Handle _antialiasingModeSetting { "antialiasingMode", AntialiasingConfig::Mode::TAA }; + Setting::Handle _antialiasingModeSetting { "antialiasingMode", AntialiasingConfig::Mode::NONE }; Setting::Handle _viewportResolutionScaleSetting { "viewportResolutionScale", 1.0f }; // Force assign both setting AND runtime value to the parameter value