1 #ifndef _EVAS_FONT_PRIVATE_H
2 # define _EVAS_FONT_PRIVATE_H
3 #include "evas_font_ot.h"
6 extern LK(lock_font_draw); // for freetype2 API calls
7 extern LK(lock_bidi); // for fribidi API calls
8 extern LK(lock_ot); // for harfbuzz calls
11 # if defined(EVAS_FRAME_QUEUING) || defined(BUILD_PIPE_RENDER)
12 # define FTLOCK() LKL(lock_font_draw)
13 # define FTUNLOCK() LKU(lock_font_draw)
15 # define BIDILOCK() LKL(lock_bidi)
16 # define BIDIUNLOCK() LKU(lock_bidi)
18 # define OTLOCK() LKL(lock_ot)
19 # define OTUNLOCK() LKU(lock_ot)
27 /* Macros for text walking */
32 void evas_common_font_source_unload(RGBA_Font_Source *fs);
33 void evas_common_font_source_reload(RGBA_Font_Source *fs);
35 void evas_common_font_int_promote(RGBA_Font_Int *fi);
36 void evas_common_font_int_use_increase(int size);
37 void evas_common_font_int_use_trim(void);
38 void evas_common_font_int_unload(RGBA_Font_Int *fi);
39 void evas_common_font_int_reload(RGBA_Font_Int *fi);
41 /* 6th bit is on is the same as frac part >= 0.5 */
42 # define EVAS_FONT_ROUND_26_6_TO_INT(x) \
43 (((x + 0x20) & -0x40) >> 6)
45 # define EVAS_FONT_CHARACTER_IS_INVISIBLE(x) ( \
46 ((0x200C <= (x)) && ((x) <= 0x200D)) || /* ZWNJ..ZWH */ \
47 ((0x200E <= (x)) && ((x) <= 0x200F)) || /* BIDI stuff */ \
48 ((0x202A <= (x)) && ((x) <= 0x202E)) /* BIDI stuff */ \
51 # include "evas_font_default_walk.x"
52 #endif /* !_EVAS_FONT_PRIVATE_H */