[ros-diffs] [tkreuzer] 34552: Add MATRIX accelerator flag MX_SCALE and set it in XForm2MatrixS, when off-diagonal elements are zero.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Wed Jul 16 20:57:23 CEST 2008


Author: tkreuzer
Date: Wed Jul 16 13:57:23 2008
New Revision: 34552

URL: http://svn.reactos.org/svn/reactos?rev=34552&view=rev
Log:
Add MATRIX accelerator flag MX_SCALE and set it in XForm2MatrixS, when off-diagonal elements are zero.

Modified:
    trunk/reactos/include/reactos/win32k/ntgdityp.h
    trunk/reactos/subsystems/win32/win32k/eng/float.c

Modified: trunk/reactos/include/reactos/win32k/ntgdityp.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/win32k/ntgdityp.h?rev=34552&r1=34551&r2=34552&view=diff
==============================================================================
--- trunk/reactos/include/reactos/win32k/ntgdityp.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/win32k/ntgdityp.h [iso-8859-1] Wed Jul 16 13:57:23 2008
@@ -96,6 +96,12 @@
     GdiDpToLp,
     GdiLpToDp,
 } TRANSFORMTYPE, *PTRANSFORMTYPE;
+
+/* MATRIX flAccel flags */
+enum
+{
+    MX_SCALE = 1,
+};
 
 typedef enum GDIObjType
 {
@@ -335,7 +341,7 @@
     LONG lMant;
     LONG lExp;
 } EFLOAT_S;
-
+
 /* XFORM Structures */
 typedef struct _MATRIX_S
 {

Modified: trunk/reactos/subsystems/win32/win32k/eng/float.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/eng/float.c?rev=34552&r1=34551&r2=34552&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/eng/float.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/eng/float.c [iso-8859-1] Wed Jul 16 13:57:23 2008
@@ -219,6 +219,11 @@
   FtoEF( &Matrix->efDx, f.l);
   f.f = XForm->eDy;
   FtoEF( &Matrix->efDy, f.l);
+  Matrix->flAccel = 0;
+  if (XForm->eM12 == 0. && XForm->eM21 == 0.)
+  {
+    Matrix->flAccel |= MX_SCALE;
+  }
 }
 
 VOID FASTCALL



More information about the Ros-diffs mailing list