<!-- SOLUV · part 638 -->
rmat!==Je)if(dt!==null)if(zt){if(U)if(y.layerUpdates.size>0){let St=dc(ft.width,ft.height,y.format,y.type);for(let it of y.layerUpdates){let Ft=ft.data.subarray(it*St/ft.data.BYTES_PER_ELEMENT,(it+1)*St/ft.data.BYTES_PER_ELEMENT);e.compressedTexSubImage3D(s.TEXTURE_2D_ARRAY,$,0,0,it,ft.width,ft.height,1,dt,Ft)}}else e.compressedTexSubImage3D(s.TEXTURE_2D_ARRAY,$,0,0,0,ft.width,ft.height,K.depth,dt,ft.data)}else e.compressedTexImage3D(s.TEXTURE_2D_ARRAY,$,gt,ft.width,ft.height,K.depth,0,ft.data,0,0);else ut("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else zt?U&&e.texSubImage3D(s.TEXTURE_2D_ARRAY,$,0,0,0,ft.width,ft.height,K.depth,dt,Nt,ft.data):e.texImage3D(s.TEXTURE_2D_ARRAY,$,gt,ft.width,ft.height,K.depth,0,dt,Nt,ft.data);y.layerUpdates.size>0&&y.clearLayerUpdates()}else{zt&&Zt&&e.texStorage2D(s.TEXTURE_2D,pt,gt,Ut[0].width,Ut[0].height);for(let $=0,mt=Ut.length;$<mt;$++)ft=Ut[$],y.format!==Je?dt!==null?zt?U&&e.compressedTexSubImage2D(s.TEXTURE_2D,$,0,0,ft.width,ft.height,dt,ft.data):e.compressedTexImage2D(s.TEXTURE_2D,$,gt,ft.width,ft.height,0,ft.data):ut("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):zt?U&&e.texSubImage2D(s.TEXTURE_2D,$,0,0,ft.width,ft.height,dt,Nt,ft.data):e.texImage2D(s.TEXTURE_2D,$,gt,ft.width,ft.height,0,dt,Nt,ft.data)}else if(y.isDataArrayTexture)if(zt){if(Zt&&e.texStorage3D(s.TEXTURE_2D_ARRAY,pt,gt,K.width,K.height,K.depth),U)if(y.layerUpdates.size>0){let $=dc(K.width,K.height,y.format,y.type);for(let mt of y.layerUpdates){let St=K.data.subarray(mt*$/K.data.BYTES_PER_ELEMENT,(mt+1)*$/K.data.BYTES_PER_ELEMENT);e.texSubImage3D(s.TEXTURE_2D_ARRAY,0,0,0,mt,K.width,K.height,1,dt,Nt,St)}y.clearLayerUpdates()}else e.texSubImage3D(s.TEXTURE_2D_ARRAY,0,0,0,0,K.width,K.height,K.depth,dt,Nt,K.data)}else e.texImage3D(s.TEXTURE_2D_ARRAY,0,gt,K.width,K.height,K.depth,0,dt,Nt,K.data);else if(y.isData3DTexture)zt?(Zt&&e.texStorage3D(s.TEXTURE_3D,pt,gt,K.width,K.height,K.depth),U&&e.texSubImage3D(s.TEXTURE_3D,0,0,0,0,K.width,K.height,K.depth,dt,Nt,K.data)):e.texImage3D(s.TEXTURE_3D,0,gt,K.width,K.height,K.depth,0,dt,Nt,K.data);else if(y.isFramebufferTexture){if(Zt)if(zt)e.texStorage2D(s.TEXTURE_2D,pt,gt,K.width,K.height);else{let $=K.width,mt=K.height;for(let St=0;St<pt;St++)e.texImage2D(s.TEXTURE_2D,St,gt,$,mt,0,dt,Nt,null),$>>=1,mt>>=1}}else if(y.isHTMLTexture){if("texElementImage2D"in s){let $=s.canvas;if($.hasAttribute("layoutsubtree")||$.setAttribute("layoutsubtree","true"),K.parentNode!==$){$.appendChild(K),d.add(y),$.onpaint=mt=>{let St=mt.changedElements;for(let it of d)St.includes(it.image)&&(it.needsUpdate=!0)},$.requestPaint();return}if(s.texElementImage2D.length===3)s.texElementImage2D(s.TEXTURE_2D,s.RGBA8,K);else{let St=s.RGBA,it=s.RGBA,Ft=s.UNSIGNED_BYTE;s.texElementImage2D(s.TEXTURE_2D,0,St,it,Ft,K)}s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE)}}else if(Ut.length>0){if(zt&&Zt){let $=jt(Ut[0]);e.texStorage2D(s.TEXTURE_2D,pt,gt,$.width,$.height)}for(let $=0,mt=Ut.length;$<mt;$++)ft=Ut[$],zt?U&&e.texSubImage2D(s.TEXTURE_2D,$,0,0,dt,Nt,ft):e.texImage2D(s.TEXTURE_2D,$,gt,dt,Nt,ft);y.generateMipmaps=!1}else if(zt){if(Zt){let $=jt(K);e.texStorage2D(s.TEXTURE_2D,pt,gt,$.width,$.height)}U&&e.texSubImage2D(s.TEXTURE_2D,0,0,0,dt,Nt,K)}else e.texImage2D(s.TEXTURE_2D,0,gt,dt,Nt,K);m(y)&&S(G),ct.__version=lt.version,y.onUpdate&&y.onUpdate(y)}w.__version=y.version}function Vt(w,y,O){if(y.image.length!==6)return;let G=ne(w,y),Y=y.source;e.bindTexture(s.TEXTURE_CUBE_MAP,w.__webglTexture,s.TEXTURE0+O);let lt=n.get(Y);if(Y.version!==lt.__version||G===!0){e.activeTexture(s.TEXTURE0+O);let ct=ee.getPrimaries(ee.workingColorSpace),Z=y.colorSpace===ni?null:ee.getPrimaries(y.colorSpace),K=y.colorSpace===ni||ct===Z?s.NONE:s.BROWSER_DEFAULT_WEBGL;e.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,y.flipY),e.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,y.premultiplyAlpha),e.pixelStorei(s.UNPACK_ALIGNMENT,y.unpackAlignment),e.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,K);let dt=y.isCompressedTexture||y.image[0].isCompressedTexture,Nt=y.image[0]&&y.image[0].isDataTexture,gt=[];for(let it=0;it<6;it++)!dt&&!Nt?gt[it]=g(y.image[it],!0,i.maxCubemapSize):gt[it]=Nt?y.image[it].image:y.image[it],gt[it]=ae(y,gt[it]);let ft=gt[0],Ut=r.convert(y.format,y.colorSpace),zt=r.convert(y.type),Zt=x(y.internalFormat,Ut,zt,y.normalized,y.colorSpace),U=y.isVideoTexture!==!0,pt=lt.__version===void 0||G===!0,$=Y.dataReady,mt=T(y,ft);Qt(s.TEXTURE_CUBE_MAP,y);let St;if(dt){U&&pt&&e.texStorage2D(s.TEXTURE_CUBE_MAP,mt,Zt,ft.width,ft.height);for(let it=0;it<6;it++){St=gt[it].mipmaps;for(let Ft=0;Ft<St.length;Ft++){let It=St[Ft];y.format!==Je?Ut!==null?U?$&&e.compressedTexSubImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+it,Ft,0,0,It.width,It.height,Ut,It.data):e.compressedTexImage2D(s.TEXTURE_CUBE_MA