🎟p5.jsのdrawはタイマーで呼び出しているのか?
Drawがフレームレートに従って動いているのはわかって、javascriptで動いている限りはsetintervalに違いない。
p5.jsのコードはuncompressで全長は93040行。framefactoryというエイリアスでsetintervalが設定されている。
var frameFactory = setInterval(function() {
frames.push(makeFrame(fName + count, ext, cnv));
count++;
}, 1000 / fps);
saveFramesという関数だが、注意書き見るとフレームの保存をするということで、いまいち本当にそうか確証が持てない。
setTimeoutで検索するとところどころ使われているよう。一回こっきりのメソッドの呼び出しは全部timeoutを使っているのかという感じ。useSetTimeoutという関数でpromiseとの干渉を避けているようだ。
P5.jsのdrawコールバックのしくみはタイマーを使っていますか?
P5.jsの`draw`コールバックはタイマーを直接使用していません。代わりに、P5.jsはブラウザの`requestAnimationFrame`を使用してアニメーションループを実装しています。`requestAnimationFrame`は、ブラウザが最適なタイミングで次の再描画を行うようにスケジュールするため、タイマーよりも効率的でスムーズなアニメーションを実現できます。
具体的には、P5.jsは以下のような流れで`draw`コールバックを呼び出します:
P5.jsは最初のフレームを描画するために`requestAnimationFrame`を呼び出します。
ブラウザが次の再描画タイミングに達すると、`draw`コールバックが呼び出されます。
`draw`コールバック内のコードが実行され、描画が更新されます。
再度`requestAnimationFrame`が呼び出され、次のフレームのために同じプロセスが繰り返されます。
この方法により、P5.jsは一定のフレームレートを維持し、ブラウザの描画パフォーマンスを最大限に活用することができます。
お願い致します