diff --git a/examples/js/renderers/SoftwareRenderer.js b/examples/js/renderers/SoftwareRenderer.js index d1926190229ec60d441c1a3dee1347364fd50eec..4ad1c88307b49c111af3074b7de353306050da91 100644 --- a/examples/js/renderers/SoftwareRenderer.js +++ b/examples/js/renderers/SoftwareRenderer.js @@ -528,16 +528,6 @@ THREE.SoftwareRenderer = function ( parameters ) { } - function onMaterialUpdate ( event ) { - - var material = event.target; - - material.removeEventListener( 'update', onMaterialUpdate ); - - delete shaders[ material.id ]; - - } - function getMaterialShader( material ) { var id = material.id; @@ -545,9 +535,7 @@ THREE.SoftwareRenderer = function ( parameters ) { if ( shader && material.map && !textures[ material.map.id ] ) delete shaders[ id ]; - if ( shaders[ id ] === undefined ) { - - material.addEventListener( 'update', onMaterialUpdate ); + if ( shaders[ id ] === undefined || material.needsUpdate === true ) { if ( material instanceof THREE.MeshBasicMaterial || material instanceof THREE.MeshLambertMaterial || diff --git a/src/materials/Material.js b/src/materials/Material.js index b2ce073a3ac3344d19cb11453338d2117c610c40..9e33aa09e9b03c9fe95cf850573b01f4b900fcfa 100644 --- a/src/materials/Material.js +++ b/src/materials/Material.js @@ -59,27 +59,10 @@ function Material() { this.visible = true; - this._needsUpdate = true; + this.needsUpdate = true; } -Object.defineProperty( Material.prototype, 'needsUpdate', { - - get: function () { - - return this._needsUpdate; - - }, - - set: function ( value ) { - - if ( value === true ) this.update(); - this._needsUpdate = value; - - } - -} ); - Object.assign( Material.prototype, EventDispatcher.prototype, { isMaterial: true, @@ -336,12 +319,6 @@ Object.assign( Material.prototype, EventDispatcher.prototype, { }, - update: function () { - - this.dispatchEvent( { type: 'update' } ); - - }, - dispose: function () { this.dispatchEvent( { type: 'dispose' } );