Evas font-engine: Fixed invisible character handling in the OT walker. Renamed intern...
authortasn <tasn@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 30 Jan 2011 10:36:59 +0000 (10:36 +0000)
committertasn <tasn@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 30 Jan 2011 10:36:59 +0000 (10:36 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@56458 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/engines/common/evas_font_default_walk.x
src/lib/engines/common/evas_font_draw.c
src/lib/engines/common/evas_font_ot_walk.x

index b06315c..bd63255 100644 (file)
@@ -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.
           { \
              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)
  * @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) \
                   continue; \
                } \
              kern = 0; \
-             if (EVAS_FONT_CHARACTER_IS_INVISIBLE(gl)) \
+             if (EVAS_FONT_CHARACTER_IS_INVISIBLE(_gl)) \
                { \
                   visible = 0; \
                } \
index 52275c6..931a973 100644 (file)
@@ -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)
index cbc5b2c..d848e89 100644 (file)
@@ -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 \
                   continue; \
                } \
              kern = 0; \
-             if (EVAS_FONT_CHARACTER_IS_INVISIBLE(gl)) \
+             if (EVAS_FONT_CHARACTER_IS_INVISIBLE(text[EVAS_FONT_WALK_OT_POS])) \
                { \
                   visible = 0; \
                } \