From 1d1d29a1632451b9388482d5663ac7db0b9f8eb1 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Fri, 11 Mar 2022 21:59:24 +0100 Subject: [PATCH] add draw cleanup --- repl/src/draw.mjs | 11 +++++++++++ repl/src/evaluate.ts | 1 + 2 files changed, 12 insertions(+) diff --git a/repl/src/draw.mjs b/repl/src/draw.mjs index 4f6dbd8b..2a3e85fc 100644 --- a/repl/src/draw.mjs +++ b/repl/src/draw.mjs @@ -41,3 +41,14 @@ export const queryEvents = (pattern, callback, seconds) => { queryEvents(); }, seconds * 1.5 * 1000); }; + +export const cleanup = () => { + const ctx = getDrawContext(); + ctx.clearRect(0, 0, window.innerWidth, window.innerHeight); + if (window.strudelAnimation) { + cancelAnimationFrame(window.strudelAnimation); + } + if (window.strudelScheduler) { + clearInterval(window.strudelScheduler); + } +}; diff --git a/repl/src/evaluate.ts b/repl/src/evaluate.ts index 9071345c..a38937e8 100644 --- a/repl/src/evaluate.ts +++ b/repl/src/evaluate.ts @@ -39,6 +39,7 @@ Object.assign(globalThis, bootstrapped, Tone, toneHelpers, voicingHelpers, drawH export const evaluate: any = async (code: string) => { const shapeshifted = shapeshifter(code); // transform syntactically correct js code to semantically usable code // console.log('shapeshifted', shapeshifted); + drawHelpers.cleanup(); let evaluated = await eval(shapeshifted); if (typeof evaluated === 'function') { evaluated = evaluated();