| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | import {	Color} from '../../../build/three.module.js';import { Pass } from './Pass.js';class RenderPass extends 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 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;	}}export { RenderPass };
 |