diff options
author | rcombs <rcombs@rcombs.me> | 2022-07-27 00:04:53 -0500 |
---|---|---|
committer | rcombs <rcombs@rcombs.me> | 2022-11-15 21:14:37 -0600 |
commit | f60d8b91087eb85be0ff02a4c1cac64627949afa (patch) | |
tree | 77d71bf3f33bd73ad302722f94c6be65bfd8c6c2 | |
parent | 85e340d4de9cbfda4a12c1b2e51863081a92a002 (diff) | |
download | libass-f60d8b91087eb85be0ff02a4c1cac64627949afa.tar.bz2 libass-f60d8b91087eb85be0ff02a4c1cac64627949afa.tar.xz |
ass_render: add setup_shaper() function
-rw-r--r-- | libass/ass_render.c | 25 |
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; |