<!-- SOLID CITY · part 3369 -->
OES_texture_float_linear")===!1&&(_.magFilter===Kt||_.magFilter===nl||_.magFilter===xa||_.magFilter===Wi||_.minFilter===Kt||_.minFilter===nl||_.minFilter===xa||_.minFilter===Wi)&&Be("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),i.texParameteri(R,i.TEXTURE_WRAP_S,Pe[_.wrapS]),i.texParameteri(R,i.TEXTURE_WRAP_T,Pe[_.wrapT]),(R===i.TEXTURE_3D||R===i.TEXTURE_2D_ARRAY)&&i.texParameteri(R,i.TEXTURE_WRAP_R,Pe[_.wrapR]),i.texParameteri(R,i.TEXTURE_MAG_FILTER,we[_.magFilter]),i.texParameteri(R,i.TEXTURE_MIN_FILTER,we[_.minFilter]),_.compareFunction&&(i.texParameteri(R,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE),i.texParameteri(R,i.TEXTURE_COMPARE_FUNC,dt[_.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(_.magFilter===Jt||_.minFilter!==xa&&_.minFilter!==Wi||_.type===Un&&e.has("OES_texture_float_linear")===!1)return;if(_.anisotropy>1||n.get(_).__currentAnisotropy){let B=e.get("EXT_texture_filter_anisotropic");i.texParameterf(R,B.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(_.anisotropy,s.getMaxAnisotropy())),n.get(_).__currentAnisotropy=_.anisotropy}}}function ot(R,_){let B=!1;R.__webglInit===void 0&&(R.__webglInit=!0,_.addEventListener("dispose",C));let G=_.source,Z=d.get(G);Z===void 0&&(Z={},d.set(G,Z));let ce=X(_);if(ce!==R.__cacheKey){Z[ce]===void 0&&(Z[ce]={texture:i.createTexture(),usedTimes:0},a.memory.textures++,B=!0),Z[ce].usedTimes++;let he=Z[R.__cacheKey];he!==void 0&&(Z[R.__cacheKey].usedTimes--,he.usedTimes===0&&I(_)),R.__cacheKey=ce,R.__webglTexture=Z[ce].texture}return B}function $(R,_,B){return Math.floor(Math.floor(R/B)/_)}function ee(R,_,B,G){let ce=R.updateRanges;if(ce.length===0)t.texSubImage2D(i.TEXTURE_2D,0,0,0,_.width,_.height,B,G,_.data);else{ce.sort((Le,_e)=>Le.start-_e.start);let he=0;for(let Le=1;Le<ce.length;Le++){let _e=ce[he],fe=ce[Le],De=_e.start+_e.count,He=$(fe.start,_.width,4),Ye=$(_e.start,_.width,4);fe.start<=De+1&&He===Ye&&$(fe.start+fe.count-1,_.width,4)===He?_e.count=Math.max(_e.count,fe.start+fe.count-_e.start):(++he,ce[he]=fe)}ce.length=he+1;let J=t.getParameter(i.UNPACK_ROW_LENGTH),Q=t.getParameter(i.UNPACK_SKIP_PIXELS),de=t.getParameter(i.UNPACK_SKIP_ROWS);t.pixelStorei(i.UNPACK_ROW_LENGTH,_.width);for(let Le=0,_e=ce.length;Le<_e;Le++){let fe=ce[Le],De=Math.floor(fe.start/4),He=Math.ceil(fe.count/4),Ye=De%_.width,F=Math.floor(De/_.width),pe=He,K=1;t.pixelStorei(i.UNPACK_SKIP_PIXELS,Ye),t.pixelStorei(i.UNPACK_SKIP_ROWS,F),t.texSubImage2D(i.TEXTURE_2D,0,Ye,F,pe,K,B,G,_.data)}R.clearUpdateRanges(),t.pixelStorei(i.UNPACK_ROW_LENGTH,J),t.pixelStorei(i.UNPACK_SKIP_PIXELS,Q),t.pixelStorei(i.UNPACK_SKIP_ROWS,de)}}function ve(R,_,B){let G=i.TEXTURE_2D;(_.isDataArrayTexture||_.isCompressedArrayTexture)&&(G=i.TEXTURE_2D_ARRAY),_.isData3DTexture&&(G=i.TEXTURE_3D);let Z=ot(R,_),ce=_.source;t.bindTexture(G,R.__webglTexture,i.TEXTURE0+B);let he=n.get(ce);if(ce.version!==he.__version||Z===!0){if(t.activeTexture(i.TEXTURE0+B),(typeof ImageBitmap!="undefined"&&_.image instanceof ImageBitmap)===!1){let K=rt.getPrimaries(rt.workingColorSpace),me=_.colorSpace===Si?null:rt.getPrimaries(_.colorSpace),Se=_.colorSpace===Si||K===me?i.NONE:i.BROWSER_DEFAULT_WEBGL;t.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,_.flipY),t.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,_.premultiplyAlpha),t.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,Se)}t.pixelStorei(i.UNPACK_ALIGNMENT,_.unpackAlignment);let Q=m(_.image,!1,s.maxTextureSize);Q=pt(_,Q);let de=r.convert(_.format,_.colorSpace),Le=r.convert(_.type),_e=v(_.internalFormat,de,Le,_.normalized,_.colorSpace,_.isVideoTexture);tt(G,_);let fe,De=_.mipmaps,He=_.isVideoTexture!==!0,Ye=he.__version===void 0||Z===!0,F=ce.dataReady,pe=E(_,Q);if(_.isDepthTexture)_e=T(_.format===Xi,_.type),Ye&&(He?t.texStorage2D(i.TEXTURE_2D,1,_e,Q.width,Q.height):t.texImage2D(i.TEXTURE_2D,0,_e,Q.width,Q.height,0,de,Le,null));else if(_.isDataTexture)if(De.length>0){He&&Ye&&t.texStorage2D(i.TEXTURE_2D,pe,_e,De[0].width,De[0].height);for(let K=0,me=De.length;K<me;K++)fe=De[K],He?F&&t.texSubImage2D(i.TEXTURE_2D,K,0,0,fe.width,fe.height,de,Le,fe.data):t.texImage2D(i.TEXTURE_2D,K,_e,fe.width,fe.height,0,de,Le,fe.data);_.generateMipmaps=!1}else He?(Ye&&t.texStorage2D(i.TEXTURE_2D,pe,_e,Q.width,Q.height),F&&ee(_,Q,de,Le)):t.texImage2D(i.TEXTURE_2D,0,_e,Q.width,Q.height,0,de,Le,Q.data);else if(_.isCompressedTexture)if(_.isCompressedArrayTexture){He&&Ye&&t.texStorage3D(i.TEXTURE_2D_ARRAY,pe,_e,De[0].width,De[0].height,Q.depth);for(let K=0,me=De.length;K<me;K++)if(fe=De[K],_.format!==Fn)if(de!==null)if(He){if(F)if(_.layerUpdates.size>0){let Se=Ph(fe.width,fe.height,_.format,_.type);for(let se of _.layerUpdates){let Ue=fe.data.subarray(se*Se/fe.data.BYTES_PER_ELEMENT,(se+1)*Se/fe.data.BYTES_PER_ELEMENT);t.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,K,0,0,se,fe.width,fe.height,1,de,Ue)}}else t.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,K,0,0,0,fe.width,fe.height,Q.depth,de,fe.d