summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrcombs <rcombs@rcombs.me>2022-07-26 23:22:08 -0500
committerrcombs <rcombs@rcombs.me>2022-11-15 21:14:37 -0600
commit6095a9c089fb59534fd0a28d05d6ecfb9a391c7b (patch)
treed780ccf9b0683648242bb22846e9468cc3130399
parent42ca6db6eabab5a27a4e564f299ef42d546f9267 (diff)
downloadlibass-6095a9c089fb59534fd0a28d05d6ecfb9a391c7b.tar.bz2
libass-6095a9c089fb59534fd0a28d05d6ecfb9a391c7b.tar.xz
ass_render: take RenderContext* in init_render_context()
-rw-r--r--libass/ass_render.c74
1 files changed, 38 insertions, 36 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index 9241853..a955c17 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -1085,43 +1085,45 @@ void ass_reset_render_context(RenderContext *state, ASS_Style *style)
}
/**
- * \brief Start new event. Reset render_priv->state.
+ * \brief Start new event. Reset state.
*/
static void
-init_render_context(ASS_Renderer *render_priv, ASS_Event *event)
-{
- render_priv->state.event = event;
- render_priv->state.parsed_tags = 0;
- render_priv->state.evt_type = EVENT_NORMAL;
-
- render_priv->state.wrap_style = render_priv->track->WrapStyle;
-
- render_priv->state.pos_x = 0;
- render_priv->state.pos_y = 0;
- render_priv->state.org_x = 0;
- render_priv->state.org_y = 0;
- render_priv->state.have_origin = 0;
- render_priv->state.clip_x0 = 0;
- render_priv->state.clip_y0 = 0;
- render_priv->state.clip_x1 = render_priv->track->PlayResX;
- render_priv->state.clip_y1 = render_priv->track->PlayResY;
- render_priv->state.clip_mode = 0;
- render_priv->state.detect_collisions = 1;
- render_priv->state.fade = 0;
- render_priv->state.drawing_scale = 0;
- render_priv->state.pbo = 0;
- 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;
-
- ass_apply_transition_effects(&render_priv->state);
- render_priv->state.explicit = render_priv->state.evt_type != EVENT_NORMAL ||
- ass_event_has_hard_overrides(event->Text);
-
- ass_reset_render_context(&render_priv->state, NULL);
- render_priv->state.alignment = render_priv->state.style->Alignment;
- render_priv->state.justify = render_priv->state.style->Justify;
+init_render_context(RenderContext *state, ASS_Event *event)
+{
+ ASS_Renderer *render_priv = state->renderer;
+
+ state->event = event;
+ state->parsed_tags = 0;
+ state->evt_type = EVENT_NORMAL;
+
+ state->wrap_style = render_priv->track->WrapStyle;
+
+ state->pos_x = 0;
+ state->pos_y = 0;
+ state->org_x = 0;
+ state->org_y = 0;
+ state->have_origin = 0;
+ state->clip_x0 = 0;
+ state->clip_y0 = 0;
+ state->clip_x1 = render_priv->track->PlayResX;
+ state->clip_y1 = render_priv->track->PlayResY;
+ state->clip_mode = 0;
+ state->detect_collisions = 1;
+ state->fade = 0;
+ state->drawing_scale = 0;
+ state->pbo = 0;
+ state->effect_type = EF_NONE;
+ state->effect_timing = 0;
+ state->effect_skip_timing = 0;
+ state->reset_effect = false;
+
+ ass_apply_transition_effects(state);
+ state->explicit = state->evt_type != EVENT_NORMAL ||
+ ass_event_has_hard_overrides(event->Text);
+
+ ass_reset_render_context(state, NULL);
+ state->alignment = state->style->Alignment;
+ state->justify = state->style->Justify;
}
static void free_render_context(RenderContext *state)
@@ -2815,7 +2817,7 @@ ass_render_event(ASS_Renderer *render_priv, ASS_Event *event,
RenderContext *state = &render_priv->state;
free_render_context(state);
- init_render_context(render_priv, event);
+ init_render_context(state, event);
if (!parse_events(state, event))
return false;