]> git.tdb.fi Git - libs/gl.git/blob - source/uniform.cpp
Don't do a potentially expensive mesh update if nothing changed
[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<float, 2>::apply(int index, unsigned size, const float *value)
22 {
23         glUniform2fv(index, size, value);
24 }
25
26 template<>
27 void UniformVector<float, 3>::apply(int index, unsigned size, const float *value)
28 {
29         glUniform3fv(index, size, value);
30 }
31
32 template<>
33 void UniformVector<float, 4>::apply(int index, unsigned size, const float *value)
34 {
35         glUniform4fv(index, size, value);
36 }
37
38
39 template<>
40 void UniformMatrix<float, 2, 2>::apply(int index, unsigned size, const float *value)
41 {
42         glUniformMatrix2fv(index, size, false, value);
43 }
44
45 template<>
46 void UniformMatrix<float, 3, 3>::apply(int index, unsigned size, const float *value)
47 {
48         glUniformMatrix3fv(index, size, false, value);
49 }
50
51 template<>
52 void UniformMatrix<float, 4, 4>::apply(int index, unsigned size, const float *value)
53 {
54         glUniformMatrix4fv(index, size, false, value);
55 }
56
57 } // namespace GL
58 } // namespace Msp