]> git.tdb.fi Git - libs/gl.git/blob - source/uniform.cpp
Add Uniform* classes to store uniform data of Programs
[libs/gl.git] / source / uniform.cpp
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 #include "arb_shader_objects.h"
9 #include "uniform.h"
10
11 namespace Msp {
12 namespace GL {
13
14 Uniform1i::Uniform1i(int v_):
15         v(v_)
16 { }
17
18 void Uniform1i::apply(int index) const
19 {
20         glUniform1iARB(index, v);
21 }
22
23
24 Uniform1f::Uniform1f(float v_):
25         v(v_)
26 { }
27
28 void Uniform1f::apply(int index) const
29 {
30         glUniform1fARB(index, v);
31 }
32
33
34 Uniform2f::Uniform2f(float v0, float v1)
35 {
36         v[0]=v0;
37         v[1]=v1;
38 }
39
40 void Uniform2f::apply(int index) const
41 {
42         glUniform2fvARB(index, 1, v);
43 }
44
45
46 Uniform3f::Uniform3f(float v0, float v1, float v2)
47 {
48         v[0]=v0;
49         v[1]=v1;
50         v[2]=v2;
51 }
52
53 void Uniform3f::apply(int index) const
54 {
55         glUniform3fvARB(index, 1, v);
56 }
57
58
59 Uniform4f::Uniform4f(float v0, float v1, float v2, float v3)
60 {
61         v[0]=v0;
62         v[1]=v1;
63         v[2]=v2;
64         v[3]=v3;
65 }
66
67 void Uniform4f::apply(int index) const
68 {
69         glUniform4fvARB(index, 1, v);
70 }
71
72 } // namespace GL
73 } // namespace Msp