summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrcombs <rcombs@rcombs.me>2022-07-26 23:13:52 -0500
committerrcombs <rcombs@rcombs.me>2022-11-15 21:14:37 -0600
commitfaeacdae423ee23e5f475d64abaf35993fa961ed (patch)
treef111979189cf5484352737af43531bbd9d488d8d
parent973e855d902387650ea918c2b75841d540910d47 (diff)
downloadlibass-faeacdae423ee23e5f475d64abaf35993fa961ed.tar.bz2
libass-faeacdae423ee23e5f475d64abaf35993fa961ed.tar.xz
ass_render: use state local in parse_events()
-rw-r--r--libass/ass_render.c72
1 files changed, 36 insertions, 36 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index f1055be..c7b09a1 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -2069,7 +2069,7 @@ static bool parse_events(ASS_Renderer *render_priv, ASS_Event *event)
p = ass_parse_tags(state, p, q, 1., false);
assert(*p == '}');
p++;
- } else if (render_priv->state.drawing_scale) {
+ } else if (state->drawing_scale) {
q = p;
if (*p == '{')
q++;
@@ -2090,7 +2090,7 @@ static bool parse_events(ASS_Renderer *render_priv, ASS_Event *event)
break;
// face could have been changed in get_next_char
- if (!render_priv->state.font)
+ if (!state->font)
goto fail;
if (text_info->length >= text_info->max_glyphs) {
@@ -2114,67 +2114,67 @@ static bool parse_events(ASS_Renderer *render_priv, ASS_Event *event)
// Parse drawing
if (drawing_text.str) {
info->drawing_text = drawing_text;
- info->drawing_scale = render_priv->state.drawing_scale;
- info->drawing_pbo = render_priv->state.pbo;
+ info->drawing_scale = state->drawing_scale;
+ info->drawing_pbo = state->pbo;
}
// Fill glyph information
info->symbol = code;
- info->font = render_priv->state.font;
+ info->font = state->font;
if (!drawing_text.str)
ass_cache_inc_ref(info->font);
for (int i = 0; i < 4; i++) {
- uint32_t clr = render_priv->state.c[i];
+ uint32_t clr = state->c[i];
info->a_pre_fade[i] = _a(clr);
- ass_apply_fade(&clr, render_priv->state.fade);
+ ass_apply_fade(&clr, state->fade);
info->c[i] = clr;
}
- info->effect_type = render_priv->state.effect_type;
- info->effect_timing = render_priv->state.effect_timing;
- info->effect_skip_timing = render_priv->state.effect_skip_timing;
- info->reset_effect = render_priv->state.reset_effect;
+ info->effect_type = state->effect_type;
+ info->effect_timing = state->effect_timing;
+ info->effect_skip_timing = state->effect_skip_timing;
+ info->reset_effect = state->reset_effect;
// VSFilter compatibility: font glyphs use PlayResY scaling in both dimensions
info->font_size =
- fabs(render_priv->state.font_size * render_priv->state.screen_scale_y);
- info->be = render_priv->state.be;
- info->blur = render_priv->state.blur;
- info->shadow_x = render_priv->state.shadow_x;
- info->shadow_y = render_priv->state.shadow_y;
- info->scale_x = render_priv->state.scale_x;
- info->scale_y = render_priv->state.scale_y;
- info->border_style = render_priv->state.border_style;
- info->border_x = render_priv->state.border_x;
- info->border_y = render_priv->state.border_y;
- info->hspacing = render_priv->state.hspacing;
- info->bold = render_priv->state.bold;
- info->italic = render_priv->state.italic;
- info->flags = render_priv->state.flags;
+ fabs(state->font_size * state->screen_scale_y);
+ info->be = state->be;
+ info->blur = state->blur;
+ info->shadow_x = state->shadow_x;
+ info->shadow_y = state->shadow_y;
+ info->scale_x = state->scale_x;
+ info->scale_y = state->scale_y;
+ info->border_style = state->border_style;
+ info->border_x = state->border_x;
+ info->border_y = state->border_y;
+ info->hspacing = state->hspacing;
+ info->bold = state->bold;
+ info->italic = state->italic;
+ info->flags = state->flags;
if (info->font->desc.vertical && code >= VERTICAL_LOWER_BOUND)
info->flags |= DECO_ROTATE;
- info->frx = render_priv->state.frx;
- info->fry = render_priv->state.fry;
- info->frz = render_priv->state.frz;
- info->fax = render_priv->state.fax;
- info->fay = render_priv->state.fay;
- info->fade = render_priv->state.fade;
+ info->frx = state->frx;
+ info->fry = state->fry;
+ info->frz = state->frz;
+ info->fax = state->fax;
+ info->fay = state->fay;
+ info->fade = state->fade;
info->hspacing_scaled = 0;
info->scale_fix = 1;
if (!drawing_text.str) {
info->hspacing_scaled = double_to_d6(info->hspacing *
- render_priv->state.screen_scale_x / render_priv->par_scale_x *
+ state->screen_scale_x / render_priv->par_scale_x *
info->scale_x);
fix_glyph_scaling(render_priv, info);
}
text_info->length++;
- render_priv->state.effect_type = EF_NONE;
- render_priv->state.effect_timing = 0;
- render_priv->state.effect_skip_timing = 0;
- render_priv->state.reset_effect = false;
+ state->effect_type = EF_NONE;
+ state->effect_timing = 0;
+ state->effect_skip_timing = 0;
+ state->reset_effect = false;
}
return true;