From a6e168675dfc908216d16fe0e405ba0b7e49c0cc Mon Sep 17 00:00:00 2001 From: Subhransu Mohanty Date: Wed, 21 Oct 2015 16:00:28 +0900 Subject: [PATCH] ector: fix the rounding issue when applying transformation to shape data in freetype backend. @fix Signed-off-by: Cedric BAIL --- src/lib/ector/software/ector_renderer_software_shape.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/ector/software/ector_renderer_software_shape.c b/src/lib/ector/software/ector_renderer_software_shape.c index 71c2898394..1198fb2435 100644 --- a/src/lib/ector/software/ector_renderer_software_shape.c +++ b/src/lib/ector/software/ector_renderer_software_shape.c @@ -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); }