From 384b546dc68d5767c0862f364d66e297500848c6 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Sat, 2 Dec 2023 23:32:17 +0100 Subject: Upgrade bundled nanosvg library to latest upstream commit commit 706eb0618249507c1700cef4a518f73e546b1c38 (upstream/master) Author: Mikko Mononen Date: Wed Nov 22 22:47:18 2023 +0200 Merge pull request #249 from wcout/issue_240 Fix for #240: Bug: "else" missing + FLTK specific extensions, see documentation/src/bundled-libs.dox --- nanosvg/nanosvgrast.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'nanosvg') diff --git a/nanosvg/nanosvgrast.h b/nanosvg/nanosvgrast.h index a83db2726..a4b866beb 100644 --- a/nanosvg/nanosvgrast.h +++ b/nanosvg/nanosvgrast.h @@ -346,6 +346,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, @@ -888,10 +889,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; @@ -1298,7 +1299,7 @@ static void nsvg__initPaint(NSVGcachedPaint* cache, NSVGpaint* paint, float opac if (grad->nstops == 0) { for (i = 0; i < 256; i++) cache->colors[i] = 0; - } if (grad->nstops == 1) { + } else if (grad->nstops == 1) { for (i = 0; i < 256; i++) cache->colors[i] = nsvg__applyOpacity(grad->stops[i].color, opacity); } else { -- cgit v1.2.3