@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.48 kB
JavaScript
import{C as e,y as t,w as r}from"./index-BPURObVq.esm.min.js";import{W as s}from"./webgpuEngine.pure-BHfRCzkH.esm.min.js";import"./sphericalPolynomial.pure-CsRKkAN3.esm.min.js";let a=!1;function n(){a||(a=!0,s.prototype.unBindMultiColorAttachmentFramebuffer=function(e,t=!1,r){r&&r(),this._endCurrentRenderPass(),e.disableAutomaticMSAAResolve||this.resolveMultiFramebuffer(e,!1),t||this.generateMipMapsMultiFramebuffer(e),this._currentRenderTarget=null,this._mrtAttachments=[],this._cacheRenderPipeline.setMRT([]),this._cacheRenderPipeline.setMRTAttachments(this._mrtAttachments)},s.prototype.createMultipleRenderTarget=function(s,a,n){let i=!1,p=!0,u=!1,T=!1,l=e.TEXTUREFORMAT_DEPTH16,o=1,h=1;const c=e.TEXTURETYPE_UNSIGNED_BYTE,E=e.TEXTURE_TRILINEAR_SAMPLINGMODE,_=e.TEXTUREFORMAT_RGBA,R=e.TEXTURE_2D;let f=[],m=[],M=[],d=[],A=[],g=[],x=[],S=[],D=[],F=[],U=!1;const b=this._createHardwareRenderTargetWrapper(!0,!1,s);void 0!==a&&(i=a.generateMipMaps??!1,p=a.generateDepthBuffer??!0,u=a.generateStencilBuffer??!1,T=a.generateDepthTexture??!1,o=a.textureCount??1,l=a.depthTextureFormat??e.TEXTUREFORMAT_DEPTH16,f=a.types||f,m=a.samplingModes||m,M=a.useSRGBBuffers||M,d=a.formats||d,A=a.targetTypes||A,g=a.faceIndex||g,x=a.layerIndex||x,S=a.layerCounts||S,D=a.labels||D,F=a.creationFlags||F,h=a.samples??h,U=a.dontCreateTextures??!1);const y=s.width??s,P=s.height??s,X=[],C=[],B=[];b.label=a?.label??"MultiRenderTargetWrapper",b._generateDepthBuffer=p,b._generateStencilBuffer=u,b._attachments=C,b._defaultAttachments=B;let L=null;(p||u||T)&&!U&&(T||(l=p&&u?e.TEXTUREFORMAT_DEPTH24_STENCIL8:p?e.TEXTUREFORMAT_DEPTH32_FLOAT:e.TEXTUREFORMAT_STENCIL8),L=b.createDepthStencilTexture(0,!1,u,1,l,b.label+"-DepthStencil"));const O=void 0!==a&&"object"==typeof a&&a.createMipMaps&&!i;for(let s=0;s<o;s++){let a=m[s]||E,p=f[s]||c;const u=d[s]||_,T=!!M[s]&&this._caps.supportSRGBBuffers,l=A[s]||R,o=S[s]??1,h=F[s];if((p!==e.TEXTURETYPE_FLOAT||this._caps.textureFloatLinearFiltering)&&(p!==e.TEXTURETYPE_HALF_FLOAT||this._caps.textureHalfFloatLinearFiltering)||(a=e.TEXTURE_NEAREST_SAMPLINGMODE),p!==e.TEXTURETYPE_FLOAT||this._caps.textureFloat||(p=e.TEXTURETYPE_UNSIGNED_BYTE,t.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type")),C.push(s+1),B.push(n?s+1:0===s?1:0),-1===l||U)continue;const g=new r(this,6);switch(X[s]=g,l){case e.TEXTURE_CUBE_MAP:g.isCube=!0;break;case e.TEXTURE_3D:g.is3D=!0,g.baseDepth=g.depth=o;break;case e.TEXTURE_2D_ARRAY:g.is2DArray=!0,g.baseDepth=g.depth=o}g.baseWidth=y,g.baseHeight=P,g.width=y,g.height=P,g.isReady=!0,g.samples=1,g.generateMipMaps=i,g.samplingMode=a,g.type=p,g._cachedWrapU=e.TEXTURE_CLAMP_ADDRESSMODE,g._cachedWrapV=e.TEXTURE_CLAMP_ADDRESSMODE,g._useSRGBBuffer=T,g.format=u,g.label=D[s]??b.label+"-Texture"+s,this._internalTexturesCache.push(g),O&&(g.generateMipMaps=!0),this._textureHelper.createGPUTextureForInternalTexture(g,void 0,void 0,void 0,h),O&&(g.generateMipMaps=!1)}return L&&(L.incrementReferences(),X[o]=L,this._internalTexturesCache.push(L)),b.setTextures(X),b.setLayerAndFaceIndices(x,g),U?b._samples=h:this.updateMultipleRenderTargetTextureSampleCount(b,h),b},s.prototype.updateMultipleRenderTargetTextureSampleCount=function(e,t){if(!e||!e.textures||0===e.textures.length||e.textures[0].samples===t)return t;const r=e.textures.length;if(0===r)return 1;t=Math.min(t,this.getCaps().maxMSAASamples);for(let t=0;t<r;++t){const r=e.textures[t]._hardwareTexture;r?.releaseMSAATextures()}for(let s=0;s<r;++s){e.textures[s].samples=t}return e._depthStencilTexture&&(e._depthStencilTexture.samples=t),e._samples=t,t},s.prototype.generateMipMapsMultiFramebuffer=function(e){const t=e;if(!t.isMulti)return;const r=t._attachments.length;for(let e=0;e<r;e++){const r=t.textures[e];!r.generateMipMaps||r.isCube||r.is3D||this._generateMipmaps(r)}},s.prototype.resolveMultiFramebuffer=function(e,t=!0){this.resolveFramebuffer(e,t)},s.prototype.bindAttachments=function(e){0!==e.length&&this._currentRenderTarget&&(this._mrtAttachments=e,this._currentRenderPass&&this._cacheRenderPipeline.setMRTAttachments(e))},s.prototype.buildTextureLayout=function(e,t=!1){const r=[];if(t)r.push(1);else for(let t=0;t<e.length;t++)e[t]?r.push(t+1):r.push(0);return r},s.prototype.restoreSingleAttachment=function(){},s.prototype.restoreSingleAttachmentForRenderTarget=function(){})}n();export{n as RegisterEnginesWebGPUExtensionsEngineMultiRender};
//# sourceMappingURL=engine.multiRender-Bsr4sKmV.esm.min.js.map