ector: fix the rounding issue when applying transformation to shape data in freetype...
authorSubhransu Mohanty <sub.mohanty@samsung.com>
Wed, 21 Oct 2015 07:00:28 +0000 (16:00 +0900)
committerCedric BAIL <cedric@osg.samsung.com>
Tue, 24 Nov 2015 22:37:33 +0000 (14:37 -0800)
@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
src/lib/ector/software/ector_renderer_software_shape.c

index 71c2898..1198fb2 100644 (file)
@@ -31,7 +31,7 @@ typedef struct _Outline
 }Outline;
 
 
-#define TO_FT_COORD(x) ((x) * 64); // to freetype 26.6 coordinate.
+#define TO_FT_COORD(x) ((x) * 64) // to freetype 26.6 coordinate.
 
 static inline void
 _grow_outline_contour(Outline *outline, int num)
@@ -185,14 +185,15 @@ static void _outline_transform(Outline *outline, Eina_Matrix3 *m)
    double x, y;
    SW_FT_Outline *ft_outline = &outline->ft_outline;
 
-   if (m)
+   if (m && (eina_matrix3_type_get(m) != EINA_MATRIX_TYPE_IDENTITY))
      {
         for (i = 0; i < ft_outline->n_points; i++)
           {
              eina_matrix3_point_transform(m,
-                                          ft_outline->points[i].x/64,/* convert back to normal coord.*/
-                                          ft_outline->points[i].y/64,/* convert back to normal coord.*/
+                                          ft_outline->points[i].x/64.0,/* convert back to normal coord.*/
+                                          ft_outline->points[i].y/64.0,/* convert back to normal coord.*/
                                           &x, &y);
+
              ft_outline->points[i].x = TO_FT_COORD(x);
              ft_outline->points[i].y = TO_FT_COORD(y);
           }