Cytopia  0.3
A city building simulation game
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ResourcesManager.hxx
Go to the documentation of this file.
1 #ifndef RESOURCES_MANAGER_HXX_
2 #define RESOURCES_MANAGER_HXX_
3 
4 #include <iostream>
5 #include <unordered_map>
6 
7 #include <SDL.h>
8 
9 #include "TileManager.hxx"
10 
11 class ResourcesManager : public Singleton<ResourcesManager>
12 {
13 public:
15 
16  // Disable copy and assignemnt operators
17  ResourcesManager(ResourcesManager const &) = delete;
18  ResourcesManager &operator=(ResourcesManager const &) = delete;
19 
21  SDL_Texture *getUITexture(const std::string &uiElement);
22 
25  SDL_Texture *getTileTexture(const std::string &id);
26  SDL_Surface *getTileSurface(const std::string &id);
27 
28  void loadTexture(const std::string &id, const std::string &fileName);
37  SDL_Color getColorOfPixelInSurface(const std::string &tileID, int x, int y);
38 
39 private:
42 
49  void loadUITexture();
50 
52  void flush();
53 
54  SDL_Surface *createSurfaceFromFile(const std::string &fileName);
55  SDL_Texture *createTextureFromSurface(SDL_Surface *surface);
56 
57  std::unordered_map<std::string, std::unordered_map<std::string, SDL_Texture *>> m_uiTextureMap;
58 
59  std::unordered_map<std::string, SDL_Texture *> m_tileTextureMap;
60  std::unordered_map<std::string, SDL_Surface *> m_surfaceMap;
61 };
62 
63 #endif
ResourcesManager::getTileSurface
SDL_Surface * getTileSurface(const std::string &id)
Definition: ResourcesManager.cxx:68
ResourcesManager::ResourcesManager
ResourcesManager()
Definition: ResourcesManager.cxx:16
ResourcesManager
Definition: ResourcesManager.hxx:11
TileManager.hxx
ResourcesManager::getTileTexture
SDL_Texture * getTileTexture(const std::string &id)
Definition: ResourcesManager.cxx:59
ResourcesManager::m_tileTextureMap
std::unordered_map< std::string, SDL_Texture * > m_tileTextureMap
Definition: ResourcesManager.hxx:59
ResourcesManager::getUITexture
SDL_Texture * getUITexture(const std::string &uiElement)
retrieves texture for a tileID
Definition: ResourcesManager.cxx:44
ResourcesManager::loadUITexture
void loadUITexture()
Load Texture in to Texture Map, if an entry for this tile ID does not yet exist.
Definition: ResourcesManager.cxx:26
ResourcesManager::m_surfaceMap
std::unordered_map< std::string, SDL_Surface * > m_surfaceMap
Definition: ResourcesManager.hxx:60
ResourcesManager::operator=
ResourcesManager & operator=(ResourcesManager const &)=delete
ResourcesManager::getColorOfPixelInSurface
SDL_Color getColorOfPixelInSurface(const std::string &tileID, int x, int y)
Get the Color Of Pixel In Surface object at a given coordinate.
Definition: ResourcesManager.cxx:126
Singleton
Abstract Singleton implementation.
Definition: Singleton.hxx:8
ResourcesManager::flush
void flush()
Delete everything. Should be called from the destuctor only.
Definition: ResourcesManager.cxx:102
ResourcesManager::createTextureFromSurface
SDL_Texture * createTextureFromSurface(SDL_Surface *surface)
Definition: ResourcesManager.cxx:92
ResourcesManager::loadTexture
void loadTexture(const std::string &id, const std::string &fileName)
Definition: ResourcesManager.cxx:20
ResourcesManager::m_uiTextureMap
std::unordered_map< std::string, std::unordered_map< std::string, SDL_Texture * > > m_uiTextureMap
Definition: ResourcesManager.hxx:57
string
std::string string
Definition: AudioConfig.hxx:14
ResourcesManager::createSurfaceFromFile
SDL_Surface * createSurfaceFromFile(const std::string &fileName)
Definition: ResourcesManager.cxx:77
ResourcesManager::~ResourcesManager
~ResourcesManager()
Definition: ResourcesManager.cxx:18