1 #ifndef TextureManager_HPP
2 #define TextureManager_HPP
3 
4 #include <iostream>
5 #include <string>
6 #include <map>
7 #include <vector>
8 
9 class TextureManager
10 {
11   std::string presetURL;
12   std::map<std::string,unsigned int> textures;
13   std::map<std::string,unsigned int> heights;
14   std::map<std::string,unsigned int> widths;
15   std::vector<unsigned int> user_textures;
16   std::vector<std::string> user_texture_names;
17   std::vector<std::string> random_textures;
18 public:
19   ~TextureManager();
20   TextureManager(std::string _presetURL);
21   //void unloadTextures(const PresetOutputs::cshape_container &shapes);
22   void Clear();
23   void Preload();
24   unsigned int getTexture(const std::string filenamne);
25   unsigned int getTextureFullpath(const std::string filename, const std::string imageUrl);
26   unsigned int getTextureMemorySize();
27   int getTextureWidth(const std::string imageUrl);
28   int getTextureHeight(const std::string imageUrl);
29   void setTexture(const std::string name, const unsigned int texId, const int width, const int height);
30   void loadTextureDir();
31   std::string getRandomTextureName(std::string rand_name);
32   void clearRandomTextures();
33 };
34 
35 #endif
36