| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | ( function () {	class RenderPass extends THREE.Pass {		constructor( scene, camera, overrideMaterial, clearColor, clearAlpha ) {			super();			this.scene = scene;			this.camera = camera;			this.overrideMaterial = overrideMaterial;			this.clearColor = clearColor;			this.clearAlpha = clearAlpha !== undefined ? clearAlpha : 0;			this.clear = true;			this.clearDepth = false;			this.needsSwap = false;			this._oldClearColor = new THREE.Color();		}		render( renderer, writeBuffer, readBuffer			/*, deltaTime, maskActive */		) {			const oldAutoClear = renderer.autoClear;			renderer.autoClear = false;			let oldClearAlpha, oldOverrideMaterial;			if ( this.overrideMaterial !== undefined ) {				oldOverrideMaterial = this.scene.overrideMaterial;				this.scene.overrideMaterial = this.overrideMaterial;			}			if ( this.clearColor ) {				renderer.getClearColor( this._oldClearColor );				oldClearAlpha = renderer.getClearAlpha();				renderer.setClearColor( this.clearColor, this.clearAlpha );			}			if ( this.clearDepth ) {				renderer.clearDepth();			}			renderer.setRenderTarget( this.renderToScreen ? null : readBuffer ); // TODO: Avoid using autoClear properties, see https://github.com/mrdoob/three.js/pull/15571#issuecomment-465669600			if ( this.clear ) renderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil );			renderer.render( this.scene, this.camera );			if ( this.clearColor ) {				renderer.setClearColor( this._oldClearColor, oldClearAlpha );			}			if ( this.overrideMaterial !== undefined ) {				this.scene.overrideMaterial = oldOverrideMaterial;			}			renderer.autoClear = oldAutoClear;		}	}	THREE.RenderPass = RenderPass;} )();
 |