]> git.tdb.fi Git - libs/gl.git/blob - source/uniform.h
Add virtual destructors to Renderable and Uniform
[libs/gl.git] / source / uniform.h
1 /* $Id$
2
3 This file is part of libmspgl
4 Copyright © 2007  Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
6 */
7
8 #ifndef MSP_GL_UNIFORM_H_
9 #define MSP_GL_UNIFORM_H_
10
11 namespace Msp {
12 namespace GL {
13
14 class Program;
15
16 class Uniform
17 {
18 protected:
19         Uniform() { }
20 public:
21         virtual ~Uniform() { }
22
23         virtual void apply(int) const =0;
24 };
25
26
27 class Uniform1i: public Uniform
28 {
29 private:
30         int v;
31
32 public:
33         Uniform1i(int v_);
34         virtual void apply(int index) const;
35 };
36
37
38 class Uniform1f: public Uniform
39 {
40 private:
41         float v;
42
43 public:
44         Uniform1f(float v_);
45         virtual void apply(int index) const;
46 };
47
48
49 class Uniform2f: public Uniform
50 {
51 private:
52         float v[2];
53
54 public:
55         Uniform2f(float v0, float v1);
56         virtual void apply(int index) const;
57 };
58
59
60 class Uniform3f: public Uniform
61 {
62 private:
63         float v[3];
64
65 public:
66         Uniform3f(float v0, float v1, float v2);
67         virtual void apply(int index) const;
68 };
69
70
71 class Uniform4f: public Uniform
72 {
73 private:
74         float v[4];
75
76 public:
77         Uniform4f(float v0, float v1, float v2, float v3);
78         virtual void apply(int index) const;
79 };
80
81 } // namespace GL
82 } // namespace Msp
83
84 #endif