Evas font: force freetype v35 ttf interpreter
authorDaniel Hirt <daniel.hirt@samsung.com>
Sun, 18 Sep 2016 14:02:27 +0000 (17:02 +0300)
committerDaniel Hirt <daniel.hirt@samsung.com>
Tue, 20 Sep 2016 08:29:38 +0000 (11:29 +0300)
Ref T4623

v40 bytecode interpreter is official as of freetype 2.7.
The results don't look so good at the moment. The text looks and glyph
positioning seem worse than they were with the previous v35 interpreter.

So, in the meantime we'll keep using v35, just so everything looks
normal again.

Although the v40 is relevant since around 2.6.3, I rather not do any
FREETYPE_MINOR checks in this patch, because distributions might ship
previous versions with the other (v38) interpreter enabled.

src/lib/evas/common/evas_font_main.c

index 7562d28..ba56848 100644 (file)
@@ -16,6 +16,7 @@
 #include FT_OUTLINE_H
 #include FT_SYNTHESIS_H
 #include FT_BITMAP_H
+#include FT_TRUETYPE_DRIVER_H
 
 FT_Library      evas_ft_lib = 0;
 static int      initialised = 0;
@@ -29,11 +30,14 @@ evas_common_font_init(void)
 {
    int error;
    const char *s;
+   FT_UInt interpreter_version = TT_INTERPRETER_VERSION_35;
 
    initialised++;
    if (initialised != 1) return;
    error = FT_Init_FreeType(&evas_ft_lib);
    if (error) return;
+   FT_Property_Set(evas_ft_lib,
+         "truetype", "interpreter-version", &interpreter_version);
    evas_common_font_load_init();
    evas_common_font_draw_init();
    s = getenv("EVAS_FONT_DPI");