20#include <spdlog/spdlog.h>
64 static_assert(std::is_base_of<Asset, T>::value,
"Class is not child of cqsp::asset::Asset");
65 std::size_t separation = key.find(
":");
67 std::string package_name =
"core";
68 if (separation != std::string::npos) {
69 package_name = key.substr(0, separation);
73 if (
packages.count(package_name) == 0) {
77 std::string pkg_key = key.substr(separation + 1, key.length());
78 auto&
package = packages[package_name];
81 if (!package->HasAsset(pkg_key)) {
83 if constexpr (std::is_same<T, asset::Texture>::value) {
89 T* ptr = package->GetAsset<T>(pkg_key);
91 SPDLOG_WARN(
"Asset {} is wrong type", key);
115 std::map<std::string, std::unique_ptr<Package>>
packages;
Definition: assetloader.h:44
Definition: assetmanager.h:46
std::map< std::string, PackagePrototype > m_package_prototype_list
Definition: assetmanager.h:112
ShaderProgram_t MakeShader(const std::string &vert, const std::string &frag)
Definition: assetmanager.cpp:49
std::map< std::string, std::unique_ptr< Package > > packages
Definition: assetmanager.h:115
size_t GetPackageCount()
Definition: assetmanager.h:104
T * GetAsset(const std::string &key)
Gets an asset.
Definition: assetmanager.h:63
void ClearAssets()
Definition: assetmanager.cpp:121
void LoadDefaultTexture()
Definition: assetmanager.cpp:110
Package * GetPackage(const std::string &name)
Definition: assetmanager.h:102
asset::Texture empty_texture
Definition: assetmanager.h:116
void SaveModList()
Definition: assetmanager.cpp:123
auto begin()
Definition: assetmanager.h:106
auto end()
Definition: assetmanager.h:108
#define ENGINE_LOG_ERROR(...)
Definition: enginelogger.h:31
When adding assets, it is extremely crucial that you read cqsp::asset::AssetLoader::LoadResources to ...
Definition: asset.h:29
std::shared_ptr< ShaderProgram > ShaderProgram_t
The preferred way of using a shader program.
Definition: shader.h:113