draw method
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);
}