draw method

void draw(
  1. Canvas canvas,
  2. Size size, {
  3. required Background background,
  4. required Offset cameraOffset,
  5. required double gridStrokeWidth,
})

Implementation

void draw(
  Canvas canvas,
  Size size, {
  required Background background,
  required Offset cameraOffset,
  required double gridStrokeWidth,
}) {
  final safeCameraOffset = sanitizeFiniteOffset(cameraOffset);
  final safeGridStrokeWidth = clampNonNegativeFinite(gridStrokeWidth);
  final grid = background.grid;
  final cell = grid.cellSize;
  final effectiveGridEnabled = grid.isEnabled && cell.isFinite && cell > 0;
  final effectiveCellSize = effectiveGridEnabled ? cell : 0.0;
  final key = _StaticLayerKey(
    size: size,
    backgroundColor: background.color,
    gridEnabled: effectiveGridEnabled,
    gridCellSize: effectiveCellSize,
    gridColor: grid.color,
    gridStrokeWidth: safeGridStrokeWidth,
    cameraOffset: safeCameraOffset,
  );

  if (_picture == null || _key != key) {
    _disposePictureIfNeeded();
    _key = key;
    _picture = _recordPicture(
      size,
      background,
      safeCameraOffset,
      safeGridStrokeWidth,
    );
    _debugBuildCount += 1;
  }

  canvas.drawPicture(_picture!);
}