quick backup
[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         virtual int get_uniform_location(const char *name) const override;
36
37         virtual void set_uniformi(int location, int value) override;
38         virtual void set_uniformi(int location, int x, int y) override;
39         virtual void set_uniformi(int location, int x, int y, int z) override;
40         virtual void set_uniformi(int location, int x, int y, int z, int w) override;
41
42         virtual void set_uniformf(int location, float value) override;
43         virtual void set_uniformf(int location, float x, float y) override;
44         virtual void set_uniformf(int location, float x, float y, float z) override;
45         virtual void set_uniformf(int location, float x, float y, float z, float w) override;
46
47         virtual void set_uniform_matrix(int location, const Mat4 &mat) override;
48 };
49
50 #endif // SHADER_GL_H_