Elaztek Developer Hub
Blamite Game Engine - blam!  00388.06.24.23.2301.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
Blam::Logger::LogEvent
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:142
BlamRendering::BGFX::Shaders::ReloadShaders
BLAM void ReloadShaders()
Definition: shaders.cpp:62
BlamRendering::BGFX::Shaders::ShadersReloading
BLAM bool ShadersReloading()
Definition: shaders.cpp:72
logger.h
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
shaders.h
BLAM
#define BLAM
Definition: shaders.h:8
BlamShaderProgram::~BlamShaderProgram
~BlamShaderProgram()
Definition: BlamShaderProgram.cpp:103
BlamShader::GetShaderHandle
bgfx::ShaderHandle GetShaderHandle()
Definition: BlamShader.cpp:38
ENGINE_DATA_PATH
#define ENGINE_DATA_PATH(path)
Macro to quickly access a game engine data folder.
Definition: config.h:36
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
BlamEngineDataFolder::Resources
@ Resources
Directory containing other resources and data, usually string tables and globals. Defaults to ....
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
shader_programs
std::map< std::string, BlamShaderProgram * > shader_programs
Definition: shaders.cpp:5
copy
The original diffuse textures are from the NVIDIA texture with other maps generated from them by Steve Streeting The following license applies to all textures Single Product or Project Use of NVSDK Art Imagery THIS IS A LEGAL immediately delete the NVSDK Art Imagery from your hard disk If you proceed to use any of the you thereby signify that you have agreed to all of the terms and conditions set forth below You may not copy
Definition: TextureUsageAgreement.txt:6
BlamRendering::BGFX::Shaders
Namespace for anything related to bgfx shaders.
Definition: shaders.h:55
config.h
shaders_reloading
bool shaders_reloading
Definition: shaders.cpp:6
BlamShaderProgram::GetProgramHandle
bgfx::ProgramHandle GetProgramHandle()
Definition: BlamShaderProgram.cpp:118
BlamRendering::BGFX::Shaders::GetShaderProgram
BLAM BlamShaderProgram * GetShaderProgram(std::string id)
Definition: shaders.cpp:16