asset_manager concept

This commit is contained in:
2026-09-09 11:36:07 -07:00
parent 9aef3f57fc
commit 4190ff847b
14 changed files with 525 additions and 12 deletions
+41
View File
@@ -0,0 +1,41 @@
#pragma once
#include <string>
#include "device.hpp"
#include "pools/mesh_pool.hpp"
namespace sophia {
class AssetManager {
public:
explicit AssetManager(Device& device);
~AssetManager() = default;
AssetManager(const AssetManager&) = delete;
AssetManager& operator=(const AssetManager&) = delete;
template <typename T>
using HandleFor = typename T::HandleType;
template <typename T>
HandleFor<T> load(const std::string& path);
template <typename T>
HandleFor<T> create(const typename T::Builder& builder);
template <typename T>
const T& get(HandleFor<T> handle) const;
template <typename T>
void release(HandleFor<T> handle);
private:
Device& device;
MeshPool meshPool;
// TexturePool texturePool;
// MaterialPool materialPool;
};
} // namespace sophia