<!-- SOLID-PLAYTIME · part 148 -->
createTexture(),r.memory.textures++}if(L.samples>0&&It(L)===!1){B.__webglMultisampledFramebuffer=t.createFramebuffer(),B.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,B.__webglMultisampledFramebuffer);for(let z=0;z<st.length;z++){let j=st[z];B.__webglColorRenderbuffer[z]=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,B.__webglColorRenderbuffer[z]);let ft=a.convert(j.format,j.colorSpace),K=a.convert(j.type),rt=m(j.internalFormat,ft,K,j.colorSpace,L.isXRRenderTarget===!0),_t=Dt(L);t.renderbufferStorageMultisample(t.RENDERBUFFER,_t,rt,L.width,L.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+z,t.RENDERBUFFER,B.__webglColorRenderbuffer[z])}if(t.bindRenderbuffer(t.RENDERBUFFER,null),L.depthBuffer)B.__webglDepthRenderbuffer=t.createRenderbuffer(),Ht(B.__webglDepthRenderbuffer,L,!0);n.bindFramebuffer(t.FRAMEBUFFER,null)}}if(Q){n.bindTexture(t.TEXTURE_CUBE_MAP,tt.__webglTexture),dt(t.TEXTURE_CUBE_MAP,E);for(let z=0;z<6;z++)if(E.mipmaps&&E.mipmaps.length>0)for(let j=0;j<E.mipmaps.length;j++)yt(B.__webglFramebuffer[z][j],L,E,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+z,j);else yt(B.__webglFramebuffer[z],L,E,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+z,0);if(U(E))d(t.TEXTURE_CUBE_MAP);n.unbindTexture()}else if(Tt){for(let z=0,j=st.length;z<j;z++){let ft=st[z],K=i.get(ft),rt=t.TEXTURE_2D;if(L.isWebGL3DRenderTarget||L.isWebGLArrayRenderTarget)rt=L.isWebGL3DRenderTarget?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY;if(n.bindTexture(rt,K.__webglTexture),dt(rt,ft),yt(B.__webglFramebuffer,L,ft,t.COLOR_ATTACHMENT0+z,rt,0),U(ft))d(rt)}n.unbindTexture()}else{let z=t.TEXTURE_2D;if(L.isWebGL3DRenderTarget||L.isWebGLArrayRenderTarget)z=L.isWebGL3DRenderTarget?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY;if(n.bindTexture(z,tt.__webglTexture),dt(z,E),E.mipmaps&&E.mipmaps.length>0)for(let j=0;j<E.mipmaps.length;j++)yt(B.__webglFramebuffer[j],L,E,t.COLOR_ATTACHMENT0,z,j);else yt(B.__webglFramebuffer,L,E,t.COLOR_ATTACHMENT0,z,0);if(U(E))d(z);n.unbindTexture()}if(L.depthBuffer)ye(L)}function kt(L){let E=L.textures;for(let B=0,tt=E.length;B<tt;B++){let st=E[B];if(U(st)){let Q=g(L),Tt=i.get(st).__webglTexture;n.bindTexture(Q,Tt),d(Q),n.unbindTexture()}}}let Bt=[],St=[];function Ue(L){if(L.samples>0){if(It(L)===!1){let{textures:E,width:B,height:tt}=L,st=t.COLOR_BUFFER_BIT,Q=L.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,Tt=i.get(L),z=E.length>1;if(z)for(let ft=0;ft<E.length;ft++)n.bindFramebuffer(t.FRAMEBUFFER,Tt.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+ft,t.RENDERBUFFER,null),n.bindFramebuffer(t.FRAMEBUFFER,Tt.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+ft,t.TEXTURE_2D,null,0);n.bindFramebuffer(t.READ_FRAMEBUFFER,Tt.__webglMultisampledFramebuffer);let j=L.texture.mipmaps;if(j&&j.length>0)n.bindFramebuffer(t.DRAW_FRAMEBUFFER,Tt.__webglFramebuffer[0]);else n.bindFramebuffer(t.DRAW_FRAMEBUFFER,Tt.__webglFramebuffer);for(let ft=0;ft<E.length;ft++){if(L.resolveDepthBuffer){if(L.depthBuffer)st|=t.DEPTH_BUFFER_BIT;if(L.stencilBuffer&&L.resolveStencilBuffer)st|=t.STENCIL_BUFFER_BIT}if(z){t.framebufferRenderbuffer(t.READ_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,Tt.__webglColorRenderbuffer[ft]);let K=i.get(E[ft]).__webglTexture;t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,K,0)}if(t.blitFramebuffer(0,0,B,tt,0,0,B,tt,st,t.NEAREST),l===!0){if(Bt.length=0,St.length=0,Bt.push(t.COLOR_ATTACHMENT0+ft),L.depthBuffer&&L.resolveDepthBuffer===!1)Bt.push(Q),St.push(Q),t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,St);t.invalidateFramebuffer(t.READ_FRAMEBUFFER,Bt)}}if(n.bindFramebuffer(t.READ_FRAMEBUFFER,null),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),z)for(let ft=0;ft<E.length;ft++){n.bindFramebuffer(t.FRAMEBUFFER,Tt.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+ft,t.RENDERBUFFER,Tt.__webglColorRenderbuffer[ft]);let K=i.get(E[ft]).__webglTexture;n.bindFramebuffer(t.FRAMEBUFFER,Tt.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+ft,t.TEXTURE_2D,K,0)}n.bindFramebuffer(t.DRAW_FRAMEBUFFER,Tt.__webglMultisampledFramebuffer)}else if(L.depthBuffer&&L.resolveDepthBuffer===!1&&l){let E=L.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,[E])}}}function Dt(L){return Math.min(s.maxSamples,L.samples)}function It(L){let E=i.get(L);return L.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&E.__useRenderToTexture!==!1}function xe(L){let E=r.render.frame;if(u.get(L)!==E)u.set(L,E),L.update()}function be(L,E){let{colorSpace:B,format:tt,type:st}=L;if(L.isCompressedTexture===!0||L.isVideoTexture===!0)return E;if(B!==Pc&&B!==hr)if(ue.getTransfer(B)===Be){if(tt!==Qi||st!==Ea)console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.")}else console.error("THREE.WebGLTextures: Unsupported textur