apply method
Applies visual effect while draw
ing on the canvas
.
The default implementation is a no-op; all other non-trivial decorators transform the canvas before drawing, or perform some other adjustments.
This method must be implemented by the subclasses, but it is not available to external users: use applyChain instead.
Implementation
@override
void apply(void Function(Canvas) draw, Canvas canvas) {
_transformMatrix ??= _makeTransform();
_paint ??= _makePaint();
canvas.saveLayer(null, _paint!);
canvas.translate(base.x + _shift, base.y);
canvas.transform(_transformMatrix!.storage);
draw(canvas);
canvas.restore();
draw(canvas);
}