Explorar o código

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 %!s(int64=7) %!d(string=hai) anos
pai
achega
05437e236e
Modificáronse 1 ficheiros con 4 adicións e 4 borrados
  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;