summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/DynamicInputTextureManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/InputCommon/DynamicInputTextureManager.cpp')
-rw-r--r--Source/Core/InputCommon/DynamicInputTextureManager.cpp28
1 files changed, 27 insertions, 1 deletions
diff --git a/Source/Core/InputCommon/DynamicInputTextureManager.cpp b/Source/Core/InputCommon/DynamicInputTextureManager.cpp
index fade2c05d4..af5214bd37 100644
--- a/Source/Core/InputCommon/DynamicInputTextureManager.cpp
+++ b/Source/Core/InputCommon/DynamicInputTextureManager.cpp
@@ -12,6 +12,7 @@
#include "Core/Core.h"
#include "InputCommon/DynamicInputTextures/DITConfiguration.h"
+#include "InputCommon/ImageOperations.h"
#include "VideoCommon/HiresTextures.h"
#include "VideoCommon/TextureCacheBase.h"
@@ -42,9 +43,34 @@ void DynamicInputTextureManager::Load()
void DynamicInputTextureManager::GenerateTextures(const Common::IniFile& file,
const std::vector<std::string>& controller_names)
{
+ DynamicInputTextures::OutputDetails output;
for (const auto& configuration : m_configuration)
{
- (void)configuration.GenerateTextures(file, controller_names);
+ configuration.GenerateTextures(file, controller_names, &output);
+ }
+
+ const std::string& game_id = SConfig::GetInstance().GetGameID();
+ for (const auto& [generated_folder_name, images] : output)
+ {
+ const auto hi_res_folder = File::GetUserPath(D_HIRESTEXTURES_IDX) + generated_folder_name;
+
+ if (!File::IsDirectory(hi_res_folder))
+ {
+ File::CreateDir(hi_res_folder);
+ }
+
+ const auto game_id_folder = hi_res_folder + DIR_SEP + "gameids";
+ if (!File::IsDirectory(game_id_folder))
+ {
+ File::CreateDir(game_id_folder);
+ }
+
+ File::CreateEmptyFile(game_id_folder + DIR_SEP + game_id + ".txt");
+
+ for (const auto& [image_name, image] : images)
+ {
+ WriteImage(hi_res_folder + DIR_SEP + image_name, image);
+ }
}
}
} // namespace InputCommon