From 99db3cd951ad7dc63203aa8db46a4c538021ae88 Mon Sep 17 00:00:00 2001 From: Sara Date: Tue, 26 Nov 2024 11:16:06 +0100 Subject: [PATCH] feat: started on implementing asset system (expecting to revert later) --- src/core/assets/asset_wrapper.cpp | 9 +++++++++ src/core/assets/asset_wrapper.h | 19 +++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 src/core/assets/asset_wrapper.cpp diff --git a/src/core/assets/asset_wrapper.cpp b/src/core/assets/asset_wrapper.cpp new file mode 100644 index 0000000..1f58f44 --- /dev/null +++ b/src/core/assets/asset_wrapper.cpp @@ -0,0 +1,9 @@ +#include "asset_wrapper.h" +#include + +namespace ce { +AssetPtrBase::AssetPtrBase(std::filesystem::path const &path) +: path{path} { + this->path.c_str(); +} +} diff --git a/src/core/assets/asset_wrapper.h b/src/core/assets/asset_wrapper.h index 081100b..6336b69 100644 --- a/src/core/assets/asset_wrapper.h +++ b/src/core/assets/asset_wrapper.h @@ -3,17 +3,24 @@ #include #include +#include +namespace ce { class AssetPtrBase { - std::string path{}; - std::string name{}; + std::filesystem::path path{}; +protected: + AssetPtrBase(std::filesystem::path const &path); public: virtual ~AssetPtrBase() = default; + virtual bool request_unload() = 0; + virtual void load() = 0; + virtual bool is_loaded() const = 0; + std::filesystem::path const &get_path() const; }; template -class AssetPtr { - std::shared_ptr asset; +class AssetPtr : public AssetPtrBase { + std::shared_ptr *asset{nullptr}; public: AssetPtr(); virtual ~AssetPtr(); @@ -22,7 +29,11 @@ public: class AssetDB { std::vector> assets; public: + AssetDB(); + ~AssetDB() = default; template std::shared_ptr load_asset(); }; +} + #endif // !CANVAS_ASSET_WRAPPER_HPP