summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2022-02-26 00:19:38 -0600
committeriwubcode <iwubcode@users.noreply.github.com>2022-06-27 18:20:52 -0500
commit254246b814124f0f1dff5e1aebd9672c0d1bd492 (patch)
treeaed28905acb212070b6ae93f65959aa11b0ef51f /Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h
parentf92beb611f5e7effc9d1b8a90fbd4004233945ff (diff)
VideoCommon: add logic to read a GraphicsMod from configuration
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h')
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h
new file mode 100644
index 0000000000..ace5127c58
--- /dev/null
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h
@@ -0,0 +1,46 @@
+// Copyright 2022 Dolphin Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include <map>
+#include <string>
+#include <vector>
+
+#include <picojson.h>
+
+#include "Common/CommonTypes.h"
+
+struct GraphicsModConfig;
+
+class GraphicsModGroupConfig
+{
+public:
+ explicit GraphicsModGroupConfig(const std::string& game_id);
+ ~GraphicsModGroupConfig();
+
+ GraphicsModGroupConfig(const GraphicsModGroupConfig&);
+ GraphicsModGroupConfig(GraphicsModGroupConfig&&);
+
+ GraphicsModGroupConfig& operator=(const GraphicsModGroupConfig&);
+ GraphicsModGroupConfig& operator=(GraphicsModGroupConfig&&);
+
+ void Load();
+ void Save() const;
+
+ void SetChangeCount(u32 change_count);
+ u32 GetChangeCount() const;
+
+ const std::vector<GraphicsModConfig>& GetMods() const;
+
+ GraphicsModConfig* GetMod(const std::string& absolute_path) const;
+
+ const std::string& GetGameID() const;
+
+private:
+ std::string GetPath() const;
+ std::string m_game_id;
+ std::vector<GraphicsModConfig> m_graphics_mods;
+ std::map<std::string, GraphicsModConfig*> m_path_to_graphics_mod;
+ u32 m_change_count = 0;
+};