]> git.tdb.fi Git - libs/gl.git/blob - source/uniformblock.h
Restructure ProgramData to support sharing between Programs
[libs/gl.git] / source / uniformblock.h
1 #ifndef MSP_GL_UNIFORMBLOCK_H_
2 #define MSP_GL_UNIFORMBLOCK_H_
3
4 #include <map>
5
6 namespace Msp {
7 namespace GL {
8
9 class Color;
10 class Matrix;
11 class Uniform;
12 class Vector3;
13 class Vector4;
14
15 class UniformBlock
16 {
17 private:
18         std::map<int, Uniform *> uniforms;
19
20         UniformBlock(const UniformBlock &);
21         UniformBlock &operator=(const UniformBlock &);
22 public:
23         UniformBlock() { }
24         ~UniformBlock();
25
26 private:
27         void uniform(int, Uniform *);
28 public:
29         void uniform(int, const Uniform &);
30         void uniform(int, int);
31         void uniform(int, float);
32         void uniform(int, float, float);
33         void uniform2(int, const float *);
34         void uniform(int, float, float, float);
35         void uniform(int, const Vector3 &);
36         void uniform3(int, const float *);
37         void uniform(int, float, float, float, float);
38         void uniform(int, const Vector4 &);
39         void uniform(int, const Color &);
40         void uniform4(int, const float *);
41         void uniform_matrix4(int, const float *);
42         void uniform_matrix4(int, const Matrix &);
43
44         void apply(int) const;
45 };
46
47 } // namespace GL
48 } // namespace Msp
49
50 #endif