TDME2  1.9.200
TextureManager.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <unordered_map>
5 
6 #include <tdme/tdme.h>
7 #include <tdme/engine/Texture.h>
11 
12 using std::string;
13 using std::unordered_map;
14 
19 
20 /**
21  * Texture manager
22  * @author Andreas Drewke
23  */
25 {
27 
28 private:
29  Renderer* renderer { nullptr };
30  unordered_map<string, TextureManager_TextureManaged*> textures;
32 
33 public:
34  // forbid class copy
36 
37  /**
38  * Public constructor
39  * @param renderer renderer
40  */
42 
43  /**
44  * Destructor
45  */
47 
48  /**
49  * Adds a texture to manager
50  * @param id id
51  * @param created if managed texture has just been created
52  * @returns texture manager entity
53  */
54  TextureManager_TextureManaged* addTexture(const string& id, bool& created);
55 
56  /**
57  * Adds a texture to manager
58  * @param texture texture
59  * @param contextIdx context index
60  * @returns texture id
61  */
62  int32_t addTexture(Texture* texture, int contextIdx = 0);
63 
64  /**
65  * Adds a cube map texture to manager
66  * @param id id
67  * @param textureLeft texture left
68  * @param textureRight texture right
69  * @param textureTop texture top
70  * @param textureBottom texture bottom
71  * @param textureFront texture front
72  * @param textureBack texture back
73  * @param contextIdx context index or nullptr if using default context
74  * @returns texture id
75  */
76  int32_t addCubeMapTexture(const string& id, Texture* textureLeft, Texture* textureRight, Texture* textureTop, Texture* textureBottom, Texture* textureFront, Texture* textureBack, int contextIdx = 0);
77 
78  /**
79  * Removes a texture from manager
80  * @param texture texture
81  */
82  inline void removeTexture(Texture* texture) {
83  removeTexture(texture->getId());
84  }
85 
86  /**
87  * Removes a texture from manager
88  * @param textureId texture id
89  */
90  void removeTexture(const string& textureId);
91 
92 };
Texture entity.
Definition: Texture.h:24
const string & getId() const
Definition: Texture.h:172
void removeTexture(Texture *texture)
Removes a texture from manager.
unordered_map< string, TextureManager_TextureManaged * > textures
TextureManager(Renderer *renderer)
Public constructor.
int32_t addCubeMapTexture(const string &id, Texture *textureLeft, Texture *textureRight, Texture *textureTop, Texture *textureBottom, Texture *textureFront, Texture *textureBack, int contextIdx=0)
Adds a cube map texture to manager.
TextureManager_TextureManaged * addTexture(const string &id, bool &created)
Adds a texture to manager.
Mutex implementation.
Definition: Mutex.h:19
#define FORBID_CLASS_COPY(CLASS)
Definition: tdme.h:6