Forráskód Böngészése

Remove ChainableEffect

Takahiro 8 éve
szülő
commit
368e3c3315

+ 0 - 91
examples/js/effects/ChainableEffect.js

@@ -1,91 +0,0 @@
-/**
- * @author takahirox / http://github.com/takahirox/
- *
- * ChainableEffect provides an abilily to apply two or more Effects
- * by enabling Effects which inherit ChainableEffect
- * to be used from other Effects.
- *
- * How to use: example - applies both VREffect and OutlineEffect
- *             (OutlineEffect inherits ChainableEffect)
- *
- *	function init() {
- *
- *		renderer = new THREE.WebGLRenderer();
- *		effect = new THREE.VREffect( new THREE.OutlineEffect( renderer ) );
- *
- *	}
- *
- *	function render() {
- *
- *		effect.render( scene, camera );
- *
- *	}
- */
-
-THREE.ChainableEffect = function ( renderer ) {
-
-	this.autoClear = renderer.autoClear;
-	this.domElement = renderer.domElement;
-	this.shadowMap = renderer.shadowMap;
-
-	this.getPixelRatio = function () {
-
-		return renderer.getPixelRatio();
-
-	};
-
-	this.setPixelRatio = function ( value ) {
-
-		renderer.setPixelRatio( value );
-
-	};
-
-	this.getSize = function () {
-
-		return renderer.getSize();
-
-	};
-
-	this.setSize = function ( width, height, updateStyle ) {
-
-		renderer.setSize( width, height, updateStyle );
-
-	};
-
-	this.setViewport = function ( x, y, width, height ) {
-
-		renderer.setViewport( x, y, width, height );
-
-	};
-
-	this.setScissor = function ( x, y, width, height ) {
-
-		renderer.setScissor( x, y, width, height );
-
-	};
-
-	this.setScissorTest = function ( boolean ) {
-
-		renderer.setScissorTest( boolean );
-
-	};
-
-	this.clear = function ( color, depth, stencil ) {
-
-		renderer.clear( color, depth, stencil );
-
-	};
-
-	this.render = function ( scene, camera, renderTarget, forceClear ) {
-
-		renderer.render( scene, camera, renderTarget, forceClear );
-
-	};
-
-	this.setRenderTarget = function ( renderTarget ) {
-
-		renderer.setRenderTarget( renderTarget );
-
-	};
-
-};

+ 39 - 4
examples/js/effects/OutlineEffect.js

@@ -30,7 +30,45 @@
 
 THREE.OutlineEffect = function ( renderer, parameters ) {
 
-	THREE.ChainableEffect.call( this, renderer );
+	/*
+	 * See #9918
+	 *
+	 * Here enables THREE.OutlineEffect to be called from other *Effect, like
+	 *
+	 * effect = new THREE.VREffect( new THREE.OutlineEffect( renderer ) );
+	 *
+	 * function render () {
+	 *
+ 	 * 	effect.render( scene, camera );
+	 *
+	 * }
+	 */
+	var keys = Object.keys( renderer );
+
+	for ( var i = 0, il = keys.length; i < il; i ++ ) {
+
+		var key = keys[ i ];
+
+		if ( typeof renderer[ key ] === 'function' ) {
+
+			/*
+			 * this works as
+			 * 	this.func = function ( arg1, arg2, ... ) {
+			 *
+			 * 		renderer.func( arg1, arg2, ... );
+			 *
+			 * 	};
+			 */
+			this[ key ] = renderer[ key ].bind( renderer );
+
+		} else {
+
+			// just copy property
+			this[ key ] = renderer[ key ];
+
+		}
+
+	}
 
 	parameters = parameters || {};
 
@@ -357,6 +395,3 @@ THREE.OutlineEffect = function ( renderer, parameters ) {
 	};
 
 };
-
-THREE.OutlineEffect.prototype = Object.create( THREE.ChainableEffect.prototype );
-THREE.OutlineEffect.prototype.constructor = THREE.OutlineEffect;

+ 0 - 1
examples/webgl_loader_mmd.html

@@ -40,7 +40,6 @@
 
 		<script src="js/loaders/TGALoader.js"></script>
 		<script src="js/loaders/MMDLoader.js"></script>
-		<script src="js/effects/ChainableEffect.js"></script>
 		<script src="js/effects/OutlineEffect.js"></script>
 		<script src="js/animation/CCDIKSolver.js"></script>
 		<script src="js/animation/MMDPhysics.js"></script>

+ 0 - 1
examples/webgl_loader_mmd_audio.html

@@ -43,7 +43,6 @@
 
 		<script src="js/loaders/TGALoader.js"></script>
 		<script src="js/loaders/MMDLoader.js"></script>
-		<script src="js/effects/ChainableEffect.js"></script>
 		<script src="js/effects/OutlineEffect.js"></script>
 		<script src="js/animation/CCDIKSolver.js"></script>
 		<script src="js/animation/MMDPhysics.js"></script>

+ 0 - 1
examples/webgl_loader_mmd_pose.html

@@ -40,7 +40,6 @@
 
 		<script src="js/loaders/TGALoader.js"></script>
 		<script src="js/loaders/MMDLoader.js"></script>
-		<script src="js/effects/ChainableEffect.js"></script>
 		<script src="js/effects/OutlineEffect.js"></script>
 		<script src="js/animation/CCDIKSolver.js"></script>
 		<script src="js/animation/MMDPhysics.js"></script>