diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/crepe/api/AssetManager.h | 62 | ||||
-rw-r--r-- | src/crepe/facade/SDLFontContext.cpp | 18 |
2 files changed, 9 insertions, 71 deletions
diff --git a/src/crepe/api/AssetManager.h b/src/crepe/api/AssetManager.h deleted file mode 100644 index 3b1cc4b..0000000 --- a/src/crepe/api/AssetManager.h +++ /dev/null @@ -1,62 +0,0 @@ -#pragma once - -#include <any> -#include <memory> -#include <string> -#include <unordered_map> - -namespace crepe { - -/** - * \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. - */ -class AssetManager { - -private: - //! A cache that holds all the assets, accessible by their file path, over multiple scenes. - std::unordered_map<std::string, std::any> asset_cache; - -private: - AssetManager(); - virtual ~AssetManager(); - -public: - AssetManager(const AssetManager &) = delete; - AssetManager(AssetManager &&) = delete; - AssetManager & operator=(const AssetManager &) = delete; - 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(); - -public: - /** - * \brief Caches an asset by loading it from the given file path. - * - * \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. - */ - template <typename T> - std::shared_ptr<T> cache(const std::string & file_path, bool reload = false); -}; - -} // namespace crepe - -#include "AssetManager.hpp" diff --git a/src/crepe/facade/SDLFontContext.cpp b/src/crepe/facade/SDLFontContext.cpp index d7a0bff..e7f04cc 100644 --- a/src/crepe/facade/SDLFontContext.cpp +++ b/src/crepe/facade/SDLFontContext.cpp @@ -8,26 +8,26 @@ using namespace std; SDLFontContext::SDLFontContext(){ if (!FcInit()) { - throw std::runtime_error("Failed to initialize Fontconfig."); + throw runtime_error("Failed to initialize Fontconfig."); } } SDLFontContext::~SDLFontContext(){ FcFini(); } -unique_ptr<Asset> SDLFontContext::get_font_asset(const std::string & font_family) { +unique_ptr<Asset> SDLFontContext::get_font_asset(const string & font_family) { // Create a pattern to search for the font family FcPattern* pattern = FcNameParse(reinterpret_cast<const FcChar8*>(font_family.c_str())); if (!pattern) { - throw std::runtime_error("Failed to create font pattern."); + throw runtime_error("Failed to create font pattern."); } // Default configuration FcConfig* config = FcConfigGetCurrent(); if (!config) { FcPatternDestroy(pattern); - throw std::runtime_error("Failed to get current Fontconfig configuration."); + throw runtime_error("Failed to get current Fontconfig configuration."); } // Match the font pattern @@ -36,18 +36,18 @@ unique_ptr<Asset> SDLFontContext::get_font_asset(const std::string & font_family FcPatternDestroy(pattern); if (!matched_pattern) { - throw std::runtime_error("No matching font found."); + throw runtime_error("No matching font found."); } // Extract the file path FcChar8* file_path = nullptr; if (FcPatternGetString(matched_pattern, FC_FILE, 0, &file_path) != FcResultMatch || !file_path) { FcPatternDestroy(matched_pattern); - throw std::runtime_error("Failed to get font file path."); + throw runtime_error("Failed to get font file path."); } - // Convert the file path to a std::string - std::string font_file_path(reinterpret_cast<const char*>(file_path)); + // Convert the file path to a string + string font_file_path(reinterpret_cast<const char*>(file_path)); FcPatternDestroy(matched_pattern); - return std::move(make_unique<Asset>(font_file_path)); + return move(make_unique<Asset>(font_file_path)); } |