def filter.render

gralha-svg-render@0.1.0.1 · svg.bend:5051

import gralha-svg-render@0.1.0.1/svg.bend as Svg
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
import gralha-xml-doc@0.1.0.1/xml.bend as XML

5051def filter.render(+scene: Scene<Brush>, +region: Bounds, +units: Matrix, +viewport: Point, +primitives: List<&2, XML.Element>, space: Matrix, +aa: U32) -> Raster:
5052  +world = bounds.transform(region, units)
5053  +area = bounds.expand(bounds.merge(world, scene.coverage(Con{scene, Nil{}}, bounds.empty())), filter.padding(primitives, units, 0.0))
5054  +format = raster.format(area, (1.0 / U.max(filter.density(space), 0.000001) : F32))
5055  +raw = {FilterInput{raster.scene(format, Con{filter.source(scene), Nil{}}, aa), region, False{}, True{}} : FilterInput}
5056  +source = {FilterInput{filter.draw(format, FilterCopy{}, raw, raw, FilterWindow{region, matrix.inverse(units), False{}}, False{}, aa), region, False{}, True{}} : FilterInput}
5057  +result = filter.chain(primitives, format, source, source, Nil{}, region, units, viewport, aa)
5058  U.branch(Raster, bounds.nonempty(region) && filter.present(primitives),
5059    _ => filter.draw(format, FilterCopy{}, result, result, FilterWindow{region, matrix.inverse(units), True{}}, raster.is.linear(filter.input.raster(result)), aa), _ => raster.empty())

Uses (36)

Used by (1)