<!-- SOLID-PLAYTIME · part 145 -->
minFilter!==Rc&&E.minFilter!==$o)return;if(E.type===Ma&&e.has("OES_texture_float_linear")===!1)return;if(E.anisotropy>1||i.get(E).__currentAnisotropy){let B=e.get("EXT_texture_filter_anisotropic");t.texParameterf(L,B.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(E.anisotropy,s.getMaxAnisotropy())),i.get(E).__currentAnisotropy=E.anisotropy}}}function Ft(L,E){let B=!1;if(L.__webglInit===void 0)L.__webglInit=!0,E.addEventListener("dispose",A);let tt=E.source,st=h.get(tt);if(st===void 0)st={},h.set(tt,st);let Q=k(E);if(Q!==L.__cacheKey){if(st[Q]===void 0)st[Q]={texture:t.createTexture(),usedTimes:0},r.memory.textures++,B=!0;st[Q].usedTimes++;let Tt=st[L.__cacheKey];if(Tt!==void 0){if(st[L.__cacheKey].usedTimes--,Tt.usedTimes===0)b(E)}L.__cacheKey=Q,L.__webglTexture=st[Q].texture}return B}function Et(L,E,B){return Math.floor(Math.floor(L/B)/E)}function X(L,E,B,tt){let Q=L.updateRanges;if(Q.length===0)n.texSubImage2D(t.TEXTURE_2D,0,0,0,E.width,E.height,B,tt,E.data);else{Q.sort((K,rt)=>K.start-rt.start);let Tt=0;for(let K=1;K<Q.length;K++){let rt=Q[Tt],_t=Q[K],Lt=rt.start+rt.count,gt=Et(_t.start,E.width,4),Wt=Et(rt.start,E.width,4);if(_t.start<=Lt+1&&gt===Wt&&Et(_t.start+_t.count-1,E.width,4)===gt)rt.count=Math.max(rt.count,_t.start+_t.count-rt.start);else++Tt,Q[Tt]=_t}Q.length=Tt+1;let z=t.getParameter(t.UNPACK_ROW_LENGTH),j=t.getParameter(t.UNPACK_SKIP_PIXELS),ft=t.getParameter(t.UNPACK_SKIP_ROWS);t.pixelStorei(t.UNPACK_ROW_LENGTH,E.width);for(let K=0,rt=Q.length;K<rt;K++){let _t=Q[K],Lt=Math.floor(_t.start/4),gt=Math.ceil(_t.count/4),Wt=Lt%E.width,P=Math.floor(Lt/E.width),xt=gt,Ut=1;t.pixelStorei(t.UNPACK_SKIP_PIXELS,Wt),t.pixelStorei(t.UNPACK_SKIP_ROWS,P),n.texSubImage2D(t.TEXTURE_2D,0,Wt,P,xt,1,B,tt,E.data)}L.clearUpdateRanges(),t.pixelStorei(t.UNPACK_ROW_LENGTH,z),t.pixelStorei(t.UNPACK_SKIP_PIXELS,j),t.pixelStorei(t.UNPACK_SKIP_ROWS,ft)}}function ot(L,E,B){let tt=t.TEXTURE_2D;if(E.isDataArrayTexture||E.isCompressedArrayTexture)tt=t.TEXTURE_2D_ARRAY;if(E.isData3DTexture)tt=t.TEXTURE_3D;let st=Ft(L,E),Q=E.source;n.bindTexture(tt,L.__webglTexture,t.TEXTURE0+B);let Tt=i.get(Q);if(Q.version!==Tt.__version||st===!0){n.activeTexture(t.TEXTURE0+B);let z=ue.getPrimaries(ue.workingColorSpace),j=E.colorSpace===hr?null:ue.getPrimaries(E.colorSpace),ft=E.colorSpace===hr||z===j?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,E.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,E.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,E.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,ft);let K=y(E.image,!1,s.maxTextureSize);K=be(E,K);let rt=a.convert(E.format,E.colorSpace),_t=a.convert(E.type),Lt=m(E.internalFormat,rt,_t,E.colorSpace,E.isVideoTexture);dt(tt,E);let gt,Wt=E.mipmaps,P=E.isVideoTexture!==!0,xt=Tt.__version===void 0||st===!0,Ut=Q.dataReady,Rt=S(E,K);if(E.isDepthTexture){if(Lt=x(E.format===Dc,E.type),xt)if(P)n.texStorage2D(t.TEXTURE_2D,1,Lt,K.width,K.height);else n.texImage2D(t.TEXTURE_2D,0,Lt,K.width,K.height,0,rt,_t,null)}else if(E.isDataTexture)if(Wt.length>0){if(P&&xt)n.texStorage2D(t.TEXTURE_2D,Rt,Lt,Wt[0].width,Wt[0].height);for(let ct=0,it=Wt.length;ct<it;ct++)if(gt=Wt[ct],P){if(Ut)n.texSubImage2D(t.TEXTURE_2D,ct,0,0,gt.width,gt.height,rt,_t,gt.data)}else n.texImage2D(t.TEXTURE_2D,ct,Lt,gt.width,gt.height,0,rt,_t,gt.data);E.generateMipmaps=!1}else if(P){if(xt)n.texStorage2D(t.TEXTURE_2D,Rt,Lt,K.width,K.height);if(Ut)X(E,K,rt,_t)}else n.texImage2D(t.TEXTURE_2D,0,Lt,K.width,K.height,0,rt,_t,K.data);else if(E.isCompressedTexture)if(E.isCompressedArrayTexture){if(P&&xt)n.texStorage3D(t.TEXTURE_2D_ARRAY,Rt,Lt,Wt[0].width,Wt[0].height,K.depth);for(let ct=0,it=Wt.length;ct<it;ct++)if(gt=Wt[ct],E.format!==Qi)if(rt!==null)if(P){if(Ut)if(E.layerUpdates.size>0){let Ct=XU(gt.width,gt.height,E.format,E.type);for(let Jt of E.layerUpdates){let Me=gt.data.subarray(Jt*Ct/gt.data.BYTES_PER_ELEMENT,(Jt+1)*Ct/gt.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,ct,0,0,Jt,gt.width,gt.height,1,rt,Me)}E.clearLayerUpdates()}else n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,ct,0,0,0,gt.width,gt.height,K.depth,rt,gt.data)}else n.compressedTexImage3D(t.TEXTURE_2D_ARRAY,ct,Lt,gt.width,gt.height,K.depth,0,gt.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else if(P){if(Ut)n.texSubImage3D(t.TEXTURE_2D_ARRAY,ct,0,0,0,gt.width,gt.height,K.depth,rt,_t,gt.data)}else n.texImage3D(t.TEXTURE_2D_ARRAY,ct,Lt,gt.width,gt.height,K.depth,0,rt,_t,gt.data)}else{if(P&&xt)n.texStorage2D(t.TEXTURE_2D,Rt,Lt,Wt[0].width,Wt[0].height);for(let ct=0,it=Wt.length;ct<it;ct++)if(gt=Wt[ct],E.format!==Qi)if(rt!==null)if(P){if(Ut)n.compressedTexSubImage2D(t.TEXTURE_2D,ct,0,0,gt.width,gt.height,rt,gt.data)}else n.compressedTexImage2D(t.TEXTURE_2D,ct,Lt,gt.width,gt.height,0,gt.data);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else if(