# HG changeset patch # User eugeni # Date 1158161710 0 # Node ID f351a3fc3e42cf9839983c7855d709d4d41b1374 # Parent 2e2480fb43bf471887f8de208c0510d2bd2accfb Make font outline width proportional to movie resolution. diff -r 2e2480fb43bf -r f351a3fc3e42 libass/ass_render.c --- a/libass/ass_render.c Wed Sep 13 15:08:16 2006 +0000 +++ b/libass/ass_render.c Wed Sep 13 15:35:10 2006 +0000 @@ -135,6 +135,7 @@ 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 @@ 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 @@ } 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 @@ 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