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}

Uses (6)

Used by (1)