<!-- SOLID CITY · part 3385 -->
TREAM_READ),L.readPixels(U,W,H,k,me.convert(Ke),me.convert(it),0),L.bindBuffer(L.PIXEL_PACK_BUFFER,null);let zt=ie!==null?G.get(ie).__webglFramebuffer:null;_.bindFramebuffer(L.FRAMEBUFFER,zt);let At=L.fenceSync(L.SYNC_GPU_COMMANDS_COMPLETE,0);return L.flush(),await qd(L,At,4),L.bindBuffer(L.PIXEL_PACK_BUFFER,gt),L.getBufferSubData(L.PIXEL_PACK_BUFFER,0,Me),L.bindBuffer(L.PIXEL_PACK_BUFFER,null),L.deleteBuffer(gt),L.deleteSync(At),Me}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")},this.copyFramebufferToTexture=function(S,U=null,W=0){let H=Math.pow(2,-W),k=Math.floor(S.image.width*H),Me=Math.floor(S.image.height*H),Te=U!==null?U.x:0,ye=U!==null?U.y:0;Z.setTexture2D(S,0),L.copyTexSubImage2D(L.TEXTURE_2D,W,0,0,Te,ye,k,Me),_.unbindTexture()},this.copyTextureToTexture=function(S,U,W=null,H=null,k=0,Me=0){let Te,ye,Ae,Ie,Ke,it,Re,gt,zt,At=S.isCompressedTexture?S.mipmaps[Me]:S.image;if(W!==null)Te=W.max.x-W.min.x,ye=W.max.y-W.min.y,Ae=W.isBox3?W.max.z-W.min.z:1,Ie=W.min.x,Ke=W.min.y,it=W.isBox3?W.min.z:0;else{let Ut=Math.pow(2,-k);Te=Math.floor(At.width*Ut),ye=Math.floor(At.height*Ut),S.isDataArrayTexture?Ae=At.depth:S.isData3DTexture?Ae=Math.floor(At.depth*Ut):Ae=1,Ie=0,Ke=0,it=0}H!==null?(Re=H.x,gt=H.y,zt=H.z):(Re=0,gt=0,zt=0);let St=me.convert(U.format),en=me.convert(U.type),Ee;U.isData3DTexture?(Z.setTexture3D(U,0),Ee=L.TEXTURE_3D):U.isDataArrayTexture||U.isCompressedArrayTexture?(Z.setTexture2DArray(U,0),Ee=L.TEXTURE_2D_ARRAY):(Z.setTexture2D(U,0),Ee=L.TEXTURE_2D),_.activeTexture(L.TEXTURE0),_.pixelStorei(L.UNPACK_FLIP_Y_WEBGL,U.flipY),_.pixelStorei(L.UNPACK_PREMULTIPLY_ALPHA_WEBGL,U.premultiplyAlpha),_.pixelStorei(L.UNPACK_ALIGNMENT,U.unpackAlignment);let hn=_.getParameter(L.UNPACK_ROW_LENGTH),lt=_.getParameter(L.UNPACK_IMAGE_HEIGHT),Pn=_.getParameter(L.UNPACK_SKIP_PIXELS),ti=_.getParameter(L.UNPACK_SKIP_ROWS),wi=_.getParameter(L.UNPACK_SKIP_IMAGES);_.pixelStorei(L.UNPACK_ROW_LENGTH,At.width),_.pixelStorei(L.UNPACK_IMAGE_HEIGHT,At.height),_.pixelStorei(L.UNPACK_SKIP_PIXELS,Ie),_.pixelStorei(L.UNPACK_SKIP_ROWS,Ke),_.pixelStorei(L.UNPACK_SKIP_IMAGES,it);let ys=S.isDataArrayTexture||S.isData3DTexture,vt=U.isDataArrayTexture||U.isData3DTexture;if(S.isDepthTexture){let Ut=G.get(S),Ai=G.get(U),Tt=G.get(Ut.__renderTarget),Ri=G.get(Ai.__renderTarget);_.bindFramebuffer(L.READ_FRAMEBUFFER,Tt.__webglFramebuffer),_.bindFramebuffer(L.DRAW_FRAMEBUFFER,Ri.__webglFramebuffer);for(let Ms=0;Ms<Ae;Ms++)ys&&(L.framebufferTextureLayer(L.READ_FRAMEBUFFER,L.COLOR_ATTACHMENT0,G.get(S).__webglTexture,k,it+Ms),L.framebufferTextureLayer(L.DRAW_FRAMEBUFFER,L.COLOR_ATTACHMENT0,G.get(U).__webglTexture,Me,zt+Ms)),L.blitFramebuffer(Ie,Ke,Te,ye,Re,gt,Te,ye,L.DEPTH_BUFFER_BIT,L.NEAREST);_.bindFramebuffer(L.READ_FRAMEBUFFER,null),_.bindFramebuffer(L.DRAW_FRAMEBUFFER,null)}else if(k!==0||S.isRenderTargetTexture||G.has(S)){let Ut=G.get(S),Ai=G.get(U);_.bindFramebuffer(L.READ_FRAMEBUFFER,N),_.bindFramebuffer(L.DRAW_FRAMEBUFFER,z);for(let Tt=0;Tt<Ae;Tt++)ys?L.framebufferTextureLayer(L.READ_FRAMEBUFFER,L.COLOR_ATTACHMENT0,Ut.__webglTexture,k,it+Tt):L.framebufferTexture2D(L.READ_FRAMEBUFFER,L.COLOR_ATTACHMENT0,L.TEXTURE_2D,Ut.__webglTexture,k),vt?L.framebufferTextureLayer(L.DRAW_FRAMEBUFFER,L.COLOR_ATTACHMENT0,Ai.__webglTexture,Me,zt+Tt):L.framebufferTexture2D(L.DRAW_FRAMEBUFFER,L.COLOR_ATTACHMENT0,L.TEXTURE_2D,Ai.__webglTexture,Me),k!==0?L.blitFramebuffer(Ie,Ke,Te,ye,Re,gt,Te,ye,L.COLOR_BUFFER_BIT,L.NEAREST):vt?L.copyTexSubImage3D(Ee,Me,Re,gt,zt+Tt,Ie,Ke,Te,ye):L.copyTexSubImage2D(Ee,Me,Re,gt,Ie,Ke,Te,ye);_.bindFramebuffer(L.READ_FRAMEBUFFER,null),_.bindFramebuffer(L.DRAW_FRAMEBUFFER,null)}else vt?S.isDataTexture||S.isData3DTexture?L.texSubImage3D(Ee,Me,Re,gt,zt,Te,ye,Ae,St,en,At.data):U.isCompressedArrayTexture?L.compressedTexSubImage3D(Ee,Me,Re,gt,zt,Te,ye,Ae,St,At.data):L.texSubImage3D(Ee,Me,Re,gt,zt,Te,ye,Ae,St,en,At):S.isDataTexture?L.texSubImage2D(L.TEXTURE_2D,Me,Re,gt,Te,ye,St,en,At.data):S.isCompressedTexture?L.compressedTexSubImage2D(L.TEXTURE_2D,Me,Re,gt,At.width,At.height,St,At.data):L.texSubImage2D(L.TEXTURE_2D,Me,Re,gt,Te,ye,St,en,At);_.pixelStorei(L.UNPACK_ROW_LENGTH,hn),_.pixelStorei(L.UNPACK_IMAGE_HEIGHT,lt),_.pixelStorei(L.UNPACK_SKIP_PIXELS,Pn),_.pixelStorei(L.UNPACK_SKIP_ROWS,ti),_.pixelStorei(L.UNPACK_SKIP_IMAGES,wi),Me===0&&U.generateMipmaps&&L.generateMipmap(Ee),_.unbindTexture()},this.initRenderTarget=function(S){G.get(S).__webglFramebuffer===void 0&&Z.setupRenderTarget(S)},this.initTexture=function(S){S.isCubeTexture?Z.setTextureCube(S,0):S.isData3DTexture?Z.setTexture3D(S,0):S.isDataArrayTexture||S.isCompressedArrayTexture?Z.setTexture2DArray(S,0):Z.setTexture2D(S,0),_.unbindTexture()},this.resetState=function(){q=0,X=0,ie=null,_.reset(),Se.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return qn}get outputColorSpace(){return th