summaryrefslogtreecommitdiffstats
path: root/libass/ass_render.c
diff options
context:
space:
mode:
authorOleg Oshmyan <chortos@inbox.lv>2014-01-08 04:18:56 +0200
committerOleg Oshmyan <chortos@inbox.lv>2014-01-08 04:18:56 +0200
commit1f5eb5ebc776a64cb7034c489353adc127d75793 (patch)
treef9c8114782dcfc3ea304b6538b95db774d59b837 /libass/ass_render.c
parent0b36713ae21722102f435e4645ac79dfccba6730 (diff)
downloadlibass-1f5eb5ebc776a64cb7034c489353adc127d75793.tar.bz2
libass-1f5eb5ebc776a64cb7034c489353adc127d75793.tar.xz
Do not reset \pbo and \p values after each drawing
Confirmed with VSFilter. This complements the previous commit.
Diffstat (limited to 'libass/ass_render.c')
-rw-r--r--libass/ass_render.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index dbc487c..1edb9ae 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -907,7 +907,7 @@ init_render_context(ASS_Renderer *render_priv, ASS_Event *event)
render_priv->state.clip_mode = 0;
render_priv->state.detect_collisions = 1;
render_priv->state.fade = 0;
- render_priv->state.drawing_mode = 0;
+ render_priv->state.drawing_scale = 0;
render_priv->state.effect_type = EF_NONE;
render_priv->state.effect_timing = 0;
render_priv->state.effect_skip_timing = 0;
@@ -1755,7 +1755,7 @@ ass_render_event(ASS_Renderer *render_priv, ASS_Event *event,
if (!in_tag && *p == '{') { // '\0' goes here
p++;
in_tag = 1;
- if (render_priv->state.drawing_mode) {
+ if (render_priv->state.drawing_scale) {
// A drawing definition has just ended.
// Exit and create the drawing now lest we
// accidentally let it consume later text
@@ -1775,7 +1775,7 @@ ass_render_event(ASS_Renderer *render_priv, ASS_Event *event,
}
} else {
code = get_next_char(render_priv, &p);
- if (code && render_priv->state.drawing_mode) {
+ if (code && render_priv->state.drawing_scale) {
ass_drawing_add_char(drawing, (char) code);
continue; // skip everything in drawing mode
}
@@ -1802,6 +1802,8 @@ ass_render_event(ASS_Renderer *render_priv, ASS_Event *event,
render_priv->font_scale;
drawing->scale_y = render_priv->state.scale_y *
render_priv->font_scale;
+ drawing->scale = render_priv->state.drawing_scale;
+ drawing->pbo = render_priv->state.pbo;
code = 0xfffc; // object replacement character
info->drawing = drawing;
}