]> git.tdb.fi Git - libs/gl.git/blob - source/uniform.h
Adapt exporter to Blender 2.63
[libs/gl.git] / source / uniform.h
1 #ifndef MSP_GL_UNIFORM_H_
2 #define MSP_GL_UNIFORM_H_
3
4 namespace Msp {
5 namespace GL {
6
7 class Program;
8
9 class Uniform
10 {
11 protected:
12         Uniform() { }
13 private:
14         Uniform(const Uniform &);
15         Uniform &operator=(const Uniform &);
16 public:
17         virtual ~Uniform() { }
18
19         virtual void apply(int) const =0;
20         virtual Uniform *clone() const =0;
21 };
22
23
24 class Uniform1i: public Uniform
25 {
26 private:
27         int v;
28
29 public:
30         Uniform1i(int v_);
31
32         virtual void apply(int index) const;
33         virtual Uniform1i *clone() const;
34 };
35
36
37 class Uniform1f: public Uniform
38 {
39 private:
40         float v;
41
42 public:
43         Uniform1f(float v_);
44
45         virtual void apply(int index) const;
46         virtual Uniform1f *clone() const;
47 };
48
49
50 class Uniform2f: public Uniform
51 {
52 private:
53         float v[2];
54
55 public:
56         Uniform2f(float v0, float v1);
57
58         virtual void apply(int index) const;
59         virtual Uniform2f *clone() const;
60 };
61
62
63 class Uniform3f: public Uniform
64 {
65 private:
66         float v[3];
67
68 public:
69         Uniform3f(float v0, float v1, float v2);
70
71         virtual void apply(int index) const;
72         virtual Uniform3f *clone() const;
73 };
74
75
76 class Uniform4f: public Uniform
77 {
78 private:
79         float v[4];
80
81 public:
82         Uniform4f(float v0, float v1, float v2, float v3);
83
84         virtual void apply(int index) const;
85         virtual Uniform4f *clone() const;
86 };
87
88
89 class UniformMatrix4x4f: public Uniform
90 {
91 private:
92         float v[16];
93
94 public:
95         UniformMatrix4x4f(const float *);
96
97         virtual void apply(int index) const;
98         virtual UniformMatrix4x4f *clone() const;
99 };
100
101 } // namespace GL
102 } // namespace Msp
103
104 #endif