]> git.tdb.fi Git - libs/gl.git/blob - source/uniform.h
Add Uniform* classes to store uniform data of Programs
[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 void apply(int) const =0;
22 };
23
24
25 class Uniform1i: public Uniform
26 {
27 private:
28         int v;
29
30 public:
31         Uniform1i(int v_);
32         virtual void apply(int index) const;
33 };
34
35
36 class Uniform1f: public Uniform
37 {
38 private:
39         float v;
40
41 public:
42         Uniform1f(float v_);
43         virtual void apply(int index) const;
44 };
45
46
47 class Uniform2f: public Uniform
48 {
49 private:
50         float v[2];
51
52 public:
53         Uniform2f(float v0, float v1);
54         virtual void apply(int index) const;
55 };
56
57
58 class Uniform3f: public Uniform
59 {
60 private:
61         float v[3];
62
63 public:
64         Uniform3f(float v0, float v1, float v2);
65         virtual void apply(int index) const;
66 };
67
68
69 class Uniform4f: public Uniform
70 {
71 private:
72         float v[4];
73
74 public:
75         Uniform4f(float v0, float v1, float v2, float v3);
76         virtual void apply(int index) const;
77 };
78
79 } // namespace GL
80 } // namespace Msp
81
82 #endif