From 6095a9c089fb59534fd0a28d05d6ecfb9a391c7b Mon Sep 17 00:00:00 2001 From: rcombs Date: Tue, 26 Jul 2022 23:22:08 -0500 Subject: ass_render: take RenderContext* in init_render_context() --- libass/ass_render.c | 74 +++++++++++++++++++++++++++-------------------------- 1 file 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; -- cgit v1.2.3