Revert "Upstream merge"
[framework/uifw/evas.git] / src / lib / engines / common / evas_font_private.h
1 #ifndef _EVAS_FONT_PRIVATE_H
2 # define _EVAS_FONT_PRIVATE_H
3 #include "evas_font_ot.h"
4
5 #ifdef BUILD_PTHREAD
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
9 #endif
10
11 # if defined(EVAS_FRAME_QUEUING) || defined(BUILD_PIPE_RENDER)
12 #  define FTLOCK() LKL(lock_font_draw)
13 #  define FTUNLOCK() LKU(lock_font_draw)
14
15 #  define BIDILOCK() LKL(lock_bidi)
16 #  define BIDIUNLOCK() LKU(lock_bidi)
17
18 #  define OTLOCK() LKL(lock_ot)
19 #  define OTUNLOCK() LKU(lock_ot)
20 # else
21 #  define FTLOCK(x)
22 #  define FTUNLOCK(x)
23
24 #  define BIDILOCK()
25 #  define BIDIUNLOCK()
26
27 /* Macros for text walking */
28 #  define OTLOCK()
29 #  define OTUNLOCK()
30 # endif
31
32 void evas_common_font_source_unload(RGBA_Font_Source *fs);
33 void evas_common_font_source_reload(RGBA_Font_Source *fs);
34
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);
40
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)
44
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 */ \
49       )
50
51 # include "evas_font_default_walk.x"
52 #endif /* !_EVAS_FONT_PRIVATE_H */