Bläddra i källkod

Merge remote-tracking branch 'remotes/mrdoob/dev' into dev

alteredq 12 år sedan
förälder
incheckning
ae3b15e8e5

+ 3 - 3
docs/api/extras/core/EventTarget.html → docs/api/core/EventDispatcher.html

@@ -2,9 +2,9 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8">
-		<script src="../../../list.js"></script>
-		<script src="../../../page.js"></script>
-		<link type="text/css" rel="stylesheet" href="../../../page.css" />
+		<script src="../../list.js"></script>
+		<script src="../../page.js"></script>
+		<link type="text/css" rel="stylesheet" href="../../page.css" />
 	</head>
 	<body>
 		<h1>[name]</h1>

+ 0 - 12
docs/api/renderers/WebGLRenderer.html

@@ -238,18 +238,6 @@
 		<h3>.addPrePlugin( plugin )</h3>
 		<div>Initialises the preprocessing plugin, and adds it to the renderPluginsPre array.</div>
 
-		<h3>.deallocateObject( [page:Object3D object] )</h3>
-		<div>object — an instance of [page:Object3D]</div>
-		<div>Removes an object from the GL context and releases all the data (geometry, matrices...) that the GL context keeps about the object, but it doesn't release textures or affect any JavaScript data.</div>
-
-		<h3>.deallocateTexture( [page:??? texture] )</h3>
-		<div>texture — an instance of [page:???] TODO</div>
-		<div>Releases a texture from the GL context.</div>
-
-		<h3>.deallocateRenderTarget( [page:WebGLRenderTarget renderTarget] )</h3>
-		<div>renderTarget — an instance of [page:WebGLRenderTarget]</div>
-		<div>Releases a render target from the GL context.</div>
-
 		<h3>.updateShadowMap( [page:Scene scene], [page:Camera camera] )</h3>
 		<div>scene — an instance of [page:Scene]<br />
 		camera — an instance of [page:Camera]</div>

+ 1 - 1
docs/list.js

