#pragma once #include #include "AssetLoadingContext.h" #include "IAssetLoader.h" #include "IAssetLoadingManager.h" class AssetLoadingManager final : public IAssetLoadingManager { const std::unordered_map>& m_asset_loaders_by_type; AssetLoadingContext& m_context; XAssetInfoGeneric* m_last_dependency_loaded; public: AssetLoadingManager(const std::unordered_map>& assetLoadersByType, AssetLoadingContext& context); bool LoadAssetFromLoader(asset_type_t assetType, const std::string& assetName); void AddAsset(asset_type_t assetType, const std::string& assetName, void* asset, std::vector& dependencies) override; XAssetInfoGeneric* LoadDependency(asset_type_t assetType, const std::string& assetName) override; };