fltk/nanosvg/altsvgrast.diff
Manolo Gouy d6349e180a Set svn:keywords
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12415 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-03 13:20:52 +00:00

137 lines
4.7 KiB
Diff

1,6d0
< //
< // "$Id$"
< //
<
< /* Modified by FLTK from original sources to support non-square X,Y axes scaling */
<
31d24
<
51,53d43
<
< // For non-square X,Y scaling, use
< nsvgAltRasterize(rast, image, 0,0,1,1, img, w, h, w*4);
63c53
< // scale - image scale (assumes square aspect ratio)
---
> // scale - image scale
72,77d61
< // As above, but allow X and Y axes to scale independently for non-square aspects
< void nsvgAltRasterize(NSVGrasterizer* r,
< NSVGimage* image, float tx, float ty,
< float sx, float sy,
< unsigned char* dst, int w, int h, int stride);
<
382c366
< static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float sx, float sy)
---
> static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float scale)
390c374
< nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, 0);
---
> nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0);
393c377
< nsvg__flattenCubicBez(r, p[0]*sx,p[1]*sy, p[2]*sx,p[3]*sy, p[4]*sx,p[5]*sy, p[6]*sx,p[7]*sy, 0, 0);
---
> nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, 0);
396c380
< nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, 0);
---
> nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0);
746c730
< static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float sx, float sy)
---
> static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float scale)
754,755c738
< const float sw = (sx + sy) / 2; // average scaling factor
< const float lineWidth = shape->strokeWidth * sw; // FIXME (?)
---
> float lineWidth = shape->strokeWidth * scale;
760c743
< nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, NSVG_PT_CORNER);
---
> nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, NSVG_PT_CORNER);
763c746
< nsvg__flattenCubicBez(r, p[0]*sx,p[1]*sy, p[2]*sx,p[3]*sy, p[4]*sx,p[5]*sy, p[6]*sx,p[7]*sy, 0, NSVG_PT_CORNER);
---
> nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, NSVG_PT_CORNER);
809c792
< dashLen = (shape->strokeDashArray[idash] - dashOffset) * sw;
---
> dashLen = (shape->strokeDashArray[idash] - dashOffset) * scale;
831c814
< dashLen = shape->strokeDashArray[idash] * sw;
---
> dashLen = shape->strokeDashArray[idash] * scale;
1000c983
< float tx, float ty, float sx, float sy, NSVGcachedPaint* cache)
---
> float tx, float ty, float scale, NSVGcachedPaint* cache)
1041,1043c1024,1026
< fx = ((float)x - tx) / sx;
< fy = ((float)y - ty) / sy;
< dx = 1.0f / sx;
---
> fx = ((float)x - tx) / scale;
> fy = ((float)y - ty) / scale;
> dx = 1.0f / scale;
1086,1088c1069,1071
< fx = ((float)x - tx) / sx;
< fy = ((float)y - ty) / sy;
< dx = 1.0f / sx;
---
> fx = ((float)x - tx) / scale;
> fy = ((float)y - ty) / scale;
> dx = 1.0f / scale;
1127c1110
< static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, float sx, float sy, NSVGcachedPaint* cache, char fillRule)
---
> static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, float scale, NSVGcachedPaint* cache, char fillRule)
1209c1192
< nsvg__scanlineSolid(&r->bitmap[y * r->stride] + xmin*4, xmax-xmin+1, &r->scanline[xmin], xmin, y, tx,ty, sx, sy, cache);
---
> nsvg__scanlineSolid(&r->bitmap[y * r->stride] + xmin*4, xmax-xmin+1, &r->scanline[xmin], xmin, y, tx,ty, scale, cache);
1377,1379c1360,1361
< void nsvgAltRasterize(NSVGrasterizer* r,
< NSVGimage* image, float tx, float ty,
< float sx, float sy,
---
> void nsvgRasterize(NSVGrasterizer* r,
> NSVGimage* image, float tx, float ty, float scale,
1410c1392
< nsvg__flattenShape(r, shape, sx, sy);
---
> nsvg__flattenShape(r, shape, scale);
1427c1409
< nsvg__rasterizeSortedEdges(r, tx,ty, sx, sy, &cache, shape->fillRule);
---
> nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, shape->fillRule);
1429c1411
< if (shape->stroke.type != NSVG_PAINT_NONE && (shape->strokeWidth * sx) > 0.01f) {
---
> if (shape->stroke.type != NSVG_PAINT_NONE && (shape->strokeWidth * scale) > 0.01f) {
1434c1416
< nsvg__flattenShapeStroke(r, shape, sx, sy);
---
> nsvg__flattenShapeStroke(r, shape, scale);
1453c1435
< nsvg__rasterizeSortedEdges(r, tx,ty,sx, sy, &cache, NSVG_FILLRULE_NONZERO);
---
> nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, NSVG_FILLRULE_NONZERO);
1465,1477c1447
< void nsvgRasterize(NSVGrasterizer* r,
< NSVGimage* image, float tx, float ty, float scale,
< unsigned char* dst, int w, int h, int stride)
< {
< nsvgAltRasterize(r,image, tx, ty, scale, scale, dst, w, h, stride);
< }
<
< #endif // NANOSVGRAST_IMPLEMENTATION
<
<
< //
< // End of "$Id$".
< //
---
> #endif