forked from ppfun/pixelplanet
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,
|
canvasId,
|
||||||
} = state.canvas;
|
} = state.canvas;
|
||||||
if (canvasId !== this.canvasId) {
|
if (canvasId !== this.canvasId) {
|
||||||
// TODO doesn't immediatelly reload when change from 3d to 2d
|
|
||||||
this.canvasId = canvasId;
|
this.canvasId = canvasId;
|
||||||
if (canvasId !== null) {
|
if (canvasId !== null) {
|
||||||
const {
|
const {
|
||||||
|
|
|
@ -214,8 +214,6 @@ class Renderer3D extends Renderer {
|
||||||
window.addEventListener('resize', this.onWindowResize, false);
|
window.addEventListener('resize', this.onWindowResize, false);
|
||||||
|
|
||||||
this.updateCanvasData(state);
|
this.updateCanvasData(state);
|
||||||
// TODO REMOVE
|
|
||||||
window.renderer = this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get view() {
|
get view() {
|
||||||
|
@ -223,12 +221,29 @@ class Renderer3D extends Renderer {
|
||||||
}
|
}
|
||||||
|
|
||||||
destructor() {
|
destructor() {
|
||||||
|
// TODO is still leaking memory
|
||||||
window.removeEventListener('resize', this.onWindowResize, false);
|
window.removeEventListener('resize', this.onWindowResize, false);
|
||||||
this.threeRenderer.dispose();
|
|
||||||
this.controls.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;
|
const { domElement } = this.threeRenderer;
|
||||||
this.threeRenderer = null;
|
|
||||||
domElement.remove();
|
domElement.remove();
|
||||||
|
this.threeRenderer.renderLists.dispose();
|
||||||
|
this.threeRenderer.dispose();
|
||||||
|
delete this.threeRenderer;
|
||||||
super.destructor();
|
super.destructor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user