|
|
来自于sunmoon1997,好像很难找了(?),主要解决simsun英文粗体(个人主要是windows习惯了),如有必要请添加到gentoo-china Overlay。- --- src/cairo-ft-font.c 2007-06-08 01:45:39.000000000 +0800
- +++ src/cairo-ft-font.c.new 2007-11-07 18:52:50.000000000 +0800
- @@ -1896,6 +1896,7 @@
- FT_Glyph_Metrics *metrics;
- double x_factor, y_factor;
- cairo_bool_t vertical_layout = FALSE;
- + cairo_bool_t fake_bitmap_glyph = FALSE;
- cairo_status_t status;
-
- face = _cairo_ft_unscaled_font_lock_face (unscaled);
- @@ -1914,6 +1915,16 @@
- (info & CAIRO_SCALED_GLYPH_INFO_SURFACE) == 0)
- load_flags |= FT_LOAD_NO_BITMAP;
-
- + if (info & CAIRO_SCALED_GLYPH_INFO_SURFACE &&
- + scaled_font->ft_options.base.hint_style != CAIRO_HINT_STYLE_NONE &&
- + scaled_font->ft_options.base.antialias == CAIRO_ANTIALIAS_NONE) {
- + if ((scaled_font->ft_options.extra_flags & CAIRO_FT_OPTIONS_EMBOLDEN ||
- + unscaled->have_shape) && unscaled->y_scale < 18) {
- + fake_bitmap_glyph = TRUE;
- + load_flags |= FT_LOAD_IGNORE_TRANSFORM;
- + }
- + }
- +
- /*
- * Don't pass FT_LOAD_VERTICAL_LAYOUT to FT_Load_Glyph here as
- * suggested by freetype people.
- @@ -1886,6 +1897,17 @@
-
- glyph = face->glyph;
-
- + if (fake_bitmap_glyph &&
- + glyph->format == FT_GLYPH_FORMAT_OUTLINE &&
- + glyph->outline.n_points != 0) {
- + error = FT_Render_Glyph (glyph, FT_RENDER_MODE_MONO);
- +
- + if (error) {
- + status = CAIRO_STATUS_NO_MEMORY;
- + goto FAIL;
- + }
- + }
- +
- #if HAVE_FT_GLYPHSLOT_EMBOLDEN
- /*
- * embolden glyphs if requested
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|