Mercurial > mplayer.hg
comparison libass/ass_render.c @ 23134:1de2a46a0987
Add -ass-hinting option for setting font hinting method.
It is possible to separately configure hinting for scaled and unscaled osd.
The default is native hinter for unscaled osd (only vo_gl at this point),
no hinting for vf_ass.
author | eugeni |
---|---|
date | Fri, 27 Apr 2007 14:25:36 +0000 |
parents | 0574817cc6cb |
children | 15a05bafc9c7 |
comparison
equal
deleted
inserted
replaced
23133:0574817cc6cb | 23134:1de2a46a0987 |
---|---|
54 int left_margin; | 54 int left_margin; |
55 int right_margin; | 55 int right_margin; |
56 int use_margins; // 0 - place all subtitles inside original frame | 56 int use_margins; // 0 - place all subtitles inside original frame |
57 // 1 - use margins for placing toptitles and subtitles | 57 // 1 - use margins for placing toptitles and subtitles |
58 double aspect; // frame aspect ratio, d_width / d_height. | 58 double aspect; // frame aspect ratio, d_width / d_height. |
59 ass_hinting_t hinting; | |
59 | 60 |
60 char* default_font; | 61 char* default_font; |
61 char* default_family; | 62 char* default_family; |
62 } ass_settings_t; | 63 } ass_settings_t; |
63 | 64 |
1247 info->bbox = val->bbox_scaled; | 1248 info->bbox = val->bbox_scaled; |
1248 info->advance.x = val->advance.x; | 1249 info->advance.x = val->advance.x; |
1249 info->advance.y = val->advance.y; | 1250 info->advance.y = val->advance.y; |
1250 } else { | 1251 } else { |
1251 glyph_hash_val_t v; | 1252 glyph_hash_val_t v; |
1252 info->glyph = ass_font_get_glyph(frame_context.ass_priv->fontconfig_priv, render_context.font, symbol); | 1253 info->glyph = ass_font_get_glyph(frame_context.ass_priv->fontconfig_priv, render_context.font, symbol, global_settings->hinting); |
1253 if (!info->glyph) | 1254 if (!info->glyph) |
1254 return; | 1255 return; |
1255 info->advance.x = d16_to_d6(info->glyph->advance.x); | 1256 info->advance.x = d16_to_d6(info->glyph->advance.x); |
1256 info->advance.y = d16_to_d6(info->glyph->advance.y); | 1257 info->advance.y = d16_to_d6(info->glyph->advance.y); |
1257 FT_Glyph_Get_CBox( info->glyph, FT_GLYPH_BBOX_PIXELS, &info->bbox); | 1258 FT_Glyph_Get_CBox( info->glyph, FT_GLYPH_BBOX_PIXELS, &info->bbox); |
2043 | 2044 |
2044 void ass_set_font_scale(ass_renderer_t* priv, double font_scale) | 2045 void ass_set_font_scale(ass_renderer_t* priv, double font_scale) |
2045 { | 2046 { |
2046 if (priv->settings.font_size_coeff != font_scale) { | 2047 if (priv->settings.font_size_coeff != font_scale) { |
2047 priv->settings.font_size_coeff = font_scale; | 2048 priv->settings.font_size_coeff = font_scale; |
2049 ass_reconfigure(priv); | |
2050 } | |
2051 } | |
2052 | |
2053 void ass_set_hinting(ass_renderer_t* priv, ass_hinting_t ht) | |
2054 { | |
2055 if (priv->settings.hinting != ht) { | |
2056 priv->settings.hinting = ht; | |
2048 ass_reconfigure(priv); | 2057 ass_reconfigure(priv); |
2049 } | 2058 } |
2050 } | 2059 } |
2051 | 2060 |
2052 int ass_set_fonts(ass_renderer_t* priv, const char* default_font, const char* default_family) | 2061 int ass_set_fonts(ass_renderer_t* priv, const char* default_font, const char* default_family) |