doPaint method

void doPaint(
  1. PaintingContext context,
  2. Offset offset
)

Implementation

void doPaint(PaintingContext context, Offset offset) {
  context.pushClipRect(needsCompositing, offset, Offset.zero & size,
      (context, offset) {
    if (child != null) {
      final Matrix4 transform = _effectiveTransform!;
      final Offset? childOffset = MatrixUtils.getAsTranslation(transform);
      if (childOffset == null) {
        // if the matrix is singular the children would be compressed to a line or
        // single point, instead short-circuit and paint nothing.
        final double det = transform.determinant();
        if (det == 0 || !det.isFinite) {
          layer = null;
          return;
        }
        layer = context.pushTransform(
          needsCompositing,
          offset,
          transform,
          super.paint,
          oldLayer: layer is TransformLayer ? layer as TransformLayer? : null,
        );
      } else {
        super.paint(context, offset + childOffset);
        layer = null;
      }
      _scrollbarController?.updateAndPaint(
          context, transform, size, child!.size,
          origin: offset);
    }
  });
}