paint method

void paint(
  1. Canvas canvas,
  2. Size size
)

Execute all layers in order onto canvas.

Implementation

void paint(Canvas canvas, Size size) {
  if (_disposed) return;
  final safeSize = _safePaintSize(size);
  setSize(safeSize);
  if (!enableDiagnostics && onReport == null) {
    for (final l in _layers) {
      l.paintOnto(canvas, safeSize);
    }
    return;
  }

  final sw = Stopwatch()..start();
  final layerReports = <ChartRenderLayerReport>[];
  for (final l in _layers) {
    layerReports.add(l.paintOntoWithReport(canvas, safeSize));
  }
  sw.stop();

  final report = ChartRenderPipelineReport(
    size: safeSize,
    totalPaintDuration: sw.elapsed,
    layers: List.unmodifiable(layerReports),
  );
  _lastReport = report;
  onReport?.call(report);
}