Skip to content

Commit 88ff6dd

Browse files
committed
Updates Rendered to support user space gradients
1 parent 74de98c commit 88ff6dd

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

SwiftDraw/LayerTree.CommandGenerator.swift

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -197,11 +197,19 @@ extension LayerTree {
197197
case .gradient(let fillGradient):
198198
commands.append(.pushState)
199199
commands.append(.setClip(path: path))
200-
201-
let pathBounds = provider.getBounds(from: path)
202-
let pathStart = pathBounds.getPoint(offset: fillGradient.start)
203-
let pathEnd = pathBounds.getPoint(offset: fillGradient.end)
204-
200+
201+
let pathStart: LayerTree.Point
202+
let pathEnd: LayerTree.Point
203+
switch fillGradient.units {
204+
case .objectBoundingBox:
205+
let pathBounds = provider.getBounds(from: path)
206+
pathStart = pathBounds.getPoint(offset: fillGradient.start)
207+
pathEnd = pathBounds.getPoint(offset: fillGradient.end)
208+
case .userSpaceOnUse:
209+
pathStart = fillGradient.start
210+
pathEnd = fillGradient.end
211+
}
212+
205213
let converted = apply(colorConverter: colorConverter, to: fillGradient)
206214
let gradient = provider.createGradient(from: converted)
207215
let start = provider.createPoint(from: pathStart)

0 commit comments

Comments
 (0)