浏览代码

disposing better

Raanan Weber 7 年之前
父节点
当前提交
e6e94a1279
共有 2 个文件被更改,包括 19 次插入0 次删除
  1. 13 0
      Viewer/src/templateManager.ts
  2. 6 0
      Viewer/src/viewer/viewer.ts

+ 13 - 0
Viewer/src/templateManager.ts

@@ -154,6 +154,19 @@ export class TemplateManager {
         }
     }
 
+    public dispose() {
+        // dispose all templates
+        Object.keys(this.templates).forEach(template => {
+            this.templates[template].dispose();
+        });
+
+        this.onInit.clear();
+        this.onAllLoaded.clear();
+        this.onEventTriggered.clear();
+        this.onLoaded.clear();
+        this.onStateChange.clear();
+    }
+
 }
 
 

+ 6 - 0
Viewer/src/viewer/viewer.ts

@@ -118,8 +118,14 @@ export abstract class AbstractViewer {
         this.sceneOptimizer.stop();
         this.sceneOptimizer.dispose();
 
+        if (this.scene.activeCamera) {
+            this.scene.activeCamera.detachControl(this.canvas);
+        }
+
         this.scene.dispose();
         this.engine.dispose();
+
+        this.templateManager.dispose();
     }
 
     protected abstract prepareContainerElement();