[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master c912690: * src/base/ftstroke.c (ft_stroker_inside): S
From: |
Alexei Podtelezhnikov |
Subject: |
[freetype2] master c912690: * src/base/ftstroke.c (ft_stroker_inside): Speed up. |
Date: |
Mon, 30 Sep 2019 22:45:54 -0400 (EDT) |
branch: master
commit c912690d22ab16d772328396c27c47075924b012
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>
* src/base/ftstroke.c (ft_stroker_inside): Speed up.
---
ChangeLog | 4 ++++
src/base/ftstroke.c | 19 ++++++++++---------
2 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index cd71686..c65dcb8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2019-10-01 Alexei Podtelezhnikov <address@hidden>
+
+ * src/base/ftstroke.c (ft_stroker_inside): Speed up.
+
2019-10-01 Werner Lemberg <address@hidden>
* src/sfnt/sfwoff2 (woff2_open_font): Initialize `woff2.ttc_fonts'.
diff --git a/src/base/ftstroke.c b/src/base/ftstroke.c
index bbbb407..315276e 100644
--- a/src/base/ftstroke.c
+++ b/src/base/ftstroke.c
@@ -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,9 +993,12 @@
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 &&
@@ -1014,13 +1017,11 @@
else
{
/* compute median angle */
- phi = stroker->angle_in + theta;
-
- thcos = FT_Cos( theta );
+ phi = stroker->angle_in + theta + rotate;
- length = FT_DivFix( stroker->radius, thcos );
+ length = FT_DivFix( stroker->radius, sigma.x );
- 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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master c912690: * src/base/ftstroke.c (ft_stroker_inside): Speed up.,
Alexei Podtelezhnikov <=