diff options
author | rcombs <rcombs@rcombs.me> | 2022-07-26 22:47:51 -0500 |
---|---|---|
committer | rcombs <rcombs@rcombs.me> | 2022-11-15 21:14:37 -0600 |
commit | a237df71e28c2b237710e940c413af9b516b9759 (patch) | |
tree | bca75a8d77b0e26a972bcf862ce32abd1112fc17 | |
parent | 176137cba5b577748a962fc2e2e2476ad6a0a0e8 (diff) | |
download | libass-a237df71e28c2b237710e940c413af9b516b9759.tar.bz2 libass-a237df71e28c2b237710e940c413af9b516b9759.tar.xz |
ass_render: take RenderContext* in calculate_rotation_params()
-rw-r--r-- | libass/ass_render.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c index 62ea85a..a11ae58 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -2362,29 +2362,30 @@ static void align_lines(ASS_Renderer *render_priv, double max_text_width) } } -static void calculate_rotation_params(ASS_Renderer *render_priv, ASS_DRect *bbox, +static void calculate_rotation_params(RenderContext *state, ASS_DRect *bbox, double device_x, double device_y) { + ASS_Renderer *render_priv = state->renderer; ASS_DVector center; - if (render_priv->state.have_origin) { - center.x = x2scr_pos(render_priv, render_priv->state.org_x); - center.y = y2scr_pos(render_priv, render_priv->state.org_y); + if (state->have_origin) { + center.x = x2scr_pos(render_priv, state->org_x); + center.y = y2scr_pos(render_priv, state->org_y); } else { double bx = 0., by = 0.; - get_base_point(bbox, render_priv->state.alignment, &bx, &by); + get_base_point(bbox, state->alignment, &bx, &by); center.x = device_x + bx; center.y = device_y + by; } - TextInfo *text_info = &render_priv->text_info; + TextInfo *text_info = state->text_info; for (int i = 0; i < text_info->length; i++) { GlyphInfo *info = text_info->glyphs + i; while (info) { info->shift.x = info->pos.x + double_to_d6(device_x - center.x + - info->shadow_x * render_priv->state.border_scale_x / + info->shadow_x * state->border_scale_x / render_priv->par_scale_x); info->shift.y = info->pos.y + double_to_d6(device_y - center.y + - info->shadow_y * render_priv->state.border_scale_y); + info->shadow_y * state->border_scale_y); info = info->next; } } @@ -2980,7 +2981,7 @@ ass_render_event(ASS_Renderer *render_priv, ASS_Event *event, state->clip_y1 = FFMIN(state->clip_y1, y1); } - calculate_rotation_params(render_priv, &bbox, device_x, device_y); + calculate_rotation_params(state, &bbox, device_x, device_y); render_and_combine_glyphs(render_priv, device_x, device_y); |