+void ProgramData::uniform_matrix4(int index, const float *v)
+{
+ if(index>=0)
+ uniform(index, new UniformMatrix4x4f(v));
+}
+
+void ProgramData::uniform_matrix4(int index, const Matrix &m)
+{
+ if(index>=0)
+ {
+ float v[16];
+ copy(m.data(), m.data()+16, v);
+ uniform_matrix4(index, v);
+ }
+}
+
+void ProgramData::uniform(const string &name, int v)
+{
+ uniform(program.get_uniform_location(name), v);
+}
+
+void ProgramData::uniform(const string &name, float v)
+{
+ uniform(program.get_uniform_location(name), v);
+}
+
+void ProgramData::uniform(const string &name, float v0, float v1)
+{
+ uniform(program.get_uniform_location(name), v0, v1);
+}
+
+void ProgramData::uniform2(const string &name, const float *v)
+{
+ uniform2(program.get_uniform_location(name), v);
+}
+
+void ProgramData::uniform(const string &name, float v0, float v1, float v2)
+{
+ uniform(program.get_uniform_location(name), v0, v1, v2);
+}
+
+void ProgramData::uniform(const string &name, const Vector3 &v)
+{
+ uniform(program.get_uniform_location(name), v);
+}
+
+void ProgramData::uniform3(const string &name, const float *v)
+{
+ uniform3(program.get_uniform_location(name), v);
+}
+
+void ProgramData::uniform(const string &name, float v0, float v1, float v2, float v3)
+{
+ uniform(program.get_uniform_location(name), v0, v1, v2, v3);
+}
+
+void ProgramData::uniform(const string &name, const Vector4 &v)
+{
+ uniform(program.get_uniform_location(name), v);
+}
+
+void ProgramData::uniform4(const string &name, const float *v)
+{
+ uniform4(program.get_uniform_location(name), v);
+}
+
+void ProgramData::uniform_matrix4(const string &name, const float *v)
+{
+ uniform_matrix4(program.get_uniform_location(name), v);
+}
+
+void ProgramData::uniform_matrix4(const string &name, const Matrix &m)
+{
+ uniform_matrix4(program.get_uniform_location(name), m);
+}
+