Hana
Loading...
Searching...
No Matches
Hana
src
Hana
Renderer
Shader.h
1
#pragma once
2
3
#include <string>
4
#include <unordered_map>
5
6
#include <glm/glm.hpp>
7
8
namespace
Hana
9
{
10
class
Shader
11
{
12
public
:
13
virtual
~Shader
() =
default
;
14
15
virtual
void
Bind()
const
= 0;
16
virtual
void
Unbind()
const
= 0;
17
18
virtual
void
SetInt(
const
std::string& name,
int
value) = 0;
19
virtual
void
SetFloat3(
const
std::string& name,
const
glm::vec3& value) = 0;
20
virtual
void
SetFloat4(
const
std::string& name,
const
glm::vec4& value) = 0;
21
virtual
void
SetMat4(
const
std::string& name,
const
glm::mat4& value) = 0;
22
23
virtual
const
std::string& GetName()
const
= 0;
24
25
static
Ref<Shader> Create(
const
std::string& filepath);
26
static
Ref<Shader> Create(
const
std::string& name,
const
std::string& vertexSrc,
const
std::string& fragmentSrc);
27
};
28
29
class
ShaderLibrary
30
{
31
public
:
32
void
Add(
const
std::string& name,
const
Ref<Shader>& shader);
33
void
Add(
const
Ref<Shader>& shader);
34
35
Ref<Shader> Load(
const
std::string& filepath);
36
Ref<Shader> Load(
const
std::string& name,
const
std::string& filepath);
37
38
Ref<Shader> Get(
const
std::string& name);
39
40
bool
Exists(
const
std::string& name)
const
;
41
private
:
42
std::unordered_map<std::string, Ref<Shader>> m_Shaders;
43
};
44
}
Hana::ShaderLibrary
Definition
Shader.h:30
Hana::Shader
Definition
Shader.h:11
Generated by
1.13.2