pushTransform method
Transform further painting using a matrix.
needsCompositingis whether the child needs compositing. Typically matches the value of RenderObject.needsCompositing for the caller.offsetis the offset from the origin of the canvas' coordinate system to the origin of the caller's coordinate system.transformis the matrix to apply to the painting done bypainter.painteris a callback that will paint with thetransformapplied. This function calls thepaintersynchronously.
Implementation
void pushTransform(bool needsCompositing, Offset offset, Matrix4 transform, PaintingContextCallback painter) {
final Matrix4 effectiveTransform = Matrix4.translationValues(offset.dx, offset.dy, 0.0)
..multiply(transform)..translate(-offset.dx, -offset.dy);
if (needsCompositing) {
pushLayer(
TransformLayer(transform: effectiveTransform),
painter,
offset,
childPaintBounds: MatrixUtils.inverseTransformRect(effectiveTransform, estimatedBounds),
);
} else {
canvas
..save()
..transform(effectiveTransform.storage);
painter(this, offset);
canvas
..restore();
}
}