paintBlurredCircle method
void
paintBlurredCircle({
- required Canvas canvas,
- required Matrix4 transform,
- required Paint paint,
- required Offset center,
- required double radius,
- required TextDirection textDirection,
- ShapeBorder? customBorder,
- BorderRadius borderRadius = BorderRadius.zero,
- RectCallback? clipCallback,
Implementation
void paintBlurredCircle({
required Canvas canvas,
required Matrix4 transform,
required Paint paint,
required Offset center,
required double radius,
required TextDirection textDirection,
ShapeBorder? customBorder,
BorderRadius borderRadius = BorderRadius.zero,
RectCallback? clipCallback,
}) {
final Offset? originOffset = MatrixUtils.getAsTranslation(transform);
canvas.save();
if (originOffset == null) {
canvas.transform(transform.storage);
} else {
canvas.translate(originOffset.dx, originOffset.dy);
}
if (clipCallback != null) {
final Rect rect = clipCallback();
if (customBorder != null) {
canvas.clipPath(
customBorder.getOuterPath(rect, textDirection: textDirection));
} else if (borderRadius != BorderRadius.zero) {
canvas.clipRRect(RRect.fromRectAndCorners(
rect,
topLeft: borderRadius.topLeft,
topRight: borderRadius.topRight,
bottomLeft: borderRadius.bottomLeft,
bottomRight: borderRadius.bottomRight,
));
} else {
canvas.clipRect(rect);
}
}
final circle = Path()
..addOval(Rect.fromCircle(center: center, radius: radius));
canvas.drawPath(circle, paint);
canvas.restore();
}