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/ntg…
==============================================================================
--- 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/en…
==============================================================================
--- 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