From 8386f2eb61d8a033c7f09c5fec501eb843808cfa Mon Sep 17 00:00:00 2001 From: Penguin-Guru Date: Sun, 24 Oct 2021 19:19:20 -0700 Subject: [PATCH] Clumsy fix for enum storage. --- interface/src/Menu.cpp | 3 --- interface/src/Menu.h | 4 +++- interface/src/scripting/RenderScriptingInterface.cpp | 11 +++++------ interface/src/scripting/RenderScriptingInterface.h | 5 +++-- libraries/render-utils/src/AntialiasingEffect.h | 4 ++-- 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 0e0250501d..72504c5571 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -405,9 +405,6 @@ Menu::Menu() { // Developer > Render >>> MenuWrapper* renderOptionsMenu = developerMenu->addMenu("Render"); - addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::AntiAliasing, 0, RenderScriptingInterface::getInstance()->getAntialiasingMode(), - RenderScriptingInterface::getInstance(), SLOT(setAntialiasingMode(int))); - addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Shadows, 0, RenderScriptingInterface::getInstance()->getShadowsEnabled(), RenderScriptingInterface::getInstance(), SLOT(setShadowsEnabled(bool))); diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 5cd4c2112e..eecfd3af56 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -224,7 +224,9 @@ namespace MenuOption { const QString DesktopTabletToToolbar = "Desktop Tablet Becomes Toolbar"; const QString HMDTabletToToolbar = "HMD Tablet Becomes Toolbar"; const QString Shadows = "Shadows"; - const QString AntiAliasing = "Temporal Antialiasing (FXAA if disabled)"; + const QString AntiAliasingNONE = "Antialiasing Disabled"; + const QString AntiAliasingTAA = "Temporal Anti-aliasing"; + const QString AntiAliasingFXAA = "Fast Approximate Anti-aliasing"; const QString AmbientOcclusion = "Ambient Occlusion"; const QString NotificationSounds = "play_notification_sounds"; const QString NotificationSoundsSnapshot = "play_notification_sounds_snapshot"; diff --git a/interface/src/scripting/RenderScriptingInterface.cpp b/interface/src/scripting/RenderScriptingInterface.cpp index 22598f690a..3b356913d9 100644 --- a/interface/src/scripting/RenderScriptingInterface.cpp +++ b/interface/src/scripting/RenderScriptingInterface.cpp @@ -28,14 +28,14 @@ void RenderScriptingInterface::loadSettings() { _renderMethod = (_renderMethodSetting.get()); _shadowsEnabled = (_shadowsEnabledSetting.get()); _ambientOcclusionEnabled = (_ambientOcclusionEnabledSetting.get()); - _antialiasingMode = (_antialiasingModeSetting.get()); + //_antialiasingMode = (_antialiasingModeSetting.get()); + _antialiasingMode = static_cast(_antialiasingModeSetting.get()); _viewportResolutionScale = (_viewportResolutionScaleSetting.get()); }); forceRenderMethod((RenderMethod)_renderMethod); forceShadowsEnabled(_shadowsEnabled); forceAmbientOcclusionEnabled(_ambientOcclusionEnabled); forceAntialiasingMode(_antialiasingMode); - forceAntialiasingMode(_antialiasingMode); forceViewportResolutionScale(_viewportResolutionScale); } @@ -134,13 +134,11 @@ void RenderScriptingInterface::setAntialiasingMode(AntialiasingConfig::Mode mode void RenderScriptingInterface::forceAntialiasingMode(AntialiasingConfig::Mode mode) { _renderSettingLock.withWriteLock([&] { - _antialiasingMode = static_cast(mode); - _antialiasingModeSetting.set(mode); + _antialiasingMode = mode; auto mainViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig("RenderMainView.JitterCam"); auto mainViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig("RenderMainView.Antialiasing"); if (mainViewJitterCamConfig && mainViewAntialiasingConfig) { - Menu::getInstance()->setIsOptionChecked(MenuOption::AntiAliasing, mode); switch (mode) { case AntialiasingConfig::Mode::NONE: mainViewJitterCamConfig->none(); @@ -156,12 +154,13 @@ void RenderScriptingInterface::forceAntialiasingMode(AntialiasingConfig::Mode mo break; default: _antialiasingMode = AntialiasingConfig::Mode::NONE; - _antialiasingModeSetting.set(AntialiasingConfig::Mode::NONE); mainViewJitterCamConfig->none(); mainViewAntialiasingConfig->setDebugFXAA(false); break; } } + + _antialiasingModeSetting.set(_antialiasingMode); }); } diff --git a/interface/src/scripting/RenderScriptingInterface.h b/interface/src/scripting/RenderScriptingInterface.h index 3c2b489a8e..88262b14c1 100644 --- a/interface/src/scripting/RenderScriptingInterface.h +++ b/interface/src/scripting/RenderScriptingInterface.h @@ -194,14 +194,15 @@ private: int _renderMethod{ RENDER_FORWARD ? render::Args::RenderMethod::FORWARD : render::Args::RenderMethod::DEFERRED }; bool _shadowsEnabled{ true }; bool _ambientOcclusionEnabled{ false }; - AntialiasingConfig::Mode _antialiasingMode; + AntialiasingConfig::Mode _antialiasingMode{ AntialiasingConfig::Mode::TAA }; float _viewportResolutionScale{ 1.0f }; // Actual settings saved on disk Setting::Handle _renderMethodSetting { "renderMethod", RENDER_FORWARD ? render::Args::RenderMethod::FORWARD : render::Args::RenderMethod::DEFERRED }; 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::TAA }; Setting::Handle _viewportResolutionScaleSetting { "viewportResolutionScale", 1.0f }; // Force assign both setting AND runtime value to the parameter value diff --git a/libraries/render-utils/src/AntialiasingEffect.h b/libraries/render-utils/src/AntialiasingEffect.h index 2e838764b4..453c4ce992 100644 --- a/libraries/render-utils/src/AntialiasingEffect.h +++ b/libraries/render-utils/src/AntialiasingEffect.h @@ -115,6 +115,7 @@ public: FXAA, MODE_COUNT }; + Q_ENUM(Mode) // Stored as signed int. void setAAMode(int mode); int getAAMode() const { return _mode; } @@ -122,7 +123,7 @@ public: void setDebugFXAA(bool debug) { debugFXAAX = (debug ? 0.0f : 1.0f); emit dirty();} bool debugFXAA() const { return (debugFXAAX == 0.0f ? true : false); } - int _mode{ TAA }; + int _mode{ TAA }; // '_' prefix but not private? float blend{ 0.25f }; float sharpen{ 0.05f }; @@ -144,7 +145,6 @@ public: signals: void dirty(); }; -Q_DECLARE_METATYPE(AntialiasingConfig::Mode); #define SET_BIT(bitfield, bitIndex, value) bitfield = ((bitfield) & ~(1 << (bitIndex))) | ((value) << (bitIndex)) #define GET_BIT(bitfield, bitIndex) ((bitfield) & (1 << (bitIndex)))