瀏覽代碼

inverse matrix mult order according to GLES spec

Nicolas Cannasse 11 年之前
父節點
當前提交
e81be7f5d9
共有 2 個文件被更改,包括 3 次插入3 次删除
  1. 1 1
      hxsl/Checker.hx
  2. 2 2
      hxsl/GlslOut.hx

+ 1 - 1
hxsl/Checker.hx

@@ -788,7 +788,7 @@ class Checker {
 			switch( [op, e1.t, e2.t] ) {
 			case [OpMult,TVec(4,VFloat), TMat4], [OpMult,TMat4, TVec(4,VFloat)]:
 				vec4;
-			case [OpMult,TMat3x4, TVec(3,VFloat)]:
+			case [OpMult,TVec(3,VFloat), TMat3x4]:
 				vec3;
 			case [OpMult,TMat3, TVec(3,VFloat)], [OpMult, TVec(3,VFloat), TMat3]:
 				vec3;

+ 2 - 2
hxsl/GlslOut.hx

@@ -161,7 +161,7 @@ class GlslOut {
 			add("}");
 		case TBinop(op, e1, e2):
 			switch( [op, e1.t, e2.t] ) {
-			case [OpMult, TMat3x4, TVec(3,VFloat)]:
+			case [OpMult, TVec(3,VFloat), TMat3x4]:
 				add("m3x4mult(");
 				addValue(e1, tabs);
 				add(",");
@@ -257,7 +257,7 @@ class GlslOut {
 		exprValues = [];
 		add("precision mediump float;\n");
 		add("struct mat3x4 { vec4 a; vec4 b; vec4 c; };\n");
-		add("vec3 m3x4mult( mat3x4 m, vec3 v ) { vec4 ve = vec4(v,1.0); return vec3(dot(m.a,ve),dot(m.b,ve),dot(m.c,ve)); }\n");
+		add("vec3 m3x4mult( vec3 v, mat3x4 m) { vec4 ve = vec4(v,1.0); return vec3(dot(m.a,ve),dot(m.b,ve),dot(m.c,ve)); }\n");
 
 		if( s.funs.length != 1 ) throw "assert";
 		var f = s.funs[0];