+ uniform_array<Uniform4f>(name, n, v);
+}
+
+void ProgramData::uniform_matrix2_array(const string &name, unsigned n, const float *v)
+{
+ uniform_array<UniformMatrix2x2f>(name, n, v);
+}
+
+void ProgramData::uniform_matrix3x2_array(const string &name, unsigned n, const float *v)
+{
+ uniform_array<UniformMatrix3x2f>(name, n, v);
+}
+
+void ProgramData::uniform_matrix4x2_array(const string &name, unsigned n, const float *v)
+{
+ uniform_array<UniformMatrix4x2f>(name, n, v);
+}
+
+void ProgramData::uniform_matrix2x3_array(const string &name, unsigned n, const float *v)
+{
+ uniform_array<UniformMatrix2x3f>(name, n, v);
+}
+
+void ProgramData::uniform_matrix3_array(const string &name, unsigned n, const float *v)
+{
+ uniform_array<UniformMatrix3x3f>(name, n, v);
+}
+
+void ProgramData::uniform_matrix4x3_array(const string &name, unsigned n, const float *v)
+{
+ uniform_array<UniformMatrix4x3f>(name, n, v);
+}
+
+void ProgramData::uniform_matrix2x4_array(const string &name, unsigned n, const float *v)
+{
+ uniform_array<UniformMatrix2x4f>(name, n, v);
+}
+
+void ProgramData::uniform_matrix3x4_array(const string &name, unsigned n, const float *v)
+{
+ uniform_array<UniformMatrix3x4f>(name, n, v);