Elevate Engine 1
Loading...
Searching...
No Matches
ShaderManager.cpp
Go to the documentation of this file.
1#include "eepch.h"
2#include "ShaderManager.h"
3
6
7namespace Elevate {
8 ShaderPtr ShaderManager::LoadShader(const std::string& name, ShaderPtr shader)
9 {
11 {
12 EE_CORE_ERROR("(ShaderManager::LoadShader) : You cannot create a shader with the name : default. This is reservez for the default shader for the whole engine.");
13 return nullptr;
14 }
15
16 if (instance().m_Shaders.count(name) > 0)
17 {
18 return instance().m_Shaders[name];
19 }
20 else
21 {
22 instance().m_Shaders[name] = shader;
23 return shader;
24 }
25 }
26
27 ShaderPtr ShaderManager::LoadShader(const std::string& name, const std::string& vertexSrcPath, const std::string& fragSrcPath)
28 {
29 return LoadShader(name, Shader::CreateFromFiles(vertexSrcPath, fragSrcPath));
30 }
31
32 ShaderPtr ShaderManager::LoadShader(const std::string& name, const std::string& vertexSrcPath, const std::string& fragSrcPath, const std::string& customVertCode, const std::string& customFragCode)
33 {
34 return LoadShader(name, Shader::CreateFromFiles(vertexSrcPath, fragSrcPath, customVertCode, customFragCode));
35 }
36
37 ShaderPtr ShaderManager::GetShader(const std::string& name)
38 {
39 return (instance().m_Shaders.count(name) > 0) ? instance().m_Shaders[name] : nullptr;
40 }
41
42 void ShaderManager::Init()
43 {
44 EE_CORE_INFO("Initializing ShaderManager.");
45 // Create a default shader.
46 EE_CORE_TRACE("(ShaderManager) : Creating default shader.");
48 EE_CORE_INFO("Initialized ShaderManager.");
49 }
50
51 ShaderManager& ShaderManager::instance()
52 {
53 static ShaderManager instance;
54 if (!instance.m_initialized)
55 {
56 instance.m_initialized = true;
57 instance.Init();
58 }
59 return instance;
60 }
61}
#define EE_DEFAULT_SHADER
static ShaderPtr LoadShader(const std::string &name, ShaderPtr shader)
static ShaderPtr GetShader(const std::string &name)
static std::shared_ptr< Shader > CreateDefault()
Definition Shader.cpp:38
static std::shared_ptr< Shader > CreateFromFiles(const std::string &vertexSrcPath, const std::string &fragSrcPath)
Definition Shader.cpp:79
std::shared_ptr< Shader > ShaderPtr
Definition Shader.h:128