diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-14 14:06:18 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-14 14:06:18 +0100 |
commit | 431b0bd7c6c502b42bb5be5488371d8c475e7024 (patch) | |
tree | e077fe2365f3d441c2201f7cb3ab38920bf2b3ae /src/crepe/api/ResourceManager.hpp | |
parent | 07adbf48e0781cd8c95983c1871a84b6160ee5bf (diff) |
move some shit around
Diffstat (limited to 'src/crepe/api/ResourceManager.hpp')
-rw-r--r-- | src/crepe/api/ResourceManager.hpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/crepe/api/ResourceManager.hpp b/src/crepe/api/ResourceManager.hpp new file mode 100644 index 0000000..9cd4bcb --- /dev/null +++ b/src/crepe/api/ResourceManager.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include "ResourceManager.h" + +namespace crepe { + +template <typename asset> +std::shared_ptr<asset> ResourceManager::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 |