aboutsummaryrefslogtreecommitdiff
path: root/src/crepe
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe')
-rw-r--r--src/crepe/api/AssetManager.h48
1 files changed, 16 insertions, 32 deletions
diff --git a/src/crepe/api/AssetManager.h b/src/crepe/api/AssetManager.h
index 68235c3..dbfaef3 100644
--- a/src/crepe/api/AssetManager.h
+++ b/src/crepe/api/AssetManager.h
@@ -7,13 +7,14 @@
namespace crepe {
-
/**
- * \brief The AssetManager is responsible for storing and managing assets over multiple scenes.
+ * \brief The AssetManager is responsible for storing and managing assets over
+ * multiple scenes.
*
- * The AssetManager ensures that assets are loaded once and can be accessed across different scenes.
- * It caches assets to avoid reloading them every time a scene is loaded. Assets are retained in memory
- * until the AssetManager is destroyed, at which point the cached assets are cleared.
+ * The AssetManager ensures that assets are loaded once and can be accessed
+ * across different scenes. It caches assets to avoid reloading them every time
+ * a scene is loaded. Assets are retained in memory until the AssetManager is
+ * destroyed, at which point the cached assets are cleared.
*/
class AssetManager {
@@ -22,37 +23,19 @@ private:
std::unordered_map<std::string, std::any> asset_cache;
private:
- /**
- * \brief Private constructor for the AssetManager.
- *
- */
AssetManager();
-
- /**
- * \brief Private destructor for the AssetManager.
- *
- */
virtual ~AssetManager();
public:
-
- //! Deleted copy constructor to prevent copying of the AssetManager instance.
AssetManager(const AssetManager &) = delete;
-
- //! Deleted move constructor to prevent moving of the AssetManager instance.
AssetManager(AssetManager &&) = delete;
-
- //! Deleted copy assignment operator to prevent copying the AssetManager instance.
AssetManager & operator=(const AssetManager &) = delete;
-
- //! Deleted move assignment operator to prevent moving the AssetManager instance.
AssetManager & operator=(AssetManager &&) = delete;
/**
* \brief Retrieves the singleton instance of the AssetManager.
*
* \return A reference to the single instance of the AssetManager.
- *
*/
static AssetManager & get_instance();
@@ -60,19 +43,20 @@ public:
/**
* \brief Caches an asset by loading it from the given file path.
*
- * \param[in] file_path The path to the asset file to load.
- * \param[in] reload If true, the asset will be reloaded from the file, even if it is already cached.
- * \tparam asset The type of asset to cache (e.g., texture, sound, etc.).
+ * \param file_path The path to the asset file to load.
+ * \param reload If true, the asset will be reloaded from the file, even if
+ * it is already cached.
+ * \tparam T The type of asset to cache (e.g., texture, sound, etc.).
*
* \return A shared pointer to the cached asset.
*
- * This template function caches the asset at the given file path. If the asset is already cached
- * and `reload` is false, the existing cached version will be returned. Otherwise, the asset will
- * be reloaded and added to the cache.
+ * This template function caches the asset at the given file path. If the
+ * asset is already cached and `reload` is false, the existing cached version
+ * will be returned. Otherwise, the asset will be reloaded and added to the
+ * cache.
*/
- template <typename asset>
- std::shared_ptr<asset> cache(const std::string & file_path,
- bool reload = false);
+ template <typename T>
+ std::shared_ptr<T> cache(const std::string & file_path, bool reload = false);
};
} // namespace crepe