paintByState method

void paintByState(
  1. Canvas canvas,
  2. Size size,
  3. T state
)

Draws a painting corresponding to the given touch ripple state.

Implementation

void paintByState(Canvas canvas, Size size, T state) {

  // Returns a Rect instance corresponding to the current canvas size
  // and calculates it based on the center.
  Rect getSizeRect() {
    final scaledSize = size * scale;
    final offset = (sizeToOffset(size) - sizeToOffset(scaledSize)) / 2;
    return Rect.fromLTWH(
      offset.dx,
      offset.dy,
      scaledSize.width,
      scaledSize.height
    );
  }
  canvas.clipRRect(borderRadius.toRRect(getSizeRect()));
  state.paint(canvas: canvas, size: size, scale: scale, blur: blur, color: color);
}