void calc_border(ASS_Renderer *priv, double border_x, double border_y)
{
if (border_x < 0 && border_y < 0) {
- if (priv->state.style->BorderStyle == 1 ||
- priv->state.style->BorderStyle == 3)
+ if (priv->state.border_style == 1 ||
+ priv->state.border_style == 3)
border_x = border_y = priv->state.style->Outline;
else
border_x = border_y = 1.;
render_priv->state.italic = style->Italic;
update_font(render_priv);
+ render_priv->state.border_style = style->BorderStyle;
calc_border(render_priv, style->Outline, style->Outline);
change_border(render_priv, render_priv->state.border_x, render_priv->state.border_y);
render_priv->state.scale_x = style->ScaleX;
key->scale_y = double_to_d16(info->scale_y);
key->outline.x = double_to_d16(info->border_x);
key->outline.y = double_to_d16(info->border_y);
- key->border_style = priv->state.style->BorderStyle;
+ key->border_style = info->border_style;
key->hash = info->drawing->hash;
key->text = info->drawing->text;
key->pbo = info->drawing->pbo;
key->outline.x = double_to_d16(info->border_x);
key->outline.y = double_to_d16(info->border_y);
key->flags = info->flags;
- key->border_style = priv->state.style->BorderStyle;
+ key->border_style = info->border_style;
}
}
FT_Outline_Get_CBox(v.outline, &v.bbox_scaled);
- if (priv->state.style->BorderStyle == 3 &&
+ if (info->border_style == 3 &&
(info->border_x > 0 || info->border_y > 0)) {
FT_Vector advance;
&hash_val.bm_s, info->be,
info->blur * render_priv->border_scale,
key->shadow_offset,
- render_priv->state.style->BorderStyle);
+ info->border_style);
if (error)
info->symbol = 0;
glyphs[text_info->length].shadow_y = render_priv->state.shadow_y;
glyphs[text_info->length].scale_x= render_priv->state.scale_x;
glyphs[text_info->length].scale_y = render_priv->state.scale_y;
+ glyphs[text_info->length].border_style = render_priv->state.border_style;
glyphs[text_info->length].border_x= render_priv->state.border_x;
glyphs[text_info->length].border_y = render_priv->state.border_y;
glyphs[text_info->length].hspacing = render_priv->state.hspacing;
double frx, fry, frz; // rotation
double fax, fay; // text shearing
double scale_x, scale_y;
+ int border_style;
double border_x, border_y;
double hspacing;
unsigned italic;
char have_origin; // origin is explicitly defined; if 0, get_base_point() is used
double scale_x, scale_y;
double hspacing; // distance between letters, in pixels
+ int border_style;
double border_x; // outline width
double border_y;
uint32_t c[4]; // colors(Primary, Secondary, so on) in RGBA