Multi ABB. Toggle Memory Leak.

memory leak

by steveow

HTML

<!-- *** In jsfiddle: ensure javascript...load type = no wrap in body ***
-->

<!--- Using latest THREE.js (r70+) -->
<script src="http://threejs.org/build/three.min.js"></script>
<script src="http://threejs.org/examples/js/controls/OrbitControls.js"></script>

<h1 id="title_A">Multiple Text-on-Plane ABB's</h1>	 
<input type="submit" id="byBtn1" value="Continue" onclick="F_Continue()" />	
<input type="submit" id="byBtn2" value="Pause"    onclick="F_Pause()"    />
<input type="text"   id="myTextField" value="Pause" />	
<br><br>
<!--- prevent_memory_leak -->
<input type="submit" id="byBtn3" value="Toggle_Prevent_Memory_Leak" onclick="F_Toggle_Prevent_Memory_Leak()" />	
<input type="text"   id="myTextField2" value="false" />	
<div id="container"></div>
<!-- ***** For buttons  ***** 
ensure jsfiddle has
javascript...load type = "no wrap - in body" 
-->

CSS

body {
    background-color: #0011;
    margin: 0px;
    overflow: hidden;
}
			#container 
		{
		  height: 100%;
		  width: 100%;
		  min-height: 100%;
		  min-width: 100%;
		}

JavaScript

// http://jsfiddle.net/steveow/w9wnzb60/

// *** Multiple Text on Plane's from canvas ***



// *** referenced by StackOverflow ***//



var camera, scene, renderer, clock, canvas1, context1;
var count = 0, xpos = 200, ypos = 0, zpos = 0, yDirection = 1, lastUpdateTime = 0;
var mode = 1;
var BB_Array = [];
var BB_1,BB_2,BB_3;
var lastUpdateTime=0;
var Continue_or_Pause = "Pause";
var prevent_memory_leak = false;

F_init();
F_animate();

//--------------------------------------------------------------------
function F_Toggle_Prevent_Memory_Leak()
{
 if (prevent_memory_leak == true)
 {prevent_memory_leak = false;
  document.getElementById('myTextField2').value = "false";}
 else
 {prevent_memory_leak = true;
 document.getElementById('myTextField2').value = "true";}
}


function F_init() 
{

    clock = new THREE.Clock();
    scene = new THREE.Scene();

    // CAMERA 
	camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 10000);    
    scene.add(camera);     
	camera.position.set ( -250, 0, 300 );
	camera.lookAt( 0, 0, 0 ); 

    // AMBIENT LIGHT
	scene.add(new THREE.AmbientLight(0xffffff));
    
	// BACKPLANE
	bPlane  = SOW_F_Get_A_Plane( scene, camera , pColor=0x0099aa, 0,0,-100, "Basic" ); 
	bPlane.rotation.x = Math.PI/2;
	scene.add(bPlane);

    // RENDERER
    renderer = new THREE.WebGLRenderer({antialias: true });
    renderer.setSize(window.innerWidth, window.innerHeight);
    renderer.shadowMapEnabled = true;
    renderer.shadowMapSoft = false;
    //document.body.appendChild(renderer.domElement);
    document.getElementById('container').appendChild( renderer.domElement );
	
	// CONTROLS
	controls = new THREE.OrbitControls( camera, renderer.domElement );
		
    // INITIALIZE BB's
    var xxx = SOW_F_grob_BB_Init_All();
		
}//... EOF F_init

//========================================================
function F_update()
{
 if (Continue_or_Pause == "Continue")
 {
 var time = clock.getElapsedTime();
 var deltaTsecs = time -...