blob: 083fd9df4cb6e3187b0926c75acd13ca20199bc3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
|