38 lines
1.3 KiB
C++
38 lines
1.3 KiB
C++
/********************\
|
|
| 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
|