20 friend class ShaderManagerAttorney;
22 static ShaderManager* ptrInstance;
25 ShaderManager(
const ShaderManager&) =
delete;
26 ShaderManager& operator=(
const ShaderManager&) =
delete;
27 ~ShaderManager() =
default;
29 static ShaderManager& Instance()
31 if (ptrInstance ==
nullptr)
32 ptrInstance =
new ShaderManager();
54 static void Delete() { Instance().privDelete(); }
57 ShaderObject* privGet(
const std::string& key);
58 void privLoad(
const std::string& key,
const std::string& path);
72 static ShaderObject*
Get(
const std::string& key) {
return Instance().privGet(key); }
80 static void Load(
const std::string& key,
const std::string& path) { Instance().privLoad(key, path); }
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