Add support for non-square matrix uniforms. Depends on implementing shader support for the same.

TRAC #22839

Signed-off-by: Geoff Lang
Signed-off-by: Shanon Woods
Author: Jamie Madill

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2138 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/ProgramBinary.cpp b/src/libGLESv2/ProgramBinary.cpp
index a654c6b..3aba5ed 100644
--- a/src/libGLESv2/ProgramBinary.cpp
+++ b/src/libGLESv2/ProgramBinary.cpp
@@ -539,6 +539,36 @@
     return setUniformMatrixfv<4, 4>(location, count, value, GL_FLOAT_MAT4);
 }
 
+bool ProgramBinary::setUniformMatrix2x3fv(GLint location, GLsizei count, const GLfloat *value)
+{
+    return setUniformMatrixfv<2, 3>(location, count, value, GL_FLOAT_MAT2x3);
+}
+
+bool ProgramBinary::setUniformMatrix3x2fv(GLint location, GLsizei count, const GLfloat *value)
+{
+    return setUniformMatrixfv<3, 2>(location, count, value, GL_FLOAT_MAT3x2);
+}
+
+bool ProgramBinary::setUniformMatrix2x4fv(GLint location, GLsizei count, const GLfloat *value)
+{
+    return setUniformMatrixfv<2, 4>(location, count, value, GL_FLOAT_MAT2x4);
+}
+
+bool ProgramBinary::setUniformMatrix4x2fv(GLint location, GLsizei count, const GLfloat *value)
+{
+    return setUniformMatrixfv<4, 2>(location, count, value, GL_FLOAT_MAT4x2);
+}
+
+bool ProgramBinary::setUniformMatrix3x4fv(GLint location, GLsizei count, const GLfloat *value)
+{
+    return setUniformMatrixfv<3, 4>(location, count, value, GL_FLOAT_MAT3x4);
+}
+
+bool ProgramBinary::setUniformMatrix4x3fv(GLint location, GLsizei count, const GLfloat *value)
+{
+    return setUniformMatrixfv<4, 3>(location, count, value, GL_FLOAT_MAT4x3);
+}
+
 bool ProgramBinary::setUniform1iv(GLint location, GLsizei count, const GLint *v)
 {
     if (location < 0 || location >= (int)mUniformIndex.size())