import { OrthographicCamera, PlaneBufferGeometry, Mesh } from "../../../build/three.module.js"; function Pass() { // if set to true, the pass is processed by the composer this.enabled = true; // if set to true, the pass indicates to swap read and write buffer after rendering this.needsSwap = true; // if set to true, the pass clears its buffer before rendering this.clear = false; // if set to true, the result of the pass is rendered to screen. This is set automatically by EffectComposer. this.renderToScreen = false; } Object.assign( Pass.prototype, { setSize: function ( /* width, height */ ) {}, render: function ( /* renderer, writeBuffer, readBuffer, deltaTime, maskActive */ ) { console.error( 'THREE.Pass: .render() must be implemented in derived pass.' ); } } ); // Helper for passes that need to fill the viewport with a single quad. Pass.FullScreenQuad = ( function () { var camera = new OrthographicCamera( - 1, 1, 1, - 1, 0, 1 ); var geometry = new PlaneBufferGeometry( 2, 2 ); var FullScreenQuad = function ( material ) { this._mesh = new Mesh( geometry, material ); }; Object.defineProperty( FullScreenQuad.prototype, 'material', { get: function () { return this._mesh.material; }, set: function ( value ) { this._mesh.material = value; } } ); Object.assign( FullScreenQuad.prototype, { dispose: function () { this._mesh.geometry.dispose(); }, render: function ( renderer ) { renderer.render( this._mesh, camera ); } } ); return FullScreenQuad; } )(); export { Pass };