Add non-square mat support to the shader language interface.
TRAC #23081
Signed-off-by: Geoff Lang
Signed-off-by: Nicolas Capens
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2397 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/compiler/VariablePacker.cpp b/src/compiler/VariablePacker.cpp
index 8957287..ee70b9e 100644
--- a/src/compiler/VariablePacker.cpp
+++ b/src/compiler/VariablePacker.cpp
@@ -13,6 +13,10 @@
{
switch (type) {
case SH_FLOAT_MAT4:
+ case SH_FLOAT_MAT2x4:
+ case SH_FLOAT_MAT3x4:
+ case SH_FLOAT_MAT4x2:
+ case SH_FLOAT_MAT4x3:
return 0;
case SH_FLOAT_MAT2:
return 1;
@@ -21,6 +25,8 @@
case SH_BOOL_VEC4:
return 2;
case SH_FLOAT_MAT3:
+ case SH_FLOAT_MAT2x3:
+ case SH_FLOAT_MAT3x2:
return 3;
case SH_FLOAT_VEC3:
case SH_INT_VEC3:
@@ -50,11 +56,17 @@
switch (type) {
case SH_FLOAT_MAT4:
case SH_FLOAT_MAT2:
+ case SH_FLOAT_MAT2x4:
+ case SH_FLOAT_MAT3x4:
+ case SH_FLOAT_MAT4x2:
+ case SH_FLOAT_MAT4x3:
case SH_FLOAT_VEC4:
case SH_INT_VEC4:
case SH_BOOL_VEC4:
return 4;
case SH_FLOAT_MAT3:
+ case SH_FLOAT_MAT2x3:
+ case SH_FLOAT_MAT3x2:
case SH_FLOAT_VEC3:
case SH_INT_VEC3:
case SH_BOOL_VEC3:
@@ -81,8 +93,14 @@
{
switch (type) {
case SH_FLOAT_MAT4:
+ case SH_FLOAT_MAT2x4:
+ case SH_FLOAT_MAT3x4:
+ case SH_FLOAT_MAT4x3:
+ case SH_FLOAT_MAT4x2:
return 4;
case SH_FLOAT_MAT3:
+ case SH_FLOAT_MAT2x3:
+ case SH_FLOAT_MAT3x2:
return 3;
case SH_FLOAT_MAT2:
return 2;