Changed the OpenGL part and the GLSL shaders to use UBO and
[demo] / src / opengl / shader-gl.h
1 #ifndef SHADER_GL_H_
2 #define SHADER_GL_H_
3
4 #include "shader.h"
5
6 class ShaderGL : public Shader {
7 protected:
8         /* bsz for vulkan, in opengl buf is 0 terminated */
9         virtual bool create(char *buf, unsigned int bsz, const char *fname);
10
11 public:
12         unsigned int sdr;
13
14         ShaderGL();
15         virtual ~ShaderGL();
16
17         virtual void destroy() override;
18 };
19
20 class ShaderProgramGL : public ShaderProgram {
21 protected:
22         unsigned int prog;
23         bool is_linked;
24
25 public:
26         ShaderProgramGL();
27         virtual ~ShaderProgramGL();
28
29         virtual bool link() override;
30         virtual bool use() const override;
31         virtual bool create() override;
32         virtual void destroy() override;
33         virtual void attach_shader(Shader *shader) override;
34 };
35
36 #endif // SHADER_GL_H_