From 373d828a1f685517f08eb3387d7035d986f86268 Mon Sep 17 00:00:00 2001 From: tasn Date: Sun, 30 Jan 2011 10:36:59 +0000 Subject: [PATCH] Evas font-engine: Fixed invisible character handling in the OT walker. Renamed internal var gl in the default walker to _gl, a less common var name. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@56458 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/engines/common/evas_font_default_walk.x | 20 ++++++++++---------- src/lib/engines/common/evas_font_draw.c | 6 ------ src/lib/engines/common/evas_font_ot_walk.x | 8 +++----- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/lib/engines/common/evas_font_default_walk.x b/src/lib/engines/common/evas_font_default_walk.x index b06315c..bd63255 100644 --- a/src/lib/engines/common/evas_font_default_walk.x +++ b/src/lib/engines/common/evas_font_default_walk.x @@ -48,7 +48,7 @@ * which is the current index in the text. This macro exposes (inside * the loop) the following vars: * adv - advancement - * gl - the current unicode code point + * _gl - the current unicode code point * bear_x, bear_y, width - info about the bitmap * pen_x, pen_y - (also available outside of the loop, but updated here) * fg - the font glyph. @@ -84,9 +84,9 @@ { \ FT_UInt index; \ RGBA_Font_Glyph *fg; \ - int gl, kern; \ - gl = *text; \ - if (gl == 0) break; + int _gl, kern; \ + _gl = *text; \ + if (_gl == 0) break; /** * @def EVAS_FONT_WALK_DEFAULT_TEXT_LOGICAL_START * @internal @@ -95,7 +95,7 @@ * which is the current index in the text. This macro exposes (inside * the loop) the following vars: * adv - advancement - * gl - the current unicode code point + * _gl - the current unicode code point * bear_x, bear_y, width - info about the bitmap * pen_x, pen_y - (also available outside of the loop, but updated here) * fg - the font glyph. @@ -114,9 +114,9 @@ { \ FT_UInt index; \ RGBA_Font_Glyph *fg; \ - int gl, kern; \ - gl = *text; \ - if (gl == 0) break; + int _gl, kern; \ + _gl = *text; \ + if (_gl == 0) break; /*FIXME: doc */ #define EVAS_FONT_WALK_DEFAULT_X_OFF (kern) @@ -152,7 +152,7 @@ * @see EVAS_FONT_WALK_DEFAULT_TEXT_END */ #define EVAS_FONT_WALK_DEFAULT_TEXT_WORK(is_visual) \ - index = evas_common_font_glyph_search(fn, &fi, gl); \ + index = evas_common_font_glyph_search(fn, &fi, _gl); \ LKL(fi->ft_mutex); \ fg = evas_common_font_int_cache_glyph_get(fi, index); \ if (!fg) \ @@ -161,7 +161,7 @@ continue; \ } \ kern = 0; \ - if (EVAS_FONT_CHARACTER_IS_INVISIBLE(gl)) \ + if (EVAS_FONT_CHARACTER_IS_INVISIBLE(_gl)) \ { \ visible = 0; \ } \ diff --git a/src/lib/engines/common/evas_font_draw.c b/src/lib/engines/common/evas_font_draw.c index 52275c6..931a973 100644 --- a/src/lib/engines/common/evas_font_draw.c +++ b/src/lib/engines/common/evas_font_draw.c @@ -514,9 +514,6 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font { int chr_x, chr_y, chr_w; - if (EVAS_FONT_CHARACTER_IS_INVISIBLE(gl)) - continue; - EVAS_FONT_WALK_OT_TEXT_WORK(EINA_TRUE); if (dc->font_ext.func.gl_new) @@ -666,9 +663,6 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font { int chr_x, chr_y, chr_w; - if (EVAS_FONT_CHARACTER_IS_INVISIBLE(gl)) - continue; - EVAS_FONT_WALK_DEFAULT_TEXT_WORK(EINA_TRUE); if (dc->font_ext.func.gl_new) diff --git a/src/lib/engines/common/evas_font_ot_walk.x b/src/lib/engines/common/evas_font_ot_walk.x index cbc5b2c..d848e89 100644 --- a/src/lib/engines/common/evas_font_ot_walk.x +++ b/src/lib/engines/common/evas_font_ot_walk.x @@ -34,8 +34,7 @@ { \ FT_UInt index; \ RGBA_Font_Glyph *fg; \ - int gl, kern; \ - gl = 0; /* FIXME: hack */ + int kern; \ /** * @def EVAS_FONT_WALK_OT_TEXT_LOGICAL_START * @internal @@ -78,8 +77,7 @@ { \ FT_UInt index; \ RGBA_Font_Glyph *fg; \ - int gl, kern; \ - gl = 0; /* FIXME: hack */ + int kern; \ /*FIXME: doc */ #define EVAS_FONT_WALK_OT_X_OFF \ @@ -133,7 +131,7 @@ continue; \ } \ kern = 0; \ - if (EVAS_FONT_CHARACTER_IS_INVISIBLE(gl)) \ + if (EVAS_FONT_CHARACTER_IS_INVISIBLE(text[EVAS_FONT_WALK_OT_POS])) \ { \ visible = 0; \ } \ -- 2.7.4