diff options
author | Grigori Goronzy <greg@blackbox> | 2011-08-08 00:22:32 +0200 |
---|---|---|
committer | Grigori Goronzy <greg@blackbox> | 2011-08-08 00:22:32 +0200 |
commit | 0d391f67d3d1c87cd8e8cff907bd7c6b3b1f9cd8 (patch) | |
tree | 8a7b2c0d04cb490c94c9b45be9cafeaa5fc19788 /libass/ass_render_api.c | |
parent | 37fe952c045963c8c86bc630b6a673df9d728dcc (diff) | |
download | libass-0d391f67d3d1c87cd8e8cff907bd7c6b3b1f9cd8.tar.bz2 libass-0d391f67d3d1c87cd8e8cff907bd7c6b3b1f9cd8.tar.xz |
Runtime shaper selection
Add an API call, ass_set_shaper, and infrastructure to make shapers
selectable at runtime. Currently, this allows to switch between two
shapers: a SIMPLE shaper that maps to FriBidi and a COMPLEX shaper that
maps to HarfBuzz.
Diffstat (limited to 'libass/ass_render_api.c')
-rw-r--r-- | libass/ass_render_api.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libass/ass_render_api.c b/libass/ass_render_api.c index 5b02b46..1d8cba6 100644 --- a/libass/ass_render_api.c +++ b/libass/ass_render_api.c @@ -58,6 +58,15 @@ void ass_set_frame_size(ASS_Renderer *priv, int w, int h) } } +void ass_set_shaper(ASS_Renderer *priv, ASS_ShapingLevel level) +{ + // select the complex shaper for illegal values + if (level == ASS_SHAPING_SIMPLE || level == ASS_SHAPING_COMPLEX) + priv->settings.shaper = level; + else + priv->settings.shaper = ASS_SHAPING_COMPLEX; +} + void ass_set_margins(ASS_Renderer *priv, int t, int b, int l, int r) { if (priv->settings.left_margin != l || priv->settings.right_margin != r || |