public void LoplaPainter(SKCanvas canvas, ILoplaMessage m) { switch (m) { case SetColor setColor: _paintDevice.Color = new SKColor(setColor.Color.R, setColor.Color.G, setColor.Color.B, 255); break; case Clear clear: if (clear.Color != null) { canvas.Clear(new SKColor(clear.Color.R, clear.Color.G, clear.Color.B, 255)); } else { canvas.Clear(); } TextReset(); break; case Log log: Log(canvas, log); break; case Line line: Line(canvas, line); break; case Box box: Box(canvas, box); break; case Animation animation: Animation(canvas, animation); break; case Image img: Image(canvas, img); break; case Write text: Write(canvas, text); break; case Text text: Text(canvas, text); break; case Flush f: Flush(canvas, f); break; case SetCanvas c: SetCanvas(canvas, c); break; } }
public void Perform(ILoplaMessage instruction) { using (var canvas = new SKCanvas(_bitMap)) { lock (this) { _renderer.LoplaPainter(canvas, instruction); } } }
protected virtual void OnRun(Action <ILoplaMessage> action, ILoplaMessage message) { action.Invoke(message); }