summaryrefslogtreecommitdiffstats
path: root/libass/ass_render_api.c
diff options
context:
space:
mode:
authorGrigori Goronzy <greg@blackbox>2011-08-08 00:22:32 +0200
committerGrigori Goronzy <greg@blackbox>2011-08-08 00:22:32 +0200
commit0d391f67d3d1c87cd8e8cff907bd7c6b3b1f9cd8 (patch)
tree8a7b2c0d04cb490c94c9b45be9cafeaa5fc19788 /libass/ass_render_api.c
parent37fe952c045963c8c86bc630b6a673df9d728dcc (diff)
downloadlibass-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.c9
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 ||