Index: reactos/win32ss/gdi/ntgdi/freetype.c =================================================================== --- reactos/win32ss/gdi/ntgdi/freetype.c (revision 75378) +++ reactos/win32ss/gdi/ntgdi/freetype.c (working copy) @@ -484,31 +484,37 @@ return TRUE; } -VOID -FtSetCoordinateTransform( - FT_Face face, - PMATRIX pmx) +static inline VOID +FT_MatrixFromMATRIX(FT_Matrix *matrix, const MATRIX *pmx) { - FT_Matrix ftmatrix; FLOATOBJ efTemp; /* Create a freetype matrix, by converting to 16.16 fixpoint format */ efTemp = pmx->efM11; FLOATOBJ_MulLong(&efTemp, 0x00010000); - ftmatrix.xx = FLOATOBJ_GetLong(&efTemp); + matrix->xx = FLOATOBJ_GetLong(&efTemp); efTemp = pmx->efM12; FLOATOBJ_MulLong(&efTemp, 0x00010000); - ftmatrix.xy = FLOATOBJ_GetLong(&efTemp); + matrix->xy = FLOATOBJ_GetLong(&efTemp); efTemp = pmx->efM21; FLOATOBJ_MulLong(&efTemp, 0x00010000); - ftmatrix.yx = FLOATOBJ_GetLong(&efTemp); + matrix->yx = FLOATOBJ_GetLong(&efTemp); efTemp = pmx->efM22; FLOATOBJ_MulLong(&efTemp, 0x00010000); - ftmatrix.yy = FLOATOBJ_GetLong(&efTemp); + matrix->yy = FLOATOBJ_GetLong(&efTemp); +} +static inline VOID +FtSetCoordinateTransform(FT_Face face, const MATRIX *pmx) +{ + FT_Matrix ftmatrix; + + /* Create a freetype matrix, by converting to 16.16 fixpoint format */ + FT_MatrixFromMATRIX(&ftmatrix, pmx); + /* Set the transformation matrix */ FT_Set_Transform(face, &ftmatrix, 0); } @@ -3183,27 +3189,11 @@ { FT_Matrix ftmatrix; - FLOATOBJ efTemp; + /* Create a freetype matrix, by converting to 16.16 fixpoint format */ PMATRIX pmx = DC_pmxWorldToDevice(dc); + FT_MatrixFromMATRIX(&ftmatrix, pmx); - /* Create a freetype matrix, by converting to 16.16 fixpoint format */ - efTemp = pmx->efM11; - FLOATOBJ_MulLong(&efTemp, 0x00010000); - ftmatrix.xx = FLOATOBJ_GetLong(&efTemp); - - efTemp = pmx->efM12; - FLOATOBJ_MulLong(&efTemp, 0x00010000); - ftmatrix.xy = FLOATOBJ_GetLong(&efTemp); - - efTemp = pmx->efM21; - FLOATOBJ_MulLong(&efTemp, 0x00010000); - ftmatrix.yx = FLOATOBJ_GetLong(&efTemp); - - efTemp = pmx->efM22; - FLOATOBJ_MulLong(&efTemp, 0x00010000); - ftmatrix.yy = FLOATOBJ_GetLong(&efTemp); - FT_Matrix_Multiply(&ftmatrix, &transMat); needsTransform = TRUE; }