Elaztek Developer Hub
Blamite Game Engine - blam!  00357.06.18.22.0809.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  BlamShader* vertex_shader = nullptr;
34  BlamShader* fragment_shader = nullptr;
35 
36  bgfx::ProgramHandle program_handle;
37  bool program_load_result = false;
38 
39  void LogShaderLoadError(std::string error);
40 
41 public:
42  BlamShaderProgram(std::string _id);
44 
45  bgfx::ProgramHandle GetProgramHandle();
46  bool GetProgramLoadResult();
47  std::string GetID();
48 };
49 
56 {
60  BLAM void LoadShaderPrograms();
61 
62  BLAM BlamShaderProgram* GetShaderProgram(std::string id);
63 
65 
66  BLAM bool LoadShaderProgram(std::string id);
67 
68  BLAM void ReloadShaders();
69 
70  BLAM bool ShadersReloading();
71 }
BlamRendering::BGFX::Shaders::ClearShaderPrograms
BLAM void ClearShaderPrograms()
Definition: shaders.cpp:26
BlamRendering::BGFX::Shaders::ReloadShaders
BLAM void ReloadShaders()
Definition: shaders.cpp:62
BlamRendering::BGFX::Shaders::ShadersReloading
BLAM bool ShadersReloading()
Definition: shaders.cpp:72
BlamShader::GetID
std::string GetID()
Definition: BlamShader.cpp:48
BlamShaderProgram::GetID
std::string GetID()
Definition: BlamShaderProgram.cpp:128
BlamShader::GetShaderLoadResult
bool GetShaderLoadResult()
Definition: BlamShader.cpp:43
BlamShader
Definition: shaders.h:11
BLAM
#define BLAM
Definition: shaders.h:8
BlamShaderProgram::~BlamShaderProgram
~BlamShaderProgram()
Definition: BlamShaderProgram.cpp:103
BlamShader::GetShaderHandle
bgfx::ShaderHandle GetShaderHandle()
Definition: BlamShader.cpp:38
BlamShaderProgram::BlamShaderProgram
BlamShaderProgram(std::string _id)
Definition: BlamShaderProgram.cpp:13
BlamShader::BlamShader
BlamShader(std::string _id, std::string file_path)
Definition: BlamShader.cpp:7
BlamShaderProgram::GetProgramLoadResult
bool GetProgramLoadResult()
Definition: BlamShaderProgram.cpp:123
BlamShaderProgram
Definition: shaders.h:28
BlamRendering::BGFX::Shaders::LoadShaderPrograms
BLAM void LoadShaderPrograms()
Loads all shader programs that aren't tag-based.
Definition: shaders.cpp:8
BlamShader::~BlamShader
~BlamShader()
Definition: BlamShader.cpp:33
BlamRendering::BGFX::Shaders::LoadShaderProgram
BLAM bool LoadShaderProgram(std::string id)
Definition: shaders.cpp:38
BlamRendering::BGFX::Shaders
Namespace for anything related to bgfx shaders.
Definition: shaders.h:55
BlamShaderProgram::GetProgramHandle
bgfx::ProgramHandle GetProgramHandle()
Definition: BlamShaderProgram.cpp:118
BlamRendering::BGFX::Shaders::GetShaderProgram
BLAM BlamShaderProgram * GetShaderProgram(std::string id)
Definition: shaders.cpp:16