@@ -16,6 +16,7 @@ var list = {
 		"Core": [
 			[ "Clock", "api/core/Clock" ],
 			[ "Color", "api/core/Color" ],
+			[ "EventDispatcher", "api/core/EventDispatcher" ],
 			[ "Face3", "api/core/Face3" ],
 			[ "Face4", "api/core/Face4" ],
 			[ "Frustum", "api/core/Frustum" ],
@@ -139,7 +140,6 @@ var list = {
 			[ "BufferGeometry", "api/extras/core/BufferGeometry" ],
 			[ "Curve", "api/extras/core/Curve" ],
 			[ "CurvePath", "api/extras/core/CurvePath" ],
-			[ "EventTarget", "api/extras/core/EventTarget" ],
 			[ "Gyroscope", "api/extras/core/Gyroscope" ],
 			[ "Path", "api/extras/core/Path" ],
 			[ "Shape", "api/extras/core/Shape" ]

+ 1 - 1
examples/js/controls/OrbitControls.js

@@ -7,7 +7,7 @@
 
 THREE.OrbitControls = function ( object, domElement ) {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 	this.object = object;
 	this.domElement = ( domElement !== undefined ) ? domElement : document;

+ 1 - 1
examples/js/controls/TrackballControls.js

@@ -4,7 +4,7 @@
 
 THREE.TrackballControls = function ( object, domElement ) {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 	var _this = this;
 	var STATE = { NONE: -1, ROTATE: 0, ZOOM: 1, PAN: 2 };

+ 3 - 2
examples/js/loaders/MTLLoader.js

@@ -6,7 +6,8 @@
 
 THREE.MTLLoader = function( baseUrl, options ) {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
+	
 	this.baseUrl = baseUrl;
 	this.options = options;
 
@@ -149,7 +150,7 @@ THREE.MTLLoader.prototype = {
 
 THREE.MTLLoader.MaterialCreator = function( baseUrl, options ) {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 	this.baseUrl = baseUrl;
 	this.options = options;

+ 1 - 1
examples/js/loaders/OBJLoader.js

@@ -4,7 +4,7 @@
 
 THREE.OBJLoader = function () {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 };
 

+ 1 - 1
examples/js/loaders/OBJMTLLoader.js

@@ -7,7 +7,7 @@
 
 THREE.OBJMTLLoader = function ( ) {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 };
 

+ 1 - 1
examples/js/loaders/STLLoader.js

@@ -20,7 +20,7 @@
 
 THREE.STLLoader = function () {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 };
 

+ 1 - 1
examples/js/loaders/VTKLoader.js

@@ -4,7 +4,7 @@
 
 THREE.VTKLoader = function () {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 };
 

+ 3 - 3
examples/webgl_test_memory.html

@@ -85,10 +85,10 @@
 
 				scene.remove( mesh );
 
-				// force deallocate
+				// clean up
 
-				geometry.deallocate();
-				texture.deallocate();
+				geometry.dispose();
+				texture.dispose();
 
 			}
 

+ 1 - 1
examples/webgl_test_memory2.html

@@ -131,7 +131,7 @@
 				for ( var i = 0; i < N; i ++ ) {
 
 					var mesh = meshes[ i ];
-					mesh.material.deallocate();
+					mesh.material.dispose();
 
 				}
 

+ 3 - 3
src/core/BufferGeometry.js

@@ -4,7 +4,7 @@
 
 THREE.BufferGeometry = function () {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 	this.id = THREE.GeometryIdCount ++;
 
@@ -544,9 +544,9 @@ THREE.BufferGeometry.prototype = {
 
 	},
 
-	deallocate: function () {
+	dispose: function () {
 
-		this.dispatchEvent( { type: 'deallocate', target: this } );
+		this.dispatchEvent( { type: 'dispose' } );
 
 	}
 

+ 17 - 15
src/core/EventTarget.js → src/core/EventDispatcher.js

@@ -1,8 +1,8 @@
 /**
- * https://github.com/mrdoob/eventtarget.js/
+ * https://github.com/mrdoob/eventdispatcher.js/
  */
 
-THREE.EventTarget = function () {
+THREE.EventDispatcher = function () {
 
 	var listeners = {};
 
@@ -22,32 +22,34 @@ THREE.EventTarget = function () {
 
 	};
 
-	this.dispatchEvent = function ( event ) {
-
-		var listenerArray = listeners[ event.type ];
-
-		if ( listenerArray !== undefined ) {
+	this.removeEventListener = function ( type, listener ) {
 
-			for ( var i = 0, l = listenerArray.length; i < l; i ++ ) {
+		var index = listeners[ type ].indexOf( listener );
 
-				listenerArray[ i ].call( this, event );
+		if ( index !== - 1 ) {
 
-			}
+			listeners[ type ].splice( index, 1 );
 
 		}
 
 	};
 
-	this.removeEventListener = function ( type, listener ) {
+	this.dispatchEvent = function ( event ) {
 
-		var index = listeners[ type ].indexOf( listener );
+		var listenerArray = listeners[ event.type ];
 
-		if ( index !== - 1 ) {
+		if ( listenerArray !== undefined ) {
+			
+			event.target = this;
 
-			listeners[ type ].splice( index, 1 );
+			for ( var i = 0, l = listenerArray.length; i < l; i ++ ) {
+
+				listenerArray[ i ].call( this, event );
+
+			}
 
 		}
 
 	};
 
-};
+};

+ 3 - 3
src/core/Geometry.js

@@ -9,7 +9,7 @@
 
 THREE.Geometry = function () {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 	this.id = THREE.GeometryIdCount ++;
 
@@ -736,9 +736,9 @@ THREE.Geometry.prototype = {
 
 	},
 
-	deallocate: function () {
+	dispose: function () {
 
-		this.dispatchEvent( { type: 'deallocate', target: this } );
+		this.dispatchEvent( { type: 'dispose' } );
 
 	}
 

+ 1 - 1
src/loaders/ImageLoader.js

@@ -4,7 +4,7 @@
 
 THREE.ImageLoader = function () {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 	this.crossOrigin = null;
 

+ 1 - 1
src/loaders/LoadingMonitor.js

@@ -4,7 +4,7 @@
 
 THREE.LoadingMonitor = function () {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 	var scope = this;
 

+ 1 - 1
src/loaders/SceneLoader.js

@@ -569,7 +569,7 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
 
 			var result;
 
-			// loaders which use EventTarget
+			// loaders which use EventDispatcher
 
 			if ( event.content ) {
 

+ 1 - 1
src/loaders/TextureLoader.js

@@ -4,7 +4,7 @@
 
 THREE.TextureLoader = function () {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 	this.crossOrigin = null;
 

+ 3 - 3
src/materials/Material.js

@@ -5,7 +5,7 @@
 
 THREE.Material = function () {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 	this.id = THREE.MaterialIdCount ++;
 
@@ -116,9 +116,9 @@ THREE.Material.prototype.clone = function ( material ) {
 
 };
 
-THREE.Material.prototype.deallocate = function () {
+THREE.Material.prototype.dispose = function () {
 
-	this.dispatchEvent( { type: 'deallocate', target: this } );
+	this.dispatchEvent( { type: 'dispose' } );
 
 };
 

+ 3 - 3
src/renderers/WebGLRenderTarget.js

@@ -5,7 +5,7 @@
 
 THREE.WebGLRenderTarget = function ( width, height, options ) {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 	this.width = width;
 	this.height = height;
@@ -64,8 +64,8 @@ THREE.WebGLRenderTarget.prototype.clone = function() {
 
 };
 
-THREE.WebGLRenderTarget.prototype.deallocate = function () {
+THREE.WebGLRenderTarget.prototype.dispose = function () {
 
-	this.dispatchEvent( { type: 'deallocate', target: this } );
+	this.dispatchEvent( { type: 'dispose' } );
 
 };

+ 12 - 12
src/renderers/WebGLRenderer.js

@@ -462,11 +462,11 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	// Events
 
-	var onGeometryDeallocate = function ( event ) {
+	var onGeometryDispose = function ( event ) {
 
 		var geometry = event.target;
 
-		geometry.removeEventListener( 'deallocate', onGeometryDeallocate );
+		geometry.removeEventListener( 'dispose', onGeometryDispose );
 
 		deallocateGeometry( geometry );
 
@@ -474,11 +474,11 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	};
 
-	var onTextureDeallocate = function ( event ) {
+	var onTextureDispose = function ( event ) {
 
 		var texture = event.target;
 
-		texture.removeEventListener( 'deallocate', onTextureDeallocate );
+		texture.removeEventListener( 'dispose', onTextureDispose );
 
 		deallocateTexture( texture );
 
@@ -487,11 +487,11 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	};
 
-	var onRenderTargetDeallocate = function ( event ) {
+	var onRenderTargetDispose = function ( event ) {
 
 		var renderTarget = event.target;
 
-		renderTarget.removeEventListener( 'deallocate', onRenderTargetDeallocate );
+		renderTarget.removeEventListener( 'dispose', onRenderTargetDispose );
 
 		deallocateRenderTarget( renderTarget );
 
@@ -499,11 +499,11 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	};
 
-	var onMaterialDeallocate = function ( event ) {
+	var onMaterialDispose = function ( event ) {
 
 		var material = event.target;
 
-		material.removeEventListener( 'deallocate', onMaterialDeallocate );
+		material.removeEventListener( 'dispose', onMaterialDispose );
 
 		deallocateMaterial( material );
 
@@ -4560,7 +4560,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 			if ( object.geometry !== undefined && object.geometry.__webglInit === undefined ) {
 
 				object.geometry.__webglInit = true;
-				object.geometry.addEventListener( 'deallocate', onGeometryDeallocate );
+				object.geometry.addEventListener( 'dispose', onGeometryDispose );
 
 			}
 
@@ -4964,7 +4964,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	this.initMaterial = function ( material, lights, fog, object ) {
 
-		material.addEventListener( 'deallocate', onMaterialDeallocate );
+		material.addEventListener( 'dispose', onMaterialDispose );
 
 		var u, a, identifiers, i, parameters, maxLightCount, maxBones, maxShadows, shaderID;
 
@@ -6743,7 +6743,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 				texture.__webglInit = true;
 
-				texture.addEventListener( 'deallocate', onTextureDeallocate );
+				texture.addEventListener( 'dispose', onTextureDispose );
 
 				texture.__webglTexture = _gl.createTexture();
 
@@ -7007,7 +7007,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 			if ( renderTarget.depthBuffer === undefined ) renderTarget.depthBuffer = true;
 			if ( renderTarget.stencilBuffer === undefined ) renderTarget.stencilBuffer = true;
 
-			renderTarget.addEventListener( 'deallocate', onRenderTargetDeallocate );
+			renderTarget.addEventListener( 'dispose', onRenderTargetDispose );
 
 			renderTarget.__webglTexture = _gl.createTexture();
 

+ 3 - 3
src/textures/Texture.js

@@ -6,7 +6,7 @@
 
 THREE.Texture = function ( image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
 
-	THREE.EventTarget.call( this );
+	THREE.EventDispatcher.call( this );
 
 	this.id = THREE.TextureIdCount ++;
 
@@ -77,9 +77,9 @@ THREE.Texture.prototype = {
 
 	},
 
-	deallocate: function () {
+	dispose: function () {
 
-		this.dispatchEvent( { type: 'deallocate', target: this } );
+		this.dispatchEvent( { type: 'dispose' } );
 
 	}
 

+ 1 - 1
utils/includes/canvas.json

@@ -16,7 +16,7 @@
 	"../src/math/Quaternion.js",
 	"../src/math/Vertex.js",
 	"../src/math/UV.js",
-	"../src/core/EventTarget.js",
+	"../src/core/EventDispatcher.js",
 	"../src/core/Raycaster.js",
 	"../src/core/Object3D.js",
 	"../src/core/Projector.js",

+ 1 - 1
utils/includes/common.json

@@ -19,7 +19,7 @@
 	"../src/math/Vertex.js",
 	"../src/math/UV.js",
 	"../src/core/Clock.js",
-	"../src/core/EventTarget.js",
+	"../src/core/EventDispatcher.js",
 	"../src/core/Raycaster.js",
 	"../src/core/Object3D.js",
 	"../src/core/Projector.js",

+ 1 - 1
utils/includes/css3d.json

@@ -12,7 +12,7 @@
 	"../src/math/Sphere.js",
 	"../src/math/Triangle.js",
 	"../src/math/Plane.js",
-	"../src/core/EventTarget.js",
+	"../src/core/EventDispatcher.js",
 	"../src/core/Raycaster.js",
 	"../src/core/Object3D.js",
 	"../src/core/Projector.js",

+ 1 - 1
utils/includes/webgl.json

@@ -18,7 +18,7 @@
 	"../src/math/Sphere.js",
 	"../src/math/Plane.js",
 	"../src/core/Clock.js",
-	"../src/core/EventTarget.js",
+	"../src/core/EventDispatcher.js",
 	"../src/core/Raycaster.js",
 	"../src/core/Object3D.js",
 	"../src/core/Projector.js",