Buckets:
ktongue/docker_container / simsite /frontend /node_modules /three-stdlib /postprocessing /EffectComposer.cjs
| ; | |
| var __defProp = Object.defineProperty; | |
| var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | |
| var __publicField = (obj, key, value) => { | |
| __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); | |
| return value; | |
| }; | |
| Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); | |
| const THREE = require("three"); | |
| const CopyShader = require("../shaders/CopyShader.cjs"); | |
| const ShaderPass = require("./ShaderPass.cjs"); | |
| const MaskPass = require("./MaskPass.cjs"); | |
| class EffectComposer { | |
| constructor(renderer, renderTarget) { | |
| __publicField(this, "renderer"); | |
| __publicField(this, "_pixelRatio"); | |
| __publicField(this, "_width"); | |
| __publicField(this, "_height"); | |
| __publicField(this, "renderTarget1"); | |
| __publicField(this, "renderTarget2"); | |
| __publicField(this, "writeBuffer"); | |
| __publicField(this, "readBuffer"); | |
| __publicField(this, "renderToScreen"); | |
| __publicField(this, "passes", []); | |
| __publicField(this, "copyPass"); | |
| __publicField(this, "clock"); | |
| this.renderer = renderer; | |
| if (renderTarget === void 0) { | |
| const parameters = { | |
| minFilter: THREE.LinearFilter, | |
| magFilter: THREE.LinearFilter, | |
| format: THREE.RGBAFormat | |
| }; | |
| const size = renderer.getSize(new THREE.Vector2()); | |
| this._pixelRatio = renderer.getPixelRatio(); | |
| this._width = size.width; | |
| this._height = size.height; | |
| renderTarget = new THREE.WebGLRenderTarget( | |
| this._width * this._pixelRatio, | |
| this._height * this._pixelRatio, | |
| parameters | |
| ); | |
| renderTarget.texture.name = "EffectComposer.rt1"; | |
| } else { | |
| this._pixelRatio = 1; | |
| this._width = renderTarget.width; | |
| this._height = renderTarget.height; | |
| } | |
| this.renderTarget1 = renderTarget; | |
| this.renderTarget2 = renderTarget.clone(); | |
| this.renderTarget2.texture.name = "EffectComposer.rt2"; | |
| this.writeBuffer = this.renderTarget1; | |
| this.readBuffer = this.renderTarget2; | |
| this.renderToScreen = true; | |
| if (CopyShader.CopyShader === void 0) { | |
| console.error("THREE.EffectComposer relies on CopyShader"); | |
| } | |
| if (ShaderPass.ShaderPass === void 0) { | |
| console.error("THREE.EffectComposer relies on ShaderPass"); | |
| } | |
| this.copyPass = new ShaderPass.ShaderPass(CopyShader.CopyShader); | |
| this.copyPass.material.blending = THREE.NoBlending; | |
| this.clock = new THREE.Clock(); | |
| } | |
| swapBuffers() { | |
| const tmp = this.readBuffer; | |
| this.readBuffer = this.writeBuffer; | |
| this.writeBuffer = tmp; | |
| } | |
| addPass(pass) { | |
| this.passes.push(pass); | |
| pass.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio); | |
| } | |
| insertPass(pass, index) { | |
| this.passes.splice(index, 0, pass); | |
| pass.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio); | |
| } | |
| removePass(pass) { | |
| const index = this.passes.indexOf(pass); | |
| if (index !== -1) { | |
| this.passes.splice(index, 1); | |
| } | |
| } | |
| isLastEnabledPass(passIndex) { | |
| for (let i = passIndex + 1; i < this.passes.length; i++) { | |
| if (this.passes[i].enabled) { | |
| return false; | |
| } | |
| } | |
| return true; | |
| } | |
| render(deltaTime) { | |
| if (deltaTime === void 0) { | |
| deltaTime = this.clock.getDelta(); | |
| } | |
| const currentRenderTarget = this.renderer.getRenderTarget(); | |
| let maskActive = false; | |
| const il = this.passes.length; | |
| for (let i = 0; i < il; i++) { | |
| const pass = this.passes[i]; | |
| if (pass.enabled === false) | |
| continue; | |
| pass.renderToScreen = this.renderToScreen && this.isLastEnabledPass(i); | |
| pass.render(this.renderer, this.writeBuffer, this.readBuffer, deltaTime, maskActive); | |
| if (pass.needsSwap) { | |
| if (maskActive) { | |
| const context = this.renderer.getContext(); | |
| const stencil = this.renderer.state.buffers.stencil; | |
| stencil.setFunc(context.NOTEQUAL, 1, 4294967295); | |
| this.copyPass.render(this.renderer, this.writeBuffer, this.readBuffer, deltaTime); | |
| stencil.setFunc(context.EQUAL, 1, 4294967295); | |
| } | |
| this.swapBuffers(); | |
| } | |
| if (MaskPass.MaskPass !== void 0) { | |
| if (pass instanceof MaskPass.MaskPass) { | |
| maskActive = true; | |
| } else if (pass instanceof MaskPass.ClearMaskPass) { | |
| maskActive = false; | |
| } | |
| } | |
| } | |
| this.renderer.setRenderTarget(currentRenderTarget); | |
| } | |
| reset(renderTarget) { | |
| if (renderTarget === void 0) { | |
| const size = this.renderer.getSize(new THREE.Vector2()); | |
| this._pixelRatio = this.renderer.getPixelRatio(); | |
| this._width = size.width; | |
| this._height = size.height; | |
| renderTarget = this.renderTarget1.clone(); | |
| renderTarget.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio); | |
| } | |
| this.renderTarget1.dispose(); | |
| this.renderTarget2.dispose(); | |
| this.renderTarget1 = renderTarget; | |
| this.renderTarget2 = renderTarget.clone(); | |
| this.writeBuffer = this.renderTarget1; | |
| this.readBuffer = this.renderTarget2; | |
| } | |
| setSize(width, height) { | |
| this._width = width; | |
| this._height = height; | |
| const effectiveWidth = this._width * this._pixelRatio; | |
| const effectiveHeight = this._height * this._pixelRatio; | |
| this.renderTarget1.setSize(effectiveWidth, effectiveHeight); | |
| this.renderTarget2.setSize(effectiveWidth, effectiveHeight); | |
| for (let i = 0; i < this.passes.length; i++) { | |
| this.passes[i].setSize(effectiveWidth, effectiveHeight); | |
| } | |
| } | |
| setPixelRatio(pixelRatio) { | |
| this._pixelRatio = pixelRatio; | |
| this.setSize(this._width, this._height); | |
| } | |
| dispose() { | |
| this.renderTarget1.dispose(); | |
| this.renderTarget2.dispose(); | |
| this.copyPass.dispose(); | |
| } | |
| } | |
| exports.EffectComposer = EffectComposer; | |
| //# sourceMappingURL=EffectComposer.cjs.map | |
Xet Storage Details
- Size:
- 5.91 kB
- Xet hash:
- 2e3afa219f5bd8b009b64f3423aa7b29e96f0acb71bc5a19f5c713ebde6623a0
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.