Jelajahi Sumber

Update Lensflare.js to properly dispose textures

Update Lensflare.js so to be able to properly dispose the textures otherwise we have memory issues...

In order to properly dispose the textures added into the Lensflare ( new THREE.Lensflare()  ) by the ( new THREE.LensflareElement() ) we must place them into the object. So then we can do for example:

for( var i = scene.children.length - 1; i >= 0; i-- ) {
  for( var j = 0, n = scene.children[i].elements.length; j <n; j++ ){
    scene.children[i].elements[m].texture.dispose();
  }
}
John Barounis 7 tahun lalu
induk
melakukan
05437e236e
1 mengubah file dengan 4 tambahan dan 4 penghapusan
  1. 4 4
      examples/js/objects/Lensflare.js

+ 4 - 4
examples/js/objects/Lensflare.js

@@ -127,7 +127,7 @@ THREE.Lensflare = function () {
 
 	//
 
-	var elements = [];
+	this.elements = [];
 
 	var shader = THREE.LensflareElement.Shader;
 
@@ -150,7 +150,7 @@ THREE.Lensflare = function () {
 
 	this.addElement = function ( element ) {
 
-		elements.push( element );
+		this.elements.push( element );
 
 	};
 
@@ -220,9 +220,9 @@ THREE.Lensflare = function () {
 			var vecX = - positionScreen.x * 2;
 			var vecY = - positionScreen.y * 2;
 
-			for ( var i = 0, l = elements.length; i < l; i ++ ) {
+			for ( var i = 0, l = this.elements.length; i < l; i ++ ) {
 
-				var element = elements[ i ];
+				var element = this.elements[ i ];
 
 				var uniforms = material2.uniforms;