]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programdata.cpp
Rewrite the Uniform classes as templates
[libs/gl.git] / source / programdata.cpp
index 535e9e792f3b40826ab60d26bb1f72f2eca4e821..43767bf9526a4449cde0a6d5d3f076bba0460b4b 100644 (file)
@@ -62,17 +62,19 @@ void ProgramData::uniform(const string &name, float v)
 
 void ProgramData::uniform(const string &name, float v0, float v1)
 {
-       uniform(name, new Uniform2f(v0, v1));
+       float va[2] = { v0, v1 };
+       uniform2(name, va);
 }
 
 void ProgramData::uniform2(const string &name, const float *v)
 {
-       uniform(name, v[0], v[1]);
+       uniform(name, new Uniform2f(v));
 }
 
 void ProgramData::uniform(const string &name, float v0, float v1, float v2)
 {
-       uniform(name, new Uniform3f(v0, v1, v2));
+       float va[3] = { v0, v1, v2 };
+       uniform3(name, va);
 }
 
 void ProgramData::uniform(const string &name, const Vector3 &v)
@@ -82,12 +84,13 @@ void ProgramData::uniform(const string &name, const Vector3 &v)
 
 void ProgramData::uniform3(const string &name, const float *v)
 {
-       uniform(name, v[0], v[1], v[2]);
+       uniform(name, new Uniform3f(v));
 }
 
 void ProgramData::uniform(const string &name, float v0, float v1, float v2, float v3)
 {
-       uniform(name, new Uniform4f(v0, v1, v2, v3));
+       float va[4] = { v0, v1, v2, v3 };
+       uniform4(name, va);
 }
 
 void ProgramData::uniform(const string &name, const Vector4 &v)
@@ -102,7 +105,7 @@ void ProgramData::uniform(const string &name, const Color &c)
 
 void ProgramData::uniform4(const string &name, const float *v)
 {
-       uniform(name, v[0], v[1], v[2], v[3]);
+       uniform(name, new Uniform4f(v));
 }
 
 void ProgramData::uniform_matrix4(const string &name, const float *v)