* src/base/ftstroke.c (ft_stroker_inside): Speed up.
This commit is contained in:
parent
94815d6efa
commit
c912690d22
@ -1,3 +1,7 @@
|
||||
2019-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||||
|
||||
* src/base/ftstroke.c (ft_stroker_inside): Speed up.
|
||||
|
||||
2019-10-01 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* src/sfnt/sfwoff2 (woff2_open_font): Initialize `woff2.ttc_fonts'.
|
||||
|
@ -974,8 +974,8 @@
|
||||
{
|
||||
FT_StrokeBorder border = stroker->borders + side;
|
||||
FT_Angle phi, theta, rotate;
|
||||
FT_Fixed length, thcos;
|
||||
FT_Vector delta;
|
||||
FT_Fixed length;
|
||||
FT_Vector sigma, delta;
|
||||
FT_Error error = FT_Err_Ok;
|
||||
FT_Bool intersect; /* use intersection of lines? */
|
||||
|
||||
@ -993,10 +993,13 @@
|
||||
else
|
||||
{
|
||||
/* compute minimum required length of lines */
|
||||
FT_Fixed min_length = ft_pos_abs( FT_MulFix( stroker->radius,
|
||||
FT_Tan( theta ) ) );
|
||||
FT_Fixed min_length;
|
||||
|
||||
|
||||
FT_Vector_Unit( &sigma, theta );
|
||||
min_length =
|
||||
ft_pos_abs( FT_MulDiv( stroker->radius, sigma.y, sigma.x ) );
|
||||
|
||||
intersect = FT_BOOL( min_length &&
|
||||
stroker->line_length >= min_length &&
|
||||
line_length >= min_length );
|
||||
@ -1014,13 +1017,11 @@
|
||||
else
|
||||
{
|
||||
/* compute median angle */
|
||||
phi = stroker->angle_in + theta;
|
||||
phi = stroker->angle_in + theta + rotate;
|
||||
|
||||
thcos = FT_Cos( theta );
|
||||
length = FT_DivFix( stroker->radius, sigma.x );
|
||||
|
||||
length = FT_DivFix( stroker->radius, thcos );
|
||||
|
||||
FT_Vector_From_Polar( &delta, length, phi + rotate );
|
||||
FT_Vector_From_Polar( &delta, length, phi );
|
||||
delta.x += stroker->center.x;
|
||||
delta.y += stroker->center.y;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user