[WIN32SS][NTGDI] Don't use FLOAT for orientation (#1574)
authorKatayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
Thu, 23 May 2019 23:24:21 +0000 (08:24 +0900)
committerGitHub <noreply@github.com>
Thu, 23 May 2019 23:24:21 +0000 (08:24 +0900)
Addendum to 0137096. Use 16.16 fixed-point values instead of FLOAT. CORE-15838

win32ss/gdi/ntgdi/freetype.c

index 3dc10bc..eef7cb3 100644 (file)
@@ -3469,7 +3469,6 @@ ftGdiGetGlyphOutline(
     FT_Bitmap ft_bitmap;
     FT_Error error;
     INT left, right, top = 0, bottom = 0;
-    FT_Angle angle = 0;
     FT_Int load_flags = FT_LOAD_DEFAULT | FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH;
     FLOAT eM11, widthRatio = 1.0;
     FT_Matrix transMat = identityMat;
@@ -3599,14 +3598,8 @@ ftGdiGetGlyphOutline(
     if (orientation)
     {
         FT_Matrix rotationMat;
-        FT_Vector vecAngle;
         DPRINT("Rotation Trans!\n");
-        angle = FT_FixedFromFloat((FLOAT)orientation / 10.0);
-        FT_Vector_Unit(&vecAngle, angle);
-        rotationMat.xx = vecAngle.x;
-        rotationMat.xy = -vecAngle.y;
-        rotationMat.yx = -rotationMat.xy;
-        rotationMat.yy = rotationMat.xx;
+        IntEscapeMatrix(&rotationMat, orientation);
         FT_Matrix_Multiply(&rotationMat, &transMat);
         needsTransform = TRUE;
     }