From ba770fa05426c04d5a1900b37fc7bcc700584720 Mon Sep 17 00:00:00 2001 From: Grigori Goronzy Date: Fri, 10 Jul 2009 19:31:07 +0200 Subject: Slight optimizations for \be, \blur Enlarge bitmap glyphs less for \be, this is especially effective for lots of \be applications. Also make sure that the gaussian blur buffers are only updated if gaussian blur is actually used for a particular glyph. --- libass/ass_bitmap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libass/ass_bitmap.c') diff --git a/libass/ass_bitmap.c b/libass/ass_bitmap.c index 16d2b351..d28d47b4 100644 --- a/libass/ass_bitmap.c +++ b/libass/ass_bitmap.c @@ -355,7 +355,7 @@ int glyph_to_bitmap(ass_synth_priv_t *priv_blur, bitmap_t **bm_g, bitmap_t **bm_o, bitmap_t **bm_s, int be, double blur_radius, FT_Vector shadow_offset) { - int bord = be ? (be / 4 + 1) : 0; + int bord = be ? (be / 8 + 1) : 0; blur_radius *= 2; bord = (blur_radius > 0.0) ? blur_radius + 1 : bord; if (bord == 0 && (shadow_offset.x || shadow_offset.y)) @@ -377,9 +377,6 @@ int glyph_to_bitmap(ass_synth_priv_t *priv_blur, return 1; } } - if (*bm_o) - resize_tmp(priv_blur, (*bm_o)->w, (*bm_o)->h); - resize_tmp(priv_blur, (*bm_g)->w, (*bm_g)->h); if (be) { while (be--) { @@ -390,6 +387,9 @@ int glyph_to_bitmap(ass_synth_priv_t *priv_blur, } } else { if (blur_radius > 0.0) { + if (*bm_o) + resize_tmp(priv_blur, (*bm_o)->w, (*bm_o)->h); + resize_tmp(priv_blur, (*bm_g)->w, (*bm_g)->h); generate_tables(priv_blur, blur_radius); if (*bm_o) ass_gauss_blur((*bm_o)->buffer, priv_blur->tmp, -- cgit v1.2.3