Elevate Engine 1
Loading...
Searching...
No Matches
ShaderManager.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <unordered_map>
5#include <memory>
6
7#define EE_DEFAULT_SHADER "default"
8
9namespace Elevate {
10 class Shader;
11 using ShaderPtr = std::shared_ptr<Shader>;
12
14 public:
15 static ShaderPtr LoadShader(const std::string& name, ShaderPtr shader);
16 static ShaderPtr LoadShader(const std::string& name, const std::string& vertexSrcPath, const std::string& fragSrcPath);
17 static ShaderPtr LoadShader(const std::string& name, const std::string& vertexSrcPath, const std::string&, const std::string& customVertCode, const std::string& customFragCode);
18
19 static ShaderPtr GetShader(const std::string& name);
20
21 private:
22 ShaderManager() = default;
23 void Init();
24 static ShaderManager& instance();
25
26 std::unordered_map<std::string, ShaderPtr> m_Shaders;
27
28 bool m_initialized = false;
29 };
30}
static ShaderPtr LoadShader(const std::string &name, ShaderPtr shader)
static ShaderPtr GetShader(const std::string &name)
std::shared_ptr< Shader > ShaderPtr
Definition Shader.h:128