Byeongsik Jeon <bsjeon(a)hanmail.net> wrote:
The truetype bytecode interpreter of the Freetype appears to have the following problems depending on the version. - v35: MS cleartype font(ex. Consolas) rendering is ugly. - v40: MS legacy font (ex. Tahoma) rendering is ugly. Some fonts return the wrong values even for the glyph metrics.
Is this a Freetype bug? Basically NOT.
Arguably this is a Freetype bug, applications should not fiddle with underlying interpreter versions or even pretend to know anything about truetype interpreter implementation details.
+static void set_forced_interpreter_version(void) +{ + static const char property_name[] = "truetype:interpreter-version="; + const char *env; + + env = getenv( "WINE_GDI_PROPERTIES" ); + if ( env && (env = strstr( env, property_name )) ) + { + forced_interpreter_version = atoi( env + sizeof(property_name) - 1 ); + + TRACE( "forced_interpreter_version = %d\n" , forced_interpreter_version ); + } +}
Usually Wine tries to avoid such ugly hacks.
+ if (forced_interpreter_version == 0 && get_gasp_flags( ret, NULL, &gasp_version )) + { + ret->interpreter_version = 0; + + if (gasp_version == 1) + { + if (interpreter_v40_supported) + ret->interpreter_version = 40; + else if (interpreter_v38_supported) + ret->interpreter_version = 38; + } + else if (interpreter_v35_supported) + ret->interpreter_version = 35; + }
Shouldn't Freetype itself set appropriate interpreter version based on GASP flags instead? -- Dmitry.