paintByState method
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);
}