paint method

  1. @override
void paint(
  1. PaintingContext context,
  2. Offset offset
)
override

Default paint implementation.

RenderBox paints no self-content; it forwards painting to its RenderBox children. Subclasses override to draw their own content.

Implementation

@override
void paint(PaintingContext context, Offset offset) {
  if (_metrics != context.cellMetrics) {
    _metrics = context.cellMetrics;
    if (_width == null || _height == null) markNeedsLayout();
  }
  if (size.width <= 0 || size.height <= 0) return;
  final geometry = _geometry(context.cellMetrics);
  final origin = offset + Offset(x, y);
  context.canvas.drawImage(
    _image,
    Rect.fromLTWH(
      origin.dx + geometry.destination.left,
      origin.dy + geometry.destination.top,
      geometry.destination.width,
      geometry.destination.height,
    ),
    pixelWidth: geometry.pixelWidth,
    pixelHeight: geometry.pixelHeight,
    sourceRect: geometry.source,
    protocol: _protocol,
  );
}