mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-04 10:19:24 +02:00
88 lines
1.7 KiB
JavaScript
88 lines
1.7 KiB
JavaScript
import {
|
|
OrthographicCamera,
|
|
PlaneGeometry,
|
|
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.
|
|
|
|
// Important: It's actually a hack to put FullScreenQuad into the Pass namespace. This is only
|
|
// done to make examples/js code work. Normally, FullScreenQuad should be exported
|
|
// from this module like Pass.
|
|
|
|
Pass.FullScreenQuad = ( function () {
|
|
|
|
var camera = new OrthographicCamera( - 1, 1, 1, - 1, 0, 1 );
|
|
var geometry = new PlaneGeometry( 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 };
|