UNPKG

@babylonjs/viewer

Version:

The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.

3 lines (2 loc) 4.68 kB
import{l as e,aX as s,aY as t,q as r,s as a}from"./index-BPURObVq.esm.min.js";import{R as n,P as o}from"./postProcessRenderPipelineManager-Im9ZJXSn.esm.min.js";let i=(()=>{var i;let c,h=[],_=[];return i=class{get name(){return this._name}get cameras(){return this._cameras}get engine(){return this._engine}constructor(t,r){this._engine=t,this._name=e(this,h,void 0),this.uniqueId=(e(this,_),s.UniqueId),n(o),this._name=r,this._renderEffects={},this._renderEffectsForIsolatedPass=new Array,this._cameras=[]}getClassName(){return"PostProcessRenderPipeline"}get isSupported(){for(const e in this._renderEffects)if(Object.prototype.hasOwnProperty.call(this._renderEffects,e)&&!this._renderEffects[e].isSupported)return!1;return!0}addEffect(e){this._renderEffects[e._name]=e}_rebuild(){}_enableEffect(e,s){const r=this._renderEffects[e];r&&r._enable(t.MakeArray(s||this._cameras))}_disableEffect(e,s){const r=this._renderEffects[e];r&&r._disable(t.MakeArray(s||this._cameras))}_attachCameras(e,s){const r=t.MakeArray(e||this._cameras);if(!r)return;const a=[];let n;for(n=0;n<r.length;n++){const e=r[n];e&&(-1===this._cameras.indexOf(e)?this._cameras.push(e):s&&a.push(n))}for(n=0;n<a.length;n++)r.splice(a[n],1);for(const e in this._renderEffects)Object.prototype.hasOwnProperty.call(this._renderEffects,e)&&this._renderEffects[e]._attachCameras(r)}_detachCameras(e){const s=t.MakeArray(e||this._cameras);if(s){for(const e in this._renderEffects)Object.prototype.hasOwnProperty.call(this._renderEffects,e)&&this._renderEffects[e]._detachCameras(s);for(let e=0;e<s.length;e++)this._cameras.splice(this._cameras.indexOf(s[e]),1)}}_update(){for(const e in this._renderEffects)Object.prototype.hasOwnProperty.call(this._renderEffects,e)&&this._renderEffects[e]._update();for(let e=0;e<this._cameras.length;e++){if(!this._cameras[e])continue;const s=this._cameras[e].name;this._renderEffectsForIsolatedPass[s]&&this._renderEffectsForIsolatedPass[s]._update()}}_reset(){this._renderEffects={},this._renderEffectsForIsolatedPass=new Array}_enableMSAAOnFirstPostProcess(e){if(!this._engine._features.supportMSAA)return!1;const s=Object.keys(this._renderEffects);if(s.length>0){const t=this._renderEffects[s[0]].getPostProcesses();t&&(t[0].samples=e)}return!0}_adaptPostProcessesToViewPort(){const e=Object.keys(this._renderEffects);for(const s of e){const e=this._renderEffects[s].getPostProcesses();if(e)for(const s of e)s.adaptScaleToCurrentViewport=!0}}setPrePassRenderer(e){return!1}dispose(){}},(()=>{const e="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;c=[a()],r(null,null,c,{kind:"field",name:"_name",static:!1,private:!1,access:{has:e=>"_name"in e,get:e=>e._name,set:(e,s)=>{e._name=s}},metadata:e},h,_),e&&Object.defineProperty(i,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:e})})(),i})();class c{constructor(e,s,t,r=!0){this._name=s,this._singleInstance=r,this._getPostProcesses=t,this._cameras={},this._indicesForCamera={},this._postProcesses={}}get isSupported(){for(const e in this._postProcesses)if(Object.prototype.hasOwnProperty.call(this._postProcesses,e)){const s=this._postProcesses[e];for(let e=0;e<s.length;e++)if(!s[e].isSupported)return!1}return!0}_update(){}_attachCameras(e){let s;const r=t.MakeArray(e||this._cameras);if(r)for(let e=0;e<r.length;e++){const t=r[e];if(!t)continue;const a=t.name;if(s=this._singleInstance?0:a,!this._postProcesses[s]){const e=this._getPostProcesses();e&&(this._postProcesses[s]=Array.isArray(e)?e:[e])}this._indicesForCamera[a]||(this._indicesForCamera[a]=[]);const n=this._postProcesses[s];for(const e of n){const s=t.attachPostProcess(e);this._indicesForCamera[a].push(s)}this._cameras[a]||(this._cameras[a]=t)}}_detachCameras(e){const s=t.MakeArray(e||this._cameras);if(s)for(let e=0;e<s.length;e++){const t=s[e],r=t.name,a=this._postProcesses[this._singleInstance?0:r];if(a)for(const e of a)t.detachPostProcess(e);this._cameras[r]&&(this._cameras[r]=null),delete this._indicesForCamera[r]}}_enable(e){const s=t.MakeArray(e||this._cameras);if(s)for(let e=0;e<s.length;e++){const t=s[e],r=t.name,a=this._singleInstance?0:r;for(let n=0;n<this._indicesForCamera[r].length;n++){const o=this._indicesForCamera[r][n],i=t._postProcesses[o];null==i&&s[e].attachPostProcess(this._postProcesses[a][n],o)}}}_disable(e){const s=t.MakeArray(e||this._cameras);if(s)for(let e=0;e<s.length;e++){const t=s[e],r=t.name,a=this._postProcesses[this._singleInstance?0:r];for(const e of a)t.detachPostProcess(e)}}getPostProcesses(e){return this._singleInstance?this._postProcesses[0]:e?this._postProcesses[e.name]:null}}export{c as P,i as a}; //# sourceMappingURL=postProcessRenderEffect-BTQhrmYp.esm.min.js.map