renderTree method

void renderTree(
  1. Canvas canvas
)
inherited

Implementation

void renderTree(Canvas canvas) {
  final context = renderContext;
  if (context != null) {
    _renderContexts.add(context);
  }

  render(canvas);
  final children = _children;
  if (children != null) {
    for (final child in children) {
      final hasContext = _renderContexts.isNotEmpty;
      if (hasContext) {
        child._renderContexts.addAll(_renderContexts);
      }
      child.renderTree(canvas);
      if (hasContext) {
        child._renderContexts.removeRange(
          _renderContexts.length,
          child._renderContexts.length,
        );
      }
    }
  }

  // Any debug rendering should be rendered on top of everything
  if (debugMode) {
    renderDebugMode(canvas);
  }

  if (context != null) {
    _renderContexts.removeLast();
  }
}