diff --git a/src/renderer/Renderer.ts b/src/renderer/Renderer.ts index 04d6acb5..a48daf4c 100644 --- a/src/renderer/Renderer.ts +++ b/src/renderer/Renderer.ts @@ -1433,6 +1433,8 @@ class Renderer { } public destroy() { + this.labelWorker.destroy(); + for (let i in this.controls) { this.controls[i].remove(); } diff --git a/src/scene/Planet.ts b/src/scene/Planet.ts index 8c5022b3..bc63ec8e 100644 --- a/src/scene/Planet.ts +++ b/src/scene/Planet.ts @@ -1988,6 +1988,18 @@ export class Planet extends RenderNode { this.quadTreeStrategy.clearRenderedNodes(); } + /** + * Destroy planet. + * @public + */ + public override destroy() { + this._terrainWorker.destroy(); + this._plainSegmentWorker.destroy(); + this.renderer?.destroy() + this.onremove(); + super.destroy(); + } + // function checkTerrainCollision(entity) { // let _tempTerrPoint = new Vec3(); // let nodes = globus.planet._renderedNodes; diff --git a/src/utils/BaseWorker.ts b/src/utils/BaseWorker.ts index 49e512d0..2ae40137 100644 --- a/src/utils/BaseWorker.ts +++ b/src/utils/BaseWorker.ts @@ -62,10 +62,8 @@ export class BaseWorker { w.onmessage = null; w.terminate(); } - //@ts-ignore - this._pendingQueue = null; - //@ts-ignore - this._workerQueue = null; + this._pendingQueue = []; + this._workerQueue = []; } public get pendingQueue(): T[] {