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)