Blamite Game Engine - blam!  00285.12.18.20.1411.blamite
The core library for the Blamite Game Engine.
shader.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <map>
4 #include <vector>
5 
7 
8 #ifndef BLAM
9 #define BLAM
10 #endif
11 
13 {
15 
16 };
17 
19 {
23 };
24 
26 {
27 private:
28  std::string id = "";
30  void* source;
31  int source_length = 0;
32 
33  GLuint shader = 0;
34 
35  GLint compile_status = 0;
36  char compile_log[1024];
37 
38 public:
39  BlamGLSLShader(std::string _id, BlamGLSLShaderType _type, std::string _source);
41 
42  std::string GetID();
43  bool Compile();
44  GLuint GetGLShaderID();
45 };
46 
48 {
49 private:
50  std::string id = "";
51 
52  GLuint shader_program = 0;
53 
54  std::vector<std::string> attached_shaders;
55 
56 public:
57  BlamGLSLShaderProgram(std::string _id);
59 
60  std::string GetID();
61  GLuint GetGLProgramID();
62  void AttachShader(std::string shader_id);
63  void AttachShader(BlamGLSLShader* shader);
64  void Link();
65  void Use();
66 };
67 
69 {
70  BLAM void LoadShaders();
71  BLAM void LoadShaderPrograms();
72  BLAM void CompileShaders();
73  BLAM void CleanupShaders();
75 
77  BLAM void LinkShaderProgram(std::string id);
78 
79  BLAM BlamGLSLShader* GetShader(std::string id);
80 
82 }
BlamGLSLShader::GetID
std::string GetID()
Definition: BlamGLSLShader.cpp:43
BlamGLSLShaderProgram::Use
void Use()
Definition: BlamGLSLShaderProgram.cpp:68
BlamGLSLShaderProgram::BlamGLSLShaderProgram
BlamGLSLShaderProgram(std::string _id)
Definition: BlamGLSLShaderProgram.cpp:5
BlamGLSLShaderProgram
Definition: shader.h:47
BlamRendering::OpenGL::GetShader
BLAM BlamGLSLShader * GetShader(std::string id)
Definition: shaders.cpp:85
BlamGLSLShader::GetGLShaderID
GLuint GetGLShaderID()
Definition: BlamGLSLShader.cpp:77
BlamRendering::OpenGL::LinkShaderProgram
BLAM void LinkShaderProgram(std::string id)
Definition: shaders.cpp:62
BlamGLSLShaderAttributeType
BlamGLSLShaderAttributeType
Definition: shader.h:12
BlamGLSLShaderType
BlamGLSLShaderType
Definition: shader.h:18
BlamGLSLShader::~BlamGLSLShader
~BlamGLSLShader()
Definition: BlamGLSLShader.cpp:37
FragmentShader
@ FragmentShader
Definition: shader.h:21
rendering.h
BlamGLSLShaderProgram::~BlamGLSLShaderProgram
~BlamGLSLShaderProgram()
Definition: BlamGLSLShaderProgram.cpp:13
BlamRendering::OpenGL
Namespace containing functions exclusive to OpenGL.
Definition: shader.h:68
__NULL_SHADER_TYPE
@ __NULL_SHADER_TYPE
Definition: shader.h:22
BlamRendering::OpenGL::LinkAllShaderPrograms
BLAM void LinkAllShaderPrograms()
Definition: shaders.cpp:71
BlamGLSLShader::Compile
bool Compile()
Definition: BlamGLSLShader.cpp:48
BlamRendering::OpenGL::GetShaderProgram
BLAM BlamGLSLShaderProgram * GetShaderProgram(std::string id)
Definition: shaders.cpp:95
VertexShader
@ VertexShader
Definition: shader.h:20
BlamGLSLShader::BlamGLSLShader
BlamGLSLShader(std::string _id, BlamGLSLShaderType _type, std::string _source)
Definition: BlamGLSLShader.cpp:5
BlamGLSLShader
Definition: shader.h:25
BlamRendering::OpenGL::LoadShaderPrograms
BLAM void LoadShaderPrograms()
Definition: shaders.cpp:21
FloatAttribute
@ FloatAttribute
Definition: shader.h:14
BLAM
#define BLAM
Definition: shader.h:9
BlamRendering::OpenGL::CleanupShaderPrograms
BLAM void CleanupShaderPrograms()
Definition: shaders.cpp:52
BlamRendering::OpenGL::CompileShaders
BLAM void CompileShaders()
Definition: shaders.cpp:32
BlamRendering::OpenGL::CleanupShaders
BLAM void CleanupShaders()
Definition: shaders.cpp:42
BlamGLSLShaderProgram::GetGLProgramID
GLuint GetGLProgramID()
Definition: BlamGLSLShaderProgram.cpp:58
BlamGLSLShaderProgram::AttachShader
void AttachShader(std::string shader_id)
Definition: BlamGLSLShaderProgram.cpp:37
BlamGLSLShaderProgram::Link
void Link()
Definition: BlamGLSLShaderProgram.cpp:63
BlamGLSLShaderProgram::GetID
std::string GetID()
Definition: BlamGLSLShaderProgram.cpp:32
BlamRendering::OpenGL::LoadShaders
BLAM void LoadShaders()
Definition: shaders.cpp:10