summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrcombs <rcombs@rcombs.me>2022-07-26 22:14:42 -0500
committerrcombs <rcombs@rcombs.me>2022-11-15 21:14:37 -0600
commitc4c49c6f696499d5f6ce58dcb0c0f935d25ace74 (patch)
tree52c74289c4809ccd01464365a9e2d0a6a815c17a
parentcc36da778afd1a6e94fda1f21c57648141182f29 (diff)
downloadlibass-c4c49c6f696499d5f6ce58dcb0c0f935d25ace74.tar.bz2
libass-c4c49c6f696499d5f6ce58dcb0c0f935d25ace74.tar.xz
ass_render: take RenderContext* in init_font_scale()
-rw-r--r--libass/ass_render.c33
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;