diff options
author | rcombs <rcombs@rcombs.me> | 2022-07-26 22:14:42 -0500 |
---|---|---|
committer | rcombs <rcombs@rcombs.me> | 2022-11-15 21:14:37 -0600 |
commit | c4c49c6f696499d5f6ce58dcb0c0f935d25ace74 (patch) | |
tree | 52c74289c4809ccd01464365a9e2d0a6a815c17a | |
parent | cc36da778afd1a6e94fda1f21c57648141182f29 (diff) | |
download | libass-c4c49c6f696499d5f6ce58dcb0c0f935d25ace74.tar.bz2 libass-c4c49c6f696499d5f6ce58dcb0c0f935d25ace74.tar.xz |
ass_render: take RenderContext* in init_font_scale()
-rw-r--r-- | libass/ass_render.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c index f749b38..f8a77c5 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -996,36 +996,37 @@ ASS_Vector ass_layout_res(ASS_Renderer *render_priv) }; } -static void init_font_scale(ASS_Renderer *render_priv) +static void init_font_scale(RenderContext *state) { + ASS_Renderer *render_priv = state->renderer; ASS_Settings *settings_priv = &render_priv->settings; double font_scr_w = render_priv->frame_content_width; double font_scr_h = render_priv->frame_content_height; - if (!render_priv->state.explicit && render_priv->settings.use_margins) { + if (!state->explicit && render_priv->settings.use_margins) { font_scr_w = render_priv->fit_width; font_scr_h = render_priv->fit_height; } - render_priv->state.screen_scale_x = font_scr_w / render_priv->track->PlayResX; - render_priv->state.screen_scale_y = font_scr_h / render_priv->track->PlayResY; + state->screen_scale_x = font_scr_w / render_priv->track->PlayResX; + state->screen_scale_y = font_scr_h / render_priv->track->PlayResY; ASS_Vector layout_res = ass_layout_res(render_priv); - render_priv->state.blur_scale = font_scr_h / layout_res.y; + state->blur_scale = font_scr_h / layout_res.y; if (render_priv->track->ScaledBorderAndShadow) { - render_priv->state.border_scale_x = render_priv->state.screen_scale_x; - render_priv->state.border_scale_y = render_priv->state.screen_scale_y; + state->border_scale_x = state->screen_scale_x; + state->border_scale_y = state->screen_scale_y; } else { - render_priv->state.border_scale_x = font_scr_w / layout_res.x; - render_priv->state.border_scale_y = render_priv->state.blur_scale; + state->border_scale_x = font_scr_w / layout_res.x; + state->border_scale_y = state->blur_scale; } - if (render_priv->state.apply_font_scale) { - render_priv->state.screen_scale_x *= settings_priv->font_size_coeff; - render_priv->state.screen_scale_y *= settings_priv->font_size_coeff; - render_priv->state.border_scale_x *= settings_priv->font_size_coeff; - render_priv->state.border_scale_y *= settings_priv->font_size_coeff; - render_priv->state.blur_scale *= settings_priv->font_size_coeff; + if (state->apply_font_scale) { + state->screen_scale_x *= settings_priv->font_size_coeff; + state->screen_scale_y *= settings_priv->font_size_coeff; + state->border_scale_x *= settings_priv->font_size_coeff; + state->border_scale_y *= settings_priv->font_size_coeff; + state->blur_scale *= settings_priv->font_size_coeff; } } @@ -1037,7 +1038,7 @@ void ass_reset_render_context(ASS_Renderer *render_priv, ASS_Style *style) { style = handle_selective_style_overrides(&render_priv->state, style); - init_font_scale(render_priv); + init_font_scale(&render_priv->state); render_priv->state.c[0] = style->PrimaryColour; render_priv->state.c[1] = style->SecondaryColour; |