From 9f5859e6495dd88cc622546ff9ef95920d62b145 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Wed, 25 Oct 2023 01:03:28 +0300
Subject: [PATCH] nanosvgrast.h: update from mainstream
---
src/nanosvgrast.h | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/nanosvgrast.h b/src/nanosvgrast.h
index 4740a5f3..2947b100 100644
--- a/src/nanosvgrast.h
+++ b/src/nanosvgrast.h
@@ -333,6 +333,7 @@ static float nsvg__normalize(float *x, float* y)
}
static float nsvg__absf(float x) { return x < 0 ? -x : x; }
+static float nsvg__roundf(float x) { return (x >= 0) ? floorf(x + 0.5) : ceilf(x - 0.5); }
static void nsvg__flattenCubicBez(NSVGrasterizer* r,
float x1, float y1, float x2, float y2,
@@ -879,10 +880,10 @@ static NSVGactiveEdge* nsvg__addActive(NSVGrasterizer* r, NSVGedge* e, float sta
// STBTT_assert(e->y0 <= start_point);
// round dx down to avoid going too far
if (dxdy < 0)
- z->dx = (int)(-floorf(NSVG__FIX * -dxdy));
+ z->dx = (int)(-nsvg__roundf(NSVG__FIX * -dxdy));
else
- z->dx = (int)floorf(NSVG__FIX * dxdy);
- z->x = (int)floorf(NSVG__FIX * (e->x0 + dxdy * (startPoint - e->y0)));
+ z->dx = (int)nsvg__roundf(NSVG__FIX * dxdy);
+ z->x = (int)nsvg__roundf(NSVG__FIX * (e->x0 + dxdy * (startPoint - e->y0)));
// z->x -= off_x * FIX;
z->ey = e->y1;
z->next = 0;