SUNENGINE 0.0.2
A simple and bright C++ game engine.
 
Loading...
Searching...
No Matches
SpriteFontManager.h
1#ifndef SpriteFontManager_H
2#define SpriteFontManager_H
3
4#include "AzulCore.h"
5#include <string>
6#include <map>
7
8using MapKey = std::string const;
9class SpriteFont;
10class Texture;
11struct Rect;
12
20class SpriteFontManager
21{
22public:
26 static const MapKey defaultSpriteFont;
27
33 static SpriteFont* Get(MapKey key) { return Instance().privGet(key); };
34
40 static void Load(MapKey key, std::string path) { Instance().privLoad(key, path); };
41
42private:
43 friend class SpriteFontManagerAttorney;
44
45 static SpriteFontManager* ptrInstance;
46
47 static SpriteFontManager& Instance()
48 {
49 if (ptrInstance == nullptr)
50 ptrInstance = new SpriteFontManager();
51 return *ptrInstance;
52 };
53
54 SpriteFontManager();
55 SpriteFontManager(const SpriteFontManager&) = delete;
56 SpriteFontManager& operator=(const SpriteFontManager&) = delete;
57 ~SpriteFontManager() = default;
58
62 const std::string defaultPath;
63
67 std::map<MapKey, SpriteFont*> FontMap;
68
72 const float defaultX = 0;
73
77 const float defaultY = 0;
78
82 const float defaultW = 1;
83
87 const float defaultH = 1;
88
92 static void Delete() { Instance().privDelete(); };
93
94 SpriteFont* privGet(MapKey key);
95 void privLoad(MapKey key, std::string path);
96 void privDelete();
97};
98
99#endif
Represents a font in the SUNENGINE.
Definition SpriteFont.h:19
Provides access to the SpriteFontManager's private methods for specific classes.
Definition SpriteFontManagerAttorney.h:15
Manages the loading and retrieval of SpriteFont objects.
Definition SpriteFontManager.h:21
const float defaultW
Default width for SpriteFont glyphs.
Definition SpriteFontManager.h:82
static const MapKey defaultSpriteFont
Default key for the default SpriteFont.
Definition SpriteFontManager.h:26
static void Delete()
Deletes the singleton instance of the SpriteFontManager.
Definition SpriteFontManager.h:92
const std::string defaultPath
Default path for SpriteFont files.
Definition SpriteFontManager.h:62
static void Load(MapKey key, std::string path)
Loads a SpriteFont from a file.
Definition SpriteFontManager.h:40
std::map< MapKey, SpriteFont * > FontMap
Map of keys to SpriteFont pointers.
Definition SpriteFontManager.h:67
static SpriteFont * Get(MapKey key)
Retrieves a SpriteFont by key.
Definition SpriteFontManager.h:33
const float defaultY
Default y-coordinate for SpriteFont glyphs.
Definition SpriteFontManager.h:77
const float defaultH
Default height for SpriteFont glyphs.
Definition SpriteFontManager.h:87
const float defaultX
Default x-coordinate for SpriteFont glyphs.
Definition SpriteFontManager.h:72