summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrcombs <rcombs@rcombs.me>2022-07-27 00:04:53 -0500
committerrcombs <rcombs@rcombs.me>2022-11-15 21:14:37 -0600
commitf60d8b91087eb85be0ff02a4c1cac64627949afa (patch)
tree77d71bf3f33bd73ad302722f94c6be65bfd8c6c2
parent85e340d4de9cbfda4a12c1b2e51863081a92a002 (diff)
downloadlibass-f60d8b91087eb85be0ff02a4c1cac64627949afa.tar.bz2
libass-f60d8b91087eb85be0ff02a4c1cac64627949afa.tar.xz
ass_render: add setup_shaper() function
-rw-r--r--libass/ass_render.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index 2e9d76e..af0e5b6 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -3053,6 +3053,21 @@ static void check_cache_limits(ASS_Renderer *priv, CacheStore *cache)
ass_cache_cut(cache->outline_cache, cache->glyph_max);
}
+static void setup_shaper(ASS_Shaper *shaper, ASS_Renderer *render_priv)
+{
+ ASS_Track *track = render_priv->track;
+
+ ass_shaper_set_kerning(shaper, track->Kerning);
+ ass_shaper_set_language(shaper, track->Language);
+ ass_shaper_set_level(shaper, render_priv->settings.shaper);
+#ifdef USE_FRIBIDI_EX_API
+ ass_shaper_set_bidi_brackets(shaper,
+ track->parser_priv->feature_flags & FEATURE_MASK(ASS_FEATURE_BIDI_BRACKETS));
+#endif
+ ass_shaper_set_whole_text_layout(shaper,
+ track->parser_priv->feature_flags & FEATURE_MASK(ASS_FEATURE_WHOLE_TEXT_LAYOUT));
+}
+
/**
* \brief Start a new frame
*/
@@ -3084,15 +3099,7 @@ ass_start_frame(ASS_Renderer *render_priv, ASS_Track *track,
render_priv->fontselect, render_priv->num_emfonts);
}
- ass_shaper_set_kerning(render_priv->shaper, track->Kerning);
- ass_shaper_set_language(render_priv->shaper, track->Language);
- ass_shaper_set_level(render_priv->shaper, render_priv->settings.shaper);
-#ifdef USE_FRIBIDI_EX_API
- ass_shaper_set_bidi_brackets(render_priv->shaper,
- track->parser_priv->feature_flags & FEATURE_MASK(ASS_FEATURE_BIDI_BRACKETS));
-#endif
- ass_shaper_set_whole_text_layout(render_priv->shaper,
- track->parser_priv->feature_flags & FEATURE_MASK(ASS_FEATURE_WHOLE_TEXT_LAYOUT));
+ setup_shaper(render_priv->shaper, render_priv);
// PAR correction
double par = render_priv->settings.par;