Blamite Game Engine - blam!  00296.01.12.21.0102.blamite
The core library for the Blamite Game Engine.
shaders.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <bgfx/bgfx.h>
4 #include <string>
5 #include <map>
6 
7 #ifndef BLAM
8 #define BLAM
9 #endif
10 
12 {
13 private:
14  std::string id;
15 
16  bgfx::ShaderHandle shader_handle;
17  bool shader_load_result = false;
18 
19 public:
20  BlamShader(std::string _id, std::string file_path);
21  ~BlamShader();
22 
23  bgfx::ShaderHandle GetShaderHandle();
24  bool GetShaderLoadResult();
25  std::string GetID();
26 };
27 
29 {
30 private:
31  std::string id;
32 
33  bgfx::ProgramHandle program_handle;
34  bool program_load_result = false;
35 
36 public:
37  BlamShaderProgram(std::string _id, BlamShader* vertex_shader, BlamShader* fragment_shader);
39 
40  bgfx::ProgramHandle GetProgramHandle();
41  bool CreateProgram();
42  std::string GetID();
43 };
44 
51 {
55  BLAM void LoadShaders();
56 
60  BLAM void LoadShaderPrograms();
61 
62  BLAM BlamShader* GetShader(std::string id);
63  BLAM BlamShaderProgram* GetShaderProgram(std::string id);
64 
65  BLAM void ClearShaders();
67 }
BlamRendering::BGFX::Shaders::ClearShaderPrograms
BLAM void ClearShaderPrograms()
Definition: shaders.cpp:66
BlamShaderProgram::BlamShaderProgram
BlamShaderProgram(std::string _id, BlamShader *vertex_shader, BlamShader *fragment_shader)
Definition: BlamShaderProgram.cpp:5
BlamRendering::BGFX::Shaders::LoadShaders
BLAM void LoadShaders()
Loads all shaders that aren't tag-based.
Definition: shaders.cpp:6
BlamShader::GetID
std::string GetID()
Definition: BlamShader.cpp:42
BlamRendering::BGFX::Shaders::ClearShaders
BLAM void ClearShaders()
Definition: shaders.cpp:54
BlamShaderProgram::GetID
std::string GetID()
Definition: BlamShaderProgram.cpp:54
BlamShader::GetShaderLoadResult
bool GetShaderLoadResult()
Definition: BlamShader.cpp:37
BlamShader
Definition: shaders.h:11
BlamShaderProgram::~BlamShaderProgram
~BlamShaderProgram()
Definition: BlamShaderProgram.cpp:39
BlamRendering::BGFX::Shaders::GetShader
BLAM BlamShader * GetShader(std::string id)
Definition: shaders.cpp:34
BlamShader::GetShaderHandle
bgfx::ShaderHandle GetShaderHandle()
Definition: BlamShader.cpp:32
BlamShaderProgram::CreateProgram
bool CreateProgram()
Definition: BlamShaderProgram.cpp:49
BlamShader::BlamShader
BlamShader(std::string _id, std::string file_path)
Definition: BlamShader.cpp:7
BLAM
#define BLAM
Definition: shaders.h:8
BlamShaderProgram
Definition: shaders.h:28
BlamRendering::BGFX::Shaders::LoadShaderPrograms
BLAM void LoadShaderPrograms()
Loads all shader programs that aren't tag-based.
Definition: shaders.cpp:23
BlamShader::~BlamShader
~BlamShader()
Definition: BlamShader.cpp:27
BlamRendering::BGFX::Shaders
Namespace for anything related to bgfx shaders.
Definition: shaders.h:50
BlamShaderProgram::GetProgramHandle
bgfx::ProgramHandle GetProgramHandle()
Definition: BlamShaderProgram.cpp:44
BlamRendering::BGFX::Shaders::GetShaderProgram
BLAM BlamShaderProgram * GetShaderProgram(std::string id)
Definition: shaders.cpp:44