summaryrefslogtreecommitdiffstats
path: root/libass/ass_render.c
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-04-20 23:13:34 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-04-20 23:13:34 +0000
commit35cc43696da66b9b6c73df244a5c3d92bd5f5499 (patch)
tree28010d46e1795d740752603dd70671b65f232f6c /libass/ass_render.c
parent05739aa04603230d5b4dac3de812e4bc2beaa30a (diff)
downloadmpv-35cc43696da66b9b6c73df244a5c3d92bd5f5499.tar.bz2
mpv-35cc43696da66b9b6c73df244a5c3d92bd5f5499.tar.xz
Store outline_glyph (glyph border) in glyph cache.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23043 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass/ass_render.c')
-rw-r--r--libass/ass_render.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index 81ab61ce6e..b83a9acfa2 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -1243,6 +1243,7 @@ static void get_outline_glyph(int symbol, glyph_info_t* info, FT_Vector* advance
val = cache_find_glyph(&key);
if (val) {
FT_Glyph_Copy(val->glyph, &info->glyph);
+ FT_Glyph_Copy(val->outline_glyph, &info->outline_glyph);
info->bbox = val->bbox_scaled;
info->advance.x = val->advance.x;
info->advance.y = val->advance.y;
@@ -1255,19 +1256,20 @@ static void get_outline_glyph(int symbol, glyph_info_t* info, FT_Vector* advance
info->advance.y = d16_to_d6(info->glyph->advance.y);
FT_Glyph_Get_CBox( info->glyph, FT_GLYPH_BBOX_PIXELS, &info->bbox);
+ if (render_context.stroker) {
+ info->outline_glyph = info->glyph;
+ error = FT_Glyph_StrokeBorder( &(info->outline_glyph), render_context.stroker, 0 , 0 ); // don't destroy original
+ if (error) {
+ mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_FT_Glyph_Stroke_Error, error);
+ }
+ }
+
FT_Glyph_Copy(info->glyph, &v.glyph);
+ FT_Glyph_Copy(info->outline_glyph, &v.outline_glyph);
v.advance = info->advance;
v.bbox_scaled = info->bbox;
cache_add_glyph(&key, &v);
}
-
- if (render_context.stroker) {
- info->outline_glyph = info->glyph;
- error = FT_Glyph_StrokeBorder( &(info->outline_glyph), render_context.stroker, 0 , 0 ); // don't destroy original
- if (error) {
- mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_FT_Glyph_Stroke_Error, error);
- }
- }
}
/**