draw method
void
draw(
- Canvas canvas,
- Size size, {
- required BackgroundSnapshot background,
- required Offset cameraOffset,
- required double gridStrokeWidth,
Implementation
void draw(
Canvas canvas,
Size size, {
required BackgroundSnapshot background,
required Offset cameraOffset,
required double gridStrokeWidth,
}) {
_drawBackground(canvas, size, background.color);
final safeOffset = sanitizeFiniteOffset(cameraOffset);
final safeGridStrokeWidth = clampNonNegativeFinite(gridStrokeWidth);
final grid = background.grid;
final enabled = _isGridDrawable(
grid,
size: size,
cameraOffset: Offset.zero,
);
final cellSize = enabled ? grid.cellSize : 0.0;
final key = _StaticLayerKeyV2(
size: size,
gridEnabled: enabled,
gridCellSize: cellSize,
gridColor: grid.color,
gridStrokeWidth: safeGridStrokeWidth,
);
if (_gridPicture == null || _key != key) {
_disposeGridPictureIfNeeded();
_key = key;
_gridPicture = _recordGridPicture(size, grid, safeGridStrokeWidth);
_debugBuildCount += 1;
}
if (!_key!.gridEnabled) {
return;
}
final shift = _gridShiftForCameraOffset(safeOffset, _key!.gridCellSize);
canvas.save();
canvas.clipRect(Offset.zero & size);
canvas.translate(shift.dx, shift.dy);
canvas.drawPicture(_gridPicture!);
canvas.restore();
}