From dccd5e19ee6312c3f9b304f3d4162c96bd480695 Mon Sep 17 00:00:00 2001 From: eugeni Date: Wed, 13 Sep 2006 15:35:10 +0000 Subject: Make font outline width proportional to movie resolution. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19831 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libass/ass_render.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'libass') diff --git a/libass/ass_render.c b/libass/ass_render.c index 12f06b8bd2..6aee3cd8d4 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -135,6 +135,7 @@ typedef struct frame_context_s { int orig_width; // frame width ( = screen width - margins ) ass_track_t* track; long long time; // frame's timestamp, ms + double font_scale; double font_scale_x; // x scale applied to all glyphs to preserve text aspect ratio } frame_context_t; @@ -521,9 +522,7 @@ double ass_internal_font_size_coeff = 0.8; static void change_font_size(int sz) { - double size = (double)sz * global_settings->font_size_coeff * ass_internal_font_size_coeff; - size *= frame_context.orig_height; - size /= frame_context.track->PlayResY; + double size = sz * frame_context.font_scale; if (size < 1) size = 1; @@ -579,7 +578,7 @@ static void change_border(double border) } else { render_context.border = border; FT_Stroker_Set( render_context.stroker, - (int)(64 * border), + (int)(64 * border * frame_context.font_scale), FT_STROKER_LINECAP_ROUND, FT_STROKER_LINEJOIN_ROUND, 0 ); @@ -1878,6 +1877,9 @@ static int ass_start_frame(ass_instance_t *priv, ass_track_t* track, long long n ass_lazy_track_init(); + frame_context.font_scale = global_settings->font_size_coeff * ass_internal_font_size_coeff * + frame_context.orig_height / frame_context.track->PlayResY; + if (frame_context.width * track->PlayResY == frame_context.height * track->PlayResX) frame_context.font_scale_x = 1.; else -- cgit v1.2.3