[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master e9a81e4dd 1/2: * src/raster/ftraster.c (Bezier_Up): I
From: |
Werner Lemberg |
Subject: |
[freetype2] master e9a81e4dd 1/2: * src/raster/ftraster.c (Bezier_Up): Improve joint and loop. |
Date: |
Thu, 9 Nov 2023 22:59:16 -0500 (EST) |
branch: master
commit e9a81e4dd8baa0c572635dca2000fee14db9e4b3
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>
* src/raster/ftraster.c (Bezier_Up): Improve joint and loop.
---
src/raster/ftraster.c | 25 +++++++++----------------
1 file changed, 9 insertions(+), 16 deletions(-)
diff --git a/src/raster/ftraster.c b/src/raster/ftraster.c
index 41b13fd19..ece8c10e7 100644
--- a/src/raster/ftraster.c
+++ b/src/raster/ftraster.c
@@ -1151,22 +1151,19 @@
if ( y1 == e )
{
if ( ras.joint )
- {
top--;
- ras.joint = FALSE;
- }
*top++ = arc[degree].x;
-
- e += ras.precision;
+ e += ras.precision;
}
+ ras.joint = (Bool)( y2 == e2 );
+
if ( e2 < e )
goto Fin;
if ( ( top + TRUNC( e2 - e ) + 1 ) >= ras.maxBuff )
{
- ras.top = top;
ras.error = FT_THROW( Raster_Overflow );
return FAILURE;
}
@@ -1175,8 +1172,6 @@
do
{
- ras.joint = FALSE;
-
y2 = arc[0].y;
x2 = arc[0].x;
@@ -1185,7 +1180,6 @@
dy = y2 - arc[degree].y;
dx = x2 - arc[degree].x;
-
/* split condition should be invariant of direction */
if ( dy > ras.precision_step ||
dx > ras.precision_step ||
@@ -1197,22 +1191,21 @@
else
{
*top++ = x2 - FMulDiv( y2 - e, dx, dy );
+ e += ras.precision;
arc -= degree;
- e += ras.precision;
}
}
else
{
if ( y2 == e )
{
- ras.joint = TRUE;
- *top++ = x2;
-
- e += ras.precision;
+ *top++ = x2;
+ e += ras.precision;
}
- arc -= degree;
+ arc -= degree;
}
- } while ( arc >= start_arc && e <= e2 );
+ }
+ while ( e <= e2 );
Fin:
ras.top = top;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master e9a81e4dd 1/2: * src/raster/ftraster.c (Bezier_Up): Improve joint and loop.,
Werner Lemberg <=