case EOpMatrixTimesScalar:\r
if(visit == PostVisit)\r
{\r
- for(int i = 0; i < leftType.getNominalSize(); i++)\r
+ if(left->isMatrix())\r
{\r
- emit(sw::Shader::OPCODE_MUL, result, i, left, i, right);\r
+ for(int i = 0; i < leftType.getNominalSize(); i++)\r
+ {\r
+ emit(sw::Shader::OPCODE_MUL, result, i, left, i, right, 0);\r
+ }\r
}\r
+ else if(right->isMatrix())\r
+ {\r
+ for(int i = 0; i < rightType.getNominalSize(); i++)\r
+ {\r
+ emit(sw::Shader::OPCODE_MUL, result, i, left, 0, right, i);\r
+ }\r
+ }\r
+ else UNREACHABLE(0);\r
}\r
break;\r
case EOpVectorTimesMatrix:\r