SDL2lazy
SlSpriteManager.h
Go to the documentation of this file.
1 // part of SDL2lazy
2 // author: Ulrike Hager
3 
8 #ifndef SLSPRITEMANAGER_H
9 #define SLSPRITEMANAGER_H
10 
11 #include <memory>
12 #include <string>
13 #include <vector>
14 #include <map>
15 
16 #include <SDL2/SDL.h>
17 #include <SDL2/SDL_image.h>
18 
19 
20 class SlSprite;
21 class SlManager;
22 class SlTexture;
23 class SlValueParser;
24 class SlManipulation;
25 
26 
28 {
29  public:
33 
34  ~SlSpriteManager();
35 
38  SlSpriteManager(const SlSpriteManager&) = delete;
41  SlSpriteManager& operator=(const SlSpriteManager&) = delete;
42 
46  void centerSpriteInSprite(const std::string& toCenter, const std::string& target, unsigned int destinationThis = 0, unsigned int destinationOther = 0);
51  bool checkSpriteName(const std::string& name);
58  std::shared_ptr<SlSprite> createSprite(SlTexture* texture, int x = 0, int y = 0, int width = 0, int height = 0);
65  std::shared_ptr<SlSprite> createSprite(const std::string& name, const std::string& textureName, int x = 0, int y = 0, int width = 0, int height = 0);
68  void deleteSprite(const std::string& name);
71  void deleteSprites(const std::string& textureName);
74  std::shared_ptr<SlSprite> findSprite(const std::string& name);
77  void initialize( SlValueParser* valPars);
80  std::map<std::string, SlManipulation*> manipulations(){ return manipulations_; }
83  void parseSprite(std::ifstream& input);
86  void parseSpriteManipulation(std::ifstream& input);
91  void setSpriteColor(const std::string& name, uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha = 0xFF, unsigned int destination = 0);
96  void setSpriteDestinationOrigin(const std::string& name, int x, int y, unsigned int destination = 0);
100  void setSpriteRenderOptions(const std::string& name, uint32_t renderOptions, unsigned int destination = 0);
104 
105  protected:
108  SlSpriteManager();
111  void clear();
116  void manipulateSprite(const std::string& name, unsigned int destination, const std::string& whatToDo, const std::vector<std::string>& parameters);
117 
118  private:
122  std::vector<std::shared_ptr<SlSprite>> sprites_;
125  SlManager* mngr_ = nullptr;
129  std::map<std::string, SlManipulation*> manipulations_;
130 };
131 
132 
133 
134 
135 #endif // SLSPRITEMANAGER_H
Definition: SlManipulation.h:22
void parseSpriteManipulation(std::ifstream &input)
Definition: SlSpriteManager.cc:280
void setSpriteRenderOptions(const std::string &name, uint32_t renderOptions, unsigned int destination=0)
Definition: SlSpriteManager.cc:343
void centerSpriteInSprite(const std::string &toCenter, const std::string &target, unsigned int destinationThis=0, unsigned int destinationOther=0)
Definition: SlSpriteManager.cc:43
SlSpriteManager & operator=(const SlSpriteManager &)=delete
bool checkSpriteName(const std::string &name)
Definition: SlSpriteManager.cc:66
SlValueParser * valParser
Definition: SlSpriteManager.h:103
void setSpriteDestinationOrigin(const std::string &name, int x, int y, unsigned int destination=0)
Definition: SlSpriteManager.cc:334
Definition: SlSpriteManager.h:27
Definition: SlValueParser.h:21
std::shared_ptr< SlSprite > createSprite(SlTexture *texture, int x=0, int y=0, int width=0, int height=0)
Definition: SlSpriteManager.cc:91
Definition: SlSprite.h:59
void deleteSprite(const std::string &name)
Definition: SlSpriteManager.cc:139
SlManager * mngr_
Definition: SlSpriteManager.h:125
void clear()
Definition: SlSpriteManager.cc:79
std::shared_ptr< SlSprite > findSprite(const std::string &name)
Definition: SlSpriteManager.cc:167
void initialize(SlValueParser *valPars)
Definition: SlSpriteManager.cc:181
std::map< std::string, SlManipulation * > manipulations()
Definition: SlSpriteManager.h:80
void manipulateSprite(const std::string &name, unsigned int destination, const std::string &whatToDo, const std::vector< std::string > &parameters)
Definition: SlSpriteManager.cc:203
void setSpriteColor(const std::string &name, uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha=0xFF, unsigned int destination=0)
Definition: SlSpriteManager.cc:324
Definition: SlManager.h:29
Definition: SlTexture.h:27
void deleteSprites(const std::string &textureName)
Definition: SlSpriteManager.cc:154
void parseSprite(std::ifstream &input)
Definition: SlSpriteManager.cc:219
std::vector< std::shared_ptr< SlSprite > > sprites_
Definition: SlSpriteManager.h:122
std::map< std::string, SlManipulation * > manipulations_
Definition: SlSpriteManager.h:129