summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2023-01-30 05:01:05 +1300
committerScott Mansell <phiren@gmail.com>2023-01-31 19:41:24 +1300
commitca5ec13e138d60d2fbac114450527c654caed702 (patch)
tree6451afd8815b451f31aa058ab3a5c1cd4078c19b /Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp
parent55d15bdd6ea04c0f0862a1a23dc4859b3e30ad64 (diff)
Move GraphicsMod out of RenderBase
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp')
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp
index 7441f210fa..4b5f5dbd84 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp
@@ -10,10 +10,15 @@
#include "Common/Logging/Log.h"
#include "Common/VariantUtil.h"
+#include "Core/ConfigManager.h"
+
#include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h"
#include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h"
#include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.h"
#include "VideoCommon/TextureInfo.h"
+#include "VideoCommon/VideoConfig.h"
+
+std::unique_ptr<GraphicsModManager> g_graphics_mod_manager;
class GraphicsModManager::DecoratedAction final : public GraphicsModAction
{
@@ -64,6 +69,27 @@ private:
GraphicsModConfig m_mod;
};
+bool GraphicsModManager::Initialize()
+{
+ if (g_ActiveConfig.bGraphicMods)
+ {
+ // If a config change occurred in a previous session,
+ // remember the old change count value. By setting
+ // our current change count to the old value, we
+ // avoid loading the stale data when we
+ // check for config changes.
+ const u32 old_game_mod_changes = g_ActiveConfig.graphics_mod_config ?
+ g_ActiveConfig.graphics_mod_config->GetChangeCount() :
+ 0;
+ g_ActiveConfig.graphics_mod_config = GraphicsModGroupConfig(SConfig::GetInstance().GetGameID());
+ g_ActiveConfig.graphics_mod_config->Load();
+ g_ActiveConfig.graphics_mod_config->SetChangeCount(old_game_mod_changes);
+ g_graphics_mod_manager->Load(*g_ActiveConfig.graphics_mod_config);
+ }
+
+ return true;
+}
+
const std::vector<GraphicsModAction*>&
GraphicsModManager::GetProjectionActions(ProjectionType projection_type) const
{