Gerald Pfeifer : d3dx8: Simplify D3DXMatrixInverse().

Alexandre Julliard julliard at winehq.org
Mon Feb 25 06:51:32 CST 2008


Module: wine
Branch: master
Commit: 6766f9c1a02f736777c9d6d3948b0c224226f4e6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6766f9c1a02f736777c9d6d3948b0c224226f4e6

Author: Gerald Pfeifer <gerald at pfeifer.com>
Date:   Sun Feb 24 16:39:08 2008 +0100

d3dx8: Simplify D3DXMatrixInverse().

---

 dlls/d3dx8/math.c |   19 ++++++-------------
 1 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/dlls/d3dx8/math.c b/dlls/d3dx8/math.c
index 6573c68..a65a934 100644
--- a/dlls/d3dx8/math.c
+++ b/dlls/d3dx8/math.c
@@ -114,7 +114,7 @@ D3DXMATRIX* WINAPI D3DXMatrixInverse(D3DXMATRIX *pout, FLOAT *pdeterminant, CONS
 {
     int a, i, j;
     D3DXVECTOR4 v, vec[3];
-    FLOAT cofactor, det;
+    FLOAT det;
 
     det = D3DXMatrixfDeterminant(pm);
     if ( !det ) return NULL;
@@ -134,19 +134,12 @@ D3DXMATRIX* WINAPI D3DXMatrixInverse(D3DXMATRIX *pout, FLOAT *pdeterminant, CONS
       }
      }
     D3DXVec4Cross(&v, &vec[0], &vec[1], &vec[2]);
-    for (j=0; j<4; j++)
-    {
-     switch(j)
-     {
-      case 0: cofactor = v.x; break;
-      case 1: cofactor = v.y; break;
-      case 2: cofactor = v.z; break;
-      case 3: cofactor = v.w; break;
-     }
-    pout->u.m[j][i] = pow(-1.0f, i) * cofactor / det;
-    }
+    pout->u.m[0][i] = pow(-1.0f, i) * v.x / det;
+    pout->u.m[1][i] = pow(-1.0f, i) * v.y / det;
+    pout->u.m[2][i] = pow(-1.0f, i) * v.z / det;
+    pout->u.m[3][i] = pow(-1.0f, i) * v.w / det;
    }
-    return pout;
+   return pout;
 }
 
 D3DXMATRIX* WINAPI D3DXMatrixLookAtLH(D3DXMATRIX *pout, CONST D3DXVECTOR3 *peye, CONST D3DXVECTOR3 *pat, CONST D3DXVECTOR3 *pup)




More information about the wine-cvs mailing list