summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/InputConfig.cpp
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2025-01-25 21:49:32 -0600
committeriwubcode <iwubcode@users.noreply.github.com>2025-03-22 14:53:02 -0500
commitd03f9032c129e440e4f07d319be8b52500798e07 (patch)
tree8be51b82db6cde8050f55bbb35287d83b4de0c85 /Source/Core/InputCommon/InputConfig.cpp
parent18979129f35f56de9f87e2a7919788679337abfa (diff)
Core / DolphinQt / InputCommon: reduce the number disk writes when using DynamicInputTextures
Diffstat (limited to 'Source/Core/InputCommon/InputConfig.cpp')
-rw-r--r--Source/Core/InputCommon/InputConfig.cpp23
1 files changed, 17 insertions, 6 deletions
diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp
index ff3f68acd0..2dd39f945b 100644
--- a/Source/Core/InputCommon/InputConfig.cpp
+++ b/Source/Core/InputCommon/InputConfig.cpp
@@ -35,8 +35,6 @@ bool InputConfig::LoadConfig()
static constexpr std::array<std::string_view, MAX_BBMOTES> num = {"1", "2", "3", "4", "BB"};
std::string profile[MAX_BBMOTES];
- m_dynamic_input_tex_config_manager.Load();
-
if (SConfig::GetInstance().GetGameID() != "00000000")
{
const std::string profile_directory = GetUserProfileDirectoryPath();
@@ -102,8 +100,6 @@ bool InputConfig::LoadConfig()
// Next profile
n++;
}
-
- m_dynamic_input_tex_config_manager.GenerateTextures(inifile, controller_names);
return true;
}
else
@@ -139,8 +135,6 @@ void InputConfig::SaveConfig()
controller_names.push_back(controller->GetName());
}
- m_dynamic_input_tex_config_manager.GenerateTextures(inifile, controller_names);
-
inifile.Save(ini_filename);
}
@@ -210,6 +204,8 @@ bool InputConfig::IsControllerControlledByGamepadDevice(int index) const
void InputConfig::GenerateControllerTextures(const Common::IniFile& file)
{
+ m_dynamic_input_tex_config_manager.Load();
+
std::vector<std::string> controller_names;
for (auto& controller : m_controllers)
{
@@ -218,3 +214,18 @@ void InputConfig::GenerateControllerTextures(const Common::IniFile& file)
m_dynamic_input_tex_config_manager.GenerateTextures(file, controller_names);
}
+
+void InputConfig::GenerateControllerTextures()
+{
+ const std::string ini_filename = File::GetUserPath(D_CONFIG_IDX) + m_ini_name + ".ini";
+
+ Common::IniFile inifile;
+ inifile.Load(ini_filename);
+
+ for (auto& controller : m_controllers)
+ {
+ controller->SaveConfig(inifile.GetOrCreateSection(controller->GetName()));
+ }
+
+ GenerateControllerTextures(inifile);
+}