drawClipped method

void drawClipped(
  1. Canvas canvas,
  2. Offset originOffset,
  3. Path path,
  4. RectCallback? clipCallback,
  5. ShapeBorder? customBorder,
  6. BorderRadius borderRadius,
  7. TextDirection textDirection,
)

Implementation

void drawClipped(
  Canvas canvas,
  Offset originOffset,
  Path path,
  RectCallback? clipCallback,
  ShapeBorder? customBorder,
  BorderRadius borderRadius,
  TextDirection textDirection,
) {
  canvas.save();
  final rect = referenceBox.paintBounds.translate(
    originOffset.dx,
    originOffset.dy,
  );
  if (customBorder != null) {
    canvas.clipPath(customBorder.getOuterPath(
      rect,
      textDirection: textDirection,
    ));
  } else if (_radius != null) {
    final radius = _radius!;
    canvas.clipRRect(RRect.fromRectXY(rect, radius, radius));
  } else {
    canvas.clipRect(rect);
  }

  canvas.drawPath(path, paint);
  canvas.restore();
}