/********************\ | Copyright 2024, | | Ulysse Cura | \********************/ ///////////////////////////////////////////////////////////////////////// // // // Declaration de la classe TextureManager, elle sert a charger des // // texture dans la memoire pour eviter de les recharger tout le temps. // // // ///////////////////////////////////////////////////////////////////////// #ifndef TEXTURE_MANAGER_HPP #define TEXTURE_MANAGER_HPP #include <memory> #include <SDL2/SDL.h> #include <string> #include <unordered_map> using std::string, std::unique_ptr, std::unordered_map; class TextureManager { public: SDL_Texture *LoadTexture(const string &); // Renvoie une texture depuis l'unordered_map ou charge depuis le disque puis renvoie la texture void Draw(SDL_Texture *, SDL_Rect, SDL_Rect, bool); // Dessine la texture passé sur l'écran void Erase(const string &); // Efface dans l'unordered_map la texture correspondante void Clear(); // Clear tout l'unordered_map private: using texture_ptr = unique_ptr<SDL_Texture, decltype(&SDL_DestroyTexture)>; unordered_map<string, texture_ptr> m_textures; }; #endif