Otclient  14/8/2020
texturemanager.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2010-2020 OTClient <https://github.com/edubart/otclient>
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to deal
6  * in the Software without restriction, including without limitation the rights
7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  * copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20  * THE SOFTWARE.
21  */
22 
23 #ifndef TEXTUREMANAGER_H
24 #define TEXTUREMANAGER_H
25 
26 #include "texture.h"
28 
30 {
31 public:
32  void init();
33  void terminate();
34  void poll();
35 
36  void clearCache();
37  void liveReload();
38 
39  void preload(const std::string& fileName) { getTexture(fileName); }
40  TexturePtr getTexture(const std::string& fileName);
41  const TexturePtr& getEmptyTexture() { return m_emptyTexture; }
42 
43 private:
44  TexturePtr loadTexture(std::stringstream& file);
45 
46  std::unordered_map<std::string, TexturePtr> m_textures;
47  std::vector<AnimatedTexturePtr> m_animatedTextures;
48  TexturePtr m_emptyTexture;
49  ScheduledEventPtr m_liveReloadEvent;
50 };
51 
53 
54 #endif
TextureManager::init
void init()
Definition: texturemanager.cpp:35
TextureManager::getEmptyTexture
const TexturePtr & getEmptyTexture()
Definition: texturemanager.h:41
g_textures
TextureManager g_textures
Definition: texturemanager.cpp:33
declarations.h
TextureManager::clearCache
void clearCache()
Definition: texturemanager.cpp:64
TextureManager::preload
void preload(const std::string &fileName)
Definition: texturemanager.h:39
TextureManager::getTexture
TexturePtr getTexture(const std::string &fileName)
Definition: texturemanager.cpp:90
TextureManager
Definition: texturemanager.h:29
texture.h
stdext::shared_object_ptr< Texture >
TextureManager::liveReload
void liveReload()
Definition: texturemanager.cpp:70
TextureManager::poll
void poll()
Definition: texturemanager.cpp:51
TextureManager::terminate
void terminate()
Definition: texturemanager.cpp:40