2D_Game_Engine
Loading...
Searching...
No Matches
texturesmanager.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <texture.hpp>
4
6 unsigned int copies;
7 std::shared_ptr<Texture> texture;
8
9 TextureInfo(): copies(0),texture(nullptr){}
10 TextureInfo(std::shared_ptr<Texture> tex): copies(1),texture(tex){}
11};
12
14 unsigned int copies;
15 std::shared_ptr<SpriteSheet> texture;
16
18 SpriteSheetInfo(std::shared_ptr<SpriteSheet> tex): copies(1),texture(tex){}
19};
20
22public:
23 TexturesManager()=default;
25
31 std::pair<uint32_t,std::shared_ptr<Texture>> GetTexture(const std::string &path,int mag_filter,int min_filter);
32
37 std::shared_ptr<Texture> GetTexture(uint32_t id);
38
44 std::pair<uint32_t,std::shared_ptr<SpriteSheet>> GetSpriteSheet(const std::string &path,unsigned int tile_width,unsigned int tile_height,int mag_filter,int min_filter);
45
50 std::shared_ptr<SpriteSheet> GetSpriteSheet(uint32_t id);
51
55 void ReleaseTexture(uint32_t texture_id);
56
60 void ReleaseSpriteSheet(uint32_t texture_id);
61
65 std::pair<uint32_t,std::shared_ptr<Texture>> UpdateTexture(uint32_t texture_id,const std::string &path,int mag_filter,int min_filter);
66
70 std::pair<uint32_t,std::shared_ptr<SpriteSheet>> UpdateSpriteSheet(uint32_t texture_id,const std::string &path,unsigned int tile_width,unsigned int tile_height,int mag_filter,int min_filter);
71
72private:
73 std::unordered_map<uint32_t,struct TextureInfo> m_Textures;
74 std::unordered_map<uint32_t,struct SpriteSheetInfo> m_SpriteSheets;
75
76 uint32_t m_NextID=0;
77};
TexturesManager()=default
std::pair< uint32_t, std::shared_ptr< Texture > > UpdateTexture(uint32_t texture_id, const std::string &path, int mag_filter, int min_filter)
std::pair< uint32_t, std::shared_ptr< SpriteSheet > > GetSpriteSheet(const std::string &path, unsigned int tile_width, unsigned int tile_height, int mag_filter, int min_filter)
~TexturesManager()=default
void ReleaseSpriteSheet(uint32_t texture_id)
std::pair< uint32_t, std::shared_ptr< SpriteSheet > > UpdateSpriteSheet(uint32_t texture_id, const std::string &path, unsigned int tile_width, unsigned int tile_height, int mag_filter, int min_filter)
void ReleaseTexture(uint32_t texture_id)
std::pair< uint32_t, std::shared_ptr< Texture > > GetTexture(const std::string &path, int mag_filter, int min_filter)
SpriteSheetInfo(std::shared_ptr< SpriteSheet > tex)
std::shared_ptr< SpriteSheet > texture
unsigned int copies
unsigned int copies
std::shared_ptr< Texture > texture
TextureInfo(std::shared_ptr< Texture > tex)