浏览代码

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 年之前
父节点
当前提交
05437e236e
共有 1 个文件被更改,包括 4 次插入4 次删除
  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;
 	var shader = THREE.LensflareElement.Shader;
 
 
@@ -150,7 +150,7 @@ THREE.Lensflare = function () {
 
 
 	this.addElement = function ( element ) {
 	this.addElement = function ( element ) {
 
 
-		elements.push( element );
+		this.elements.push( element );
 
 
 	};
 	};
 
 
@@ -220,9 +220,9 @@ THREE.Lensflare = function () {
 			var vecX = - positionScreen.x * 2;
 			var vecX = - positionScreen.x * 2;
 			var vecY = - positionScreen.y * 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;
 				var uniforms = material2.uniforms;