<!-- SOLUV · part 640 -->
k=Y}y.__boundDepthTexture=G}if(w.depthTexture&&!y.__autoAllocateDepthBuffer)if(O)for(let G=0;G<6;G++)he(y.__webglFramebuffer[G],w,G);else{let G=w.texture.mipmaps;G&&G.length>0?he(y.__webglFramebuffer[0],w,0):he(y.__webglFramebuffer,w,0)}else if(O){y.__webglDepthbuffer=[];for(let G=0;G<6;G++)if(e.bindFramebuffer(s.FRAMEBUFFER,y.__webglFramebuffer[G]),y.__webglDepthbuffer[G]===void 0)y.__webglDepthbuffer[G]=s.createRenderbuffer(),Gt(y.__webglDepthbuffer[G],w,!1);else{let Y=w.stencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,lt=y.__webglDepthbuffer[G];s.bindRenderbuffer(s.RENDERBUFFER,lt),s.framebufferRenderbuffer(s.FRAMEBUFFER,Y,s.RENDERBUFFER,lt)}}else{let G=w.texture.mipmaps;if(G&&G.length>0?e.bindFramebuffer(s.FRAMEBUFFER,y.__webglFramebuffer[0]):e.bindFramebuffer(s.FRAMEBUFFER,y.__webglFramebuffer),y.__webglDepthbuffer===void 0)y.__webglDepthbuffer=s.createRenderbuffer(),Gt(y.__webglDepthbuffer,w,!1);else{let Y=w.stencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,lt=y.__webglDepthbuffer;s.bindRenderbuffer(s.RENDERBUFFER,lt),s.framebufferRenderbuffer(s.FRAMEBUFFER,Y,s.RENDERBUFFER,lt)}}e.bindFramebuffer(s.FRAMEBUFFER,null)}function rt(w,y,O){let G=n.get(w);y!==void 0&&bt(G.__webglFramebuffer,w,w.texture,s.COLOR_ATTACHMENT0,s.TEXTURE_2D,0),O!==void 0&&tt(w)}function at(w){let y=w.texture,O=n.get(w),G=n.get(y);w.addEventListener("dispose",v);let Y=w.textures,lt=w.isWebGLCubeRenderTarget===!0,ct=Y.length>1;if(ct||(G.__webglTexture===void 0&&(G.__webglTexture=s.createTexture()),G.__version=y.version,a.memory.textures++),lt){O.__webglFramebuffer=[];for(let Z=0;Z<6;Z++)if(y.mipmaps&&y.mipmaps.length>0){O.__webglFramebuffer[Z]=[];for(let K=0;K<y.mipmaps.length;K++)O.__webglFramebuffer[Z][K]=s.createFramebuffer()}else O.__webglFramebuffer[Z]=s.createFramebuffer()}else{if(y.mipmaps&&y.mipmaps.length>0){O.__webglFramebuffer=[];for(let Z=0;Z<y.mipmaps.length;Z++)O.__webglFramebuffer[Z]=s.createFramebuffer()}else O.__webglFramebuffer=s.createFramebuffer();if(ct)for(let Z=0,K=Y.length;Z<K;Z++){let dt=n.get(Y[Z]);dt.__webglTexture===void 0&&(dt.__webglTexture=s.createTexture(),a.memory.textures++)}if(w.samples>0&&qt(w)===!1){O.__webglMultisampledFramebuffer=s.createFramebuffer(),O.__webglColorRenderbuffer=[],e.bindFramebuffer(s.FRAMEBUFFER,O.__webglMultisampledFramebuffer);for(let Z=0;Z<Y.length;Z++){let K=Y[Z];O.__webglColorRenderbuffer[Z]=s.createRenderbuffer(),s.bindRenderbuffer(s.RENDERBUFFER,O.__webglColorRenderbuffer[Z]);let dt=r.convert(K.format,K.colorSpace),Nt=r.convert(K.type),gt=x(K.internalFormat,dt,Nt,K.normalized,K.colorSpace,w.isXRRenderTarget===!0),ft=Ht(w);s.renderbufferStorageMultisample(s.RENDERBUFFER,ft,gt,w.width,w.height),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+Z,s.RENDERBUFFER,O.__webglColorRenderbuffer[Z])}s.bindRenderbuffer(s.RENDERBUFFER,null),w.depthBuffer&&(O.__webglDepthRenderbuffer=s.createRenderbuffer(),Gt(O.__webglDepthRenderbuffer,w,!0)),e.bindFramebuffer(s.FRAMEBUFFER,null)}}if(lt){e.bindTexture(s.TEXTURE_CUBE_MAP,G.__webglTexture),Qt(s.TEXTURE_CUBE_MAP,y);for(let Z=0;Z<6;Z++)if(y.mipmaps&&y.mipmaps.length>0)for(let K=0;K<y.mipmaps.length;K++)bt(O.__webglFramebuffer[Z][K],w,y,s.COLOR_ATTACHMENT0,s.TEXTURE_CUBE_MAP_POSITIVE_X+Z,K);else bt(O.__webglFramebuffer[Z],w,y,s.COLOR_ATTACHMENT0,s.TEXTURE_CUBE_MAP_POSITIVE_X+Z,0);m(y)&&S(s.TEXTURE_CUBE_MAP),e.unbindTexture()}else if(ct){for(let Z=0,K=Y.length;Z<K;Z++){let dt=Y[Z],Nt=n.get(dt),gt=s.TEXTURE_2D;(w.isWebGL3DRenderTarget||w.isWebGLArrayRenderTarget)&&(gt=w.isWebGL3DRenderTarget?s.TEXTURE_3D:s.TEXTURE_2D_ARRAY),e.bindTexture(gt,Nt.__webglTexture),Qt(gt,dt),bt(O.__webglFramebuffer,w,dt,s.COLOR_ATTACHMENT0+Z,gt,0),m(dt)&&S(gt)}e.unbindTexture()}else{let Z=s.TEXTURE_2D;if((w.isWebGL3DRenderTarget||w.isWebGLArrayRenderTarget)&&(Z=w.isWebGL3DRenderTarget?s.TEXTURE_3D:s.TEXTURE_2D_ARRAY),e.bindTexture(Z,G.__webglTexture),Qt(Z,y),y.mipmaps&&y.mipmaps.length>0)for(let K=0;K<y.mipmaps.length;K++)bt(O.__webglFramebuffer[K],w,y,s.COLOR_ATTACHMENT0,Z,K);else bt(O.__webglFramebuffer,w,y,s.COLOR_ATTACHMENT0,Z,0);m(y)&&S(Z),e.unbindTexture()}w.depthBuffer&&tt(w)}function ot(w){let y=w.textures;for(let O=0,G=y.length;O<G;O++){let Y=y[O];if(m(Y)){let lt=b(w),ct=n.get(Y).__webglTexture;e.bindTexture(lt,ct),S(lt),e.unbindTexture()}}}let ht=[],Bt=[];function Ot(w){if(w.samples>0){if(qt(w)===!1){let y=w.textures,O=w.width,G=w.height,Y=s.COLOR_BUFFER_BIT,lt=w.stencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,ct=n.get(w),Z=y.length>1;if(Z)for(let dt=0;dt<y.length;dt++)e.bindFramebuffer(s.FRAMEBUFFER,ct.__webglMultisampledFramebuffer),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+dt,s.RENDERBUFFER,null),e.bindFramebuffer(s.FRAMEBUFFER,ct.__webglFramebuffer),s.framebufferTexture2D(s.DRAW_FRAMEBUFFER,s.COLOR_ATTACHMENT0+dt,s.TEXTURE_2D,null,0);e.bindFramebuffer(s.READ_FRAMEBUFFER,ct.__webglMultisampledFramebuffer);let K=w.texture.mipmaps;K&&K.length>0?e.bindFramebuffer(s.D