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/ntgd... ============================================================================== --- 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... ============================================================================== --- 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