diff options
-rw-r--r-- | src/crepe/api/AssetManager.h | 20 | ||||
-rw-r--r-- | src/crepe/api/AssetManager.hpp | 23 | ||||
-rw-r--r-- | src/crepe/api/CMakeLists.txt | 1 |
3 files changed, 28 insertions, 16 deletions
diff --git a/src/crepe/api/AssetManager.h b/src/crepe/api/AssetManager.h index d9d9b44..a53ace5 100644 --- a/src/crepe/api/AssetManager.h +++ b/src/crepe/api/AssetManager.h @@ -4,7 +4,6 @@ #include <memory> #include <string> #include <unordered_map> -#include <utility> namespace crepe::api { @@ -27,21 +26,10 @@ public: public: template <typename asset> - std::shared_ptr<asset> cache(const std::string & file_path, - bool reload = false) { - auto it = asset_cache.find(file_path); - - if (!reload && it != asset_cache.end()) { - return std::any_cast<std::shared_ptr<asset>>(it->second); - } - - std::shared_ptr<asset> new_asset - = std::make_shared<asset>(file_path.c_str()); - - asset_cache[file_path] = new_asset; - - return new_asset; - } + std::shared_ptr<asset> cache(const std::string & file_path, bool reload = false); }; } // namespace crepe::api + +#include "AssetManager.hpp" + diff --git a/src/crepe/api/AssetManager.hpp b/src/crepe/api/AssetManager.hpp new file mode 100644 index 0000000..083fd9d --- /dev/null +++ b/src/crepe/api/AssetManager.hpp @@ -0,0 +1,23 @@ +#pragma once + +#include "AssetManager.h" + +namespace crepe::api { + +template <typename asset> +std::shared_ptr<asset> AssetManager::cache(const std::string & file_path, bool reload) { + auto it = asset_cache.find(file_path); + + if (!reload && it != asset_cache.end()) { + return std::any_cast<std::shared_ptr<asset>>(it->second); + } + + std::shared_ptr<asset> new_asset + = std::make_shared<asset>(file_path.c_str()); + + asset_cache[file_path] = new_asset; + + return new_asset; +} + +} // namespace crepe::api diff --git a/src/crepe/api/CMakeLists.txt b/src/crepe/api/CMakeLists.txt index cca4994..e74bb41 100644 --- a/src/crepe/api/CMakeLists.txt +++ b/src/crepe/api/CMakeLists.txt @@ -25,4 +25,5 @@ target_sources(crepe PUBLIC FILE_SET HEADERS FILES Color.h Texture.h AssetManager.h + AssetManager.hpp ) |