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.

SVN revision: 56458
This commit is contained in:
Tom Hacohen 2011-01-30 10:36:59 +00:00
parent f4a6807c4d
commit 3b88692aa7
3 changed files with 13 additions and 21 deletions

View 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.
@ -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; \
} \

View 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)

View 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 \
@ -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; \
} \