diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2023-12-02 23:32:17 +0100 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2023-12-02 23:32:17 +0100 |
| commit | 384b546dc68d5767c0862f364d66e297500848c6 (patch) | |
| tree | 383c42f6c523bba4233047e8e6d4ab6912b19bf8 /nanosvg | |
| parent | 973d53bbcd99d85ae84e1aa6b2fbc471f0b80a70 (diff) | |
Upgrade bundled nanosvg library to latest upstream commit
commit 706eb0618249507c1700cef4a518f73e546b1c38 (upstream/master)
Author: Mikko Mononen <memononen@gmail.com>
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
Diffstat (limited to 'nanosvg')
| -rw-r--r-- | nanosvg/nanosvgrast.h | 9 |
1 files changed, 5 insertions, 4 deletions
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 { |
