def prepare.brush
gralha-svg-render@0.1.0.1 · svg.bend:5075
import gralha-svg-render@0.1.0.1/svg.bend as Svg
import Base
5075def prepare.brush(brush: Brush, +space: Matrix, next: List<&2, Scene<Brush>> -> Matrix -> List<&2, Scene<Brush>>) -> Brush:
5076 match brush:
5077 case Bitmap{raster, inv, nearest}: Bitmap{raster, inv, nearest}
5078 case Solid{c, source}: Solid{c, source}
5079 case PendingContext{stroke, opacity}: PendingContext{stroke, opacity}
5080 case ContextPaint{source, mat, opacity}:
5081 +matrix = mat
5082 ContextPaint{prepare.brush(source, matrix.mul(space, matrix.inverse(matrix)), next), matrix, opacity}
5083 case Pattern{inv, width, height, opacity, nodes}:
5084 +matrix = inv
5085 Pattern{matrix, width, height, opacity, next(nodes)(matrix.mul(space, matrix.inverse(matrix)))}
5086 case Tile{raster, inv, width, height, opacity, u, v, grid}: Tile{raster, inv, width, height, opacity, u, v, grid}
5087 case Gradient{inv, radial, start, end, radius, focal, stops, spread, opacity, linear}: Gradient{inv, radial, start, end, radius, focal, stops, spread, opacity, linear}