]> git.tdb.fi Git - libs/gl.git/blob - source/uniform.cpp
Use bezier splines in Animation
[libs/gl.git] / source / uniform.cpp
1 #include <msp/gl/extensions/arb_shader_objects.h>
2 #include "uniform.h"
3
4 namespace Msp {
5 namespace GL {
6
7 template<>
8 void UniformScalar<int>::apply(int index, unsigned size, const int *value)
9 {
10         glUniform1iv(index, size, value);
11 }
12
13 template<>
14 void UniformScalar<float>::apply(int index, unsigned size, const float *value)
15 {
16         glUniform1fv(index, size, value);
17 }
18
19
20 template<>
21 void UniformVector<int, 2>::apply(int index, unsigned size, const int *value)
22 {
23         glUniform2iv(index, size, value);
24 }
25
26 template<>
27 void UniformVector<float, 2>::apply(int index, unsigned size, const float *value)
28 {
29         glUniform2fv(index, size, value);
30 }
31
32 template<>
33 void UniformVector<int, 3>::apply(int index, unsigned size, const int *value)
34 {
35         glUniform3iv(index, size, value);
36 }
37
38 template<>
39 void UniformVector<float, 3>::apply(int index, unsigned size, const float *value)
40 {
41         glUniform3fv(index, size, value);
42 }
43
44 template<>
45 void UniformVector<int, 4>::apply(int index, unsigned size, const int *value)
46 {
47         glUniform4iv(index, size, value);
48 }
49
50 template<>
51 void UniformVector<float, 4>::apply(int index, unsigned size, const float *value)
52 {
53         glUniform4fv(index, size, value);
54 }
55
56
57 template<>
58 void UniformMatrix<float, 2, 2>::apply(int index, unsigned size, const float *value)
59 {
60         glUniformMatrix2fv(index, size, false, value);
61 }
62
63 template<>
64 void UniformMatrix<float, 3, 3>::apply(int index, unsigned size, const float *value)
65 {
66         glUniformMatrix3fv(index, size, false, value);
67 }
68
69 template<>
70 void UniformMatrix<float, 4, 4>::apply(int index, unsigned size, const float *value)
71 {
72         glUniformMatrix4fv(index, size, false, value);
73 }
74
75 } // namespace GL
76 } // namespace Msp