YAGE  v0.1.3
Yet Another Game Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
glslprogram.h
Go to the documentation of this file.
1 
9 #ifndef GLSL_PROGRAM_H
10 #define GLSL_PROGRAM_H
11 
12 #include <glad/glad.h>
13 
14 #include <string>
15 
16 namespace yage
17 {
18 
20 {
21 public:
22  GlslProgram() = default;
23  GlslProgram(const GlslProgram &) = delete;
24  GlslProgram(GlslProgram &&) = delete;
25  ~GlslProgram();
26 
27  GlslProgram &operator=(const GlslProgram &) = delete;
28  GlslProgram &operator=(GlslProgram &&) = delete;
29 
31  void compileShaders(const std::string &vertexShader,
32  const std::string fragmentShader);
33  void compileShadersFromFile(const std::string &vertex_shader_path,
34  const std::string &fragment_shader_path);
35  void linkShaders();
36  void addAttribute(const std::string &attribute_name);
37  GLint getUniformLocation(const std::string &uniform_name);
38  void use();
39  void unuse();
40 
41  void defaultSetup();
42 
43 private:
45  GLuint program_id_ = 0;
46  GLuint vertex_shader_id_ = 0;
47  GLuint fragment_shader_id_ = 0;
49 
51  void compileShader(GLuint shader, const std::string &shaderContent);
52  void compileShaderFromFile(GLuint shader, const std::string &file_path);
53  void initShaderId();
54 };
55 
56 } // namespace yage
57 
58 #endif
void compileShaders(const std::string &vertexShader, const std::string fragmentShader)
compiles vertex and fragment shader
Definition: glslprogram.cpp:104
void unuse()
Definition: glslprogram.cpp:180
int attribute_index_
Definition: glslprogram.h:48
void compileShadersFromFile(const std::string &vertex_shader_path, const std::string &fragment_shader_path)
Definition: glslprogram.cpp:113
Definition: glslprogram.h:19
void compileShaderFromFile(GLuint shader, const std::string &file_path)
Definition: glslprogram.cpp:66
void initShaderId()
Definition: glslprogram.cpp:86
~GlslProgram()
Definition: glslprogram.cpp:18
GlslProgram()=default
void compileShader(GLuint shader, const std::string &shaderContent)
compiles one shader
Definition: glslprogram.cpp:34
GLuint program_id_
compiled shader program id
Definition: glslprogram.h:45
void defaultSetup()
Definition: glslprogram.cpp:188
void linkShaders()
Definition: glslprogram.cpp:124
GLuint fragment_shader_id_
Definition: glslprogram.h:47
void addAttribute(const std::string &attribute_name)
Definition: glslprogram.cpp:157
void use()
Definition: glslprogram.cpp:172
GLuint vertex_shader_id_
Definition: glslprogram.h:46
GlslProgram & operator=(const GlslProgram &)=delete
GLint getUniformLocation(const std::string &uniform_name)
Definition: glslprogram.cpp:163