diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-10-23 22:28:49 +0200 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-10-23 22:28:49 +0200 |
commit | 0b08b742fffa63188c89d760a5aecd55d585403b (patch) | |
tree | f023a76c0f0e1099728fc163f7529b45ec9b6521 /src/crepe/api/AssetManager.hpp | |
parent | 95171100beba7bc36ae4421652f6c4fbb34774a8 (diff) |
move template function definition to hpp
Diffstat (limited to 'src/crepe/api/AssetManager.hpp')
-rw-r--r-- | src/crepe/api/AssetManager.hpp | 23 |
1 files changed, 23 insertions, 0 deletions
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 |