Cancel the requestAnimationFrame in the API when cancelling rendering
Errors related to this `requestAnimationFrame` show up intermittently when running the integration-tests on the bots, however I've been unable to reproduce it locally. Hence I cannot guarantee that it's enough to fix the timing issues, however this should be generally safe since the `requestAnimationFrame` invokes the `_next`-method and the first thing that one does is check that rendering hasn't been cancelled.
This commit is contained in:
parent
af16aa62ad
commit
a4f1a9a41b
@ -3254,6 +3254,8 @@ class RenderTask {
|
||||
* @ignore
|
||||
*/
|
||||
class InternalRenderTask {
|
||||
#rAF = null;
|
||||
|
||||
static #canvasInUse = new WeakSet();
|
||||
|
||||
constructor({
|
||||
@ -3353,6 +3355,10 @@ class InternalRenderTask {
|
||||
this.running = false;
|
||||
this.cancelled = true;
|
||||
this.gfx?.endDrawing();
|
||||
if (this.#rAF) {
|
||||
window.cancelAnimationFrame(this.#rAF);
|
||||
this.#rAF = null;
|
||||
}
|
||||
InternalRenderTask.#canvasInUse.delete(this._canvas);
|
||||
|
||||
this.callback(
|
||||
@ -3391,7 +3397,8 @@ class InternalRenderTask {
|
||||
|
||||
_scheduleNext() {
|
||||
if (this._useRequestAnimationFrame) {
|
||||
window.requestAnimationFrame(() => {
|
||||
this.#rAF = window.requestAnimationFrame(() => {
|
||||
this.#rAF = null;
|
||||
this._nextBound().catch(this._cancelBound);
|
||||
});
|
||||
} else {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user