e5e6390335ad4dbc2ab0532051b89dfcedb96453
[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         unsigned int sdr;
10         virtual bool create(char *buf, unsigned int bsz, const char *fname);
11
12 public:
13         ShaderGL();
14         virtual ~ShaderGL();
15
16         virtual void destroy() override;
17         virtual void attach(unsigned int prog) override;
18 };
19
20 class ShaderProgramGL : public ShaderProgram {
21 protected:
22         unsigned int prog;
23
24 public:
25         ShaderProgramGL();
26         virtual ~ShaderProgramGL();
27
28         void destroy();
29         void delete_shaders();
30         virtual bool link() override;
31         virtual bool load(const char *vfname, const char *ffname) override;
32         virtual void use() override;
33 };
34
35 #endif // SHADER_GL_H_