clean some THREEjs memory leaks (some still left)
This commit is contained in:
parent
e497023777
commit
d0a98ee9dd
|
@ -114,7 +114,6 @@ class Renderer2D extends Renderer {
|
|||
canvasId,
|
||||
} = state.canvas;
|
||||
if (canvasId !== this.canvasId) {
|
||||
// TODO doesn't immediatelly reload when change from 3d to 2d
|
||||
this.canvasId = canvasId;
|
||||
if (canvasId !== null) {
|
||||
const {
|
||||
|
|
|
@ -214,8 +214,6 @@ class Renderer3D extends Renderer {
|
|||
window.addEventListener('resize', this.onWindowResize, false);
|
||||
|
||||
this.updateCanvasData(state);
|
||||
// TODO REMOVE
|
||||
window.renderer = this;
|
||||
}
|
||||
|
||||
get view() {
|
||||
|
@ -223,12 +221,29 @@ class Renderer3D extends Renderer {
|
|||
}
|
||||
|
||||
destructor() {
|
||||
// TODO is still leaking memory
|
||||
window.removeEventListener('resize', this.onWindowResize, false);
|
||||
this.threeRenderer.dispose();
|
||||
this.controls.dispose();
|
||||
this.oobGeometry.dispose();
|
||||
this.oobMaterial.dispose();
|
||||
delete this.controls;
|
||||
delete this.scene;
|
||||
delete this.camera;
|
||||
delete this.target;
|
||||
delete this.rollOverMesh;
|
||||
delete this.plane;
|
||||
delete this.oobGeometry;
|
||||
delete this.oobMaterial;
|
||||
delete this.mouse;
|
||||
delete this.raycaster;
|
||||
//
|
||||
delete this.loadedChunks;
|
||||
delete this.objects;
|
||||
const { domElement } = this.threeRenderer;
|
||||
this.threeRenderer = null;
|
||||
domElement.remove();
|
||||
this.threeRenderer.renderLists.dispose();
|
||||
this.threeRenderer.dispose();
|
||||
delete this.threeRenderer;
|
||||
super.destructor();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user