diff options
Diffstat (limited to 'libass/ass_render.c')
-rw-r--r-- | libass/ass_render.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c index e592548..45d88bb 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -1097,9 +1097,16 @@ get_outline_glyph(ASS_Renderer *priv, GlyphInfo *info) v.desc = drawing->desc; key.u.drawing.text = strdup(drawing->text); } else { - // arbitrary, not too small to prevent grid fitting rounding effects - // XXX: this is a rather crude hack - const double ft_size = 256.0; + double ft_size; + if (priv->settings.hinting == ASS_HINTING_NONE) { + // arbitrary, not too small to prevent grid fitting rounding effects + // XXX: this is a rather crude hack + ft_size = 256.0; + } else { + // If hinting is enabled, we want to pass the real font size + // to freetype. Normalize scale_y to 1.0. + ft_size = info->scale_y * info->font_size; + } ass_face_set_size(info->font->faces[info->face_index], ft_size); ass_font_set_transform(info->font, info->scale_x * info->font_size / ft_size, |