Evas font engine: Added skipping of invisible chars to the font drawing function - this means we can't draw them until we add a specil "draw inivisble" mode.

SVN revision: 56424
This commit is contained in:
Tom Hacohen 2011-01-30 10:33:14 +00:00
parent b9c4dbb744
commit d7c2187c1f
1 changed files with 9 additions and 1 deletions

View File

@ -5,7 +5,13 @@
#include "evas_bidi_utils.h" /*defines BIDI_SUPPORT if possible */
#include "evas_font_private.h" /* for Frame-Queuing support */
#define WORD_CACHE_MAXLEN 50
#define EVAS_FONT_CHARACTER_IS_INVISIBLE(x) ( \
((0x200C <= (x)) && ((x) <= 0x200D)) || /* ZWNJ..ZWH */ \
((0x200E <= (x)) && ((x) <= 0x200F)) || /* BIDI stuff */ \
((0x202A <= (x)) && ((x) <= 0x202E)) /* BIDI stuff */ \
)
#define WORD_CACHE_MAXLEN 50
/* How many to cache */
#define WORD_CACHE_NWORDS 40
static int max_cached_words = WORD_CACHE_NWORDS;
@ -530,6 +536,8 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font
int gl, kern;
gl = *text;
if (EVAS_FONT_CHARACTER_IS_INVISIBLE(gl))
continue;
index = evas_common_font_glyph_search(fn, &fi, gl);
LKL(fi->ft_mutex);