Skip to content

Commit a7807b0

Browse files
wiiaboogrigorig
authored andcommitted
Allow using shadow offset to adjust size of text background
Text background refers to the libass-only BorderStyle 4, which is similar to 3, but isn't affected by outline/border size and doesn't render shadow, so shadow offset can be used. You can override the horizontal and vertical box size separately with override tags, just like you can override the color with shadow color. Closes #270
1 parent fa01950 commit a7807b0

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

libass/ass_render.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2402,10 +2402,14 @@ static void render_and_combine_glyphs(ASS_Renderer *render_priv,
24022402

24032403
static void add_background(ASS_Renderer *render_priv, EventImages *event_images)
24042404
{
2405-
int left = event_images->left;
2406-
int top = event_images->top;
2407-
int right = event_images->left + event_images->width;
2408-
int bottom = event_images->top + event_images->height;
2405+
double size_x = render_priv->state.shadow_x > 0 ?
2406+
render_priv->state.shadow_x * render_priv->border_scale : 0;
2407+
double size_y = render_priv->state.shadow_y > 0 ?
2408+
render_priv->state.shadow_y * render_priv->border_scale : 0;
2409+
int left = event_images->left - size_x;
2410+
int top = event_images->top - size_y;
2411+
int right = event_images->left + event_images->width + size_x;
2412+
int bottom = event_images->top + event_images->height + size_y;
24092413
left = FFMINMAX(left, 0, render_priv->width);
24102414
top = FFMINMAX(top, 0, render_priv->height);
24112415
right = FFMINMAX(right, 0, render_priv->width);

0 commit comments

Comments
 (0)