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
4
#include <
ElevateEngine/Core/Log.h
>
5
#include <
ElevateEngine/Renderer/Shader/Shader.h
>
6
7
namespace
Elevate
{
8
ShaderPtr
ShaderManager::LoadShader
(
const
std::string& name,
ShaderPtr
shader)
9
{
10
if
(name ==
EE_DEFAULT_SHADER
&&
GetShader
(
EE_DEFAULT_SHADER
))
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."
);
47
LoadShader
(
EE_DEFAULT_SHADER
,
Shader::CreateDefault
());
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
}
Log.h
ShaderManager.h
EE_DEFAULT_SHADER
#define EE_DEFAULT_SHADER
Definition
ShaderManager.h:7
Shader.h
Elevate::ShaderManager::LoadShader
static ShaderPtr LoadShader(const std::string &name, ShaderPtr shader)
Definition
ShaderManager.cpp:8
Elevate::ShaderManager::GetShader
static ShaderPtr GetShader(const std::string &name)
Definition
ShaderManager.cpp:37
Elevate::Shader::CreateDefault
static std::shared_ptr< Shader > CreateDefault()
Definition
Shader.cpp:38
Elevate::Shader::CreateFromFiles
static std::shared_ptr< Shader > CreateFromFiles(const std::string &vertexSrcPath, const std::string &fragSrcPath)
Definition
Shader.cpp:79
eepch.h
Elevate
Definition
AudioDistanceProbe.h:9
Elevate::ShaderPtr
std::shared_ptr< Shader > ShaderPtr
Definition
Shader.h:128
ElevateEngine
src
ElevateEngine
Renderer
Shader
ShaderManager.cpp
Generated by
1.9.8