SUNENGINE 0.0.2
A simple and bright C++ game engine.
 
Loading...
Searching...
No Matches
ShaderManager.h
1#ifndef ShaderManager_H
2#define ShaderManager_H
3
4#include "AzulCore.h"
5#include <string>
6#include <map>
7
8class ShaderObject;
9
17class ShaderManager
18{
19private:
20 friend class ShaderManagerAttorney;
21
22 static ShaderManager* ptrInstance;
23
24 ShaderManager();
25 ShaderManager(const ShaderManager&) = delete;
26 ShaderManager& operator=(const ShaderManager&) = delete;
27 ~ShaderManager() = default;
28
29 static ShaderManager& Instance()
30 {
31 if (ptrInstance == nullptr)
32 ptrInstance = new ShaderManager();
33 return *ptrInstance;
34 };
35
39 const std::string defaultPath;
40
44 static const std::string defaultShaderKey;
45
49 std::map<std::string, ShaderObject*> storageMap;
50
54 static void Delete() { Instance().privDelete(); }
55 void privDelete();
56
57 ShaderObject* privGet(const std::string& key);
58 void privLoad(const std::string& key, const std::string& path);
59
60public:
64 static const std::string defaultSpriteShaderKey;
65
72 static ShaderObject* Get(const std::string& key) { return Instance().privGet(key); }
73
80 static void Load(const std::string& key, const std::string& path) { Instance().privLoad(key, path); }
81};
82
83#endif
std::map< std::string, ShaderObject * > storageMap
Map storing ShaderObject objects associated with their keys.
Definition ShaderManager.h:49
static const std::string defaultSpriteShaderKey
Default key for sprite shaders.
Definition ShaderManager.h:64
static ShaderObject * Get(const std::string &key)
Retrieves a ShaderObject object by its key.
Definition ShaderManager.h:72
static void Load(const std::string &key, const std::string &path)
Loads a ShaderObject object from a file path.
Definition ShaderManager.h:80
static const std::string defaultShaderKey
Default key for shaders.
Definition ShaderManager.h:44
static void Delete()
Deletes all managed ShaderObject objects.
Definition ShaderManager.h:54
const std::string defaultPath
Default path for loading shaders.
Definition ShaderManager.h:39