draw method

  1. @override
void draw(
  1. ChantContext ctxt
)
override

Paints this the element on Canvas attached to ctxt.

Implementation

@override
void draw(ChantContext ctxt) {
  if (ctxt.usePictureCache) {
    final signature = _paintSignature(ctxt);
    final cached = _cachedPicture;
    if (cached != null && _cachedPictureSignature == signature) {
      ctxt.canvas.drawPicture(cached);
      return;
    }
    final outputCanvas = ctxt.canvas;
    final recorder = ui.PictureRecorder();
    final recordingCanvas = ui.Canvas(recorder);
    ctxt.attachCanvas(recordingCanvas);
    _drawFresh(ctxt);
    _cachedPicture?.dispose();
    final picture = recorder.endRecording();
    _cachedPicture = picture;
    _cachedPictureSignature = signature;
    ctxt.attachCanvas(outputCanvas);
    outputCanvas.drawPicture(picture);
    return;
  }
  _drawFresh(ctxt);
}