cleaner + perf

This commit is contained in:
Ryan Oldenburg 2021-04-28 22:37:54 -05:00
parent 9b7fa748d8
commit 33b8a5a839

View file

@ -1430,6 +1430,18 @@ proc parseSomePath(
elif type(path) is seq[seq[Vec2]]:
path
proc transform(shapes: var seq[seq[Vec2]], transform: Vec2 | Mat3) =
when type(transform) is Vec2:
if transform != vec2(0, 0):
for shape in shapes.mitems:
for segment in shape.mitems:
segment += transform
else:
if transform != mat3():
for shape in shapes.mitems:
for segment in shape.mitems:
segment = transform * segment
proc fillPath*(
image: Image,
path: SomePath,
@ -1454,12 +1466,7 @@ proc fillPath*(
else:
let pixelScale = 1.0
var shapes = parseSomePath(path, pixelScale)
for shape in shapes.mitems:
for segment in shape.mitems:
when type(transform) is Vec2:
segment += transform
else:
segment = transform * segment
shapes.transform(transform)
image.fillShapes(shapes, color, windingRule, blendMode)
proc fillPath*(
@ -1482,12 +1489,7 @@ proc fillPath*(
else:
let pixelScale = 1.0
var shapes = parseSomePath(path, pixelScale)
for shape in shapes.mitems:
for segment in shape.mitems:
when type(transform) is Vec2:
segment += transform
else:
segment = transform * segment
shapes.transform(transform)
mask.fillShapes(shapes, windingRule)
proc fillPath*(
@ -1571,12 +1573,7 @@ proc strokePath*(
var strokeShapes = strokeShapes(
parseSomePath(path, pixelScale), strokeWidth, lineCap, lineJoin
)
for shape in strokeShapes.mitems:
for segment in shape.mitems:
when type(transform) is Vec2:
segment += transform
else:
segment = transform * segment
strokeShapes.transform(transform)
image.fillShapes(strokeShapes, color, wrNonZero, blendMode)
proc strokePath*(
@ -1608,12 +1605,7 @@ proc strokePath*(
var strokeShapes = strokeShapes(
parseSomePath(path, pixelScale), strokeWidth, lineCap, lineJoin
)
for shape in strokeShapes.mitems:
for segment in shape.mitems:
when type(transform) is Vec2:
segment += transform
else:
segment = transform * segment
strokeShapes.transform(transform)
mask.fillShapes(strokeShapes, wrNonZero)
when defined(release):