diff options
| author | Léo Lam <leo@leolam.fr> | 2020-10-20 02:10:29 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-20 02:10:29 +0200 |
| commit | fc3b474cceb2a24df21640140be4beb95b9b9fd1 (patch) | |
| tree | 84c89656ad79357c819b129a927db20cec1cdf9e /Source/Core/InputCommon/DynamicInputTextureConfiguration.h | |
| parent | b26c2e7adb80436f131f1a50e462ee7c25792c48 (diff) | |
| parent | 4fff04db3ce16c72d8b3b95df2285a129605fde4 (diff) | |
Merge pull request #8318 from iwubcode/dynamic_input_textures
InputCommon: Dynamic Input Textures
Diffstat (limited to 'Source/Core/InputCommon/DynamicInputTextureConfiguration.h')
| -rw-r--r-- | Source/Core/InputCommon/DynamicInputTextureConfiguration.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/DynamicInputTextureConfiguration.h b/Source/Core/InputCommon/DynamicInputTextureConfiguration.h new file mode 100644 index 0000000000..15e4d37129 --- /dev/null +++ b/Source/Core/InputCommon/DynamicInputTextureConfiguration.h @@ -0,0 +1,46 @@ +// Copyright 2019 Dolphin Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#pragma once + +#include <string> +#include <unordered_map> +#include <vector> + +#include "Common/CommonTypes.h" +#include "Common/IniFile.h" +#include "InputCommon/ImageOperations.h" + +namespace InputCommon +{ +class DynamicInputTextureConfiguration +{ +public: + explicit DynamicInputTextureConfiguration(const std::string& json_file); + ~DynamicInputTextureConfiguration(); + void GenerateTextures(const IniFile::Section* sec, const std::string& controller_name) const; + +private: + struct DynamicInputTextureData + { + std::string m_image_name; + std::string m_hires_texture_name; + std::string m_generated_folder_name; + + using EmulatedKeyToRegionsMap = std::unordered_map<std::string, std::vector<Rect>>; + std::unordered_map<std::string, EmulatedKeyToRegionsMap> m_emulated_controllers; + + using HostKeyToImagePath = std::unordered_map<std::string, std::string>; + std::unordered_map<std::string, HostKeyToImagePath> m_host_devices; + bool m_preserve_aspect_ratio = true; + }; + + bool GenerateTexture(const IniFile::Section* sec, const std::string& controller_name, + const DynamicInputTextureData& texture_data) const; + + std::vector<DynamicInputTextureData> m_dynamic_input_textures; + std::string m_base_path; + bool m_valid = true; +}; +} // namespace InputCommon |
