@rel-packages/osu-beatmap-preview 0.11.6 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +0 -4
  2. package/dist/assets/default_skin_archive.d.ts +1 -1
  3. package/dist/assets/default_skin_archive.d.ts.map +1 -1
  4. package/dist/{chunk-zc79wdxj.js → chunk-029sagwa.js} +2 -2
  5. package/dist/{chunk-fsbv6vcn.js → chunk-0we37sfj.js} +2 -2
  6. package/dist/chunk-1d7vwgnw.js +15 -0
  7. package/dist/chunk-3baewprq.js +1 -0
  8. package/dist/{chunk-0e4ebmdy.js → chunk-3wjb2nvs.js} +2 -2
  9. package/dist/{chunk-pn7re3na.js → chunk-598ehnf5.js} +2 -2
  10. package/dist/{chunk-sngkm5ds.js → chunk-8wvq4dfz.js} +2 -2
  11. package/dist/{chunk-rp8z1jh7.js → chunk-aeeawe99.js} +2 -2
  12. package/dist/chunk-amhps2v2.js +1 -0
  13. package/dist/chunk-bxvb53d0.js +1 -0
  14. package/dist/{chunk-dvctxyxp.js → chunk-cs4e65d1.js} +1 -1
  15. package/dist/chunk-d7xgaxzy.js +1 -0
  16. package/dist/chunk-gsjxh2hw.js +1 -0
  17. package/dist/chunk-hbfgn274.js +1 -0
  18. package/dist/{chunk-kkmq6cvb.js → chunk-jyb1nvnr.js} +2 -2
  19. package/dist/chunk-n2mqbpq5.js +11 -0
  20. package/dist/chunk-p0te881m.js +1 -0
  21. package/dist/chunk-sdfktjtg.js +1 -0
  22. package/dist/{chunk-5v6x1wpn.js → chunk-shgm3fs6.js} +2 -2
  23. package/dist/{chunk-1sw3e1ar.js → chunk-sqnzgty6.js} +5 -5
  24. package/dist/{chunk-eb5gmq04.js → chunk-tqbn5m4a.js} +2 -2
  25. package/dist/{chunk-edbhr7zr.js → chunk-vkkhj28s.js} +2 -2
  26. package/dist/chunk-w1tshfsy.js +2 -0
  27. package/dist/chunk-xtab1dnq.js +1 -0
  28. package/dist/{chunk-a7wf9wxx.js → chunk-z898rh1p.js} +3 -3
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -1
  32. package/dist/parser/osz_loader.d.ts.map +1 -1
  33. package/dist/player/audio_engine.d.ts +93 -0
  34. package/dist/player/audio_engine.d.ts.map +1 -0
  35. package/dist/player/hitsound_file_collector.d.ts.map +1 -1
  36. package/dist/player/player.d.ts +6 -15
  37. package/dist/player/player.d.ts.map +1 -1
  38. package/dist/player/player_hitsound.d.ts +20 -3
  39. package/dist/player/player_hitsound.d.ts.map +1 -1
  40. package/dist/renderer/backend/pixi_backend.d.ts +3 -0
  41. package/dist/renderer/backend/pixi_backend.d.ts.map +1 -1
  42. package/dist/renderer/backend/render_backend.d.ts +1 -0
  43. package/dist/renderer/backend/render_backend.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/dist/chunk-21p7cseg.js +0 -1
  46. package/dist/chunk-525kvqgh.js +0 -1
  47. package/dist/chunk-5evxnj3k.js +0 -9
  48. package/dist/chunk-7qazncxz.js +0 -15
  49. package/dist/chunk-ay0z741j.js +0 -1
  50. package/dist/chunk-ef1ghrsq.js +0 -1
  51. package/dist/chunk-f3y92gm3.js +0 -1
  52. package/dist/chunk-kmf5rpya.js +0 -1
  53. package/dist/chunk-kt3t4zv0.js +0 -2
  54. package/dist/chunk-shb5s568.js +0 -1
  55. package/dist/chunk-tb8nqrjk.js +0 -1
  56. package/dist/chunk-vzfdvw38.js +0 -1
  57. package/dist/player/audio_controller.d.ts +0 -40
  58. package/dist/player/audio_controller.d.ts.map +0 -1
  59. package/dist/player/audio_node_controller.d.ts +0 -8
  60. package/dist/player/audio_node_controller.d.ts.map +0 -1
  61. package/dist/player/hitsound_controller.d.ts +0 -21
  62. package/dist/player/hitsound_controller.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import{k as E,m as vq,n as pq,o as qq,p as Sq,q as fq,s as l,t as Pq,u as Lq}from"./chunk-eb5gmq04.js";import{I as jJ,J as UJ,K as dq,y as a,z as wJ}from"./chunk-a7wf9wxx.js";import{ba as s,ca as v}from"./chunk-kt3t4zv0.js";import{Aa as Cq,Ca as R,Ea as P,Fa as Rq,Ga as Bq,Ia as M,wa as _,ya as Yq}from"./chunk-sngkm5ds.js";import{Ja as W,Ka as b,Qa as h,Va as j,Ya as kq,db as m,hb as Y,ib as U,lb as hq,mb as p,pb as IJ,qb as C,rb as B,sb as S,ub as _q}from"./chunk-1sw3e1ar.js";class L{contextChange(q){let J=new C({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new h,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),Q=q.limits.maxBatchableTextures,$=_({name:"graphics",bits:[Yq,Cq(Q),E,R]});this.shader=new B({glProgram:$,resources:{localUniforms:J,batchSamplers:Bq(Q)}})}execute(q,J){let Q=J.context,$=Q.customShader||this.shader,K=q.renderer,X=K.graphicsContext,{batcher:Z,instructions:V}=X.getContextRenderData(Q);$.groups[0]=K.globalUniforms.bindGroup,K.state.set(q.state),K.shader.bind($),K.geometry.bind(Z.geometry,$.glProgram);let H=V.instructions;for(let N=0;N<V.instructionSize;N++){let k=H[N];if(k.size){for(let z=0;z<k.textures.count;z++)K.texture.bind(k.textures.textures[z],z);K.geometry.draw(k.topology,k.size,k.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}}L.extension={type:[W.WebGLPipesAdaptor],name:"graphics"};class y{init(){let q=_({name:"mesh",bits:[E,vq,R]});this._shader=new B({glProgram:q,resources:{uTexture:Y.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new h}}}})}execute(q,J){let Q=q.renderer,$=J._shader;if(!$){$=this._shader;let K=J.texture,X=K.source;$.resources.uTexture=X,$.resources.uSampler=X.style,$.resources.textureUniforms.uniforms.uTextureMatrix=K.textureMatrix.mapCoord}else if(!$.glProgram){j("Mesh shader has no glProgram",J.shader);return}$.groups[100]=Q.globalUniforms.bindGroup,$.groups[101]=q.localUniformsBindGroup,Q.encoder.draw({geometry:J._geometry,shader:$,state:J.state})}destroy(){this._shader.destroy(!0),this._shader=null}}y.extension={type:[W.WebGLPipesAdaptor],name:"mesh"};class G{constructor(){this._tempState=v.for2d(),this._didUploadHash={}}init(q){q.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(q,J,Q){let $=q.renderer,K=this._didUploadHash[Q.uid];if($.shader.bind(Q,K),!K)this._didUploadHash[Q.uid]=!0;$.shader.updateUniformGroup($.globalUniforms.uniformGroup),$.geometry.bind(J,Q.glProgram)}execute(q,J){let Q=q.renderer;this._tempState.blendMode=J.blendMode,Q.state.set(this._tempState);let $=J.textures.textures;for(let K=0;K<J.textures.count;K++)Q.texture.bind($[K],K);Q.geometry.draw(J.topology,J.size,J.start)}}G.extension={type:[W.WebGLPipesAdaptor],name:"batch"};var F=((q)=>{return q[q.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",q[q.ARRAY_BUFFER=34962]="ARRAY_BUFFER",q[q.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",q})(F||{});class Xq{constructor(q,J){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=q||null,this.updateID=-1,this.byteLength=-1,this.type=J}destroy(){this.buffer=null,this.updateID=-1,this.byteLength=-1,this.type=-1,this._lastBindBaseLocation=-1,this._lastBindCallId=-1}}class f{constructor(q){this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=q,this._managedBuffers=new M({renderer:q,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"glBuffer"})}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gl=null,this._boundBufferBases={}}contextChange(){this._gl=this._renderer.gl,this.destroyAll(!0),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(q){return q._gcLastUsed=this._renderer.gc.now,q._gpuData[this._renderer.uid]||this.createGLBuffer(q)}bind(q){let{_gl:J}=this,Q=this.getGlBuffer(q);J.bindBuffer(Q.type,Q.buffer)}bindBufferBase(q,J){let{_gl:Q}=this;if(this._boundBufferBases[J]!==q)this._boundBufferBases[J]=q,q._lastBindBaseLocation=J,Q.bindBufferBase(Q.UNIFORM_BUFFER,J,q.buffer)}nextBindBase(q){if(this._bindCallId++,this._minBaseLocation=0,q){if(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1)this._nextBindBaseIndex=1}}freeLocationForBufferBase(q){let J=this.getLastBindBaseLocation(q);if(J>=this._minBaseLocation)return q._lastBindCallId=this._bindCallId,J;let Q=0,$=this._nextBindBaseIndex;while(Q<2){if($>=this._maxBindings)$=this._minBaseLocation,Q++;let K=this._boundBufferBases[$];if(K&&K._lastBindCallId===this._bindCallId){$++;continue}break}if(J=$,this._nextBindBaseIndex=$+1,Q>=2)return-1;return q._lastBindCallId=this._bindCallId,this._boundBufferBases[J]=null,J}getLastBindBaseLocation(q){let J=q._lastBindBaseLocation;if(this._boundBufferBases[J]===q)return J;return-1}bindBufferRange(q,J,Q,$){let{_gl:K}=this;Q||(Q=0),J||(J=0),this._boundBufferBases[J]=null,K.bindBufferRange(K.UNIFORM_BUFFER,J||0,q.buffer,Q*256,$||256)}updateBuffer(q){let{_gl:J}=this,Q=this.getGlBuffer(q);if(q._updateID===Q.updateID)return Q;Q.updateID=q._updateID,J.bindBuffer(Q.type,Q.buffer);let $=q.data,K=q.descriptor.usage&S.STATIC?J.STATIC_DRAW:J.DYNAMIC_DRAW;if($)if(Q.byteLength>=$.byteLength)J.bufferSubData(Q.type,0,$,0,q._updateSize/$.BYTES_PER_ELEMENT);else Q.byteLength=$.byteLength,J.bufferData(Q.type,$,K);else Q.byteLength=q.descriptor.size,J.bufferData(Q.type,Q.byteLength,K);return Q}destroyAll(q=!1){this._managedBuffers.removeAll(q)}onBufferUnload(q,J=!1){let Q=q._gpuData[this._renderer.uid];if(!Q)return;if(!J)this._gl.deleteBuffer(Q.buffer)}createGLBuffer(q){let{_gl:J}=this,Q=F.ARRAY_BUFFER;if(q.descriptor.usage&S.INDEX)Q=F.ELEMENT_ARRAY_BUFFER;else if(q.descriptor.usage&S.UNIFORM)Q=F.UNIFORM_BUFFER;let $=new Xq(J.createBuffer(),Q);return q._gpuData[this._renderer.uid]=$,this._managedBuffers.add(q),$}resetState(){this._boundBufferBases=Object.create(null)}}f.extension={type:[W.WebGLSystem],name:"buffer"};var Zq=class q{constructor(J){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=J,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(J){this.gl=J,this._renderer.gl=J}init(J){J={...q.defaultOptions,...J};let Q=this.multiView=J.multiView;if(J.context&&Q)j("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),Q=!1;if(Q)this.canvas=U.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height);else this.canvas=this._renderer.view.canvas;if(J.context)this.initFromContext(J.context);else{let $=this._renderer.background.alpha<1,K=J.premultipliedAlpha??!0,X=J.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(J.preferWebGLVersion,{alpha:$,premultipliedAlpha:K,antialias:X,stencil:!0,preserveDrawingBuffer:J.preserveDrawingBuffer,powerPreference:J.powerPreference??"default"})}}ensureCanvasSize(J){if(!this.multiView){if(J!==this.canvas)j("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:Q}=this;if(Q.width<J.width||Q.height<J.height)Q.width=Math.max(J.width,J.width),Q.height=Math.max(J.height,J.height)}initFromContext(J){this.gl=J,this.webGLVersion=J instanceof U.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(J),this._renderer.runners.contextChange.emit(J);let Q=this._renderer.view.canvas;Q.addEventListener("webglcontextlost",this.handleContextLost,!1),Q.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(J,Q){let $,K=this.canvas;if(J===2)$=K.getContext("webgl2",Q);if(!$){if($=K.getContext("webgl",Q),!$)throw Error("This browser does not support WebGL. Try using the canvas renderer")}this.gl=$,this.initFromContext(this.gl)}getExtensions(){let{gl:J}=this,Q={anisotropicFiltering:J.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:J.getExtension("OES_texture_float_linear"),s3tc:J.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:J.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:J.getExtension("WEBGL_compressed_texture_etc"),etc1:J.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:J.getExtension("WEBGL_compressed_texture_pvrtc")||J.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:J.getExtension("WEBGL_compressed_texture_atc"),astc:J.getExtension("WEBGL_compressed_texture_astc"),bptc:J.getExtension("EXT_texture_compression_bptc"),rgtc:J.getExtension("EXT_texture_compression_rgtc"),loseContext:J.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...Q,drawBuffers:J.getExtension("WEBGL_draw_buffers"),depthTexture:J.getExtension("WEBGL_depth_texture"),vertexArrayObject:J.getExtension("OES_vertex_array_object")||J.getExtension("MOZ_OES_vertex_array_object")||J.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:J.getExtension("OES_element_index_uint"),floatTexture:J.getExtension("OES_texture_float"),floatTextureLinear:J.getExtension("OES_texture_float_linear"),textureHalfFloat:J.getExtension("OES_texture_half_float"),textureHalfFloatLinear:J.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:J.getExtension("ANGLE_instanced_arrays"),srgb:J.getExtension("EXT_sRGB")};else{this.extensions={...Q,colorBufferFloat:J.getExtension("EXT_color_buffer_float")};let $=J.getExtension("WEBGL_provoking_vertex");if($)$.provokingVertexWEBGL($.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(J){if(J.preventDefault(),this._contextLossForced)this._contextLossForced=!1,setTimeout(()=>{if(this.gl.isContextLost())this.extensions.loseContext?.restoreContext()},0)}handleContextRestored(){this.getExtensions(),this._renderer.runners.contextChange.emit(this.gl)}destroy(){let J=this._renderer.view.canvas;this._renderer=null,J.removeEventListener("webglcontextlost",this.handleContextLost),J.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(J){let Q=J.getContextAttributes();if(Q&&!Q.stencil)j("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let $=this.supports,K=this.webGLVersion===2,X=this.extensions;if($.uint32Indices=K||!!X.uint32ElementIndex,$.uniformBufferObject=K,$.vertexArrayObject=K||!!X.vertexArrayObject,$.srgbTextures=K||!!X.srgb,$.nonPowOf2wrapping=K,$.nonPowOf2mipmaps=K,$.msaa=K,!$.uint32Indices)j("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};Zq.extension={type:[W.WebGLSystem],name:"context"};Zq.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};var Mq=Zq;var x=((q)=>{return q[q.RGBA=6408]="RGBA",q[q.RGB=6407]="RGB",q[q.RG=33319]="RG",q[q.RED=6403]="RED",q[q.RGBA_INTEGER=36249]="RGBA_INTEGER",q[q.RGB_INTEGER=36248]="RGB_INTEGER",q[q.RG_INTEGER=33320]="RG_INTEGER",q[q.RED_INTEGER=36244]="RED_INTEGER",q[q.ALPHA=6406]="ALPHA",q[q.LUMINANCE=6409]="LUMINANCE",q[q.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",q[q.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",q[q.DEPTH_STENCIL=34041]="DEPTH_STENCIL",q})(x||{}),A=((q)=>{return q[q.TEXTURE_2D=3553]="TEXTURE_2D",q[q.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",q[q.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",q[q.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",q[q.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",q[q.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",q[q.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",q[q.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",q[q.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",q})(A||{});var I=((q)=>{return q[q.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",q[q.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",q[q.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",q[q.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",q[q.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",q[q.UNSIGNED_INT=5125]="UNSIGNED_INT",q[q.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",q[q.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",q[q.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",q[q.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",q[q.BYTE=5120]="BYTE",q[q.SHORT=5122]="SHORT",q[q.INT=5124]="INT",q[q.FLOAT=5126]="FLOAT",q[q.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",q[q.HALF_FLOAT=36193]="HALF_FLOAT",q})(I||{});var Fq={uint8x2:I.UNSIGNED_BYTE,uint8x4:I.UNSIGNED_BYTE,sint8x2:I.BYTE,sint8x4:I.BYTE,unorm8x2:I.UNSIGNED_BYTE,unorm8x4:I.UNSIGNED_BYTE,snorm8x2:I.BYTE,snorm8x4:I.BYTE,uint16x2:I.UNSIGNED_SHORT,uint16x4:I.UNSIGNED_SHORT,sint16x2:I.SHORT,sint16x4:I.SHORT,unorm16x2:I.UNSIGNED_SHORT,unorm16x4:I.UNSIGNED_SHORT,snorm16x2:I.SHORT,snorm16x4:I.SHORT,float16x2:I.HALF_FLOAT,float16x4:I.HALF_FLOAT,float32:I.FLOAT,float32x2:I.FLOAT,float32x3:I.FLOAT,float32x4:I.FLOAT,uint32:I.UNSIGNED_INT,uint32x2:I.UNSIGNED_INT,uint32x3:I.UNSIGNED_INT,uint32x4:I.UNSIGNED_INT,sint32:I.INT,sint32x2:I.INT,sint32x3:I.INT,sint32x4:I.INT};function Aq(q){return Fq[q]??Fq.float32}var CJ={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5};class bq{constructor(){this.vaoCache=Object.create(null)}destroy(){this.vaoCache=Object.create(null)}}class d{constructor(q){this._renderer=q,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._managedGeometries=new M({renderer:q,type:"resource",onUnload:this.onGeometryUnload.bind(this),name:"glGeometry"})}contextChange(){let q=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw Error("[PixiJS] Vertex Array Objects are not supported on this device");this.destroyAll(!0);let J=this._renderer.context.extensions.vertexArrayObject;if(J)q.createVertexArray=()=>J.createVertexArrayOES(),q.bindVertexArray=($)=>J.bindVertexArrayOES($),q.deleteVertexArray=($)=>J.deleteVertexArrayOES($);let Q=this._renderer.context.extensions.vertexAttribDivisorANGLE;if(Q)q.drawArraysInstanced=($,K,X,Z)=>{Q.drawArraysInstancedANGLE($,K,X,Z)},q.drawElementsInstanced=($,K,X,Z,V)=>{Q.drawElementsInstancedANGLE($,K,X,Z,V)},q.vertexAttribDivisor=($,K)=>Q.vertexAttribDivisorANGLE($,K);this._activeGeometry=null,this._activeVao=null}bind(q,J){let Q=this.gl;this._activeGeometry=q;let $=this.getVao(q,J);if(this._activeVao!==$)this._activeVao=$,Q.bindVertexArray($);this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let q=this._activeGeometry,J=this._renderer.buffer;for(let Q=0;Q<q.buffers.length;Q++){let $=q.buffers[Q];J.updateBuffer($)}q._gcLastUsed=this._renderer.gc.now}checkCompatibility(q,J){let Q=q.attributes,$=J._attributeData;for(let K in $)if(!Q[K])throw Error(`shader and geometry incompatible, geometry missing the "${K}" attribute`)}getSignature(q,J){let Q=q.attributes,$=J._attributeData,K=["g",q.uid];for(let X in Q)if($[X])K.push(X,$[X].location);return K.join("-")}getVao(q,J){return q._gpuData[this._renderer.uid]?.vaoCache[J._key]||this.initGeometryVao(q,J)}initGeometryVao(q,J,Q=!0){let $=this._renderer.gl,K=this._renderer.buffer;this._renderer.shader._getProgramData(J),this.checkCompatibility(q,J);let X=this.getSignature(q,J),Z=q._gpuData[this._renderer.uid];if(!Z)Z=new bq,q._gpuData[this._renderer.uid]=Z,this._managedGeometries.add(q);let V=Z.vaoCache,H=V[X];if(H)return V[J._key]=H,H;Pq(q,J._attributeData);let N=q.buffers;H=$.createVertexArray(),$.bindVertexArray(H);for(let k=0;k<N.length;k++){let z=N[k];K.bind(z)}return this.activateVao(q,J),V[J._key]=H,V[X]=H,$.bindVertexArray(null),H}onGeometryUnload(q,J=!1){let Q=q._gpuData[this._renderer.uid];if(!Q)return;let $=Q.vaoCache;if(!J)for(let K in $){if(this._activeVao!==$[K])this.resetState();this.gl.deleteVertexArray($[K])}}destroyAll(q=!1){this._managedGeometries.removeAll(q)}activateVao(q,J){let Q=this._renderer.gl,$=this._renderer.buffer,K=q.attributes;if(q.indexBuffer)$.bind(q.indexBuffer);let X=null;for(let Z in K){let V=K[Z],H=V.buffer,N=$.getGlBuffer(H),k=J._attributeData[Z];if(k){if(X!==N)$.bind(H),X=N;let z=k.location;Q.enableVertexAttribArray(z);let w=p(V.format),O=Aq(V.format);if(k.format?.substring(1,4)==="int")Q.vertexAttribIPointer(z,w.size,O,V.stride,V.offset);else Q.vertexAttribPointer(z,w.size,O,w.normalised,V.stride,V.offset);if(V.instance)if(this.hasInstance){let D=V.divisor??1;Q.vertexAttribDivisor(z,D)}else throw Error("geometry error, GPU Instancing is not supported on this device")}}}draw(q,J,Q,$){let{gl:K}=this._renderer,X=this._activeGeometry,Z=CJ[q||X.topology];if($??($=X.instanceCount),X.indexBuffer){let V=X.indexBuffer.data.BYTES_PER_ELEMENT,H=V===2?K.UNSIGNED_SHORT:K.UNSIGNED_INT;if($!==1)K.drawElementsInstanced(Z,J||X.indexBuffer.data.length,H,(Q||0)*V,$);else K.drawElements(Z,J||X.indexBuffer.data.length,H,(Q||0)*V)}else if($!==1)K.drawArraysInstanced(Z,Q||0,J||X.getSize(),$);else K.drawArrays(Z,Q||0,J||X.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._managedGeometries.destroy(),this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}}d.extension={type:[W.WebGLSystem],name:"geometry"};var BJ=new _q({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),Hq=class q{constructor(J){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=J}init(J={}){let{useBackBuffer:Q,antialias:$}={...q.defaultOptions,...J};if(this.useBackBuffer=Q,this._antialias=$,!this._renderer.context.supports.msaa)j("antialiasing, is not supported on when using the back buffer"),this._antialias=!1;this._state=v.for2d();let K=new hq({vertex:`
1
+ import{l as E,n as vq,o as pq,p as qq,q as Sq,r as fq,t as l,u as Pq,v as Lq}from"./chunk-tqbn5m4a.js";import{A as wJ,J as jJ,K as UJ,L as dq,z as a}from"./chunk-z898rh1p.js";import{ca as s,da as v}from"./chunk-w1tshfsy.js";import{Ba as Cq,Da as R,Fa as P,Ga as Rq,Ha as Bq,Ja as M,xa as _,za as Yq}from"./chunk-8wvq4dfz.js";import{Ka as W,La as b,Ra as h,Wa as j,Za as kq,eb as m,ib as Y,jb as U,mb as hq,nb as p,qb as IJ,rb as C,sb as B,tb as S,vb as _q}from"./chunk-sqnzgty6.js";class L{contextChange(q){let J=new C({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new h,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),Q=q.limits.maxBatchableTextures,$=_({name:"graphics",bits:[Yq,Cq(Q),E,R]});this.shader=new B({glProgram:$,resources:{localUniforms:J,batchSamplers:Bq(Q)}})}execute(q,J){let Q=J.context,$=Q.customShader||this.shader,K=q.renderer,X=K.graphicsContext,{batcher:Z,instructions:V}=X.getContextRenderData(Q);$.groups[0]=K.globalUniforms.bindGroup,K.state.set(q.state),K.shader.bind($),K.geometry.bind(Z.geometry,$.glProgram);let H=V.instructions;for(let N=0;N<V.instructionSize;N++){let k=H[N];if(k.size){for(let z=0;z<k.textures.count;z++)K.texture.bind(k.textures.textures[z],z);K.geometry.draw(k.topology,k.size,k.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}}L.extension={type:[W.WebGLPipesAdaptor],name:"graphics"};class y{init(){let q=_({name:"mesh",bits:[E,vq,R]});this._shader=new B({glProgram:q,resources:{uTexture:Y.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new h}}}})}execute(q,J){let Q=q.renderer,$=J._shader;if(!$){$=this._shader;let K=J.texture,X=K.source;$.resources.uTexture=X,$.resources.uSampler=X.style,$.resources.textureUniforms.uniforms.uTextureMatrix=K.textureMatrix.mapCoord}else if(!$.glProgram){j("Mesh shader has no glProgram",J.shader);return}$.groups[100]=Q.globalUniforms.bindGroup,$.groups[101]=q.localUniformsBindGroup,Q.encoder.draw({geometry:J._geometry,shader:$,state:J.state})}destroy(){this._shader.destroy(!0),this._shader=null}}y.extension={type:[W.WebGLPipesAdaptor],name:"mesh"};class G{constructor(){this._tempState=v.for2d(),this._didUploadHash={}}init(q){q.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(q,J,Q){let $=q.renderer,K=this._didUploadHash[Q.uid];if($.shader.bind(Q,K),!K)this._didUploadHash[Q.uid]=!0;$.shader.updateUniformGroup($.globalUniforms.uniformGroup),$.geometry.bind(J,Q.glProgram)}execute(q,J){let Q=q.renderer;this._tempState.blendMode=J.blendMode,Q.state.set(this._tempState);let $=J.textures.textures;for(let K=0;K<J.textures.count;K++)Q.texture.bind($[K],K);Q.geometry.draw(J.topology,J.size,J.start)}}G.extension={type:[W.WebGLPipesAdaptor],name:"batch"};var F=((q)=>{return q[q.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",q[q.ARRAY_BUFFER=34962]="ARRAY_BUFFER",q[q.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",q})(F||{});class Xq{constructor(q,J){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=q||null,this.updateID=-1,this.byteLength=-1,this.type=J}destroy(){this.buffer=null,this.updateID=-1,this.byteLength=-1,this.type=-1,this._lastBindBaseLocation=-1,this._lastBindCallId=-1}}class f{constructor(q){this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=q,this._managedBuffers=new M({renderer:q,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"glBuffer"})}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gl=null,this._boundBufferBases={}}contextChange(){this._gl=this._renderer.gl,this.destroyAll(!0),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(q){return q._gcLastUsed=this._renderer.gc.now,q._gpuData[this._renderer.uid]||this.createGLBuffer(q)}bind(q){let{_gl:J}=this,Q=this.getGlBuffer(q);J.bindBuffer(Q.type,Q.buffer)}bindBufferBase(q,J){let{_gl:Q}=this;if(this._boundBufferBases[J]!==q)this._boundBufferBases[J]=q,q._lastBindBaseLocation=J,Q.bindBufferBase(Q.UNIFORM_BUFFER,J,q.buffer)}nextBindBase(q){if(this._bindCallId++,this._minBaseLocation=0,q){if(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1)this._nextBindBaseIndex=1}}freeLocationForBufferBase(q){let J=this.getLastBindBaseLocation(q);if(J>=this._minBaseLocation)return q._lastBindCallId=this._bindCallId,J;let Q=0,$=this._nextBindBaseIndex;while(Q<2){if($>=this._maxBindings)$=this._minBaseLocation,Q++;let K=this._boundBufferBases[$];if(K&&K._lastBindCallId===this._bindCallId){$++;continue}break}if(J=$,this._nextBindBaseIndex=$+1,Q>=2)return-1;return q._lastBindCallId=this._bindCallId,this._boundBufferBases[J]=null,J}getLastBindBaseLocation(q){let J=q._lastBindBaseLocation;if(this._boundBufferBases[J]===q)return J;return-1}bindBufferRange(q,J,Q,$){let{_gl:K}=this;Q||(Q=0),J||(J=0),this._boundBufferBases[J]=null,K.bindBufferRange(K.UNIFORM_BUFFER,J||0,q.buffer,Q*256,$||256)}updateBuffer(q){let{_gl:J}=this,Q=this.getGlBuffer(q);if(q._updateID===Q.updateID)return Q;Q.updateID=q._updateID,J.bindBuffer(Q.type,Q.buffer);let $=q.data,K=q.descriptor.usage&S.STATIC?J.STATIC_DRAW:J.DYNAMIC_DRAW;if($)if(Q.byteLength>=$.byteLength)J.bufferSubData(Q.type,0,$,0,q._updateSize/$.BYTES_PER_ELEMENT);else Q.byteLength=$.byteLength,J.bufferData(Q.type,$,K);else Q.byteLength=q.descriptor.size,J.bufferData(Q.type,Q.byteLength,K);return Q}destroyAll(q=!1){this._managedBuffers.removeAll(q)}onBufferUnload(q,J=!1){let Q=q._gpuData[this._renderer.uid];if(!Q)return;if(!J)this._gl.deleteBuffer(Q.buffer)}createGLBuffer(q){let{_gl:J}=this,Q=F.ARRAY_BUFFER;if(q.descriptor.usage&S.INDEX)Q=F.ELEMENT_ARRAY_BUFFER;else if(q.descriptor.usage&S.UNIFORM)Q=F.UNIFORM_BUFFER;let $=new Xq(J.createBuffer(),Q);return q._gpuData[this._renderer.uid]=$,this._managedBuffers.add(q),$}resetState(){this._boundBufferBases=Object.create(null)}}f.extension={type:[W.WebGLSystem],name:"buffer"};var Zq=class q{constructor(J){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=J,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(J){this.gl=J,this._renderer.gl=J}init(J){J={...q.defaultOptions,...J};let Q=this.multiView=J.multiView;if(J.context&&Q)j("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),Q=!1;if(Q)this.canvas=U.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height);else this.canvas=this._renderer.view.canvas;if(J.context)this.initFromContext(J.context);else{let $=this._renderer.background.alpha<1,K=J.premultipliedAlpha??!0,X=J.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(J.preferWebGLVersion,{alpha:$,premultipliedAlpha:K,antialias:X,stencil:!0,preserveDrawingBuffer:J.preserveDrawingBuffer,powerPreference:J.powerPreference??"default"})}}ensureCanvasSize(J){if(!this.multiView){if(J!==this.canvas)j("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:Q}=this;if(Q.width<J.width||Q.height<J.height)Q.width=Math.max(J.width,J.width),Q.height=Math.max(J.height,J.height)}initFromContext(J){this.gl=J,this.webGLVersion=J instanceof U.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(J),this._renderer.runners.contextChange.emit(J);let Q=this._renderer.view.canvas;Q.addEventListener("webglcontextlost",this.handleContextLost,!1),Q.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(J,Q){let $,K=this.canvas;if(J===2)$=K.getContext("webgl2",Q);if(!$){if($=K.getContext("webgl",Q),!$)throw Error("This browser does not support WebGL. Try using the canvas renderer")}this.gl=$,this.initFromContext(this.gl)}getExtensions(){let{gl:J}=this,Q={anisotropicFiltering:J.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:J.getExtension("OES_texture_float_linear"),s3tc:J.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:J.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:J.getExtension("WEBGL_compressed_texture_etc"),etc1:J.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:J.getExtension("WEBGL_compressed_texture_pvrtc")||J.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:J.getExtension("WEBGL_compressed_texture_atc"),astc:J.getExtension("WEBGL_compressed_texture_astc"),bptc:J.getExtension("EXT_texture_compression_bptc"),rgtc:J.getExtension("EXT_texture_compression_rgtc"),loseContext:J.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...Q,drawBuffers:J.getExtension("WEBGL_draw_buffers"),depthTexture:J.getExtension("WEBGL_depth_texture"),vertexArrayObject:J.getExtension("OES_vertex_array_object")||J.getExtension("MOZ_OES_vertex_array_object")||J.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:J.getExtension("OES_element_index_uint"),floatTexture:J.getExtension("OES_texture_float"),floatTextureLinear:J.getExtension("OES_texture_float_linear"),textureHalfFloat:J.getExtension("OES_texture_half_float"),textureHalfFloatLinear:J.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:J.getExtension("ANGLE_instanced_arrays"),srgb:J.getExtension("EXT_sRGB")};else{this.extensions={...Q,colorBufferFloat:J.getExtension("EXT_color_buffer_float")};let $=J.getExtension("WEBGL_provoking_vertex");if($)$.provokingVertexWEBGL($.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(J){if(J.preventDefault(),this._contextLossForced)this._contextLossForced=!1,setTimeout(()=>{if(this.gl.isContextLost())this.extensions.loseContext?.restoreContext()},0)}handleContextRestored(){this.getExtensions(),this._renderer.runners.contextChange.emit(this.gl)}destroy(){let J=this._renderer.view.canvas;this._renderer=null,J.removeEventListener("webglcontextlost",this.handleContextLost),J.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(J){let Q=J.getContextAttributes();if(Q&&!Q.stencil)j("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let $=this.supports,K=this.webGLVersion===2,X=this.extensions;if($.uint32Indices=K||!!X.uint32ElementIndex,$.uniformBufferObject=K,$.vertexArrayObject=K||!!X.vertexArrayObject,$.srgbTextures=K||!!X.srgb,$.nonPowOf2wrapping=K,$.nonPowOf2mipmaps=K,$.msaa=K,!$.uint32Indices)j("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};Zq.extension={type:[W.WebGLSystem],name:"context"};Zq.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};var Mq=Zq;var x=((q)=>{return q[q.RGBA=6408]="RGBA",q[q.RGB=6407]="RGB",q[q.RG=33319]="RG",q[q.RED=6403]="RED",q[q.RGBA_INTEGER=36249]="RGBA_INTEGER",q[q.RGB_INTEGER=36248]="RGB_INTEGER",q[q.RG_INTEGER=33320]="RG_INTEGER",q[q.RED_INTEGER=36244]="RED_INTEGER",q[q.ALPHA=6406]="ALPHA",q[q.LUMINANCE=6409]="LUMINANCE",q[q.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",q[q.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",q[q.DEPTH_STENCIL=34041]="DEPTH_STENCIL",q})(x||{}),A=((q)=>{return q[q.TEXTURE_2D=3553]="TEXTURE_2D",q[q.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",q[q.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",q[q.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",q[q.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",q[q.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",q[q.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",q[q.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",q[q.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",q})(A||{});var I=((q)=>{return q[q.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",q[q.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",q[q.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",q[q.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",q[q.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",q[q.UNSIGNED_INT=5125]="UNSIGNED_INT",q[q.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",q[q.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",q[q.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",q[q.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",q[q.BYTE=5120]="BYTE",q[q.SHORT=5122]="SHORT",q[q.INT=5124]="INT",q[q.FLOAT=5126]="FLOAT",q[q.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",q[q.HALF_FLOAT=36193]="HALF_FLOAT",q})(I||{});var Fq={uint8x2:I.UNSIGNED_BYTE,uint8x4:I.UNSIGNED_BYTE,sint8x2:I.BYTE,sint8x4:I.BYTE,unorm8x2:I.UNSIGNED_BYTE,unorm8x4:I.UNSIGNED_BYTE,snorm8x2:I.BYTE,snorm8x4:I.BYTE,uint16x2:I.UNSIGNED_SHORT,uint16x4:I.UNSIGNED_SHORT,sint16x2:I.SHORT,sint16x4:I.SHORT,unorm16x2:I.UNSIGNED_SHORT,unorm16x4:I.UNSIGNED_SHORT,snorm16x2:I.SHORT,snorm16x4:I.SHORT,float16x2:I.HALF_FLOAT,float16x4:I.HALF_FLOAT,float32:I.FLOAT,float32x2:I.FLOAT,float32x3:I.FLOAT,float32x4:I.FLOAT,uint32:I.UNSIGNED_INT,uint32x2:I.UNSIGNED_INT,uint32x3:I.UNSIGNED_INT,uint32x4:I.UNSIGNED_INT,sint32:I.INT,sint32x2:I.INT,sint32x3:I.INT,sint32x4:I.INT};function Aq(q){return Fq[q]??Fq.float32}var CJ={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5};class bq{constructor(){this.vaoCache=Object.create(null)}destroy(){this.vaoCache=Object.create(null)}}class d{constructor(q){this._renderer=q,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._managedGeometries=new M({renderer:q,type:"resource",onUnload:this.onGeometryUnload.bind(this),name:"glGeometry"})}contextChange(){let q=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw Error("[PixiJS] Vertex Array Objects are not supported on this device");this.destroyAll(!0);let J=this._renderer.context.extensions.vertexArrayObject;if(J)q.createVertexArray=()=>J.createVertexArrayOES(),q.bindVertexArray=($)=>J.bindVertexArrayOES($),q.deleteVertexArray=($)=>J.deleteVertexArrayOES($);let Q=this._renderer.context.extensions.vertexAttribDivisorANGLE;if(Q)q.drawArraysInstanced=($,K,X,Z)=>{Q.drawArraysInstancedANGLE($,K,X,Z)},q.drawElementsInstanced=($,K,X,Z,V)=>{Q.drawElementsInstancedANGLE($,K,X,Z,V)},q.vertexAttribDivisor=($,K)=>Q.vertexAttribDivisorANGLE($,K);this._activeGeometry=null,this._activeVao=null}bind(q,J){let Q=this.gl;this._activeGeometry=q;let $=this.getVao(q,J);if(this._activeVao!==$)this._activeVao=$,Q.bindVertexArray($);this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let q=this._activeGeometry,J=this._renderer.buffer;for(let Q=0;Q<q.buffers.length;Q++){let $=q.buffers[Q];J.updateBuffer($)}q._gcLastUsed=this._renderer.gc.now}checkCompatibility(q,J){let Q=q.attributes,$=J._attributeData;for(let K in $)if(!Q[K])throw Error(`shader and geometry incompatible, geometry missing the "${K}" attribute`)}getSignature(q,J){let Q=q.attributes,$=J._attributeData,K=["g",q.uid];for(let X in Q)if($[X])K.push(X,$[X].location);return K.join("-")}getVao(q,J){return q._gpuData[this._renderer.uid]?.vaoCache[J._key]||this.initGeometryVao(q,J)}initGeometryVao(q,J,Q=!0){let $=this._renderer.gl,K=this._renderer.buffer;this._renderer.shader._getProgramData(J),this.checkCompatibility(q,J);let X=this.getSignature(q,J),Z=q._gpuData[this._renderer.uid];if(!Z)Z=new bq,q._gpuData[this._renderer.uid]=Z,this._managedGeometries.add(q);let V=Z.vaoCache,H=V[X];if(H)return V[J._key]=H,H;Pq(q,J._attributeData);let N=q.buffers;H=$.createVertexArray(),$.bindVertexArray(H);for(let k=0;k<N.length;k++){let z=N[k];K.bind(z)}return this.activateVao(q,J),V[J._key]=H,V[X]=H,$.bindVertexArray(null),H}onGeometryUnload(q,J=!1){let Q=q._gpuData[this._renderer.uid];if(!Q)return;let $=Q.vaoCache;if(!J)for(let K in $){if(this._activeVao!==$[K])this.resetState();this.gl.deleteVertexArray($[K])}}destroyAll(q=!1){this._managedGeometries.removeAll(q)}activateVao(q,J){let Q=this._renderer.gl,$=this._renderer.buffer,K=q.attributes;if(q.indexBuffer)$.bind(q.indexBuffer);let X=null;for(let Z in K){let V=K[Z],H=V.buffer,N=$.getGlBuffer(H),k=J._attributeData[Z];if(k){if(X!==N)$.bind(H),X=N;let z=k.location;Q.enableVertexAttribArray(z);let w=p(V.format),O=Aq(V.format);if(k.format?.substring(1,4)==="int")Q.vertexAttribIPointer(z,w.size,O,V.stride,V.offset);else Q.vertexAttribPointer(z,w.size,O,w.normalised,V.stride,V.offset);if(V.instance)if(this.hasInstance){let D=V.divisor??1;Q.vertexAttribDivisor(z,D)}else throw Error("geometry error, GPU Instancing is not supported on this device")}}}draw(q,J,Q,$){let{gl:K}=this._renderer,X=this._activeGeometry,Z=CJ[q||X.topology];if($??($=X.instanceCount),X.indexBuffer){let V=X.indexBuffer.data.BYTES_PER_ELEMENT,H=V===2?K.UNSIGNED_SHORT:K.UNSIGNED_INT;if($!==1)K.drawElementsInstanced(Z,J||X.indexBuffer.data.length,H,(Q||0)*V,$);else K.drawElements(Z,J||X.indexBuffer.data.length,H,(Q||0)*V)}else if($!==1)K.drawArraysInstanced(Z,Q||0,J||X.getSize(),$);else K.drawArrays(Z,Q||0,J||X.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._managedGeometries.destroy(),this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}}d.extension={type:[W.WebGLSystem],name:"geometry"};var BJ=new _q({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),Hq=class q{constructor(J){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=J}init(J={}){let{useBackBuffer:Q,antialias:$}={...q.defaultOptions,...J};if(this.useBackBuffer=Q,this._antialias=$,!this._renderer.context.supports.msaa)j("antialiasing, is not supported on when using the back buffer"),this._antialias=!1;this._state=v.for2d();let K=new hq({vertex:`
2
2
  attribute vec2 aPosition;
3
3
  out vec2 vUv;
4
4
 
@@ -153,4 +153,4 @@ import{k as E,m as vq,n as pq,o as qq,p as Sq,q as fq,s as l,t as Pq,u as Lq}fro
153
153
  cv = cu.value;
154
154
  v = uv["${$}"];
155
155
  ${V};`)}}return Function("ud","uv","renderer","syncData",Q.join(`
156
- `))}class Jq{constructor(q){this._cache={},this._uniformGroupSyncHash={},this._renderer=q,this.gl=null,this._cache={}}contextChange(q){this.gl=q}updateUniformGroup(q,J,Q){let $=this._renderer.shader._getProgramData(J);if(!q.isStatic||q._dirtyId!==$.uniformDirtyGroups[q.uid])$.uniformDirtyGroups[q.uid]=q._dirtyId,this._getUniformSyncFunction(q,J)($.uniformData,q.uniforms,this._renderer,Q)}_getUniformSyncFunction(q,J){return this._uniformGroupSyncHash[q._signature]?.[J._key]||this._createUniformSyncFunction(q,J)}_createUniformSyncFunction(q,J){let Q=this._uniformGroupSyncHash[q._signature]||(this._uniformGroupSyncHash[q._signature]={}),$=this._getSignature(q,J._uniformData,"u");if(!this._cache[$])this._cache[$]=this._generateUniformsSync(q,J._uniformData);return Q[J._key]=this._cache[$],Q[J._key]}_generateUniformsSync(q,J){return tq(q,J)}_getSignature(q,J,Q){let $=q.uniforms,K=[`${Q}-`];for(let X in $)if(K.push(X),J[X])K.push(J[X].type);return K.join("-")}destroy(){this._renderer=null,this._cache=null}}Jq.extension={type:[W.WebGLSystem],name:"uniformGroup"};function rq(q){let J={};if(J.normal=[q.ONE,q.ONE_MINUS_SRC_ALPHA],J.add=[q.ONE,q.ONE],J.multiply=[q.DST_COLOR,q.ONE_MINUS_SRC_ALPHA,q.ONE,q.ONE_MINUS_SRC_ALPHA],J.screen=[q.ONE,q.ONE_MINUS_SRC_COLOR,q.ONE,q.ONE_MINUS_SRC_ALPHA],J.none=[0,0],J["normal-npm"]=[q.SRC_ALPHA,q.ONE_MINUS_SRC_ALPHA,q.ONE,q.ONE_MINUS_SRC_ALPHA],J["add-npm"]=[q.SRC_ALPHA,q.ONE,q.ONE,q.ONE],J["screen-npm"]=[q.SRC_ALPHA,q.ONE_MINUS_SRC_COLOR,q.ONE,q.ONE_MINUS_SRC_ALPHA],J.erase=[q.ZERO,q.ONE_MINUS_SRC_ALPHA],!(q instanceof U.get().getWebGLRenderingContext()))J.min=[q.ONE,q.ONE,q.ONE,q.ONE,q.MIN,q.MIN],J.max=[q.ONE,q.ONE,q.ONE,q.ONE,q.MAX,q.MAX];else{let $=q.getExtension("EXT_blend_minmax");if($)J.min=[q.ONE,q.ONE,q.ONE,q.ONE,$.MIN_EXT,$.MIN_EXT],J.max=[q.ONE,q.ONE,q.ONE,q.ONE,$.MAX_EXT,$.MAX_EXT]}return J}var MJ=0,FJ=1,AJ=2,PJ=3,bJ=4,hJ=5,eq=class q{constructor(J){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[MJ]=this.setBlend,this.map[FJ]=this.setOffset,this.map[AJ]=this.setCullFace,this.map[PJ]=this.setDepthTest,this.map[bJ]=this.setFrontFace,this.map[hJ]=this.setDepthMask,this.checks=[],this.defaultState=v.for2d(),J.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(J){if(this._invertFrontFace=!J.isRoot,this._cullFace)this.setFrontFace(this._frontFace);else this._frontFaceDirty=!0}contextChange(J){this.gl=J,this.blendModesMap=rq(J),this.resetState()}set(J){if(J||(J=this.defaultState),this.stateId!==J.data){let Q=this.stateId^J.data,$=0;while(Q){if(Q&1)this.map[$].call(this,!!(J.data&1<<$));Q>>=1,$++}this.stateId=J.data}for(let Q=0;Q<this.checks.length;Q++)this.checks[Q](this,J)}forceState(J){J||(J=this.defaultState);for(let Q=0;Q<this.map.length;Q++)this.map[Q].call(this,!!(J.data&1<<Q));for(let Q=0;Q<this.checks.length;Q++)this.checks[Q](this,J);this.stateId=J.data}setBlend(J){this._updateCheck(q._checkBlendMode,J),this.gl[J?"enable":"disable"](this.gl.BLEND)}setOffset(J){this._updateCheck(q._checkPolygonOffset,J),this.gl[J?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(J){this.gl[J?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(J){this.gl.depthMask(J)}setCullFace(J){if(this._cullFace=J,this.gl[J?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty)this.setFrontFace(this._frontFace)}setFrontFace(J){this._frontFace=J,this._frontFaceDirty=!1;let Q=this._invertFrontFace?!J:J;if(this._glFrontFace!==Q)this._glFrontFace=Q,this.gl.frontFace(this.gl[Q?"CW":"CCW"])}setBlendMode(J){if(!this.blendModesMap[J])J="normal";if(J===this.blendMode)return;this.blendMode=J;let Q=this.blendModesMap[J],$=this.gl;if(Q.length===2)$.blendFunc(Q[0],Q[1]);else $.blendFuncSeparate(Q[0],Q[1],Q[2],Q[3]);if(Q.length===6)this._blendEq=!0,$.blendEquationSeparate(Q[4],Q[5]);else if(this._blendEq)this._blendEq=!1,$.blendEquationSeparate($.FUNC_ADD,$.FUNC_ADD)}setPolygonOffset(J,Q){this.gl.polygonOffset(J,Q)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(J,Q){let $=this.checks.indexOf(J);if(Q&&$===-1)this.checks.push(J);else if(!Q&&$!==-1)this.checks.splice($,1)}static _checkBlendMode(J,Q){J.setBlendMode(Q.blendMode)}static _checkPolygonOffset(J,Q){J.setPolygonOffset(1,Q.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};eq.extension={type:[W.WebGLSystem],name:"state"};var qJ=eq;class Uq{constructor(q){this.target=A.TEXTURE_2D,this._layerInitMask=0,this.texture=q,this.width=-1,this.height=-1,this.type=I.UNSIGNED_BYTE,this.internalFormat=x.RGBA,this.format=x.RGBA,this.samplerType=0}destroy(){}}var JJ={id:"buffer",upload(q,J,Q,$,K,X=!1){let Z=K||J.target;if(!X&&(J.width===q.width&&J.height===q.height))Q.texSubImage2D(Z,0,0,0,q.width,q.height,J.format,J.type,q.resource);else Q.texImage2D(Z,0,J.internalFormat,q.width,q.height,0,J.format,J.type,q.resource);J.width=q.width,J.height=q.height}};var _J={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},QJ={id:"compressed",upload(q,J,Q,$,K,X){let Z=K??J.target;Q.pixelStorei(Q.UNPACK_ALIGNMENT,4);let{pixelWidth:V,pixelHeight:H}=q,N=!!_J[q.format];for(let k=0;k<q.resource.length;k++){let z=q.resource[k];if(N)Q.compressedTexImage2D(Z,k,J.internalFormat,V,H,0,z);else Q.texImage2D(Z,k,J.internalFormat,V,H,0,J.format,J.type,z);V=Math.max(V>>1,1),H=Math.max(H>>1,1)}}};var $J=["right","left","top","bottom","front","back"];function KJ(q){return{id:"cube",upload(J,Q,$,K){let X=J.faces;for(let Z=0;Z<$J.length;Z++){let V=$J[Z],H=X[V];(q[H.uploadMethodId]||q.image).upload(H,Q,$,K,A.TEXTURE_CUBE_MAP_POSITIVE_X+Z,(Q._layerInitMask&1<<Z)===0),Q._layerInitMask|=1<<Z}Q.width=J.pixelWidth,Q.height=J.pixelHeight}}}var Qq={id:"image",upload(q,J,Q,$,K,X=!1){let Z=K||J.target,V=q.pixelWidth,H=q.pixelHeight,N=q.resourceWidth,k=q.resourceHeight,z=$===2,w=X||J.width!==V||J.height!==H,O=N>=V&&k>=H,D=q.resource;(z?EJ:RJ)(Q,Z,J,V,H,N,k,D,w,O),J.width=V,J.height=H}};function EJ(q,J,Q,$,K,X,Z,V,H,N){if(!N){if(H)q.texImage2D(J,0,Q.internalFormat,$,K,0,Q.format,Q.type,null);q.texSubImage2D(J,0,0,0,X,Z,Q.format,Q.type,V);return}if(!H){q.texSubImage2D(J,0,0,0,Q.format,Q.type,V);return}q.texImage2D(J,0,Q.internalFormat,$,K,0,Q.format,Q.type,V)}function RJ(q,J,Q,$,K,X,Z,V,H,N){if(!N){if(H)q.texImage2D(J,0,Q.internalFormat,$,K,0,Q.format,Q.type,null);q.texSubImage2D(J,0,0,0,Q.format,Q.type,V);return}if(!H){q.texSubImage2D(J,0,0,0,Q.format,Q.type,V);return}q.texImage2D(J,0,Q.internalFormat,Q.format,Q.type,V)}function XJ(){let{userAgent:q}=U.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(q)}var LJ=XJ(),ZJ={id:"video",upload(q,J,Q,$,K,X=LJ){if(!q.isValid){let Z=K??J.target;Q.texImage2D(Z,0,J.internalFormat,1,1,0,J.format,J.type,null);return}Qq.upload(q,J,Q,$,K,X)}};var Oq={linear:9729,nearest:9728},HJ={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},$q={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},VJ={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519};function Dq(q,J,Q,$,K,X,Z,V){let H=X;if(!V||q.addressModeU!=="repeat"||q.addressModeV!=="repeat"||q.addressModeW!=="repeat"){let N=$q[Z?"clamp-to-edge":q.addressModeU],k=$q[Z?"clamp-to-edge":q.addressModeV],z=$q[Z?"clamp-to-edge":q.addressModeW];if(J[K](H,J.TEXTURE_WRAP_S,N),J[K](H,J.TEXTURE_WRAP_T,k),J.TEXTURE_WRAP_R)J[K](H,J.TEXTURE_WRAP_R,z)}if(!V||q.magFilter!=="linear")J[K](H,J.TEXTURE_MAG_FILTER,Oq[q.magFilter]);if(Q){if(!V||q.mipmapFilter!=="linear"){let N=HJ[q.minFilter][q.mipmapFilter];J[K](H,J.TEXTURE_MIN_FILTER,N)}}else J[K](H,J.TEXTURE_MIN_FILTER,Oq[q.minFilter]);if($&&q.maxAnisotropy>1){let N=Math.min(q.maxAnisotropy,J.getParameter($.MAX_TEXTURE_MAX_ANISOTROPY_EXT));J[K](H,$.TEXTURE_MAX_ANISOTROPY_EXT,N)}if(q.compare)J[K](H,J.TEXTURE_COMPARE_FUNC,VJ[q.compare])}function NJ(q){return{r8unorm:q.RED,r8snorm:q.RED,r8uint:q.RED,r8sint:q.RED,r16uint:q.RED,r16sint:q.RED,r16float:q.RED,rg8unorm:q.RG,rg8snorm:q.RG,rg8uint:q.RG,rg8sint:q.RG,r32uint:q.RED,r32sint:q.RED,r32float:q.RED,rg16uint:q.RG,rg16sint:q.RG,rg16float:q.RG,rgba8unorm:q.RGBA,"rgba8unorm-srgb":q.RGBA,rgba8snorm:q.RGBA,rgba8uint:q.RGBA,rgba8sint:q.RGBA,bgra8unorm:q.RGBA,"bgra8unorm-srgb":q.RGBA,rgb9e5ufloat:q.RGB,rgb10a2unorm:q.RGBA,rg11b10ufloat:q.RGB,rg32uint:q.RG,rg32sint:q.RG,rg32float:q.RG,rgba16uint:q.RGBA,rgba16sint:q.RGBA,rgba16float:q.RGBA,rgba32uint:q.RGBA,rgba32sint:q.RGBA,rgba32float:q.RGBA,stencil8:q.STENCIL_INDEX8,depth16unorm:q.DEPTH_COMPONENT,depth24plus:q.DEPTH_COMPONENT,"depth24plus-stencil8":q.DEPTH_STENCIL,depth32float:q.DEPTH_COMPONENT,"depth32float-stencil8":q.DEPTH_STENCIL}}function kJ(q,J){let Q={},$=q.RGBA;if(!(q instanceof U.get().getWebGLRenderingContext()))Q={"rgba8unorm-srgb":q.SRGB8_ALPHA8,"bgra8unorm-srgb":q.SRGB8_ALPHA8},$=q.RGBA8;else if(J.srgb)Q={"rgba8unorm-srgb":J.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":J.srgb.SRGB8_ALPHA8_EXT};return{r8unorm:q.R8,r8snorm:q.R8_SNORM,r8uint:q.R8UI,r8sint:q.R8I,r16uint:q.R16UI,r16sint:q.R16I,r16float:q.R16F,rg8unorm:q.RG8,rg8snorm:q.RG8_SNORM,rg8uint:q.RG8UI,rg8sint:q.RG8I,r32uint:q.R32UI,r32sint:q.R32I,r32float:q.R32F,rg16uint:q.RG16UI,rg16sint:q.RG16I,rg16float:q.RG16F,rgba8unorm:q.RGBA,...Q,rgba8snorm:q.RGBA8_SNORM,rgba8uint:q.RGBA8UI,rgba8sint:q.RGBA8I,bgra8unorm:$,rgb9e5ufloat:q.RGB9_E5,rgb10a2unorm:q.RGB10_A2,rg11b10ufloat:q.R11F_G11F_B10F,rg32uint:q.RG32UI,rg32sint:q.RG32I,rg32float:q.RG32F,rgba16uint:q.RGBA16UI,rgba16sint:q.RGBA16I,rgba16float:q.RGBA16F,rgba32uint:q.RGBA32UI,rgba32sint:q.RGBA32I,rgba32float:q.RGBA32F,stencil8:q.STENCIL_INDEX8,depth16unorm:q.DEPTH_COMPONENT16,depth24plus:q.DEPTH_COMPONENT24,"depth24plus-stencil8":q.DEPTH24_STENCIL8,depth32float:q.DEPTH_COMPONENT32F,"depth32float-stencil8":q.DEPTH32F_STENCIL8,...J.s3tc?{"bc1-rgba-unorm":J.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":J.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":J.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...J.s3tc_sRGB?{"bc1-rgba-unorm-srgb":J.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":J.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":J.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...J.rgtc?{"bc4-r-unorm":J.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":J.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":J.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":J.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...J.bptc?{"bc6h-rgb-float":J.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":J.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":J.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":J.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...J.etc?{"etc2-rgb8unorm":J.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":J.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":J.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":J.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":J.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":J.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":J.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":J.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...J.astc?{"astc-4x4-unorm":J.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":J.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":J.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":J.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":J.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":J.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":J.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":J.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":J.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":J.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":J.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":J.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":J.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":J.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}function WJ(q){return{r8unorm:q.UNSIGNED_BYTE,r8snorm:q.BYTE,r8uint:q.UNSIGNED_BYTE,r8sint:q.BYTE,r16uint:q.UNSIGNED_SHORT,r16sint:q.SHORT,r16float:q.HALF_FLOAT,rg8unorm:q.UNSIGNED_BYTE,rg8snorm:q.BYTE,rg8uint:q.UNSIGNED_BYTE,rg8sint:q.BYTE,r32uint:q.UNSIGNED_INT,r32sint:q.INT,r32float:q.FLOAT,rg16uint:q.UNSIGNED_SHORT,rg16sint:q.SHORT,rg16float:q.HALF_FLOAT,rgba8unorm:q.UNSIGNED_BYTE,"rgba8unorm-srgb":q.UNSIGNED_BYTE,rgba8snorm:q.BYTE,rgba8uint:q.UNSIGNED_BYTE,rgba8sint:q.BYTE,bgra8unorm:q.UNSIGNED_BYTE,"bgra8unorm-srgb":q.UNSIGNED_BYTE,rgb9e5ufloat:q.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:q.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:q.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:q.UNSIGNED_INT,rg32sint:q.INT,rg32float:q.FLOAT,rgba16uint:q.UNSIGNED_SHORT,rgba16sint:q.SHORT,rgba16float:q.HALF_FLOAT,rgba32uint:q.UNSIGNED_INT,rgba32sint:q.INT,rgba32float:q.FLOAT,stencil8:q.UNSIGNED_BYTE,depth16unorm:q.UNSIGNED_SHORT,depth24plus:q.UNSIGNED_INT,"depth24plus-stencil8":q.UNSIGNED_INT_24_8,depth32float:q.FLOAT,"depth32float-stencil8":q.FLOAT_32_UNSIGNED_INT_24_8_REV}}function zJ(q){return{"2d":q.TEXTURE_2D,cube:q.TEXTURE_CUBE_MAP,"1d":null,"3d":q?.TEXTURE_3D||null,"2d-array":q?.TEXTURE_2D_ARRAY||null,"cube-array":q?.TEXTURE_CUBE_MAP_ARRAY||null}}var yJ=4;class Kq{constructor(q){this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=q,this._managedTextures=new M({renderer:q,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"glTexture"});let J={image:Qq,buffer:JJ,video:ZJ,compressed:QJ};this._uploads={...J,cube:KJ(J)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(q){if(this._gl=q,!this._mapFormatToInternalFormat)this._mapFormatToInternalFormat=kJ(q,this._renderer.context.extensions),this._mapFormatToType=WJ(q),this._mapFormatToFormat=NJ(q),this._mapViewDimensionToGlTarget=zJ(q);this._managedTextures.removeAll(!0),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let J=0;J<16;J++)this.bind(Y.EMPTY,J)}initSource(q){this.bind(q)}bind(q,J=0){let Q=q.source;if(q){if(this.bindSource(Q,J),this._useSeparateSamplers)this._bindSampler(Q.style,J)}else if(this.bindSource(null,J),this._useSeparateSamplers)this._bindSampler(null,J)}bindSource(q,J=0){let Q=this._gl;if(q._gcLastUsed=this._renderer.gc.now,this._boundTextures[J]!==q){this._boundTextures[J]=q,this._activateLocation(J),q||(q=Y.EMPTY.source);let $=this.getGlSource(q);Q.bindTexture($.target,$.texture)}}_bindSampler(q,J=0){let Q=this._gl;if(!q){this._boundSamplers[J]=null,Q.bindSampler(J,null);return}let $=this._getGlSampler(q);if(this._boundSamplers[J]!==$)this._boundSamplers[J]=$,Q.bindSampler(J,$)}unbind(q){let J=q.source,Q=this._boundTextures,$=this._gl;for(let K=0;K<Q.length;K++)if(Q[K]===J){this._activateLocation(K);let X=this.getGlSource(J);$.bindTexture(X.target,null),Q[K]=null}}_activateLocation(q){if(this._activeTextureLocation!==q)this._activeTextureLocation=q,this._gl.activeTexture(this._gl.TEXTURE0+q)}_initSource(q){let J=this._gl,Q=new Uq(J.createTexture());if(Q.type=this._mapFormatToType[q.format],Q.internalFormat=this._mapFormatToInternalFormat[q.format],Q.format=this._mapFormatToFormat[q.format],Q.target=this._mapViewDimensionToGlTarget[q.viewDimension],Q.target===null)throw Error(`Unsupported view dimension: ${q.viewDimension} with this webgl version: ${this._renderer.context.webGLVersion}`);if(q.uploadMethodId==="cube")Q.target=J.TEXTURE_CUBE_MAP;if(q.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||q.isPowerOfTwo)){let K=Math.max(q.width,q.height);q.mipLevelCount=Math.floor(Math.log2(K))+1}if(q._gpuData[this._renderer.uid]=Q,this._managedTextures.add(q))q.on("update",this.onSourceUpdate,this),q.on("resize",this.onSourceUpdate,this),q.on("styleChange",this.onStyleChange,this),q.on("updateMipmaps",this.onUpdateMipmaps,this);return this.onSourceUpdate(q),this.updateStyle(q,!1),Q}onStyleChange(q){this.updateStyle(q,!1)}updateStyle(q,J){let Q=this._gl,$=this.getGlSource(q);Q.bindTexture($.target,$.texture),this._boundTextures[this._activeTextureLocation]=q,Dq(q.style,Q,q.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",$.target,!this._renderer.context.supports.nonPowOf2wrapping&&!q.isPowerOfTwo,J)}onSourceUnload(q,J=!1){let Q=q._gpuData[this._renderer.uid];if(!Q)return;if(!J)this.unbind(q),this._gl.deleteTexture(Q.texture);q.off("update",this.onSourceUpdate,this),q.off("resize",this.onSourceUpdate,this),q.off("styleChange",this.onStyleChange,this),q.off("updateMipmaps",this.onUpdateMipmaps,this)}onSourceUpdate(q){let J=this._gl,Q=this.getGlSource(q);J.bindTexture(Q.target,Q.texture),this._boundTextures[this._activeTextureLocation]=q;let $=q.alphaMode==="premultiply-alpha-on-upload";if(this._premultiplyAlpha!==$)this._premultiplyAlpha=$,J.pixelStorei(J.UNPACK_PREMULTIPLY_ALPHA_WEBGL,$);if(this._uploads[q.uploadMethodId])this._uploads[q.uploadMethodId].upload(q,Q,J,this._renderer.context.webGLVersion);else if(Q.target===J.TEXTURE_2D)this._initEmptyTexture2D(Q,q);else if(Q.target===J.TEXTURE_2D_ARRAY)this._initEmptyTexture2DArray(Q,q);else if(Q.target===J.TEXTURE_CUBE_MAP)this._initEmptyTextureCube(Q,q);else throw Error("[GlTextureSystem] Unsupported texture target for empty allocation.");if(this._applyMipRange(Q,q),q.autoGenerateMipmaps&&q.mipLevelCount>1)this.onUpdateMipmaps(q,!1)}onUpdateMipmaps(q,J=!0){if(J)this.bindSource(q,0);let Q=this.getGlSource(q);this._gl.generateMipmap(Q.target)}_initEmptyTexture2D(q,J){let Q=this._gl;Q.texImage2D(Q.TEXTURE_2D,0,q.internalFormat,J.pixelWidth,J.pixelHeight,0,q.format,q.type,null);let $=Math.max(J.pixelWidth>>1,1),K=Math.max(J.pixelHeight>>1,1);for(let X=1;X<J.mipLevelCount;X++)Q.texImage2D(Q.TEXTURE_2D,X,q.internalFormat,$,K,0,q.format,q.type,null),$=Math.max($>>1,1),K=Math.max(K>>1,1)}_initEmptyTexture2DArray(q,J){if(this._renderer.context.webGLVersion!==2)throw Error("[GlTextureSystem] TEXTURE_2D_ARRAY requires WebGL2.");let Q=this._gl,$=Math.max(J.arrayLayerCount|0,1);Q.texImage3D(Q.TEXTURE_2D_ARRAY,0,q.internalFormat,J.pixelWidth,J.pixelHeight,$,0,q.format,q.type,null);let K=Math.max(J.pixelWidth>>1,1),X=Math.max(J.pixelHeight>>1,1);for(let Z=1;Z<J.mipLevelCount;Z++)Q.texImage3D(Q.TEXTURE_2D_ARRAY,Z,q.internalFormat,K,X,$,0,q.format,q.type,null),K=Math.max(K>>1,1),X=Math.max(X>>1,1)}_initEmptyTextureCube(q,J){let Q=this._gl,$=6;for(let Z=0;Z<6;Z++)Q.texImage2D(Q.TEXTURE_CUBE_MAP_POSITIVE_X+Z,0,q.internalFormat,J.pixelWidth,J.pixelHeight,0,q.format,q.type,null);let K=Math.max(J.pixelWidth>>1,1),X=Math.max(J.pixelHeight>>1,1);for(let Z=1;Z<J.mipLevelCount;Z++){for(let V=0;V<6;V++)Q.texImage2D(Q.TEXTURE_CUBE_MAP_POSITIVE_X+V,Z,q.internalFormat,K,X,0,q.format,q.type,null);K=Math.max(K>>1,1),X=Math.max(X>>1,1)}}_applyMipRange(q,J){if(this._renderer.context.webGLVersion!==2)return;let Q=this._gl,$=Math.max((J.mipLevelCount|0)-1,0);Q.texParameteri(q.target,Q.TEXTURE_BASE_LEVEL,0),Q.texParameteri(q.target,Q.TEXTURE_MAX_LEVEL,$)}_initSampler(q){let J=this._gl,Q=this._gl.createSampler();return this._glSamplers[q._resourceId]=Q,Dq(q,J,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",Q,!1,!0),this._glSamplers[q._resourceId]}_getGlSampler(q){return this._glSamplers[q._resourceId]||this._initSampler(q)}getGlSource(q){return q._gcLastUsed=this._renderer.gc.now,q._gpuData[this._renderer.uid]||this._initSource(q)}generateCanvas(q){let{pixels:J,width:Q,height:$}=this.getPixels(q),K=U.get().createCanvas();K.width=Q,K.height=$;let X=K.getContext("2d");if(X){let Z=X.createImageData(Q,$);Z.data.set(J),X.putImageData(Z,0,0)}return K}getPixels(q){let J=q.source.resolution,Q=q.frame,$=Math.max(Math.round(Q.width*J),1),K=Math.max(Math.round(Q.height*J),1),X=new Uint8Array(yJ*$*K),Z=this._renderer,V=Z.renderTarget.getRenderTarget(q),H=Z.renderTarget.getGpuRenderTarget(V),N=Z.gl;return N.bindFramebuffer(N.FRAMEBUFFER,H.resolveTargetFramebuffer),N.readPixels(Math.round(Q.x*J),Math.round(Q.y*J),$,K,N.RGBA,N.UNSIGNED_BYTE,X),{pixels:new Uint8ClampedArray(X.buffer),width:$,height:K}}destroy(){this._managedTextures.destroy(),this._glSamplers=null,this._boundTextures=null,this._boundSamplers=null,this._mapFormatToInternalFormat=null,this._mapFormatToType=null,this._mapFormatToFormat=null,this._uploads=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(Y.EMPTY.source),this._boundSamplers=Object.create(null);let q=this._gl;this._premultiplyAlpha=!1,q.pixelStorei(q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}}Kq.extension={type:[W.WebGLSystem],name:"texture"};var GJ=[...jJ,n,Eq,Mq,i,f,Kq,o,d,Jq,e,T,qJ,u,c],SJ=[...UJ],fJ=[G,y,L],OJ=[],DJ=[],YJ=[];b.handleByNamedList(W.WebGLSystem,OJ);b.handleByNamedList(W.WebGLPipes,DJ);b.handleByNamedList(W.WebGLPipesAdaptor,YJ);b.add(...GJ,...SJ,...fJ);class xJ extends wJ{constructor(){let q={name:"webgl",type:IJ.WEBGL,systems:OJ,renderPipes:DJ,renderPipeAdaptors:YJ};super(q)}}export{xJ as h};
156
+ `))}class Jq{constructor(q){this._cache={},this._uniformGroupSyncHash={},this._renderer=q,this.gl=null,this._cache={}}contextChange(q){this.gl=q}updateUniformGroup(q,J,Q){let $=this._renderer.shader._getProgramData(J);if(!q.isStatic||q._dirtyId!==$.uniformDirtyGroups[q.uid])$.uniformDirtyGroups[q.uid]=q._dirtyId,this._getUniformSyncFunction(q,J)($.uniformData,q.uniforms,this._renderer,Q)}_getUniformSyncFunction(q,J){return this._uniformGroupSyncHash[q._signature]?.[J._key]||this._createUniformSyncFunction(q,J)}_createUniformSyncFunction(q,J){let Q=this._uniformGroupSyncHash[q._signature]||(this._uniformGroupSyncHash[q._signature]={}),$=this._getSignature(q,J._uniformData,"u");if(!this._cache[$])this._cache[$]=this._generateUniformsSync(q,J._uniformData);return Q[J._key]=this._cache[$],Q[J._key]}_generateUniformsSync(q,J){return tq(q,J)}_getSignature(q,J,Q){let $=q.uniforms,K=[`${Q}-`];for(let X in $)if(K.push(X),J[X])K.push(J[X].type);return K.join("-")}destroy(){this._renderer=null,this._cache=null}}Jq.extension={type:[W.WebGLSystem],name:"uniformGroup"};function rq(q){let J={};if(J.normal=[q.ONE,q.ONE_MINUS_SRC_ALPHA],J.add=[q.ONE,q.ONE],J.multiply=[q.DST_COLOR,q.ONE_MINUS_SRC_ALPHA,q.ONE,q.ONE_MINUS_SRC_ALPHA],J.screen=[q.ONE,q.ONE_MINUS_SRC_COLOR,q.ONE,q.ONE_MINUS_SRC_ALPHA],J.none=[0,0],J["normal-npm"]=[q.SRC_ALPHA,q.ONE_MINUS_SRC_ALPHA,q.ONE,q.ONE_MINUS_SRC_ALPHA],J["add-npm"]=[q.SRC_ALPHA,q.ONE,q.ONE,q.ONE],J["screen-npm"]=[q.SRC_ALPHA,q.ONE_MINUS_SRC_COLOR,q.ONE,q.ONE_MINUS_SRC_ALPHA],J.erase=[q.ZERO,q.ONE_MINUS_SRC_ALPHA],!(q instanceof U.get().getWebGLRenderingContext()))J.min=[q.ONE,q.ONE,q.ONE,q.ONE,q.MIN,q.MIN],J.max=[q.ONE,q.ONE,q.ONE,q.ONE,q.MAX,q.MAX];else{let $=q.getExtension("EXT_blend_minmax");if($)J.min=[q.ONE,q.ONE,q.ONE,q.ONE,$.MIN_EXT,$.MIN_EXT],J.max=[q.ONE,q.ONE,q.ONE,q.ONE,$.MAX_EXT,$.MAX_EXT]}return J}var MJ=0,FJ=1,AJ=2,PJ=3,bJ=4,hJ=5,eq=class q{constructor(J){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[MJ]=this.setBlend,this.map[FJ]=this.setOffset,this.map[AJ]=this.setCullFace,this.map[PJ]=this.setDepthTest,this.map[bJ]=this.setFrontFace,this.map[hJ]=this.setDepthMask,this.checks=[],this.defaultState=v.for2d(),J.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(J){if(this._invertFrontFace=!J.isRoot,this._cullFace)this.setFrontFace(this._frontFace);else this._frontFaceDirty=!0}contextChange(J){this.gl=J,this.blendModesMap=rq(J),this.resetState()}set(J){if(J||(J=this.defaultState),this.stateId!==J.data){let Q=this.stateId^J.data,$=0;while(Q){if(Q&1)this.map[$].call(this,!!(J.data&1<<$));Q>>=1,$++}this.stateId=J.data}for(let Q=0;Q<this.checks.length;Q++)this.checks[Q](this,J)}forceState(J){J||(J=this.defaultState);for(let Q=0;Q<this.map.length;Q++)this.map[Q].call(this,!!(J.data&1<<Q));for(let Q=0;Q<this.checks.length;Q++)this.checks[Q](this,J);this.stateId=J.data}setBlend(J){this._updateCheck(q._checkBlendMode,J),this.gl[J?"enable":"disable"](this.gl.BLEND)}setOffset(J){this._updateCheck(q._checkPolygonOffset,J),this.gl[J?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(J){this.gl[J?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(J){this.gl.depthMask(J)}setCullFace(J){if(this._cullFace=J,this.gl[J?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty)this.setFrontFace(this._frontFace)}setFrontFace(J){this._frontFace=J,this._frontFaceDirty=!1;let Q=this._invertFrontFace?!J:J;if(this._glFrontFace!==Q)this._glFrontFace=Q,this.gl.frontFace(this.gl[Q?"CW":"CCW"])}setBlendMode(J){if(!this.blendModesMap[J])J="normal";if(J===this.blendMode)return;this.blendMode=J;let Q=this.blendModesMap[J],$=this.gl;if(Q.length===2)$.blendFunc(Q[0],Q[1]);else $.blendFuncSeparate(Q[0],Q[1],Q[2],Q[3]);if(Q.length===6)this._blendEq=!0,$.blendEquationSeparate(Q[4],Q[5]);else if(this._blendEq)this._blendEq=!1,$.blendEquationSeparate($.FUNC_ADD,$.FUNC_ADD)}setPolygonOffset(J,Q){this.gl.polygonOffset(J,Q)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(J,Q){let $=this.checks.indexOf(J);if(Q&&$===-1)this.checks.push(J);else if(!Q&&$!==-1)this.checks.splice($,1)}static _checkBlendMode(J,Q){J.setBlendMode(Q.blendMode)}static _checkPolygonOffset(J,Q){J.setPolygonOffset(1,Q.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};eq.extension={type:[W.WebGLSystem],name:"state"};var qJ=eq;class Uq{constructor(q){this.target=A.TEXTURE_2D,this._layerInitMask=0,this.texture=q,this.width=-1,this.height=-1,this.type=I.UNSIGNED_BYTE,this.internalFormat=x.RGBA,this.format=x.RGBA,this.samplerType=0}destroy(){}}var JJ={id:"buffer",upload(q,J,Q,$,K,X=!1){let Z=K||J.target;if(!X&&(J.width===q.width&&J.height===q.height))Q.texSubImage2D(Z,0,0,0,q.width,q.height,J.format,J.type,q.resource);else Q.texImage2D(Z,0,J.internalFormat,q.width,q.height,0,J.format,J.type,q.resource);J.width=q.width,J.height=q.height}};var _J={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},QJ={id:"compressed",upload(q,J,Q,$,K,X){let Z=K??J.target;Q.pixelStorei(Q.UNPACK_ALIGNMENT,4);let{pixelWidth:V,pixelHeight:H}=q,N=!!_J[q.format];for(let k=0;k<q.resource.length;k++){let z=q.resource[k];if(N)Q.compressedTexImage2D(Z,k,J.internalFormat,V,H,0,z);else Q.texImage2D(Z,k,J.internalFormat,V,H,0,J.format,J.type,z);V=Math.max(V>>1,1),H=Math.max(H>>1,1)}}};var $J=["right","left","top","bottom","front","back"];function KJ(q){return{id:"cube",upload(J,Q,$,K){let X=J.faces;for(let Z=0;Z<$J.length;Z++){let V=$J[Z],H=X[V];(q[H.uploadMethodId]||q.image).upload(H,Q,$,K,A.TEXTURE_CUBE_MAP_POSITIVE_X+Z,(Q._layerInitMask&1<<Z)===0),Q._layerInitMask|=1<<Z}Q.width=J.pixelWidth,Q.height=J.pixelHeight}}}var Qq={id:"image",upload(q,J,Q,$,K,X=!1){let Z=K||J.target,V=q.pixelWidth,H=q.pixelHeight,N=q.resourceWidth,k=q.resourceHeight,z=$===2,w=X||J.width!==V||J.height!==H,O=N>=V&&k>=H,D=q.resource;(z?EJ:RJ)(Q,Z,J,V,H,N,k,D,w,O),J.width=V,J.height=H}};function EJ(q,J,Q,$,K,X,Z,V,H,N){if(!N){if(H)q.texImage2D(J,0,Q.internalFormat,$,K,0,Q.format,Q.type,null);q.texSubImage2D(J,0,0,0,X,Z,Q.format,Q.type,V);return}if(!H){q.texSubImage2D(J,0,0,0,Q.format,Q.type,V);return}q.texImage2D(J,0,Q.internalFormat,$,K,0,Q.format,Q.type,V)}function RJ(q,J,Q,$,K,X,Z,V,H,N){if(!N){if(H)q.texImage2D(J,0,Q.internalFormat,$,K,0,Q.format,Q.type,null);q.texSubImage2D(J,0,0,0,Q.format,Q.type,V);return}if(!H){q.texSubImage2D(J,0,0,0,Q.format,Q.type,V);return}q.texImage2D(J,0,Q.internalFormat,Q.format,Q.type,V)}function XJ(){let{userAgent:q}=U.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(q)}var LJ=XJ(),ZJ={id:"video",upload(q,J,Q,$,K,X=LJ){if(!q.isValid){let Z=K??J.target;Q.texImage2D(Z,0,J.internalFormat,1,1,0,J.format,J.type,null);return}Qq.upload(q,J,Q,$,K,X)}};var Oq={linear:9729,nearest:9728},HJ={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},$q={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},VJ={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519};function Dq(q,J,Q,$,K,X,Z,V){let H=X;if(!V||q.addressModeU!=="repeat"||q.addressModeV!=="repeat"||q.addressModeW!=="repeat"){let N=$q[Z?"clamp-to-edge":q.addressModeU],k=$q[Z?"clamp-to-edge":q.addressModeV],z=$q[Z?"clamp-to-edge":q.addressModeW];if(J[K](H,J.TEXTURE_WRAP_S,N),J[K](H,J.TEXTURE_WRAP_T,k),J.TEXTURE_WRAP_R)J[K](H,J.TEXTURE_WRAP_R,z)}if(!V||q.magFilter!=="linear")J[K](H,J.TEXTURE_MAG_FILTER,Oq[q.magFilter]);if(Q){if(!V||q.mipmapFilter!=="linear"){let N=HJ[q.minFilter][q.mipmapFilter];J[K](H,J.TEXTURE_MIN_FILTER,N)}}else J[K](H,J.TEXTURE_MIN_FILTER,Oq[q.minFilter]);if($&&q.maxAnisotropy>1){let N=Math.min(q.maxAnisotropy,J.getParameter($.MAX_TEXTURE_MAX_ANISOTROPY_EXT));J[K](H,$.TEXTURE_MAX_ANISOTROPY_EXT,N)}if(q.compare)J[K](H,J.TEXTURE_COMPARE_FUNC,VJ[q.compare])}function NJ(q){return{r8unorm:q.RED,r8snorm:q.RED,r8uint:q.RED,r8sint:q.RED,r16uint:q.RED,r16sint:q.RED,r16float:q.RED,rg8unorm:q.RG,rg8snorm:q.RG,rg8uint:q.RG,rg8sint:q.RG,r32uint:q.RED,r32sint:q.RED,r32float:q.RED,rg16uint:q.RG,rg16sint:q.RG,rg16float:q.RG,rgba8unorm:q.RGBA,"rgba8unorm-srgb":q.RGBA,rgba8snorm:q.RGBA,rgba8uint:q.RGBA,rgba8sint:q.RGBA,bgra8unorm:q.RGBA,"bgra8unorm-srgb":q.RGBA,rgb9e5ufloat:q.RGB,rgb10a2unorm:q.RGBA,rg11b10ufloat:q.RGB,rg32uint:q.RG,rg32sint:q.RG,rg32float:q.RG,rgba16uint:q.RGBA,rgba16sint:q.RGBA,rgba16float:q.RGBA,rgba32uint:q.RGBA,rgba32sint:q.RGBA,rgba32float:q.RGBA,stencil8:q.STENCIL_INDEX8,depth16unorm:q.DEPTH_COMPONENT,depth24plus:q.DEPTH_COMPONENT,"depth24plus-stencil8":q.DEPTH_STENCIL,depth32float:q.DEPTH_COMPONENT,"depth32float-stencil8":q.DEPTH_STENCIL}}function kJ(q,J){let Q={},$=q.RGBA;if(!(q instanceof U.get().getWebGLRenderingContext()))Q={"rgba8unorm-srgb":q.SRGB8_ALPHA8,"bgra8unorm-srgb":q.SRGB8_ALPHA8},$=q.RGBA8;else if(J.srgb)Q={"rgba8unorm-srgb":J.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":J.srgb.SRGB8_ALPHA8_EXT};return{r8unorm:q.R8,r8snorm:q.R8_SNORM,r8uint:q.R8UI,r8sint:q.R8I,r16uint:q.R16UI,r16sint:q.R16I,r16float:q.R16F,rg8unorm:q.RG8,rg8snorm:q.RG8_SNORM,rg8uint:q.RG8UI,rg8sint:q.RG8I,r32uint:q.R32UI,r32sint:q.R32I,r32float:q.R32F,rg16uint:q.RG16UI,rg16sint:q.RG16I,rg16float:q.RG16F,rgba8unorm:q.RGBA,...Q,rgba8snorm:q.RGBA8_SNORM,rgba8uint:q.RGBA8UI,rgba8sint:q.RGBA8I,bgra8unorm:$,rgb9e5ufloat:q.RGB9_E5,rgb10a2unorm:q.RGB10_A2,rg11b10ufloat:q.R11F_G11F_B10F,rg32uint:q.RG32UI,rg32sint:q.RG32I,rg32float:q.RG32F,rgba16uint:q.RGBA16UI,rgba16sint:q.RGBA16I,rgba16float:q.RGBA16F,rgba32uint:q.RGBA32UI,rgba32sint:q.RGBA32I,rgba32float:q.RGBA32F,stencil8:q.STENCIL_INDEX8,depth16unorm:q.DEPTH_COMPONENT16,depth24plus:q.DEPTH_COMPONENT24,"depth24plus-stencil8":q.DEPTH24_STENCIL8,depth32float:q.DEPTH_COMPONENT32F,"depth32float-stencil8":q.DEPTH32F_STENCIL8,...J.s3tc?{"bc1-rgba-unorm":J.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":J.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":J.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...J.s3tc_sRGB?{"bc1-rgba-unorm-srgb":J.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":J.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":J.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...J.rgtc?{"bc4-r-unorm":J.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":J.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":J.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":J.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...J.bptc?{"bc6h-rgb-float":J.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":J.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":J.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":J.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...J.etc?{"etc2-rgb8unorm":J.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":J.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":J.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":J.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":J.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":J.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":J.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":J.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...J.astc?{"astc-4x4-unorm":J.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":J.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":J.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":J.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":J.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":J.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":J.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":J.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":J.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":J.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":J.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":J.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":J.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":J.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":J.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}function WJ(q){return{r8unorm:q.UNSIGNED_BYTE,r8snorm:q.BYTE,r8uint:q.UNSIGNED_BYTE,r8sint:q.BYTE,r16uint:q.UNSIGNED_SHORT,r16sint:q.SHORT,r16float:q.HALF_FLOAT,rg8unorm:q.UNSIGNED_BYTE,rg8snorm:q.BYTE,rg8uint:q.UNSIGNED_BYTE,rg8sint:q.BYTE,r32uint:q.UNSIGNED_INT,r32sint:q.INT,r32float:q.FLOAT,rg16uint:q.UNSIGNED_SHORT,rg16sint:q.SHORT,rg16float:q.HALF_FLOAT,rgba8unorm:q.UNSIGNED_BYTE,"rgba8unorm-srgb":q.UNSIGNED_BYTE,rgba8snorm:q.BYTE,rgba8uint:q.UNSIGNED_BYTE,rgba8sint:q.BYTE,bgra8unorm:q.UNSIGNED_BYTE,"bgra8unorm-srgb":q.UNSIGNED_BYTE,rgb9e5ufloat:q.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:q.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:q.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:q.UNSIGNED_INT,rg32sint:q.INT,rg32float:q.FLOAT,rgba16uint:q.UNSIGNED_SHORT,rgba16sint:q.SHORT,rgba16float:q.HALF_FLOAT,rgba32uint:q.UNSIGNED_INT,rgba32sint:q.INT,rgba32float:q.FLOAT,stencil8:q.UNSIGNED_BYTE,depth16unorm:q.UNSIGNED_SHORT,depth24plus:q.UNSIGNED_INT,"depth24plus-stencil8":q.UNSIGNED_INT_24_8,depth32float:q.FLOAT,"depth32float-stencil8":q.FLOAT_32_UNSIGNED_INT_24_8_REV}}function zJ(q){return{"2d":q.TEXTURE_2D,cube:q.TEXTURE_CUBE_MAP,"1d":null,"3d":q?.TEXTURE_3D||null,"2d-array":q?.TEXTURE_2D_ARRAY||null,"cube-array":q?.TEXTURE_CUBE_MAP_ARRAY||null}}var yJ=4;class Kq{constructor(q){this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=q,this._managedTextures=new M({renderer:q,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"glTexture"});let J={image:Qq,buffer:JJ,video:ZJ,compressed:QJ};this._uploads={...J,cube:KJ(J)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(q){if(this._gl=q,!this._mapFormatToInternalFormat)this._mapFormatToInternalFormat=kJ(q,this._renderer.context.extensions),this._mapFormatToType=WJ(q),this._mapFormatToFormat=NJ(q),this._mapViewDimensionToGlTarget=zJ(q);this._managedTextures.removeAll(!0),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let J=0;J<16;J++)this.bind(Y.EMPTY,J)}initSource(q){this.bind(q)}bind(q,J=0){let Q=q.source;if(q){if(this.bindSource(Q,J),this._useSeparateSamplers)this._bindSampler(Q.style,J)}else if(this.bindSource(null,J),this._useSeparateSamplers)this._bindSampler(null,J)}bindSource(q,J=0){let Q=this._gl;if(q._gcLastUsed=this._renderer.gc.now,this._boundTextures[J]!==q){this._boundTextures[J]=q,this._activateLocation(J),q||(q=Y.EMPTY.source);let $=this.getGlSource(q);Q.bindTexture($.target,$.texture)}}_bindSampler(q,J=0){let Q=this._gl;if(!q){this._boundSamplers[J]=null,Q.bindSampler(J,null);return}let $=this._getGlSampler(q);if(this._boundSamplers[J]!==$)this._boundSamplers[J]=$,Q.bindSampler(J,$)}unbind(q){let J=q.source,Q=this._boundTextures,$=this._gl;for(let K=0;K<Q.length;K++)if(Q[K]===J){this._activateLocation(K);let X=this.getGlSource(J);$.bindTexture(X.target,null),Q[K]=null}}_activateLocation(q){if(this._activeTextureLocation!==q)this._activeTextureLocation=q,this._gl.activeTexture(this._gl.TEXTURE0+q)}_initSource(q){let J=this._gl,Q=new Uq(J.createTexture());if(Q.type=this._mapFormatToType[q.format],Q.internalFormat=this._mapFormatToInternalFormat[q.format],Q.format=this._mapFormatToFormat[q.format],Q.target=this._mapViewDimensionToGlTarget[q.viewDimension],Q.target===null)throw Error(`Unsupported view dimension: ${q.viewDimension} with this webgl version: ${this._renderer.context.webGLVersion}`);if(q.uploadMethodId==="cube")Q.target=J.TEXTURE_CUBE_MAP;if(q.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||q.isPowerOfTwo)){let K=Math.max(q.width,q.height);q.mipLevelCount=Math.floor(Math.log2(K))+1}if(q._gpuData[this._renderer.uid]=Q,this._managedTextures.add(q))q.on("update",this.onSourceUpdate,this),q.on("resize",this.onSourceUpdate,this),q.on("styleChange",this.onStyleChange,this),q.on("updateMipmaps",this.onUpdateMipmaps,this);return this.onSourceUpdate(q),this.updateStyle(q,!1),Q}onStyleChange(q){this.updateStyle(q,!1)}updateStyle(q,J){let Q=this._gl,$=this.getGlSource(q);Q.bindTexture($.target,$.texture),this._boundTextures[this._activeTextureLocation]=q,Dq(q.style,Q,q.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",$.target,!this._renderer.context.supports.nonPowOf2wrapping&&!q.isPowerOfTwo,J)}onSourceUnload(q,J=!1){let Q=q._gpuData[this._renderer.uid];if(!Q)return;if(!J)this.unbind(q),this._gl.deleteTexture(Q.texture);q.off("update",this.onSourceUpdate,this),q.off("resize",this.onSourceUpdate,this),q.off("styleChange",this.onStyleChange,this),q.off("updateMipmaps",this.onUpdateMipmaps,this)}onSourceUpdate(q){let J=this._gl,Q=this.getGlSource(q);J.bindTexture(Q.target,Q.texture),this._boundTextures[this._activeTextureLocation]=q;let $=q.alphaMode==="premultiply-alpha-on-upload";if(this._premultiplyAlpha!==$)this._premultiplyAlpha=$,J.pixelStorei(J.UNPACK_PREMULTIPLY_ALPHA_WEBGL,$);if(this._uploads[q.uploadMethodId])this._uploads[q.uploadMethodId].upload(q,Q,J,this._renderer.context.webGLVersion);else if(Q.target===J.TEXTURE_2D)this._initEmptyTexture2D(Q,q);else if(Q.target===J.TEXTURE_2D_ARRAY)this._initEmptyTexture2DArray(Q,q);else if(Q.target===J.TEXTURE_CUBE_MAP)this._initEmptyTextureCube(Q,q);else throw Error("[GlTextureSystem] Unsupported texture target for empty allocation.");if(this._applyMipRange(Q,q),q.autoGenerateMipmaps&&q.mipLevelCount>1)this.onUpdateMipmaps(q,!1)}onUpdateMipmaps(q,J=!0){if(J)this.bindSource(q,0);let Q=this.getGlSource(q);this._gl.generateMipmap(Q.target)}_initEmptyTexture2D(q,J){let Q=this._gl;Q.texImage2D(Q.TEXTURE_2D,0,q.internalFormat,J.pixelWidth,J.pixelHeight,0,q.format,q.type,null);let $=Math.max(J.pixelWidth>>1,1),K=Math.max(J.pixelHeight>>1,1);for(let X=1;X<J.mipLevelCount;X++)Q.texImage2D(Q.TEXTURE_2D,X,q.internalFormat,$,K,0,q.format,q.type,null),$=Math.max($>>1,1),K=Math.max(K>>1,1)}_initEmptyTexture2DArray(q,J){if(this._renderer.context.webGLVersion!==2)throw Error("[GlTextureSystem] TEXTURE_2D_ARRAY requires WebGL2.");let Q=this._gl,$=Math.max(J.arrayLayerCount|0,1);Q.texImage3D(Q.TEXTURE_2D_ARRAY,0,q.internalFormat,J.pixelWidth,J.pixelHeight,$,0,q.format,q.type,null);let K=Math.max(J.pixelWidth>>1,1),X=Math.max(J.pixelHeight>>1,1);for(let Z=1;Z<J.mipLevelCount;Z++)Q.texImage3D(Q.TEXTURE_2D_ARRAY,Z,q.internalFormat,K,X,$,0,q.format,q.type,null),K=Math.max(K>>1,1),X=Math.max(X>>1,1)}_initEmptyTextureCube(q,J){let Q=this._gl,$=6;for(let Z=0;Z<6;Z++)Q.texImage2D(Q.TEXTURE_CUBE_MAP_POSITIVE_X+Z,0,q.internalFormat,J.pixelWidth,J.pixelHeight,0,q.format,q.type,null);let K=Math.max(J.pixelWidth>>1,1),X=Math.max(J.pixelHeight>>1,1);for(let Z=1;Z<J.mipLevelCount;Z++){for(let V=0;V<6;V++)Q.texImage2D(Q.TEXTURE_CUBE_MAP_POSITIVE_X+V,Z,q.internalFormat,K,X,0,q.format,q.type,null);K=Math.max(K>>1,1),X=Math.max(X>>1,1)}}_applyMipRange(q,J){if(this._renderer.context.webGLVersion!==2)return;let Q=this._gl,$=Math.max((J.mipLevelCount|0)-1,0);Q.texParameteri(q.target,Q.TEXTURE_BASE_LEVEL,0),Q.texParameteri(q.target,Q.TEXTURE_MAX_LEVEL,$)}_initSampler(q){let J=this._gl,Q=this._gl.createSampler();return this._glSamplers[q._resourceId]=Q,Dq(q,J,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",Q,!1,!0),this._glSamplers[q._resourceId]}_getGlSampler(q){return this._glSamplers[q._resourceId]||this._initSampler(q)}getGlSource(q){return q._gcLastUsed=this._renderer.gc.now,q._gpuData[this._renderer.uid]||this._initSource(q)}generateCanvas(q){let{pixels:J,width:Q,height:$}=this.getPixels(q),K=U.get().createCanvas();K.width=Q,K.height=$;let X=K.getContext("2d");if(X){let Z=X.createImageData(Q,$);Z.data.set(J),X.putImageData(Z,0,0)}return K}getPixels(q){let J=q.source.resolution,Q=q.frame,$=Math.max(Math.round(Q.width*J),1),K=Math.max(Math.round(Q.height*J),1),X=new Uint8Array(yJ*$*K),Z=this._renderer,V=Z.renderTarget.getRenderTarget(q),H=Z.renderTarget.getGpuRenderTarget(V),N=Z.gl;return N.bindFramebuffer(N.FRAMEBUFFER,H.resolveTargetFramebuffer),N.readPixels(Math.round(Q.x*J),Math.round(Q.y*J),$,K,N.RGBA,N.UNSIGNED_BYTE,X),{pixels:new Uint8ClampedArray(X.buffer),width:$,height:K}}destroy(){this._managedTextures.destroy(),this._glSamplers=null,this._boundTextures=null,this._boundSamplers=null,this._mapFormatToInternalFormat=null,this._mapFormatToType=null,this._mapFormatToFormat=null,this._uploads=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(Y.EMPTY.source),this._boundSamplers=Object.create(null);let q=this._gl;this._premultiplyAlpha=!1,q.pixelStorei(q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}}Kq.extension={type:[W.WebGLSystem],name:"texture"};var GJ=[...jJ,n,Eq,Mq,i,f,Kq,o,d,Jq,e,T,qJ,u,c],SJ=[...UJ],fJ=[G,y,L],OJ=[],DJ=[],YJ=[];b.handleByNamedList(W.WebGLSystem,OJ);b.handleByNamedList(W.WebGLPipes,DJ);b.handleByNamedList(W.WebGLPipesAdaptor,YJ);b.add(...GJ,...SJ,...fJ);class xJ extends wJ{constructor(){let q={name:"webgl",type:IJ.WEBGL,systems:OJ,renderPipes:DJ,renderPipeAdaptors:YJ};super(q)}}export{xJ as i};
@@ -0,0 +1,2 @@
1
+ import{$a as i,Ka as U,La as S,Ma as Lq,Na as Eq,Oa as Sq,Pa as _q,Qa as wq,Ra as N,Sa as yq,Ta as E,Va as Y,Wa as p,Xa as r,Ya as j,_a as O,ab as qq,bb as T,db as t,eb as k,ib as L,jb as Dq,mb as kq,ob as Rq,sb as Mq}from"./chunk-sqnzgty6.js";class D{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let q=0;q<this.filters.length;q++)this.filters[q].destroy();this.filters=null,this.filterArea=null}}class s{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){if(this._initialized)return;this._initialized=!0,this._effectClasses.forEach((q)=>{this.add({test:q.test,maskClass:q})})}add(q){this._tests.push(q)}getMaskEffect(q){if(!this._initialized)this.init();for(let J=0;J<this._tests.length;J++){let K=this._tests[J];if(K.test(q))return j.get(K.maskClass,q)}return q}returnMaskEffect(q){j.return(q)}}var B=new s;S.handleByList(U.MaskEffect,B._effectClasses);var W=j.getPool(N),A=j.getPool(O);function l(q,J,K){K.clear();let X,Z;if(q.parent)if(!J)Z=W.get().identity(),X=I(q,Z);else X=q.parent.worldTransform;else X=N.IDENTITY;if(a(q,K,X,J),Z)W.return(Z);if(!K.isValid)K.set(0,0,0,0);return K}function a(q,J,K,X){if(!q.visible||!q.measurable)return;let Z;if(!X)q.updateLocalTransform(),Z=W.get(),Z.appendFrom(q.localTransform,K);else Z=q.worldTransform;let $=J,Q=!!q.effects.length;if(Q)J=A.get().clear();if(q.boundsArea)J.addRect(q.boundsArea,Z);else{let z=q.bounds;if(z&&!z.isEmpty())J.matrix=Z,J.addBounds(z);for(let V=0;V<q.children.length;V++)a(q.children[V],J,Z,X)}if(Q){for(let z=0;z<q.effects.length;z++)q.effects[z].addBounds?.(J);$.addBounds(J,N.IDENTITY),A.return(J)}if(!X)W.return(Z)}function I(q,J){let K=q.parent;if(K)I(K,J),K.updateLocalTransform(),J.append(K.localTransform);return J}var n=16777215;function f(q,J){if(q===n)return J;if(J===n)return q;return i(q,J)}function _(q){return((q&255)<<16)+(q&65280)+(q>>16&255)}var o={getGlobalAlpha(q){if(q){if(this.renderGroup)return this.renderGroup.worldAlpha;if(this.parentRenderGroup)return this.parentRenderGroup.worldAlpha*this.alpha;return this.alpha}let J=this.alpha,K=this.parent;while(K)J*=K.alpha,K=K.parent;return J},getGlobalTransform(q=new N,J){if(J)return q.copyFrom(this.worldTransform);this.updateLocalTransform();let K=I(this,W.get().identity());return q.appendFrom(this.localTransform,K),W.return(K),q},getGlobalTint(q){if(q){if(this.renderGroup)return _(this.renderGroup.worldColor);if(this.parentRenderGroup)return _(f(this.localColor,this.parentRenderGroup.worldColor));return this.tint}let J=this.localColor,K=this.parent;while(K)J=f(J,K.localColor),K=K.parent;return _(J)}};var Pq=0;class e{constructor(q){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=q||{},this.enableFullScreen=!1,this.textureStyle=new t(this.textureOptions)}createTexture(q,J,K,X){let Z=new k({...this.textureOptions,width:q,height:J,resolution:1,antialias:K,autoGarbageCollect:!1,autoGenerateMipmaps:X});return new L({source:Z,label:`texturePool_${Pq++}`})}getOptimalTexture(q,J,K=1,X,Z=!1){let $=Math.ceil(q*K-0.000001),Q=Math.ceil(J*K-0.000001);$=T($),Q=T(Q);let z=X?1:0,V=Z?1:0,w=($<<17)+(Q<<2)+(V<<1)+z;if(!this._texturePool[w])this._texturePool[w]=[];let F=this._texturePool[w].pop();if(!F)F=this.createTexture($,Q,X,Z);return F.source._resolution=K,F.source.width=$/K,F.source.height=Q/K,F.source.pixelWidth=$,F.source.pixelHeight=Q,F.frame.x=0,F.frame.y=0,F.frame.width=q,F.frame.height=J,F.updateUvs(),this._poolKeyHash[F.uid]=w,F}getSameSizeTexture(q,J=!1){let K=q.source;return this.getOptimalTexture(q.width,q.height,K._resolution,J)}returnTexture(q,J=!1){let K=this._poolKeyHash[q.uid];if(J)q.source.style=this.textureStyle;this._texturePool[K].push(q)}clear(q){if(q=q!==!1,q)for(let J in this._texturePool){let K=this._texturePool[J];if(K)for(let X=0;X<K.length;X++)K[X].destroy(!0)}this._texturePool={}}}var b=new e;r.register(b);class m{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new N,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new qq,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(q){if(this.root=q,q._onRender)this.addOnRender(q);q.didChange=!0;let J=q.children;for(let K=0;K<J.length;K++){let X=J[K];X._updateFlags=15,this.addChild(X)}}enableCacheAsTexture(q={}){this.textureOptions=q,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){if(this.isCachedAsTexture=!1,this.texture)b.returnTexture(this.texture,!0),this.texture=null}updateCacheTexture(){this.textureNeedsUpdate=!0;let q=this._parentCacheAsTextureRenderGroup;if(q&&!q.textureNeedsUpdate)q.updateCacheTexture()}reset(){this.renderGroupChildren.length=0;for(let q in this.childrenToUpdate){let J=this.childrenToUpdate[q];J.list.fill(null),J.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(q){if(q.renderGroupParent)q.renderGroupParent._removeRenderGroupChild(q);q.renderGroupParent=this,this.renderGroupChildren.push(q)}_removeRenderGroupChild(q){let J=this.renderGroupChildren.indexOf(q);if(J>-1)this.renderGroupChildren.splice(J,1);q.renderGroupParent=null}addChild(q){if(this.structureDidChange=!0,q.parentRenderGroup=this,q.updateTick=-1,q.parent===this.root)q.relativeRenderGroupDepth=1;else q.relativeRenderGroupDepth=q.parent.relativeRenderGroupDepth+1;if(q.didChange=!0,this.onChildUpdate(q),q.renderGroup){this.addRenderGroupChild(q.renderGroup);return}if(q._onRender)this.addOnRender(q);let J=q.children;for(let K=0;K<J.length;K++)this.addChild(J[K])}removeChild(q){if(this.structureDidChange=!0,q._onRender){if(!q.renderGroup)this.removeOnRender(q)}if(q.parentRenderGroup=null,q.renderGroup){this._removeRenderGroupChild(q.renderGroup);return}let J=q.children;for(let K=0;K<J.length;K++)this.removeChild(J[K])}removeChildren(q){for(let J=0;J<q.length;J++)this.removeChild(q[J])}onChildUpdate(q){let J=this.childrenToUpdate[q.relativeRenderGroupDepth];if(!J)J=this.childrenToUpdate[q.relativeRenderGroupDepth]={index:0,list:[]};J.list[J.index++]=q}updateRenderable(q){if(q.globalDisplayStatus<7)return;this.instructionSet.renderPipes[q.renderPipeId].updateRenderable(q),q.didViewUpdate=!1}onChildViewUpdate(q){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=q}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(q){this._onRenderContainers.push(q)}removeOnRender(q){this._onRenderContainers.splice(this._onRenderContainers.indexOf(q),1)}runOnRender(q){for(let J=0;J<this._onRenderContainers.length;J++)this._onRenderContainers[J]._onRender(q)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(q=[]){let J=this.root.children;for(let K=0;K<J.length;K++)this._getChildren(J[K],q);return q}_getChildren(q,J=[]){if(J.push(q),q.renderGroup)return J;let K=q.children;for(let X=0;X<K.length;X++)this._getChildren(K[X],J);return J}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){if((this._matrixDirty&1)===0)return this._inverseWorldTransform;return this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new N),this._inverseWorldTransform.copyFrom(this.worldTransform).invert()}get textureOffsetInverseTransform(){if((this._matrixDirty&2)===0)return this._textureOffsetInverseTransform;return this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new N),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y)}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let q=this._parentCacheAsTextureRenderGroup;if(q)return this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new N),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(q.inverseWorldTransform).translate(-q._textureBounds.x,-q._textureBounds.y);return this.worldTransform}get cacheToLocalTransform(){if(this.isCachedAsTexture)return this.textureOffsetInverseTransform;if(!this._parentCacheAsTextureRenderGroup)return null;return this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform}}var Jq={cullArea:null,cullable:!1,cullableChildren:!0};class H{constructor(q,J,K){this._x=J||0,this._y=K||0,this._observer=q}clone(q){return new H(q??this._observer,this._x,this._y)}set(q=0,J=q){if(this._x!==q||this._y!==J)this._x=q,this._y=J,this._observer._onUpdate(this);return this}copyFrom(q){if(this._x!==q.x||this._y!==q.y)this._x=q.x,this._y=q.y,this._observer._onUpdate(this);return this}copyTo(q){return q.set(this._x,this._y),q}equals(q){return q.x===this._x&&q.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(q){if(this._x!==q)this._x=q,this._observer._onUpdate(this)}get y(){return this._y}set y(q){if(this._y!==q)this._y=q,this._observer._onUpdate(this)}}var Kq={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(q){if(typeof q==="boolean"&&q===!1)this.disableRenderGroup();else this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(q===!0?{}:q)},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(q){Y("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(q)}};function Xq(q,J,K){let X=q.length,Z;if(J>=X||K===0)return;K=J+K>X?X-J:K;let $=X-K;for(Z=J;Z<$;++Z)q[Z]=q[Z+K];q.length=$}var Zq={allowChildren:!0,removeChildren(q=0,J){let K=J??this.children.length,X=K-q,Z=[];if(X>0&&X<=K){for(let Q=K-1;Q>=q;Q--){let z=this.children[Q];if(!z)continue;Z.push(z),z.parent=null}Xq(this.children,q,K);let $=this.renderGroup||this.parentRenderGroup;if($)$.removeChildren(Z);for(let Q=0;Q<Z.length;++Q){let z=Z[Q];z.parentRenderLayer?.detach(z),this.emit("childRemoved",z,this,Q),Z[Q].emit("removed",this)}if(Z.length>0)this._didViewChangeTick++;return Z}else if(X===0&&this.children.length===0)return Z;throw RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(q){let J=this.getChildAt(q);return this.removeChild(J)},getChildAt(q){if(q<0||q>=this.children.length)throw Error(`getChildAt: Index (${q}) does not exist.`);return this.children[q]},setChildIndex(q,J){if(J<0||J>=this.children.length)throw Error(`The index ${J} supplied is out of bounds ${this.children.length}`);this.getChildIndex(q),this.addChildAt(q,J)},getChildIndex(q){let J=this.children.indexOf(q);if(J===-1)throw Error("The supplied Container must be a child of the caller");return J},addChildAt(q,J){if(!this.allowChildren)Y(E,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:K}=this;if(J<0||J>K.length)throw Error(`${q}addChildAt: The index ${J} supplied is out of bounds ${K.length}`);let X=q.parent===this;if(q.parent){let $=q.parent.children.indexOf(q);if(X){if($===J)return q;q.parent.children.splice($,1)}else q.removeFromParent()}if(J===K.length)K.push(q);else K.splice(J,0,q);q.parent=this,q.didChange=!0,q._updateFlags=15;let Z=this.renderGroup||this.parentRenderGroup;if(Z)Z.addChild(q);if(this.sortableChildren)this.sortDirty=!0;if(X)return q;return this.emit("childAdded",q,this,J),q.emit("added",this),q},swapChildren(q,J){if(q===J)return;let K=this.getChildIndex(q),X=this.getChildIndex(J);this.children[K]=J,this.children[X]=q;let Z=this.renderGroup||this.parentRenderGroup;if(Z)Z.structureDidChange=!0;this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...q){if(q.length===1)return this.reparentChildAt(q[0],this.children.length);return q.forEach((J)=>this.reparentChildAt(J,this.children.length)),q[0]},reparentChildAt(q,J){if(q.parent===this)return this.setChildIndex(q,J),q;let K=q.worldTransform.clone();q.removeFromParent(),this.addChildAt(q,J);let X=this.worldTransform.clone();return X.invert(),K.prepend(X),q.setFromMatrix(K),q},replaceChild(q,J){q.updateLocalTransform(),this.addChildAt(J,this.getChildIndex(q)),J.setFromMatrix(q.localTransform),J.updateLocalTransform(),this.removeChild(q)}};var $q={collectRenderables(q,J,K){if(this.parentRenderLayer&&this.parentRenderLayer!==K||this.globalDisplayStatus<7||!this.includeInBuild)return;if(this.sortableChildren)this.sortChildren();if(this.isSimple)this.collectRenderablesSimple(q,J,K);else if(this.renderGroup)J.renderPipes.renderGroup.addRenderGroup(this.renderGroup,q);else this.collectRenderablesWithEffects(q,J,K)},collectRenderablesSimple(q,J,K){let X=this.children,Z=X.length;for(let $=0;$<Z;$++)X[$].collectRenderables(q,J,K)},collectRenderablesWithEffects(q,J,K){let{renderPipes:X}=J;for(let Z=0;Z<this.effects.length;Z++){let $=this.effects[Z];X[$.pipe].push($,this,q)}this.collectRenderablesSimple(q,J,K);for(let Z=this.effects.length-1;Z>=0;Z--){let $=this.effects[Z];X[$.pipe].pop($,this,q)}}};var Qq={_maskEffect:null,_maskOptions:{inverse:!1},_filterEffect:null,effects:[],_markStructureAsChanged(){let q=this.renderGroup||this.parentRenderGroup;if(q)q.structureDidChange=!0},addEffect(q){if(this.effects.indexOf(q)!==-1)return;this.effects.push(q),this.effects.sort((K,X)=>K.priority-X.priority),this._markStructureAsChanged(),this._updateIsSimple()},removeEffect(q){let J=this.effects.indexOf(q);if(J===-1)return;this.effects.splice(J,1),this._markStructureAsChanged(),this._updateIsSimple()},set mask(q){let J=this._maskEffect;if(J?.mask===q)return;if(J)this.removeEffect(J),B.returnMaskEffect(J),this._maskEffect=null;if(q===null||q===void 0)return;this._maskEffect=B.getMaskEffect(q),this.addEffect(this._maskEffect)},get mask(){return this._maskEffect?.mask},setMask(q){if(this._maskOptions={...this._maskOptions,...q},q.mask)this.mask=q.mask;this._markStructureAsChanged()},set filters(q){if(!Array.isArray(q)&&q)q=[q];let J=this._filterEffect||(this._filterEffect=new D);q=q;let K=q?.length>0,X=J.filters?.length>0,Z=K!==X;if(q=Array.isArray(q)?q.slice(0):q,J.filters=Object.freeze(q),Z)if(K)this.addEffect(J);else this.removeEffect(J),J.filters=q??null},get filters(){return this._filterEffect?.filters},set filterArea(q){this._filterEffect||(this._filterEffect=new D),this._filterEffect.filterArea=q},get filterArea(){return this._filterEffect?.filterArea}};var zq={label:null,get name(){return Y(E,"Container.name property has been removed, use Container.label instead"),this.label},set name(q){Y(E,"Container.name property has been removed, use Container.label instead"),this.label=q},getChildByName(q,J=!1){return this.getChildByLabel(q,J)},getChildByLabel(q,J=!1){let K=this.children;for(let X=0;X<K.length;X++){let Z=K[X];if(Z.label===q||q instanceof RegExp&&q.test(Z.label))return Z}if(J)for(let X=0;X<K.length;X++){let $=K[X].getChildByLabel(q,!0);if($)return $}return null},getChildrenByLabel(q,J=!1,K=[]){let X=this.children;for(let Z=0;Z<X.length;Z++){let $=X[Z];if($.label===q||q instanceof RegExp&&q.test($.label))K.push($)}if(J)for(let Z=0;Z<X.length;Z++)X[Z].getChildrenByLabel(q,!0,K);return K}};var fq=new N,Nq={getFastGlobalBounds(q,J){if(J||(J=new O),J.clear(),this._getGlobalBoundsRecursive(!!q,J,this.parentRenderLayer),!J.isValid)J.set(0,0,0,0);let K=this.renderGroup||this.parentRenderGroup;return J.applyMatrix(K.worldTransform),J},_getGlobalBoundsRecursive(q,J,K){let X=J;if(q&&this.parentRenderLayer&&this.parentRenderLayer!==K)return;if(this.localDisplayStatus!==7||!this.measurable)return;let Z=!!this.effects.length;if(this.renderGroup||Z)X=A.get().clear();if(this.boundsArea)J.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let Q=this.bounds;X.addFrame(Q.minX,Q.minY,Q.maxX,Q.maxY,this.groupTransform)}let $=this.children;for(let Q=0;Q<$.length;Q++)$[Q]._getGlobalBoundsRecursive(q,X,K)}if(Z){let $=!1,Q=this.renderGroup||this.parentRenderGroup;for(let z=0;z<this.effects.length;z++)if(this.effects[z].addBounds){if(!$)$=!0,X.applyMatrix(Q.worldTransform);this.effects[z].addBounds(X,!0)}if($)X.applyMatrix(Q.worldTransform.copyTo(fq).invert());J.addBounds(X),A.return(X)}else if(this.renderGroup)J.addBounds(X,this.relativeGroupTransform),A.return(X)}};function Vq(q,J,K){if(J.clear(),K||(K=N.IDENTITY),Fq(q,J,K,q,!0),!J.isValid)J.set(0,0,0,0);return J}function Fq(q,J,K,X,Z){let $;if(!Z){if(!q.visible||!q.measurable)return;q.updateLocalTransform();let V=q.localTransform;$=W.get(),$.appendFrom(V,K)}else $=W.get(),$=K.copyTo($);let Q=J,z=!!q.effects.length;if(z)J=A.get().clear();if(q.boundsArea)J.addRect(q.boundsArea,$);else{if(q.renderPipeId)J.matrix=$,J.addBounds(q.bounds);let V=q.children;for(let w=0;w<V.length;w++)Fq(V[w],J,$,X,!1)}if(z){for(let V=0;V<q.effects.length;V++)q.effects[V].addLocalBounds?.(J,X);Q.addBounds(J,N.IDENTITY),A.return(J)}W.return($)}function g(q,J){let K=q.children;for(let X=0;X<K.length;X++){let Z=K[X],$=Z.uid,Q=(Z._didViewChangeTick&65535)<<16|Z._didContainerChangeTick&65535,z=J.index;if(J.data[z]!==$||J.data[z+1]!==Q)J.data[J.index]=$,J.data[J.index+1]=Q,J.didChange=!0;if(J.index=z+2,Z.children.length)g(Z,J)}return J.didChange}var Tq=new N,Hq={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(q,J){let K=Math.sign(this.scale.x)||1;if(J!==0)this.scale.x=q/J*K;else this.scale.x=K},_setHeight(q,J){let K=Math.sign(this.scale.y)||1;if(J!==0)this.scale.y=q/J*K;else this.scale.y=K},getLocalBounds(){if(!this._localBoundsCacheData)this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new O};let q=this._localBoundsCacheData;if(q.index=1,q.didChange=!1,q.data[0]!==this._didViewChangeTick)q.didChange=!0,q.data[0]=this._didViewChangeTick;if(g(this,q),q.didChange)Vq(this,q.localBounds,Tq);return q.localBounds},getBounds(q,J){return l(this,q,J||new O)}};var Wq={_onRender:null,set onRender(q){let J=this.renderGroup||this.parentRenderGroup;if(!q){if(this._onRender)J?.removeOnRender(this);this._onRender=null;return}if(!this._onRender)J?.addOnRender(this);this._onRender=q},get onRender(){return this._onRender}};var Yq={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(q){if(this._zIndex===q)return;this._zIndex=q,this.depthOfChildModified()},depthOfChildModified(){if(this.parent)this.parent.sortableChildren=!0,this.parent.sortDirty=!0;if(this.parentRenderGroup)this.parentRenderGroup.structureDidChange=!0},sortChildren(){if(!this.sortDirty)return;this.sortDirty=!1,this.children.sort(bq)}};function bq(q,J){return q._zIndex-J._zIndex}var Aq={getGlobalPosition(q=new wq,J=!1){if(this.parent)this.parent.toGlobal(this._position,q,J);else q.x=this._position.x,q.y=this._position.y;return q},toGlobal(q,J,K=!1){let X=this.getGlobalTransform(W.get(),K);return J=X.apply(q,J),W.return(X),J},toLocal(q,J,K,X){if(J)q=J.toGlobal(q,K,X);let Z=this.getGlobalTransform(W.get(),X);return K=Z.applyInverse(q,K),W.return(Z),K}};function jq(q,J,K={}){for(let X in J)if(!K[X]&&J[X]!==void 0)q[X]=J[X]}var x=new H(null),R=new H(null),v=new H(null,1,1),M=new H(null),Oq=1,mq=2,h=4;class y extends Lq{constructor(q={}){super();this.uid=yq("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.parentRenderLayer=null,this.updateTick=-1,this.localTransform=new N,this.relativeGroupTransform=new N,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new H(this,0,0),this._scale=v,this._pivot=R,this._origin=M,this._skew=x,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],jq(this,q,{children:!0,parent:!0,effects:!0}),q.children?.forEach((J)=>this.addChild(J)),q.parent?.addChild(this)}static mixin(q){Y("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),S.mixin(y,q)}set _didChangeId(q){this._didViewChangeTick=q>>12&4095,this._didContainerChangeTick=q&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...q){if(!this.allowChildren)Y(E,"addChild: Only Containers will be allowed to add children in v8.0.0");if(q.length>1){for(let X=0;X<q.length;X++)this.addChild(q[X]);return q[0]}let J=q[0],K=this.renderGroup||this.parentRenderGroup;if(J.parent===this){if(this.children.splice(this.children.indexOf(J),1),this.children.push(J),K)K.structureDidChange=!0;return J}if(J.parent)J.parent.removeChild(J);if(this.children.push(J),this.sortableChildren)this.sortDirty=!0;if(J.parent=this,J.didChange=!0,J._updateFlags=15,K)K.addChild(J);if(this.emit("childAdded",J,this,this.children.length-1),J.emit("added",this),this._didViewChangeTick++,J._zIndex!==0)J.depthOfChildModified();return J}removeChild(...q){if(q.length>1){for(let X=0;X<q.length;X++)this.removeChild(q[X]);return q[0]}let J=q[0],K=this.children.indexOf(J);if(K>-1){if(this._didViewChangeTick++,this.children.splice(K,1),this.renderGroup)this.renderGroup.removeChild(J);else if(this.parentRenderGroup)this.parentRenderGroup.removeChild(J);if(J.parentRenderLayer)J.parentRenderLayer.detach(J);J.parent=null,this.emit("childRemoved",J,this,K),J.emit("removed",this)}return J}_onUpdate(q){if(q){if(q===this._skew)this._updateSkew()}if(this._didContainerChangeTick++,this.didChange)return;if(this.didChange=!0,this.parentRenderGroup)this.parentRenderGroup.onChildUpdate(this)}set isRenderGroup(q){if(!!this.renderGroup===q)return;if(q)this.enableRenderGroup();else this.disableRenderGroup()}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let q=this.parentRenderGroup;q?.removeChild(this),this.renderGroup=j.get(m,this),this.groupTransform=N.IDENTITY,q?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let q=this.parentRenderGroup;q?.removeChild(this),j.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,q?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){if(this._worldTransform||(this._worldTransform=new N),this.renderGroup)this._worldTransform.copyFrom(this.renderGroup.worldTransform);else if(this.parentRenderGroup)this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform);return this._worldTransform}get x(){return this._position.x}set x(q){this._position.x=q}get y(){return this._position.y}set y(q){this._position.y=q}get position(){return this._position}set position(q){this._position.copyFrom(q)}get rotation(){return this._rotation}set rotation(q){if(this._rotation!==q)this._rotation=q,this._onUpdate(this._skew)}get angle(){return this.rotation*Sq}set angle(q){this.rotation=q*_q}get pivot(){if(this._pivot===R)this._pivot=new H(this,0,0);return this._pivot}set pivot(q){if(this._pivot===R){if(this._pivot=new H(this,0,0),this._origin!==M)p("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")}typeof q==="number"?this._pivot.set(q):this._pivot.copyFrom(q)}get skew(){if(this._skew===x)this._skew=new H(this,0,0);return this._skew}set skew(q){if(this._skew===x)this._skew=new H(this,0,0);this._skew.copyFrom(q)}get scale(){if(this._scale===v)this._scale=new H(this,1,1);return this._scale}set scale(q){if(this._scale===v)this._scale=new H(this,0,0);if(typeof q==="string")q=parseFloat(q);typeof q==="number"?this._scale.set(q):this._scale.copyFrom(q)}get origin(){if(this._origin===M)this._origin=new H(this,0,0);return this._origin}set origin(q){if(this._origin===M){if(this._origin=new H(this,0,0),this._pivot!==R)p("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")}typeof q==="number"?this._origin.set(q):this._origin.copyFrom(q)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(q){let J=this.getLocalBounds().width;this._setWidth(q,J)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(q){let J=this.getLocalBounds().height;this._setHeight(q,J)}getSize(q){if(!q)q={};let J=this.getLocalBounds();return q.width=Math.abs(this.scale.x*J.width),q.height=Math.abs(this.scale.y*J.height),q}setSize(q,J){let K=this.getLocalBounds();if(typeof q==="object")J=q.height??q.width,q=q.width;else J??(J=q);q!==void 0&&this._setWidth(q,K.width),J!==void 0&&this._setHeight(J,K.height)}_updateSkew(){let q=this._rotation,J=this._skew;this._cx=Math.cos(q+J._y),this._sx=Math.sin(q+J._y),this._cy=-Math.sin(q-J._x),this._sy=Math.cos(q-J._x)}updateTransform(q){return this.position.set(typeof q.x==="number"?q.x:this.position.x,typeof q.y==="number"?q.y:this.position.y),this.scale.set(typeof q.scaleX==="number"?q.scaleX||1:this.scale.x,typeof q.scaleY==="number"?q.scaleY||1:this.scale.y),this.rotation=typeof q.rotation==="number"?q.rotation:this.rotation,this.skew.set(typeof q.skewX==="number"?q.skewX:this.skew.x,typeof q.skewY==="number"?q.skewY:this.skew.y),this.pivot.set(typeof q.pivotX==="number"?q.pivotX:this.pivot.x,typeof q.pivotY==="number"?q.pivotY:this.pivot.y),this.origin.set(typeof q.originX==="number"?q.originX:this.origin.x,typeof q.originY==="number"?q.originY:this.origin.y),this}setFromMatrix(q){q.decompose(this)}updateLocalTransform(){let q=this._didContainerChangeTick;if(this._didLocalTransformChangeId===q)return;this._didLocalTransformChangeId=q;let J=this.localTransform,K=this._scale,X=this._pivot,Z=this._origin,$=this._position,Q=K._x,z=K._y,V=X._x,w=X._y,F=-Z._x,P=-Z._y;J.a=this._cx*Q,J.b=this._sx*Q,J.c=this._cy*z,J.d=this._sy*z,J.tx=$._x-(V*J.a+w*J.c)+(F*J.a+P*J.c)-F,J.ty=$._y-(V*J.b+w*J.d)+(F*J.b+P*J.d)-P}set alpha(q){if(q===this.localAlpha)return;this.localAlpha=q,this._updateFlags|=Oq,this._onUpdate()}get alpha(){return this.localAlpha}set tint(q){let K=Eq.shared.setValue(q??16777215).toBgrNumber();if(K===this.localColor)return;this.localColor=K,this._updateFlags|=Oq,this._onUpdate()}get tint(){return _(this.localColor)}set blendMode(q){if(this.localBlendMode===q)return;if(this.parentRenderGroup)this.parentRenderGroup.structureDidChange=!0;this._updateFlags|=mq,this.localBlendMode=q,this._onUpdate()}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(q){let J=q?2:0;if((this.localDisplayStatus&2)===J)return;if(this.parentRenderGroup)this.parentRenderGroup.structureDidChange=!0;this._updateFlags|=h,this.localDisplayStatus^=2,this._onUpdate(),this.emit("visibleChanged",q)}get culled(){return!(this.localDisplayStatus&4)}set culled(q){let J=q?0:4;if((this.localDisplayStatus&4)===J)return;if(this.parentRenderGroup)this.parentRenderGroup.structureDidChange=!0;this._updateFlags|=h,this.localDisplayStatus^=4,this._onUpdate()}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(q){let J=q?1:0;if((this.localDisplayStatus&1)===J)return;if(this._updateFlags|=h,this.localDisplayStatus^=1,this.parentRenderGroup)this.parentRenderGroup.structureDidChange=!0;this._onUpdate()}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(q=!1){if(this.destroyed)return;this.destroyed=!0;let J;if(this.children.length)J=this.removeChildren(0,this.children.length);if(this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._origin=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof q==="boolean"?q:q?.children)&&J)for(let X=0;X<J.length;++X)J[X].destroy(q);this.renderGroup?.destroy(),this.renderGroup=null}}S.mixin(y,Zq,Nq,Aq,Wq,Hq,Qq,zq,Yq,Jq,Kq,o,$q);function Gq(q,J,K){let{width:X,height:Z}=K.orig,$=K.trim;if($){let{width:Q,height:z}=$;q.minX=$.x-J._x*X,q.maxX=q.minX+Q,q.minY=$.y-J._y*Z,q.maxY=q.minY+z}else q.minX=-J._x*X,q.maxX=q.minX+X,q.minY=-J._y*Z,q.maxY=q.minY+Z}class c extends y{constructor(q){super(q);this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this._bounds=new O(0,1,0,0),this._boundsDirty=!0,this.autoGarbageCollect=q.autoGarbageCollect??!0}get bounds(){if(!this._boundsDirty)return this._bounds;return this.updateBounds(),this._boundsDirty=!1,this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(q){this._roundPixels=q?1:0}containsPoint(q){let J=this.bounds,{x:K,y:X}=q;return K>=J.minX&&K<=J.maxX&&X>=J.minY&&X<=J.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let q=this.renderGroup||this.parentRenderGroup;if(q)q.onChildViewUpdate(this)}unload(){this.emit("unload",this);for(let q in this._gpuData)this._gpuData[q]?.destroy();this._gpuData=Object.create(null),this.onViewUpdate()}destroy(q){this.unload(),super.destroy(q),this._bounds=null}collectRenderablesSimple(q,J,K){let{renderPipes:X}=J;X.blendMode.pushBlendMode(this,this.groupBlendMode,q);let $=X[this.renderPipeId];if($?.addRenderable)$.addRenderable(this,q);this.didViewUpdate=!1;let Q=this.children,z=Q.length;for(let V=0;V<z;V++)Q[V].collectRenderables(q,J,K);X.blendMode.popBlendMode(q)}}class u extends c{constructor(q=L.EMPTY){if(q instanceof L)q={texture:q};let{texture:J=L.EMPTY,anchor:K,roundPixels:X,width:Z,height:$,...Q}=q;super({label:"Sprite",...Q});if(this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new H({_onUpdate:()=>{this.onViewUpdate()}}),K)this.anchor=K;else if(J.defaultAnchor)this.anchor=J.defaultAnchor;if(this.texture=J,this.allowChildren=!1,this.roundPixels=X??!1,Z!==void 0)this.width=Z;if($!==void 0)this.height=$}static from(q,J=!1){if(q instanceof L)return new u(q);return new u(L.from(q,J))}set texture(q){q||(q=L.EMPTY);let J=this._texture;if(J===q)return;if(J&&J.dynamic)J.off("update",this.onViewUpdate,this);if(q.dynamic)q.on("update",this.onViewUpdate,this);if(this._texture=q,this._width)this._setWidth(this._width,this._texture.orig.width);if(this._height)this._setHeight(this._height,this._texture.orig.height);this.onViewUpdate()}get texture(){return this._texture}get visualBounds(){return Gq(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return Y("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let q=this._anchor,J=this._texture,K=this._bounds,{width:X,height:Z}=J.orig;K.minX=-q._x*X,K.maxX=K.minX+X,K.minY=-q._y*Z,K.maxY=K.minY+Z}destroy(q=!1){if(super.destroy(q),typeof q==="boolean"?q:q?.texture){let K=typeof q==="boolean"?q:q?.textureSource;this._texture.destroy(K)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null}get anchor(){return this._anchor}set anchor(q){typeof q==="number"?this._anchor.set(q):this._anchor.copyFrom(q)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(q){this._setWidth(q,this._texture.orig.width),this._width=q}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(q){this._setHeight(q,this._texture.orig.height),this._height=q}getSize(q){return q||(q={}),q.width=Math.abs(this.scale.x)*this._texture.orig.width,q.height=Math.abs(this.scale.y)*this._texture.orig.height,q}setSize(q,J){if(typeof q==="object")J=q.height??q.width,q=q.width;else J??(J=q);q!==void 0&&this._setWidth(q,this._texture.orig.width),J!==void 0&&this._setHeight(J,this._texture.orig.height)}}class Uq extends k{constructor(q){if(!q.resource)q.resource=Dq.get().createCanvas();if(!q.width){if(q.width=q.resource.width,!q.autoDensity)q.width/=q.resolution}if(!q.height){if(q.height=q.resource.height,!q.autoDensity)q.height/=q.resolution}super(q);this.uploadMethodId="image",this.autoDensity=q.autoDensity,this.resizeCanvas(),this.transparent=!!q.transparent}resizeCanvas(){if(this.autoDensity&&"style"in this.resource)this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`;if(this.resource.width!==this.pixelWidth||this.resource.height!==this.pixelHeight)this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight}resize(q=this.width,J=this.height,K=this._resolution){let X=super.resize(q,J,K);if(X)this.resizeCanvas();return X}static test(q){return globalThis.HTMLCanvasElement&&q instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&q instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}}Uq.extension=U.TextureSource;var gq={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10};var d=class q{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1)}set blend(J){if(!!(this.data&1)!==J)this.data^=1}get offsets(){return!!(this.data&2)}set offsets(J){if(!!(this.data&2)!==J)this.data^=2}set cullMode(J){if(J==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=J==="front"}get cullMode(){if(!this.culling)return"none";return this.clockwiseFrontFace?"front":"back"}get culling(){return!!(this.data&4)}set culling(J){if(!!(this.data&4)!==J)this.data^=4}get depthTest(){return!!(this.data&8)}set depthTest(J){if(!!(this.data&8)!==J)this.data^=8}get depthMask(){return!!(this.data&32)}set depthMask(J){if(!!(this.data&32)!==J)this.data^=32}get clockwiseFrontFace(){return!!(this.data&16)}set clockwiseFrontFace(J){if(!!(this.data&16)!==J)this.data^=16}get blendMode(){return this._blendMode}set blendMode(J){this.blend=J!=="none",this._blendMode=J,this._blendModeId=gq[J]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(J){this.offsets=!!J,this._polygonOffset=J}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let J=new q;return J.depthTest=!1,J.blend=!0,J}};d.default2d=d.for2d();var Bq=d;var C=((q)=>{return q[q.INTERACTION=50]="INTERACTION",q[q.HIGH=25]="HIGH",q[q.NORMAL=0]="NORMAL",q[q.LOW=-25]="LOW",q[q.UTILITY=-50]="UTILITY",q})(C||{});class G{constructor(q,J=null,K=0,X=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=q,this._context=J,this.priority=K,this._once=X}match(q,J=null){return this._fn===q&&this._context===J}emit(q){if(this._fn)if(this._context)this._fn.call(this._context,q);else this._fn(q);let J=this.next;if(this._once)this.destroy(!0);if(this._destroyed)this.next=null;return J}connect(q){if(this.previous=q,q.next)q.next.previous=this;this.next=q.next,q.next=this}destroy(q=!1){if(this._destroyed=!0,this._fn=null,this._context=null,this.previous)this.previous.next=this.next;if(this.next)this.next.previous=this.previous;let J=this.next;return this.next=q?null:J,this.previous=null,J}}var Iq=class q{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new G(null,null,1/0),this.deltaMS=1/q.targetFPMS,this.elapsedMS=1/q.targetFPMS,this._tick=(J)=>{if(this._requestId=null,this.started){if(this.update(J),this.started&&this._requestId===null&&this._head.next)this._requestId=requestAnimationFrame(this._tick)}}}_requestIfNeeded(){if(this._requestId===null&&this._head.next)this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick)}_cancelIfNeeded(){if(this._requestId!==null)cancelAnimationFrame(this._requestId),this._requestId=null}_startIfPossible(){if(this.started)this._requestIfNeeded();else if(this.autoStart)this.start()}add(J,K,X=C.NORMAL){return this._addListener(new G(J,K,X))}addOnce(J,K,X=C.NORMAL){return this._addListener(new G(J,K,X,!0))}_addListener(J){let K=this._head.next,X=this._head;if(!K)J.connect(X);else{while(K){if(J.priority>K.priority){J.connect(X);break}X=K,K=K.next}if(!J.previous)J.connect(X)}return this._startIfPossible(),this}remove(J,K){let X=this._head.next;while(X)if(X.match(J,K))X=X.destroy();else X=X.next;if(!this._head.next)this._cancelIfNeeded();return this}get count(){if(!this._head)return 0;let J=0,K=this._head;while(K=K.next)J++;return J}start(){if(!this.started)this.started=!0,this._requestIfNeeded()}stop(){if(this.started)this.started=!1,this._cancelIfNeeded()}destroy(){if(!this._protected){this.stop();let J=this._head.next;while(J)J=J.destroy(!0);this._head.destroy(),this._head=null}}update(J=performance.now()){let K;if(J>this.lastTime){if(K=this.elapsedMS=J-this.lastTime,K>this._maxElapsedMS)K=this._maxElapsedMS;if(K*=this.speed,this._minElapsedMS){let $=J-this._lastFrame|0;if($<this._minElapsedMS)return;this._lastFrame=J-$%this._minElapsedMS}this.deltaMS=K,this.deltaTime=this.deltaMS*q.targetFPMS;let X=this._head,Z=X.next;while(Z)Z=Z.emit(this);if(!X.next)this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=J}get FPS(){return 1000/this.elapsedMS}get minFPS(){return 1000/this._maxElapsedMS}set minFPS(J){let K=Math.min(Math.max(0,J)/1000,q.targetFPMS);if(this._maxElapsedMS=1/K,this._minElapsedMS&&J>this.maxFPS)this.maxFPS=J}get maxFPS(){if(this._minElapsedMS)return Math.round(1000/this._minElapsedMS);return 0}set maxFPS(J){if(J===0)this._minElapsedMS=0;else{if(J<this.minFPS)this.minFPS=J;this._minElapsedMS=1/(J/1000)}}static get shared(){if(!q._shared){let J=q._shared=new q;J.autoStart=!0,J._protected=!0}return q._shared}static get system(){if(!q._system){let J=q._system=new q;J.autoStart=!0,J._protected=!0}return q._system}};Iq.targetFPMS=0.06;var mK=Iq;var Cq=class q extends Mq{constructor(J){J={...q.defaultOptions,...J};super(J);if(this.enabled=!0,this._state=Bq.for2d(),this.blendMode=J.blendMode,this.padding=J.padding,typeof J.antialias==="boolean")this.antialias=J.antialias?"on":"off";else this.antialias=J.antialias;if(this.resolution=J.resolution,this.blendRequired=J.blendRequired,this.clipToViewport=J.clipToViewport,this.addResource("uTexture",0,1),J.blendRequired)this.addResource("uBackTexture",0,3)}apply(J,K,X,Z){J.applyFilter(this,K,X,Z)}get blendMode(){return this._state.blendMode}set blendMode(J){this._state.blendMode=J}static from(J){let{gpu:K,gl:X,...Z}=J,$,Q;if(K)$=Rq.from(K);if(X)Q=kq.from(X);return new q({gpuProgram:$,glProgram:Q,...Z})}};Cq.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};var cK=Cq;
2
+ export{Xq as M,D as N,W as O,A as P,l as Q,f as R,_ as S,Vq as T,b as U,m as V,Oq as W,mq as X,h as Y,y as Z,C as _,mK as $,c as aa,u as ba,Uq as ca,Bq as da,cK as ea};
@@ -0,0 +1 @@
1
+ import{fa as a}from"./chunk-n2mqbpq5.js";import"./chunk-jyb1nvnr.js";import"./chunk-0we37sfj.js";import"./chunk-aeeawe99.js";import"./chunk-598ehnf5.js";import"./chunk-3wjb2nvs.js";import"./chunk-8wvq4dfz.js";import"./chunk-sqnzgty6.js";import"./chunk-cs4e65d1.js";export{a as BitmapFont};
@@ -1,4 +1,4 @@
1
- import{M as r,P as uJ,Q as PJ,S as QQ,T as P,U as _J,V as AJ,W as MJ,X as jJ,Y as U,_ as RJ,aa as pJ,ba as m,ca as GJ,da as dJ}from"./chunk-kt3t4zv0.js";import{Ea as D,Ha as BJ}from"./chunk-sngkm5ds.js";import{Ja as Y,Ka as _,La as OJ,Ma as B,Pa as YQ,Qa as O,Ra as p,Sa as a,Ua as F,Va as JJ,Wa as s,Xa as L,Ya as A,Za as v,cb as nJ,db as w,gb as mJ,hb as H,ib as C,lb as lJ,nb as cJ,ob as qQ,pb as k,qb as n}from"./chunk-1sw3e1ar.js";var HJ=[];_.handleByNamedList(Y.Environment,HJ);async function TJ(J){if(J)return;for(let Q=0;Q<HJ.length;Q++){let Z=HJ[Q];if(Z.value.test()){await Z.value.load();return}}}var y;function xJ(){if(typeof y==="boolean")return y;try{y=Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch(J){y=!1}return y}var I=((J)=>{return J[J.NONE=0]="NONE",J[J.COLOR=16384]="COLOR",J[J.STENCIL=1024]="STENCIL",J[J.DEPTH=256]="DEPTH",J[J.COLOR_DEPTH=16640]="COLOR_DEPTH",J[J.COLOR_STENCIL=17408]="COLOR_STENCIL",J[J.DEPTH_STENCIL=1280]="DEPTH_STENCIL",J[J.ALL=17664]="ALL",J})(I||{});class f{constructor(J){this.items=[],this._name=J}emit(J,Q,Z,$,X,K,q,W){let{name:z,items:V}=this;for(let N=0,b=V.length;N<b;N++)V[N][z](J,Q,Z,$,X,K,q,W);return this}add(J){if(J[this._name])this.remove(J),this.items.push(J);return this}remove(J){let Q=this.items.indexOf(J);if(Q!==-1)this.items.splice(Q,1);return this}contains(J){return this.items.indexOf(J)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}}var _Q=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],hJ=class J extends OJ{constructor(Q){super();this.tick=0,this.uid=p("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=Q.type,this.name=Q.name,this.config=Q;let Z=[..._Q,...this.config.runners??[]];this._addRunners(...Z),this._unsafeEvalCheck()}async init(Q={}){let Z=Q.skipExtensionImports===!0?!0:Q.manageImports===!1;await TJ(Z),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let $ in this._systemsHash)Q={...this._systemsHash[$].constructor.defaultOptions,...Q};Q={...J.defaultOptions,...Q},this._roundPixels=Q.roundPixels?1:0;for(let $=0;$<this.runners.init.items.length;$++)await this.runners.init.items[$].init(Q);this._initOptions=Q}render(Q,Z){this.tick++;let $=Q;if($ instanceof U){if($={container:$},Z)F(a,"passing a second argument is deprecated, please use render options instead"),$.target=Z.renderTexture}if($.target||($.target=this.view.renderTarget),$.target===this.view.renderTarget)this._lastObjectRendered=$.container,$.clearColor??($.clearColor=this.background.colorRgba),$.clear??($.clear=this.background.clearBeforeRender);if($.clearColor){let X=Array.isArray($.clearColor)&&$.clearColor.length===4;$.clearColor=X?$.clearColor:B.shared.setValue($.clearColor).toArray()}if(!$.transform)$.container.updateLocalTransform(),$.transform=$.container.localTransform;if(!$.container.visible)return;$.container.enableRenderGroup(),this.runners.prerender.emit($),this.runners.renderStart.emit($),this.runners.render.emit($),this.runners.renderEnd.emit($),this.runners.postrender.emit($)}resize(Q,Z,$){let X=this.view.resolution;if(this.view.resize(Q,Z,$),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),$!==void 0&&$!==X)this.runners.resolutionChange.emit($)}clear(Q={}){let Z=this;Q.target||(Q.target=Z.renderTarget.renderTarget),Q.clearColor||(Q.clearColor=this.background.colorRgba),Q.clear??(Q.clear=I.ALL);let{clear:$,clearColor:X,target:K,mipLevel:q,layer:W}=Q;B.shared.setValue(X??this.background.colorRgba),Z.renderTarget.clear(K,$,B.shared.toArray(),q??0,W??0)}get resolution(){return this.view.resolution}set resolution(Q){this.view.resolution=Q,this.runners.resolutionChange.emit(Q)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...Q){Q.forEach((Z)=>{this.runners[Z]=new f(Z)})}_addSystems(Q){let Z;for(Z in Q){let $=Q[Z];this._addSystem($.value,$.name)}}_addSystem(Q,Z){let $=new Q(this);if(this[Z])throw Error(`Whoops! The name "${Z}" is already in use`);this[Z]=$,this._systemsHash[Z]=$;for(let X in this.runners)this.runners[X].add($);return this}_addPipes(Q,Z){let $=Z.reduce((X,K)=>{return X[K.name]=K.value,X},{});Q.forEach((X)=>{let{value:K,name:q}=X,W=$[q];this.renderPipes[q]=new K(this,W?new W:null),this.runners.destroy.add(this.renderPipes[q])})}destroy(Q=!1){if(this.runners.destroy.items.reverse(),this.runners.destroy.emit(Q),Q===!0||typeof Q==="object"&&Q.releaseGlobalResources)s.release();Object.values(this.runners).forEach((Z)=>{Z.destroy()}),this._systemsHash=null,this.renderPipes=null}generateTexture(Q){return this.textureGenerator.generateTexture(Q)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!xJ())throw Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};hJ.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};var pQ=hJ;class i{constructor(J){this._renderer=J}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(J,Q){this._renderer.renderPipes.batch.break(Q),Q.add(J)}execute(J){if(!J.isRenderable)return;J.render(this._renderer)}destroy(){this._renderer=null}}i.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"customRender"};class T{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){this.reset()}}function x(J,Q){let Z=J.instructionSet,$=Z.instructions;for(let X=0;X<Z.instructionSize;X++){let K=$[X];Q[K.renderPipeId].execute(K)}}class o{constructor(J){this._renderer=J}addRenderGroup(J,Q){if(J.isCachedAsTexture)this._addRenderableCacheAsTexture(J,Q);else this._addRenderableDirect(J,Q)}execute(J){if(!J.isRenderable)return;if(J.isCachedAsTexture)this._executeCacheAsTexture(J);else this._executeDirect(J)}destroy(){this._renderer=null}_addRenderableDirect(J,Q){if(this._renderer.renderPipes.batch.break(Q),J._batchableRenderGroup)L.return(J._batchableRenderGroup),J._batchableRenderGroup=null;Q.add(J)}_addRenderableCacheAsTexture(J,Q){let Z=J._batchableRenderGroup??(J._batchableRenderGroup=L.get(T));Z.renderable=J.root,Z.transform=J.root.relativeGroupTransform,Z.texture=J.texture,Z.bounds=J._textureBounds,Q.add(J),this._renderer.renderPipes.blendMode.pushBlendMode(J,J.root.groupBlendMode,Q),this._renderer.renderPipes.batch.addToBatch(Z,Q),this._renderer.renderPipes.blendMode.popBlendMode(Q)}_executeCacheAsTexture(J){if(J.textureNeedsUpdate){J.textureNeedsUpdate=!1;let Q=new O().translate(-J._textureBounds.x,-J._textureBounds.y);this._renderer.renderTarget.push(J.texture,!0,null,J.texture.frame),this._renderer.globalUniforms.push({worldTransformMatrix:Q,worldColor:4294967295,offset:{x:0,y:0}}),x(J,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}J._batchableRenderGroup._batcher.updateElement(J._batchableRenderGroup),J._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(J){this._renderer.globalUniforms.push({worldTransformMatrix:J.inverseParentTextureTransform,worldColor:J.worldColorAlpha}),x(J,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}}o.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"renderGroup"};class t{constructor(J){this._renderer=J}addRenderable(J,Q){let Z=this._getGpuSprite(J);if(J.didViewUpdate)this._updateBatchableSprite(J,Z);this._renderer.renderPipes.batch.addToBatch(Z,Q)}updateRenderable(J){let Q=this._getGpuSprite(J);if(J.didViewUpdate)this._updateBatchableSprite(J,Q);Q._batcher.updateElement(Q)}validateRenderable(J){let Q=this._getGpuSprite(J);return!Q._batcher.checkAndUpdateTexture(Q,J._texture)}_updateBatchableSprite(J,Q){Q.bounds=J.visualBounds,Q.texture=J._texture}_getGpuSprite(J){return J._gpuData[this._renderer.uid]||this._initGPUSprite(J)}_initGPUSprite(J){let Q=new T;return Q.renderable=J,Q.transform=J.groupTransform,Q.texture=J._texture,Q.bounds=J.visualBounds,Q.roundPixels=this._renderer._roundPixels|J._roundPixels,J._gpuData[this._renderer.uid]=Q,Q}destroy(){this._renderer=null}}t.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"sprite"};var UJ=class J{constructor(Q,Z){this.state=GJ.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=Q,this._adaptor=Z,this._adaptor.init?.(this)}static getBatcher(Q){return new this._availableBatchers[Q]}buildStart(Q){let Z=this._batchersByInstructionSet[Q.uid];if(!Z)Z=this._batchersByInstructionSet[Q.uid]=Object.create(null),Z.default||(Z.default=new BJ({maxTextures:this.renderer.limits.maxBatchableTextures}));this._activeBatches=Z,this._activeBatch=this._activeBatches.default;for(let $ in this._activeBatches)this._activeBatches[$].begin()}addToBatch(Q,Z){if(this._activeBatch.name!==Q.batcherName){this._activeBatch.break(Z);let $=this._activeBatches[Q.batcherName];if(!$)$=this._activeBatches[Q.batcherName]=J.getBatcher(Q.batcherName),$.begin();this._activeBatch=$}this._activeBatch.add(Q)}break(Q){this._activeBatch.break(Q)}buildEnd(Q){this._activeBatch.break(Q);let Z=this._activeBatches;for(let $ in Z){let X=Z[$],K=X.geometry;K.indexBuffer.setDataWithSize(X.indexBuffer,X.indexSize,!0),K.buffers[0].setDataWithSize(X.attributeBuffer.float32View,X.attributeSize,!1)}}upload(Q){let Z=this._batchersByInstructionSet[Q.uid];for(let $ in Z){let X=Z[$],K=X.geometry;if(X.dirty)X.dirty=!1,K.buffers[0].update(X.attributeSize*4)}}execute(Q){if(Q.action==="startBatch"){let Z=Q.batcher,$=Z.geometry,X=Z.shader;this._adaptor.start(this,$,X)}this._adaptor.execute(this,Q)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let Q in this._activeBatches)this._activeBatches[Q].destroy();this._activeBatches=null}};UJ.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"batch"};UJ._availableBatchers=Object.create(null);var IJ=UJ;_.handleByMap(Y.Batcher,IJ._availableBatchers);_.add(BJ);var gJ=`in vec2 vMaskCoord;
1
+ import{$ as RJ,N as r,Q as uJ,R as PJ,T as QQ,U as P,V as _J,W as AJ,X as MJ,Y as jJ,Z as U,ba as pJ,ca as m,da as GJ,ea as dJ}from"./chunk-w1tshfsy.js";import{Fa as D,Ia as BJ}from"./chunk-8wvq4dfz.js";import{Ka as Y,La as _,Ma as OJ,Na as B,Qa as YQ,Ra as O,Sa as p,Ta as a,Va as F,Wa as JJ,Xa as s,Ya as L,Za as A,_a as v,db as nJ,eb as w,hb as mJ,ib as H,jb as C,mb as lJ,ob as cJ,pb as qQ,qb as k,rb as n}from"./chunk-sqnzgty6.js";var HJ=[];_.handleByNamedList(Y.Environment,HJ);async function TJ(J){if(J)return;for(let Q=0;Q<HJ.length;Q++){let Z=HJ[Q];if(Z.value.test()){await Z.value.load();return}}}var y;function xJ(){if(typeof y==="boolean")return y;try{y=Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch(J){y=!1}return y}var I=((J)=>{return J[J.NONE=0]="NONE",J[J.COLOR=16384]="COLOR",J[J.STENCIL=1024]="STENCIL",J[J.DEPTH=256]="DEPTH",J[J.COLOR_DEPTH=16640]="COLOR_DEPTH",J[J.COLOR_STENCIL=17408]="COLOR_STENCIL",J[J.DEPTH_STENCIL=1280]="DEPTH_STENCIL",J[J.ALL=17664]="ALL",J})(I||{});class f{constructor(J){this.items=[],this._name=J}emit(J,Q,Z,$,X,K,q,W){let{name:z,items:V}=this;for(let N=0,b=V.length;N<b;N++)V[N][z](J,Q,Z,$,X,K,q,W);return this}add(J){if(J[this._name])this.remove(J),this.items.push(J);return this}remove(J){let Q=this.items.indexOf(J);if(Q!==-1)this.items.splice(Q,1);return this}contains(J){return this.items.indexOf(J)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}}var _Q=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],hJ=class J extends OJ{constructor(Q){super();this.tick=0,this.uid=p("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=Q.type,this.name=Q.name,this.config=Q;let Z=[..._Q,...this.config.runners??[]];this._addRunners(...Z),this._unsafeEvalCheck()}async init(Q={}){let Z=Q.skipExtensionImports===!0?!0:Q.manageImports===!1;await TJ(Z),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let $ in this._systemsHash)Q={...this._systemsHash[$].constructor.defaultOptions,...Q};Q={...J.defaultOptions,...Q},this._roundPixels=Q.roundPixels?1:0;for(let $=0;$<this.runners.init.items.length;$++)await this.runners.init.items[$].init(Q);this._initOptions=Q}render(Q,Z){this.tick++;let $=Q;if($ instanceof U){if($={container:$},Z)F(a,"passing a second argument is deprecated, please use render options instead"),$.target=Z.renderTexture}if($.target||($.target=this.view.renderTarget),$.target===this.view.renderTarget)this._lastObjectRendered=$.container,$.clearColor??($.clearColor=this.background.colorRgba),$.clear??($.clear=this.background.clearBeforeRender);if($.clearColor){let X=Array.isArray($.clearColor)&&$.clearColor.length===4;$.clearColor=X?$.clearColor:B.shared.setValue($.clearColor).toArray()}if(!$.transform)$.container.updateLocalTransform(),$.transform=$.container.localTransform;if(!$.container.visible)return;$.container.enableRenderGroup(),this.runners.prerender.emit($),this.runners.renderStart.emit($),this.runners.render.emit($),this.runners.renderEnd.emit($),this.runners.postrender.emit($)}resize(Q,Z,$){let X=this.view.resolution;if(this.view.resize(Q,Z,$),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),$!==void 0&&$!==X)this.runners.resolutionChange.emit($)}clear(Q={}){let Z=this;Q.target||(Q.target=Z.renderTarget.renderTarget),Q.clearColor||(Q.clearColor=this.background.colorRgba),Q.clear??(Q.clear=I.ALL);let{clear:$,clearColor:X,target:K,mipLevel:q,layer:W}=Q;B.shared.setValue(X??this.background.colorRgba),Z.renderTarget.clear(K,$,B.shared.toArray(),q??0,W??0)}get resolution(){return this.view.resolution}set resolution(Q){this.view.resolution=Q,this.runners.resolutionChange.emit(Q)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...Q){Q.forEach((Z)=>{this.runners[Z]=new f(Z)})}_addSystems(Q){let Z;for(Z in Q){let $=Q[Z];this._addSystem($.value,$.name)}}_addSystem(Q,Z){let $=new Q(this);if(this[Z])throw Error(`Whoops! The name "${Z}" is already in use`);this[Z]=$,this._systemsHash[Z]=$;for(let X in this.runners)this.runners[X].add($);return this}_addPipes(Q,Z){let $=Z.reduce((X,K)=>{return X[K.name]=K.value,X},{});Q.forEach((X)=>{let{value:K,name:q}=X,W=$[q];this.renderPipes[q]=new K(this,W?new W:null),this.runners.destroy.add(this.renderPipes[q])})}destroy(Q=!1){if(this.runners.destroy.items.reverse(),this.runners.destroy.emit(Q),Q===!0||typeof Q==="object"&&Q.releaseGlobalResources)s.release();Object.values(this.runners).forEach((Z)=>{Z.destroy()}),this._systemsHash=null,this.renderPipes=null,this.removeAllListeners()}generateTexture(Q){return this.textureGenerator.generateTexture(Q)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!xJ())throw Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};hJ.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};var pQ=hJ;class i{constructor(J){this._renderer=J}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(J,Q){this._renderer.renderPipes.batch.break(Q),Q.add(J)}execute(J){if(!J.isRenderable)return;J.render(this._renderer)}destroy(){this._renderer=null}}i.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"customRender"};class T{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){this.reset()}}function x(J,Q){let Z=J.instructionSet,$=Z.instructions;for(let X=0;X<Z.instructionSize;X++){let K=$[X];Q[K.renderPipeId].execute(K)}}class o{constructor(J){this._renderer=J}addRenderGroup(J,Q){if(J.isCachedAsTexture)this._addRenderableCacheAsTexture(J,Q);else this._addRenderableDirect(J,Q)}execute(J){if(!J.isRenderable)return;if(J.isCachedAsTexture)this._executeCacheAsTexture(J);else this._executeDirect(J)}destroy(){this._renderer=null}_addRenderableDirect(J,Q){if(this._renderer.renderPipes.batch.break(Q),J._batchableRenderGroup)L.return(J._batchableRenderGroup),J._batchableRenderGroup=null;Q.add(J)}_addRenderableCacheAsTexture(J,Q){let Z=J._batchableRenderGroup??(J._batchableRenderGroup=L.get(T));Z.renderable=J.root,Z.transform=J.root.relativeGroupTransform,Z.texture=J.texture,Z.bounds=J._textureBounds,Q.add(J),this._renderer.renderPipes.blendMode.pushBlendMode(J,J.root.groupBlendMode,Q),this._renderer.renderPipes.batch.addToBatch(Z,Q),this._renderer.renderPipes.blendMode.popBlendMode(Q)}_executeCacheAsTexture(J){if(J.textureNeedsUpdate){J.textureNeedsUpdate=!1;let Q=new O().translate(-J._textureBounds.x,-J._textureBounds.y);this._renderer.renderTarget.push(J.texture,!0,null,J.texture.frame),this._renderer.globalUniforms.push({worldTransformMatrix:Q,worldColor:4294967295,offset:{x:0,y:0}}),x(J,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}J._batchableRenderGroup._batcher.updateElement(J._batchableRenderGroup),J._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(J){this._renderer.globalUniforms.push({worldTransformMatrix:J.inverseParentTextureTransform,worldColor:J.worldColorAlpha}),x(J,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}}o.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"renderGroup"};class t{constructor(J){this._renderer=J}addRenderable(J,Q){let Z=this._getGpuSprite(J);if(J.didViewUpdate)this._updateBatchableSprite(J,Z);this._renderer.renderPipes.batch.addToBatch(Z,Q)}updateRenderable(J){let Q=this._getGpuSprite(J);if(J.didViewUpdate)this._updateBatchableSprite(J,Q);Q._batcher.updateElement(Q)}validateRenderable(J){let Q=this._getGpuSprite(J);return!Q._batcher.checkAndUpdateTexture(Q,J._texture)}_updateBatchableSprite(J,Q){Q.bounds=J.visualBounds,Q.texture=J._texture}_getGpuSprite(J){return J._gpuData[this._renderer.uid]||this._initGPUSprite(J)}_initGPUSprite(J){let Q=new T;return Q.renderable=J,Q.transform=J.groupTransform,Q.texture=J._texture,Q.bounds=J.visualBounds,Q.roundPixels=this._renderer._roundPixels|J._roundPixels,J._gpuData[this._renderer.uid]=Q,Q}destroy(){this._renderer=null}}t.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"sprite"};var UJ=class J{constructor(Q,Z){this.state=GJ.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=Q,this._adaptor=Z,this._adaptor.init?.(this)}static getBatcher(Q){return new this._availableBatchers[Q]}buildStart(Q){let Z=this._batchersByInstructionSet[Q.uid];if(!Z)Z=this._batchersByInstructionSet[Q.uid]=Object.create(null),Z.default||(Z.default=new BJ({maxTextures:this.renderer.limits.maxBatchableTextures}));this._activeBatches=Z,this._activeBatch=this._activeBatches.default;for(let $ in this._activeBatches)this._activeBatches[$].begin()}addToBatch(Q,Z){if(this._activeBatch.name!==Q.batcherName){this._activeBatch.break(Z);let $=this._activeBatches[Q.batcherName];if(!$)$=this._activeBatches[Q.batcherName]=J.getBatcher(Q.batcherName),$.begin();this._activeBatch=$}this._activeBatch.add(Q)}break(Q){this._activeBatch.break(Q)}buildEnd(Q){this._activeBatch.break(Q);let Z=this._activeBatches;for(let $ in Z){let X=Z[$],K=X.geometry;K.indexBuffer.setDataWithSize(X.indexBuffer,X.indexSize,!0),K.buffers[0].setDataWithSize(X.attributeBuffer.float32View,X.attributeSize,!1)}}upload(Q){let Z=this._batchersByInstructionSet[Q.uid];for(let $ in Z){let X=Z[$],K=X.geometry;if(X.dirty)X.dirty=!1,K.buffers[0].update(X.attributeSize*4)}}execute(Q){if(Q.action==="startBatch"){let Z=Q.batcher,$=Z.geometry,X=Z.shader;this._adaptor.start(this,$,X)}this._adaptor.execute(this,Q)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let Q in this._activeBatches)this._activeBatches[Q].destroy();this._activeBatches=null}};UJ.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"batch"};UJ._availableBatchers=Object.create(null);var IJ=UJ;_.handleByMap(Y.Batcher,IJ._availableBatchers);_.add(BJ);var gJ=`in vec2 vMaskCoord;
2
2
  in vec2 vTextureCoord;
3
3
 
4
4
  uniform sampler2D uTexture;
@@ -167,7 +167,7 @@ fn mainFragment(
167
167
 
168
168
  return source * a;
169
169
  }
170
- `;class wJ extends dJ{constructor(J){let{sprite:Q,...Z}=J,$=new mJ(Q.texture),X=new n({uFilterMatrix:{value:new O,type:"mat3x3<f32>"},uMaskClamp:{value:$.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:J.inverse?1:0,type:"f32"}}),K=cJ.from({vertex:{source:DJ,entryPoint:"mainVertex"},fragment:{source:DJ,entryPoint:"mainFragment"}}),q=lJ.from({vertex:SJ,fragment:gJ,name:"mask-filter"});super({...Z,gpuProgram:K,glProgram:q,clipToViewport:!1,resources:{filterUniforms:X,uMaskTexture:Q.texture.source}});this.sprite=Q,this._textureMatrix=$}set inverse(J){this.resources.filterUniforms.uniforms.uInverse=J?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}apply(J,Q,Z,$){this._textureMatrix.texture=this.sprite.texture,J.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,J.applyFilter(this,Q,Z,$)}}var PQ=new v;class aJ extends r{constructor(){super();this.filters=[new wJ({sprite:new pJ(H.EMPTY),inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(J){this.filters[0].sprite=J}get inverse(){return this.filters[0].inverse}set inverse(J){this.filters[0].inverse=J}}class e{constructor(J){this._activeMaskStage=[],this._renderer=J}push(J,Q,Z){let $=this._renderer;if($.renderPipes.batch.break(Z),Z.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:J,inverse:Q._maskOptions.inverse,canBundle:!1,maskedContainer:Q}),J.inverse=Q._maskOptions.inverse,J.renderMaskToTexture){let X=J.mask;X.includeInBuild=!0,X.collectRenderables(Z,$,null),X.includeInBuild=!1}$.renderPipes.batch.break(Z),Z.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:J,maskedContainer:Q,inverse:Q._maskOptions.inverse,canBundle:!1})}pop(J,Q,Z){this._renderer.renderPipes.batch.break(Z),Z.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:J,inverse:Q._maskOptions.inverse,canBundle:!1})}execute(J){let Q=this._renderer,Z=J.mask.renderMaskToTexture;if(J.action==="pushMaskBegin"){let $=L.get(aJ);if($.inverse=J.inverse,Z){J.mask.mask.measurable=!0;let X=uJ(J.mask.mask,!0,PQ);J.mask.mask.measurable=!1,X.ceil();let K=Q.renderTarget.renderTarget.colorTexture.source,q=P.getOptimalTexture(X.width,X.height,K._resolution,K.antialias);Q.renderTarget.push(q,!0),Q.globalUniforms.push({offset:X,worldColor:4294967295});let W=$.sprite;W.texture=q,W.worldTransform.tx=X.minX,W.worldTransform.ty=X.minY,this._activeMaskStage.push({filterEffect:$,maskedContainer:J.maskedContainer,filterTexture:q})}else $.sprite=J.mask.mask,this._activeMaskStage.push({filterEffect:$,maskedContainer:J.maskedContainer})}else if(J.action==="pushMaskEnd"){let $=this._activeMaskStage[this._activeMaskStage.length-1];if(Z){if(Q.type===k.WEBGL)Q.renderTarget.finishRenderPass();Q.renderTarget.pop(),Q.globalUniforms.pop()}Q.filter.push({renderPipeId:"filter",action:"pushFilter",container:$.maskedContainer,filterEffect:$.filterEffect,canBundle:!1})}else if(J.action==="popMaskEnd"){Q.filter.pop();let $=this._activeMaskStage.pop();if(Z)P.returnTexture($.filterTexture);L.return($.filterEffect)}}destroy(){this._renderer=null,this._activeMaskStage=null}}e.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"alphaMask"};var h={};_.handle(Y.BlendMode,(J)=>{if(!J.name)throw Error("BlendMode extension must have a name property");h[J.name]=J.ref},(J)=>{delete h[J.name]});class QJ{constructor(J){this._blendModeStack=[],this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=J,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}pushBlendMode(J,Q,Z){this._blendModeStack.push(Q),this.setBlendMode(J,Q,Z)}popBlendMode(J){this._blendModeStack.pop();let Q=this._blendModeStack[this._activeBlendMode.length-1]??"normal";this.setBlendMode(null,Q,J)}setBlendMode(J,Q,Z){let $=J instanceof _J;if(this._activeBlendMode===Q){if(this._isAdvanced&&J&&!$)this._renderableList?.push(J);return}if(this._isAdvanced)this._endAdvancedBlendMode(Z);if(this._activeBlendMode=Q,!J)return;if(this._isAdvanced=!!h[Q],this._isAdvanced)this._beginAdvancedBlendMode(J,Z)}_beginAdvancedBlendMode(J,Q){this._renderer.renderPipes.batch.break(Q);let Z=this._activeBlendMode;if(!h[Z]){JJ(`Unable to assign BlendMode: '${Z}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let $=this._ensureFilterEffect(Z),X=J instanceof _J,K={renderPipeId:"filter",action:"pushFilter",filterEffect:$,renderables:X?null:[J],container:X?J.root:null,canBundle:!1};this._renderableList=K.renderables,Q.add(K)}_ensureFilterEffect(J){let Q=this._filterHash[J];if(!Q)Q=this._filterHash[J]=new r,Q.filters=[new h[J]];return Q}_endAdvancedBlendMode(J){this._isAdvanced=!1,this._renderableList=null,this._renderer.renderPipes.batch.break(J),J.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(J){if(!this._isAdvanced)return;this._endAdvancedBlendMode(J)}destroy(){this._renderer=null,this._renderableList=null;for(let J in this._filterHash)this._filterHash[J].destroy();this._filterHash=null}}QJ.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"blendMode"};function G(J,Q){Q||(Q=0);for(let Z=Q;Z<J.length;Z++)if(J[Z])J[Z]=null;else break}var AQ=new U,sJ=jJ|AJ|MJ;function LJ(J,Q=!1){MQ(J);let Z=J.childrenToUpdate,$=J.updateTick++;for(let X in Z){let K=Number(X),q=Z[X],W=q.list,z=q.index;for(let V=0;V<z;V++){let N=W[V];if(N.parentRenderGroup===J&&N.relativeRenderGroupDepth===K)oJ(N,$,0)}G(W,z),q.index=0}if(Q)for(let X=0;X<J.renderGroupChildren.length;X++)LJ(J.renderGroupChildren[X],Q)}function MQ(J){let Q=J.root,Z;if(J.renderGroupParent){let $=J.renderGroupParent;J.worldTransform.appendFrom(Q.relativeGroupTransform,$.worldTransform),J.worldColor=PJ(Q.groupColor,$.worldColor),Z=Q.groupAlpha*$.worldAlpha}else J.worldTransform.copyFrom(Q.localTransform),J.worldColor=Q.localColor,Z=Q.localAlpha;Z=Z<0?0:Z>1?1:Z,J.worldAlpha=Z,J.worldColorAlpha=J.worldColor+((Z*255|0)<<24)}function oJ(J,Q,Z){if(Q===J.updateTick)return;J.updateTick=Q,J.didChange=!1;let $=J.localTransform;J.updateLocalTransform();let X=J.parent;if(X&&!X.renderGroup){if(Z|=J._updateFlags,J.relativeGroupTransform.appendFrom($,X.relativeGroupTransform),Z&sJ)iJ(J,X,Z)}else if(Z=J._updateFlags,J.relativeGroupTransform.copyFrom($),Z&sJ)iJ(J,AQ,Z);if(!J.renderGroup){let K=J.children,q=K.length;for(let V=0;V<q;V++)oJ(K[V],Q,Z);let W=J.parentRenderGroup,z=J;if(z.renderPipeId&&!W.structureDidChange)W.updateRenderable(z)}}function iJ(J,Q,Z){if(Z&AJ){J.groupColor=PJ(J.localColor,Q.groupColor);let $=J.localAlpha*Q.groupAlpha;$=$<0?0:$>1?1:$,J.groupAlpha=$,J.groupColorAlpha=J.groupColor+(($*255|0)<<24)}if(Z&MJ)J.groupBlendMode=J.localBlendMode==="inherit"?Q.groupBlendMode:J.localBlendMode;if(Z&jJ)J.globalDisplayStatus=J.localDisplayStatus&Q.globalDisplayStatus;J._updateFlags=0}function tJ(J,Q){let{list:Z}=J.childrenRenderablesToUpdate,$=!1;for(let X=0;X<J.childrenRenderablesToUpdate.index;X++){let K=Z[X];if($=Q[K.renderPipeId].validateRenderable(K),$)break}return J.structureDidChange=$,$}var jQ=new O;class ZJ{constructor(J){this._renderer=J}render({container:J,transform:Q}){let Z=J.parent,$=J.renderGroup.renderGroupParent;J.parent=null,J.renderGroup.renderGroupParent=null;let X=this._renderer,K=jQ;if(Q)K.copyFrom(J.renderGroup.localTransform),J.renderGroup.localTransform.copyFrom(Q);let q=X.renderPipes;if(this._updateCachedRenderGroups(J.renderGroup,null),this._updateRenderGroups(J.renderGroup),X.globalUniforms.start({worldTransformMatrix:Q?J.renderGroup.localTransform:J.renderGroup.worldTransform,worldColor:J.renderGroup.worldColorAlpha}),x(J.renderGroup,q),q.uniformBatch)q.uniformBatch.renderEnd();if(Q)J.renderGroup.localTransform.copyFrom(K);J.parent=Z,J.renderGroup.renderGroupParent=$}destroy(){this._renderer=null}_updateCachedRenderGroups(J,Q){if(J._parentCacheAsTextureRenderGroup=Q,J.isCachedAsTexture){if(!J.textureNeedsUpdate)return;Q=J}for(let Z=J.renderGroupChildren.length-1;Z>=0;Z--)this._updateCachedRenderGroups(J.renderGroupChildren[Z],Q);if(J.invalidateMatrices(),J.isCachedAsTexture){if(J.textureNeedsUpdate){let Z=J.root.getLocalBounds(),$=this._renderer,X=J.textureOptions.resolution||$.view.resolution,K=J.textureOptions.antialias??$.view.antialias,q=J.textureOptions.scaleMode??"linear",W=J.texture;if(Z.ceil(),J.texture)P.returnTexture(J.texture,!0);let z=P.getOptimalTexture(Z.width,Z.height,X,K);if(z._source.style=new nJ({scaleMode:q}),J.texture=z,J._textureBounds||(J._textureBounds=new v),J._textureBounds.copyFrom(Z),W!==J.texture){if(J.renderGroupParent)J.renderGroupParent.structureDidChange=!0}}}else if(J.texture)P.returnTexture(J.texture,!0),J.texture=null}_updateRenderGroups(J){let Q=this._renderer,Z=Q.renderPipes;if(J.runOnRender(Q),J.instructionSet.renderPipes=Z,!J.structureDidChange)tJ(J,Z);else G(J.childrenRenderablesToUpdate.list,0);if(LJ(J),J.structureDidChange)J.structureDidChange=!1,this._buildInstructions(J,Q);else this._updateRenderables(J);if(J.childrenRenderablesToUpdate.index=0,Q.renderPipes.batch.upload(J.instructionSet),J.isCachedAsTexture&&!J.textureNeedsUpdate)return;for(let $=0;$<J.renderGroupChildren.length;$++)this._updateRenderGroups(J.renderGroupChildren[$])}_updateRenderables(J){let{list:Q,index:Z}=J.childrenRenderablesToUpdate;for(let $=0;$<Z;$++){let X=Q[$];if(X.didViewUpdate)J.updateRenderable(X)}G(Q,Z)}_buildInstructions(J,Q){let{root:Z,instructionSet:$}=J;$.reset();let X=Q.renderPipes?Q:Q.batch.renderer,K=X.renderPipes;if(K.batch.buildStart($),K.blendMode.buildStart(),K.colorMask.buildStart(),Z.sortableChildren)Z.sortChildren();Z.collectRenderablesWithEffects($,X,null),K.batch.buildEnd($),K.blendMode.buildEnd($)}}ZJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"renderGroup"};var E="8.16.0";class rJ{static init(){globalThis.__PIXI_APP_INIT__?.(this,E)}static destroy(){}}rJ.extension=Y.Application;class $J{constructor(J){this._renderer=J}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,E)}destroy(){this._renderer=null}}$J.extension={type:[Y.WebGLSystem,Y.WebGPUSystem],name:"initHook",priority:-10};class XJ{constructor(J){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=J}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(J,Q,Z){this._renderer.renderPipes.batch.break(Z);let X=this._colorStack;X[this._colorStackIndex]=X[this._colorStackIndex-1]&J.mask;let K=this._colorStack[this._colorStackIndex];if(K!==this._currentColor)this._currentColor=K,Z.add({renderPipeId:"colorMask",colorMask:K,canBundle:!1});this._colorStackIndex++}pop(J,Q,Z){this._renderer.renderPipes.batch.break(Z);let X=this._colorStack;this._colorStackIndex--;let K=X[this._colorStackIndex-1];if(K!==this._currentColor)this._currentColor=K,Z.add({renderPipeId:"colorMask",colorMask:K,canBundle:!1})}execute(J){this._renderer.colorMask.setMask(J.colorMask)}destroy(){this._renderer=null,this._colorStack=null}}XJ.extension={type:[Y.WebGLPipes,Y.WebGPUPipes],name:"colorMask"};class KJ{constructor(J){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=J}push(J,Q,Z){var $;let X=J,K=this._renderer;K.renderPipes.batch.break(Z),K.renderPipes.blendMode.setBlendMode(X.mask,"none",Z),Z.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:J,inverse:Q._maskOptions.inverse,canBundle:!1});let q=X.mask;if(q.includeInBuild=!0,!this._maskHash.has(X))this._maskHash.set(X,{instructionsStart:0,instructionsLength:0});let W=this._maskHash.get(X);W.instructionsStart=Z.instructionSize,q.collectRenderables(Z,K,null),q.includeInBuild=!1,K.renderPipes.batch.break(Z),Z.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:J,inverse:Q._maskOptions.inverse,canBundle:!1});let z=Z.instructionSize-W.instructionsStart-1;W.instructionsLength=z;let V=K.renderTarget.renderTarget.uid;($=this._maskStackHash)[V]??($[V]=0)}pop(J,Q,Z){let $=J,X=this._renderer;X.renderPipes.batch.break(Z),X.renderPipes.blendMode.setBlendMode($.mask,"none",Z),Z.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:Q._maskOptions.inverse,canBundle:!1});let K=this._maskHash.get(J);for(let q=0;q<K.instructionsLength;q++)Z.instructions[Z.instructionSize++]=Z.instructions[K.instructionsStart++];Z.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(J){var Q;let Z=this._renderer,$=Z,X=Z.renderTarget.renderTarget.uid,K=(Q=this._maskStackHash)[X]??(Q[X]=0);if(J.action==="pushMaskBegin")$.renderTarget.ensureDepthStencil(),$.stencil.setStencilMode(D.RENDERING_MASK_ADD,K),K++,$.colorMask.setMask(0);else if(J.action==="pushMaskEnd"){if(J.inverse)$.stencil.setStencilMode(D.INVERSE_MASK_ACTIVE,K);else $.stencil.setStencilMode(D.MASK_ACTIVE,K);$.colorMask.setMask(15)}else if(J.action==="popMaskBegin"){if($.colorMask.setMask(0),K!==0)$.stencil.setStencilMode(D.RENDERING_MASK_REMOVE,K);else $.renderTarget.clear(null,I.STENCIL),$.stencil.setStencilMode(D.DISABLED,K);K--}else if(J.action==="popMaskEnd"){if(J.inverse)$.stencil.setStencilMode(D.INVERSE_MASK_ACTIVE,K);else $.stencil.setStencilMode(D.MASK_ACTIVE,K);$.colorMask.setMask(15)}this._maskStackHash[X]=K}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}}KJ.extension={type:[Y.WebGLPipes,Y.WebGPUPipes],name:"stencilMask"};var vJ=class J{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new B(0),this.color=this._backgroundColor,this.alpha=1}init(Q){Q={...J.defaultOptions,...Q},this.clearBeforeRender=Q.clearBeforeRender,this.color=Q.background||Q.backgroundColor||this._backgroundColor,this.alpha=Q.backgroundAlpha,this._backgroundColor.setAlpha(Q.backgroundAlpha)}get color(){return this._backgroundColor}set color(Q){if(B.shared.setValue(Q).alpha<1&&this._backgroundColor.alpha===1)JJ("Cannot set a transparent background on an opaque canvas. To enable transparency, set backgroundAlpha < 1 when initializing your Application.");this._backgroundColor.setValue(Q)}get alpha(){return this._backgroundColor.alpha}set alpha(Q){this._backgroundColor.setAlpha(Q)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};vJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"background",priority:0};vJ.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};var eJ=vJ;var kJ={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},EJ=class J{constructor(Q){this._renderer=Q}_normalizeOptions(Q,Z={}){if(Q instanceof U||Q instanceof H)return{target:Q,...Z};return{...Z,...Q}}async image(Q){let Z=C.get().createImage();return Z.src=await this.base64(Q),Z}async base64(Q){Q=this._normalizeOptions(Q,J.defaultImageOptions);let{format:Z,quality:$}=Q,X=this.canvas(Q);if(X.toBlob!==void 0)return new Promise((K,q)=>{X.toBlob((W)=>{if(!W){q(Error("ICanvas.toBlob failed!"));return}let z=new FileReader;z.onload=()=>K(z.result),z.onerror=q,z.readAsDataURL(W)},kJ[Z],$)});if(X.toDataURL!==void 0)return X.toDataURL(kJ[Z],$);if(X.convertToBlob!==void 0){let K=await X.convertToBlob({type:kJ[Z],quality:$});return new Promise((q,W)=>{let z=new FileReader;z.onload=()=>q(z.result),z.onerror=W,z.readAsDataURL(K)})}throw Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(Q){Q=this._normalizeOptions(Q);let Z=Q.target,$=this._renderer;if(Z instanceof H)return $.texture.generateCanvas(Z);let X=$.textureGenerator.generateTexture(Q),K=$.texture.generateCanvas(X);return X.destroy(!0),K}pixels(Q){Q=this._normalizeOptions(Q);let Z=Q.target,$=this._renderer,X=Z instanceof H?Z:$.textureGenerator.generateTexture(Q),K=$.texture.getPixels(X);if(Z instanceof U)X.destroy(!0);return K}texture(Q){if(Q=this._normalizeOptions(Q),Q.target instanceof H)return Q.target;return this._renderer.textureGenerator.generateTexture(Q)}download(Q){Q=this._normalizeOptions(Q);let Z=this.canvas(Q),$=document.createElement("a");$.download=Q.filename??"image.png",$.href=Z.toDataURL("image/png"),document.body.appendChild($),$.click(),document.body.removeChild($)}log(Q){let Z=Q.width??200;Q=this._normalizeOptions(Q);let $=this.canvas(Q),X=$.toDataURL();console.log(`[Pixi Texture] ${$.width}px ${$.height}px`);let K=["font-size: 1px;",`padding: ${Z}px 300px;`,`background: url(${X}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",K)}destroy(){this._renderer=null}};EJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"extract"};EJ.defaultImageOptions={format:"png",quality:1};var JQ=EJ;class YJ extends H{static create(J){let{dynamic:Q,...Z}=J;return new YJ({source:new w(Z),dynamic:Q??!1})}resize(J,Q,Z){return this.source.resize(J,Q,Z),this}}var LQ=new A,vQ=new v,kQ=[0,0,0,0];class qJ{constructor(J){this._renderer=J}generateTexture(J){if(J instanceof U)J={target:J,frame:void 0,textureSourceOptions:{},resolution:void 0};let Q=J.resolution||this._renderer.resolution,Z=J.antialias||this._renderer.view.antialias,$=J.target,X=J.clearColor;if(X)X=Array.isArray(X)&&X.length===4?X:B.shared.setValue(X).toArray();else X=kQ;let K=J.frame?.copyTo(LQ)||QQ($,vQ).rectangle;K.width=Math.max(K.width,1/Q)|0,K.height=Math.max(K.height,1/Q)|0;let q=YJ.create({...J.textureSourceOptions,width:K.width,height:K.height,resolution:Q,antialias:Z}),W=O.shared.translate(-K.x,-K.y);return this._renderer.render({container:$,transform:W,target:q,clearColor:X}),q.source.updateMipmaps(),q}destroy(){this._renderer=null}}qJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"textureGenerator"};function ZQ(J){let Q=!1;for(let $ in J)if(J[$]==null){Q=!0;break}if(!Q)return J;let Z=Object.create(null);for(let $ in J){let X=J[$];if(X)Z[$]=X}return Z}function $Q(J){let Q=0;for(let Z=0;Z<J.length;Z++)if(J[Z]==null)Q++;else J[Z-Q]=J[Z];return J.length-=Q,J}var CJ=class J{constructor(Q){this._managedResources=[],this._managedResourceHashes=[],this._managedCollections=[],this._ready=!1,this._renderer=Q}init(Q){Q={...J.defaultOptions,...Q},this.maxUnusedTime=Q.gcMaxUnusedTime,this._frequency=Q.gcFrequency,this.enabled=Q.gcActive,this.now=performance.now()}get enabled(){return!!this._handler}set enabled(Q){if(this.enabled===Q)return;if(Q)this._handler=this._renderer.scheduler.repeat(()=>{this._ready=!0},this._frequency,!1),this._collectionsHandler=this._renderer.scheduler.repeat(()=>{for(let Z of this._managedCollections){let{context:$,collection:X,type:K}=Z;if(K==="hash")$[X]=ZQ($[X]);else $[X]=$Q($[X])}},this._frequency);else this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._collectionsHandler),this._handler=0,this._collectionsHandler=0}prerender({container:Q}){this.now=performance.now(),Q.renderGroup.gcTick=this._renderer.tick++,this._updateInstructionGCTick(Q.renderGroup,Q.renderGroup.gcTick)}postrender(){if(!this._ready||!this.enabled)return;this.run(),this._ready=!1}_updateInstructionGCTick(Q,Z){Q.instructionSet.gcTick=Z,Q.gcTick=Z;for(let $ of Q.renderGroupChildren)this._updateInstructionGCTick($,Z)}addCollection(Q,Z,$){this._managedCollections.push({context:Q,collection:Z,type:$})}addResource(Q,Z){if(Q._gcLastUsed!==-1){Q._gcLastUsed=this.now,Q._onTouch?.(this.now);return}let $=this._managedResources.length;Q._gcData={index:$,type:Z},Q._gcLastUsed=this.now,Q._onTouch?.(this.now),Q.once("unload",this.removeResource,this),this._managedResources.push(Q)}removeResource(Q){let Z=Q._gcData;if(!Z)return;let $=Z.index,X=this._managedResources.length-1;if($!==X){let K=this._managedResources[X];this._managedResources[$]=K,K._gcData.index=$}this._managedResources.length--,Q._gcData=null,Q._gcLastUsed=-1}addResourceHash(Q,Z,$,X=0){this._managedResourceHashes.push({context:Q,hash:Z,type:$,priority:X}),this._managedResourceHashes.sort((K,q)=>K.priority-q.priority)}run(){let Q=performance.now(),Z=this._managedResourceHashes;for(let X of Z)this.runOnHash(X,Q);let $=0;for(let X=0;X<this._managedResources.length;X++){let K=this._managedResources[X];$=this.runOnResource(K,Q,$)}this._managedResources.length=$}updateRenderableGCTick(Q,Z){let $=Q.renderGroup??Q.parentRenderGroup,X=$?.instructionSet?.gcTick??-1;if(($?.gcTick??0)===X)Q._gcLastUsed=Z,Q._onTouch?.(Z)}runOnResource(Q,Z,$){let X=Q._gcData;if(X.type==="renderable")this.updateRenderableGCTick(Q,Z);if(Z-Q._gcLastUsed<this.maxUnusedTime||!Q.autoGarbageCollect)this._managedResources[$]=Q,X.index=$,$++;else Q.unload(),Q._gcData=null,Q._gcLastUsed=-1,Q.off("unload",this.removeResource,this);return $}_createHashClone(Q,Z){let $=Object.create(null);for(let X in Q){if(X===Z)break;if(Q[X]!==null)$[X]=Q[X]}return $}runOnHash(Q,Z){let{context:$,hash:X,type:K}=Q,q=$[X],W=null,z=0;for(let V in q){let N=q[V];if(N===null){if(z++,z===1e4&&!W)W=this._createHashClone(q,V);continue}if(N._gcLastUsed===-1){if(N._gcLastUsed=Z,N._onTouch?.(Z),W)W[V]=N;continue}if(K==="renderable")this.updateRenderableGCTick(N,Z);if(!(Z-N._gcLastUsed<this.maxUnusedTime)&&N.autoGarbageCollect){if(!W)if(z+1!==1e4)q[V]=null,z++;else W=this._createHashClone(q,V);if(K==="renderable"){let M=N,j=M.renderGroup??M.parentRenderGroup;if(j)j.structureDidChange=!0}N.unload(),N._gcData=null,N._gcLastUsed=-1}else if(W)W[V]=N}if(W)$[X]=W}destroy(){this.enabled=!1,this._managedResources.forEach((Q)=>{Q.off("unload",this.removeResource,this)}),this._managedResources.length=0,this._managedResourceHashes.length=0,this._managedCollections.length=0,this._renderer=null}};CJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"gc",priority:0};CJ.defaultOptions={gcActive:!0,gcMaxUnusedTime:60000,gcFrequency:30000};var XQ=CJ;function KQ(J,Q,Z){let $=(J>>24&255)/255;Q[Z++]=(J&255)/255*$,Q[Z++]=(J>>8&255)/255*$,Q[Z++]=(J>>16&255)/255*$,Q[Z++]=$}class WJ{constructor(J){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=J}reset(){this._stackIndex=0;for(let J=0;J<this._activeUniforms.length;J++)this._uniformsPool.push(this._activeUniforms[J]);for(let J=0;J<this._activeBindGroups.length;J++)this._bindGroupPool.push(this._activeBindGroups[J]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(J){this.reset(),this.push(J)}bind({size:J,projectionMatrix:Q,worldTransformMatrix:Z,worldColor:$,offset:X}){let K=this._renderer.renderTarget.renderTarget,q=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:K,worldTransformMatrix:new O,worldColor:4294967295,offset:new YQ},W={projectionMatrix:Q||this._renderer.renderTarget.projectionMatrix,resolution:J||K.size,worldTransformMatrix:Z||q.worldTransformMatrix,worldColor:$||q.worldColor,offset:X||q.offset,bindGroup:null},z=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(z);let V=z.uniforms;V.uProjectionMatrix=W.projectionMatrix,V.uResolution=W.resolution,V.uWorldTransformMatrix.copyFrom(W.worldTransformMatrix),V.uWorldTransformMatrix.tx-=W.offset.x,V.uWorldTransformMatrix.ty-=W.offset.y,KQ(W.worldColor,V.uWorldColorAlpha,0),z.update();let N;if(this._renderer.renderPipes.uniformBatch)N=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(z,!1);else N=this._bindGroupPool.pop()||new qQ,this._activeBindGroups.push(N),N.setResource(z,0);W.bindGroup=N,this._currentGlobalUniformData=W}push(J){this.bind(J),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){if(this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===k.WEBGL)this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new n({uProjectionMatrix:{value:new O,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new O,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null,this._globalUniformDataStack.length=0,this._uniformsPool.length=0,this._activeUniforms.length=0,this._bindGroupPool.length=0,this._activeBindGroups.length=0,this._currentGlobalUniformData=null}}WJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"globalUniforms"};var EQ=1;class zJ{constructor(){this._tasks=[],this._offset=0}init(){RJ.system.add(this._update,this)}repeat(J,Q,Z=!0){let $=EQ++,X=0;if(Z)this._offset+=1000,X=this._offset;return this._tasks.push({func:J,duration:Q,start:performance.now(),offset:X,last:performance.now(),repeat:!0,id:$}),$}cancel(J){for(let Q=0;Q<this._tasks.length;Q++)if(this._tasks[Q].id===J){this._tasks.splice(Q,1);return}}_update(){let J=performance.now();for(let Q=0;Q<this._tasks.length;Q++){let Z=this._tasks[Q];if(J-Z.offset-Z.last>=Z.duration){let $=J-Z.start;Z.func($),Z.last=J}}}destroy(){RJ.system.remove(this._update,this),this._tasks.length=0}}zJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"scheduler",priority:0};var WQ=!1;function zQ(J){if(WQ)return;if(C.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let Q=[`%c %c %c %c %c PixiJS %c v${E} (${J}) http://www.pixijs.com/
170
+ `;class wJ extends dJ{constructor(J){let{sprite:Q,...Z}=J,$=new mJ(Q.texture),X=new n({uFilterMatrix:{value:new O,type:"mat3x3<f32>"},uMaskClamp:{value:$.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:J.inverse?1:0,type:"f32"}}),K=cJ.from({vertex:{source:DJ,entryPoint:"mainVertex"},fragment:{source:DJ,entryPoint:"mainFragment"}}),q=lJ.from({vertex:SJ,fragment:gJ,name:"mask-filter"});super({...Z,gpuProgram:K,glProgram:q,clipToViewport:!1,resources:{filterUniforms:X,uMaskTexture:Q.texture.source}});this.sprite=Q,this._textureMatrix=$}set inverse(J){this.resources.filterUniforms.uniforms.uInverse=J?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}apply(J,Q,Z,$){this._textureMatrix.texture=this.sprite.texture,J.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,J.applyFilter(this,Q,Z,$)}}var PQ=new v;class aJ extends r{constructor(){super();this.filters=[new wJ({sprite:new pJ(H.EMPTY),inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(J){this.filters[0].sprite=J}get inverse(){return this.filters[0].inverse}set inverse(J){this.filters[0].inverse=J}}class e{constructor(J){this._activeMaskStage=[],this._renderer=J}push(J,Q,Z){let $=this._renderer;if($.renderPipes.batch.break(Z),Z.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:J,inverse:Q._maskOptions.inverse,canBundle:!1,maskedContainer:Q}),J.inverse=Q._maskOptions.inverse,J.renderMaskToTexture){let X=J.mask;X.includeInBuild=!0,X.collectRenderables(Z,$,null),X.includeInBuild=!1}$.renderPipes.batch.break(Z),Z.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:J,maskedContainer:Q,inverse:Q._maskOptions.inverse,canBundle:!1})}pop(J,Q,Z){this._renderer.renderPipes.batch.break(Z),Z.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:J,inverse:Q._maskOptions.inverse,canBundle:!1})}execute(J){let Q=this._renderer,Z=J.mask.renderMaskToTexture;if(J.action==="pushMaskBegin"){let $=L.get(aJ);if($.inverse=J.inverse,Z){J.mask.mask.measurable=!0;let X=uJ(J.mask.mask,!0,PQ);J.mask.mask.measurable=!1,X.ceil();let K=Q.renderTarget.renderTarget.colorTexture.source,q=P.getOptimalTexture(X.width,X.height,K._resolution,K.antialias);Q.renderTarget.push(q,!0),Q.globalUniforms.push({offset:X,worldColor:4294967295});let W=$.sprite;W.texture=q,W.worldTransform.tx=X.minX,W.worldTransform.ty=X.minY,this._activeMaskStage.push({filterEffect:$,maskedContainer:J.maskedContainer,filterTexture:q})}else $.sprite=J.mask.mask,this._activeMaskStage.push({filterEffect:$,maskedContainer:J.maskedContainer})}else if(J.action==="pushMaskEnd"){let $=this._activeMaskStage[this._activeMaskStage.length-1];if(Z){if(Q.type===k.WEBGL)Q.renderTarget.finishRenderPass();Q.renderTarget.pop(),Q.globalUniforms.pop()}Q.filter.push({renderPipeId:"filter",action:"pushFilter",container:$.maskedContainer,filterEffect:$.filterEffect,canBundle:!1})}else if(J.action==="popMaskEnd"){Q.filter.pop();let $=this._activeMaskStage.pop();if(Z)P.returnTexture($.filterTexture);L.return($.filterEffect)}}destroy(){this._renderer=null,this._activeMaskStage=null}}e.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"alphaMask"};var h={};_.handle(Y.BlendMode,(J)=>{if(!J.name)throw Error("BlendMode extension must have a name property");h[J.name]=J.ref},(J)=>{delete h[J.name]});class QJ{constructor(J){this._blendModeStack=[],this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=J,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}pushBlendMode(J,Q,Z){this._blendModeStack.push(Q),this.setBlendMode(J,Q,Z)}popBlendMode(J){this._blendModeStack.pop();let Q=this._blendModeStack[this._activeBlendMode.length-1]??"normal";this.setBlendMode(null,Q,J)}setBlendMode(J,Q,Z){let $=J instanceof _J;if(this._activeBlendMode===Q){if(this._isAdvanced&&J&&!$)this._renderableList?.push(J);return}if(this._isAdvanced)this._endAdvancedBlendMode(Z);if(this._activeBlendMode=Q,!J)return;if(this._isAdvanced=!!h[Q],this._isAdvanced)this._beginAdvancedBlendMode(J,Z)}_beginAdvancedBlendMode(J,Q){this._renderer.renderPipes.batch.break(Q);let Z=this._activeBlendMode;if(!h[Z]){JJ(`Unable to assign BlendMode: '${Z}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let $=this._ensureFilterEffect(Z),X=J instanceof _J,K={renderPipeId:"filter",action:"pushFilter",filterEffect:$,renderables:X?null:[J],container:X?J.root:null,canBundle:!1};this._renderableList=K.renderables,Q.add(K)}_ensureFilterEffect(J){let Q=this._filterHash[J];if(!Q)Q=this._filterHash[J]=new r,Q.filters=[new h[J]];return Q}_endAdvancedBlendMode(J){this._isAdvanced=!1,this._renderableList=null,this._renderer.renderPipes.batch.break(J),J.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(J){if(!this._isAdvanced)return;this._endAdvancedBlendMode(J)}destroy(){this._renderer=null,this._renderableList=null;for(let J in this._filterHash)this._filterHash[J].destroy();this._filterHash=null}}QJ.extension={type:[Y.WebGLPipes,Y.WebGPUPipes,Y.CanvasPipes],name:"blendMode"};function G(J,Q){Q||(Q=0);for(let Z=Q;Z<J.length;Z++)if(J[Z])J[Z]=null;else break}var AQ=new U,sJ=jJ|AJ|MJ;function LJ(J,Q=!1){MQ(J);let Z=J.childrenToUpdate,$=J.updateTick++;for(let X in Z){let K=Number(X),q=Z[X],W=q.list,z=q.index;for(let V=0;V<z;V++){let N=W[V];if(N.parentRenderGroup===J&&N.relativeRenderGroupDepth===K)oJ(N,$,0)}G(W,z),q.index=0}if(Q)for(let X=0;X<J.renderGroupChildren.length;X++)LJ(J.renderGroupChildren[X],Q)}function MQ(J){let Q=J.root,Z;if(J.renderGroupParent){let $=J.renderGroupParent;J.worldTransform.appendFrom(Q.relativeGroupTransform,$.worldTransform),J.worldColor=PJ(Q.groupColor,$.worldColor),Z=Q.groupAlpha*$.worldAlpha}else J.worldTransform.copyFrom(Q.localTransform),J.worldColor=Q.localColor,Z=Q.localAlpha;Z=Z<0?0:Z>1?1:Z,J.worldAlpha=Z,J.worldColorAlpha=J.worldColor+((Z*255|0)<<24)}function oJ(J,Q,Z){if(Q===J.updateTick)return;J.updateTick=Q,J.didChange=!1;let $=J.localTransform;J.updateLocalTransform();let X=J.parent;if(X&&!X.renderGroup){if(Z|=J._updateFlags,J.relativeGroupTransform.appendFrom($,X.relativeGroupTransform),Z&sJ)iJ(J,X,Z)}else if(Z=J._updateFlags,J.relativeGroupTransform.copyFrom($),Z&sJ)iJ(J,AQ,Z);if(!J.renderGroup){let K=J.children,q=K.length;for(let V=0;V<q;V++)oJ(K[V],Q,Z);let W=J.parentRenderGroup,z=J;if(z.renderPipeId&&!W.structureDidChange)W.updateRenderable(z)}}function iJ(J,Q,Z){if(Z&AJ){J.groupColor=PJ(J.localColor,Q.groupColor);let $=J.localAlpha*Q.groupAlpha;$=$<0?0:$>1?1:$,J.groupAlpha=$,J.groupColorAlpha=J.groupColor+(($*255|0)<<24)}if(Z&MJ)J.groupBlendMode=J.localBlendMode==="inherit"?Q.groupBlendMode:J.localBlendMode;if(Z&jJ)J.globalDisplayStatus=J.localDisplayStatus&Q.globalDisplayStatus;J._updateFlags=0}function tJ(J,Q){let{list:Z}=J.childrenRenderablesToUpdate,$=!1;for(let X=0;X<J.childrenRenderablesToUpdate.index;X++){let K=Z[X];if($=Q[K.renderPipeId].validateRenderable(K),$)break}return J.structureDidChange=$,$}var jQ=new O;class ZJ{constructor(J){this._renderer=J}render({container:J,transform:Q}){let Z=J.parent,$=J.renderGroup.renderGroupParent;J.parent=null,J.renderGroup.renderGroupParent=null;let X=this._renderer,K=jQ;if(Q)K.copyFrom(J.renderGroup.localTransform),J.renderGroup.localTransform.copyFrom(Q);let q=X.renderPipes;if(this._updateCachedRenderGroups(J.renderGroup,null),this._updateRenderGroups(J.renderGroup),X.globalUniforms.start({worldTransformMatrix:Q?J.renderGroup.localTransform:J.renderGroup.worldTransform,worldColor:J.renderGroup.worldColorAlpha}),x(J.renderGroup,q),q.uniformBatch)q.uniformBatch.renderEnd();if(Q)J.renderGroup.localTransform.copyFrom(K);J.parent=Z,J.renderGroup.renderGroupParent=$}destroy(){this._renderer=null}_updateCachedRenderGroups(J,Q){if(J._parentCacheAsTextureRenderGroup=Q,J.isCachedAsTexture){if(!J.textureNeedsUpdate)return;Q=J}for(let Z=J.renderGroupChildren.length-1;Z>=0;Z--)this._updateCachedRenderGroups(J.renderGroupChildren[Z],Q);if(J.invalidateMatrices(),J.isCachedAsTexture){if(J.textureNeedsUpdate){let Z=J.root.getLocalBounds(),$=this._renderer,X=J.textureOptions.resolution||$.view.resolution,K=J.textureOptions.antialias??$.view.antialias,q=J.textureOptions.scaleMode??"linear",W=J.texture;if(Z.ceil(),J.texture)P.returnTexture(J.texture,!0);let z=P.getOptimalTexture(Z.width,Z.height,X,K);if(z._source.style=new nJ({scaleMode:q}),J.texture=z,J._textureBounds||(J._textureBounds=new v),J._textureBounds.copyFrom(Z),W!==J.texture){if(J.renderGroupParent)J.renderGroupParent.structureDidChange=!0}}}else if(J.texture)P.returnTexture(J.texture,!0),J.texture=null}_updateRenderGroups(J){let Q=this._renderer,Z=Q.renderPipes;if(J.runOnRender(Q),J.instructionSet.renderPipes=Z,!J.structureDidChange)tJ(J,Z);else G(J.childrenRenderablesToUpdate.list,0);if(LJ(J),J.structureDidChange)J.structureDidChange=!1,this._buildInstructions(J,Q);else this._updateRenderables(J);if(J.childrenRenderablesToUpdate.index=0,Q.renderPipes.batch.upload(J.instructionSet),J.isCachedAsTexture&&!J.textureNeedsUpdate)return;for(let $=0;$<J.renderGroupChildren.length;$++)this._updateRenderGroups(J.renderGroupChildren[$])}_updateRenderables(J){let{list:Q,index:Z}=J.childrenRenderablesToUpdate;for(let $=0;$<Z;$++){let X=Q[$];if(X.didViewUpdate)J.updateRenderable(X)}G(Q,Z)}_buildInstructions(J,Q){let{root:Z,instructionSet:$}=J;$.reset();let X=Q.renderPipes?Q:Q.batch.renderer,K=X.renderPipes;if(K.batch.buildStart($),K.blendMode.buildStart(),K.colorMask.buildStart(),Z.sortableChildren)Z.sortChildren();Z.collectRenderablesWithEffects($,X,null),K.batch.buildEnd($),K.blendMode.buildEnd($)}}ZJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"renderGroup"};var E="8.17.0";class rJ{static init(){globalThis.__PIXI_APP_INIT__?.(this,E)}static destroy(){}}rJ.extension=Y.Application;class $J{constructor(J){this._renderer=J}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,E)}destroy(){this._renderer=null}}$J.extension={type:[Y.WebGLSystem,Y.WebGPUSystem],name:"initHook",priority:-10};class XJ{constructor(J){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=J}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(J,Q,Z){this._renderer.renderPipes.batch.break(Z);let X=this._colorStack;X[this._colorStackIndex]=X[this._colorStackIndex-1]&J.mask;let K=this._colorStack[this._colorStackIndex];if(K!==this._currentColor)this._currentColor=K,Z.add({renderPipeId:"colorMask",colorMask:K,canBundle:!1});this._colorStackIndex++}pop(J,Q,Z){this._renderer.renderPipes.batch.break(Z);let X=this._colorStack;this._colorStackIndex--;let K=X[this._colorStackIndex-1];if(K!==this._currentColor)this._currentColor=K,Z.add({renderPipeId:"colorMask",colorMask:K,canBundle:!1})}execute(J){this._renderer.colorMask.setMask(J.colorMask)}destroy(){this._renderer=null,this._colorStack=null}}XJ.extension={type:[Y.WebGLPipes,Y.WebGPUPipes],name:"colorMask"};class KJ{constructor(J){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=J}push(J,Q,Z){var $;let X=J,K=this._renderer;K.renderPipes.batch.break(Z),K.renderPipes.blendMode.setBlendMode(X.mask,"none",Z),Z.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:J,inverse:Q._maskOptions.inverse,canBundle:!1});let q=X.mask;if(q.includeInBuild=!0,!this._maskHash.has(X))this._maskHash.set(X,{instructionsStart:0,instructionsLength:0});let W=this._maskHash.get(X);W.instructionsStart=Z.instructionSize,q.collectRenderables(Z,K,null),q.includeInBuild=!1,K.renderPipes.batch.break(Z),Z.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:J,inverse:Q._maskOptions.inverse,canBundle:!1});let z=Z.instructionSize-W.instructionsStart-1;W.instructionsLength=z;let V=K.renderTarget.renderTarget.uid;($=this._maskStackHash)[V]??($[V]=0)}pop(J,Q,Z){let $=J,X=this._renderer;X.renderPipes.batch.break(Z),X.renderPipes.blendMode.setBlendMode($.mask,"none",Z),Z.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:Q._maskOptions.inverse,canBundle:!1});let K=this._maskHash.get(J);for(let q=0;q<K.instructionsLength;q++)Z.instructions[Z.instructionSize++]=Z.instructions[K.instructionsStart++];Z.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(J){var Q;let Z=this._renderer,$=Z,X=Z.renderTarget.renderTarget.uid,K=(Q=this._maskStackHash)[X]??(Q[X]=0);if(J.action==="pushMaskBegin")$.renderTarget.ensureDepthStencil(),$.stencil.setStencilMode(D.RENDERING_MASK_ADD,K),K++,$.colorMask.setMask(0);else if(J.action==="pushMaskEnd"){if(J.inverse)$.stencil.setStencilMode(D.INVERSE_MASK_ACTIVE,K);else $.stencil.setStencilMode(D.MASK_ACTIVE,K);$.colorMask.setMask(15)}else if(J.action==="popMaskBegin"){if($.colorMask.setMask(0),K!==0)$.stencil.setStencilMode(D.RENDERING_MASK_REMOVE,K);else $.renderTarget.clear(null,I.STENCIL),$.stencil.setStencilMode(D.DISABLED,K);K--}else if(J.action==="popMaskEnd"){if(J.inverse)$.stencil.setStencilMode(D.INVERSE_MASK_ACTIVE,K);else $.stencil.setStencilMode(D.MASK_ACTIVE,K);$.colorMask.setMask(15)}this._maskStackHash[X]=K}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}}KJ.extension={type:[Y.WebGLPipes,Y.WebGPUPipes],name:"stencilMask"};var vJ=class J{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new B(0),this.color=this._backgroundColor,this.alpha=1}init(Q){Q={...J.defaultOptions,...Q},this.clearBeforeRender=Q.clearBeforeRender,this.color=Q.background||Q.backgroundColor||this._backgroundColor,this.alpha=Q.backgroundAlpha,this._backgroundColor.setAlpha(Q.backgroundAlpha)}get color(){return this._backgroundColor}set color(Q){if(B.shared.setValue(Q).alpha<1&&this._backgroundColor.alpha===1)JJ("Cannot set a transparent background on an opaque canvas. To enable transparency, set backgroundAlpha < 1 when initializing your Application.");this._backgroundColor.setValue(Q)}get alpha(){return this._backgroundColor.alpha}set alpha(Q){this._backgroundColor.setAlpha(Q)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};vJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"background",priority:0};vJ.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};var eJ=vJ;var kJ={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},EJ=class J{constructor(Q){this._renderer=Q}_normalizeOptions(Q,Z={}){if(Q instanceof U||Q instanceof H)return{target:Q,...Z};return{...Z,...Q}}async image(Q){let Z=C.get().createImage();return Z.src=await this.base64(Q),Z}async base64(Q){Q=this._normalizeOptions(Q,J.defaultImageOptions);let{format:Z,quality:$}=Q,X=this.canvas(Q);if(X.toBlob!==void 0)return new Promise((K,q)=>{X.toBlob((W)=>{if(!W){q(Error("ICanvas.toBlob failed!"));return}let z=new FileReader;z.onload=()=>K(z.result),z.onerror=q,z.readAsDataURL(W)},kJ[Z],$)});if(X.toDataURL!==void 0)return X.toDataURL(kJ[Z],$);if(X.convertToBlob!==void 0){let K=await X.convertToBlob({type:kJ[Z],quality:$});return new Promise((q,W)=>{let z=new FileReader;z.onload=()=>q(z.result),z.onerror=W,z.readAsDataURL(K)})}throw Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(Q){Q=this._normalizeOptions(Q);let Z=Q.target,$=this._renderer;if(Z instanceof H)return $.texture.generateCanvas(Z);let X=$.textureGenerator.generateTexture(Q),K=$.texture.generateCanvas(X);return X.destroy(!0),K}pixels(Q){Q=this._normalizeOptions(Q);let Z=Q.target,$=this._renderer,X=Z instanceof H?Z:$.textureGenerator.generateTexture(Q),K=$.texture.getPixels(X);if(Z instanceof U)X.destroy(!0);return K}texture(Q){if(Q=this._normalizeOptions(Q),Q.target instanceof H)return Q.target;return this._renderer.textureGenerator.generateTexture(Q)}download(Q){Q=this._normalizeOptions(Q);let Z=this.canvas(Q),$=document.createElement("a");$.download=Q.filename??"image.png",$.href=Z.toDataURL("image/png"),document.body.appendChild($),$.click(),document.body.removeChild($)}log(Q){let Z=Q.width??200;Q=this._normalizeOptions(Q);let $=this.canvas(Q),X=$.toDataURL();console.log(`[Pixi Texture] ${$.width}px ${$.height}px`);let K=["font-size: 1px;",`padding: ${Z}px 300px;`,`background: url(${X}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",K)}destroy(){this._renderer=null}};EJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"extract"};EJ.defaultImageOptions={format:"png",quality:1};var JQ=EJ;class YJ extends H{static create(J){let{dynamic:Q,...Z}=J;return new YJ({source:new w(Z),dynamic:Q??!1})}resize(J,Q,Z){return this.source.resize(J,Q,Z),this}}var LQ=new A,vQ=new v,kQ=[0,0,0,0];class qJ{constructor(J){this._renderer=J}generateTexture(J){if(J instanceof U)J={target:J,frame:void 0,textureSourceOptions:{},resolution:void 0};let Q=J.resolution||this._renderer.resolution,Z=J.antialias||this._renderer.view.antialias,$=J.target,X=J.clearColor;if(X)X=Array.isArray(X)&&X.length===4?X:B.shared.setValue(X).toArray();else X=kQ;let K=J.frame?.copyTo(LQ)||QQ($,vQ).rectangle;K.width=Math.max(K.width,1/Q)|0,K.height=Math.max(K.height,1/Q)|0;let q=YJ.create({...J.textureSourceOptions,width:K.width,height:K.height,resolution:Q,antialias:Z}),W=O.shared.translate(-K.x,-K.y);return this._renderer.render({container:$,transform:W,target:q,clearColor:X}),q.source.updateMipmaps(),q}destroy(){this._renderer=null}}qJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"textureGenerator"};function ZQ(J){let Q=!1;for(let $ in J)if(J[$]==null){Q=!0;break}if(!Q)return J;let Z=Object.create(null);for(let $ in J){let X=J[$];if(X)Z[$]=X}return Z}function $Q(J){let Q=0;for(let Z=0;Z<J.length;Z++)if(J[Z]==null)Q++;else J[Z-Q]=J[Z];return J.length-=Q,J}var CJ=class J{constructor(Q){this._managedResources=[],this._managedResourceHashes=[],this._managedCollections=[],this._ready=!1,this._renderer=Q}init(Q){Q={...J.defaultOptions,...Q},this.maxUnusedTime=Q.gcMaxUnusedTime,this._frequency=Q.gcFrequency,this.enabled=Q.gcActive,this.now=performance.now()}get enabled(){return!!this._handler}set enabled(Q){if(this.enabled===Q)return;if(Q)this._handler=this._renderer.scheduler.repeat(()=>{this._ready=!0},this._frequency,!1),this._collectionsHandler=this._renderer.scheduler.repeat(()=>{for(let Z of this._managedCollections){let{context:$,collection:X,type:K}=Z;if(K==="hash")$[X]=ZQ($[X]);else $[X]=$Q($[X])}},this._frequency);else this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._collectionsHandler),this._handler=0,this._collectionsHandler=0}prerender({container:Q}){this.now=performance.now(),Q.renderGroup.gcTick=this._renderer.tick++,this._updateInstructionGCTick(Q.renderGroup,Q.renderGroup.gcTick)}postrender(){if(!this._ready||!this.enabled)return;this.run(),this._ready=!1}_updateInstructionGCTick(Q,Z){Q.instructionSet.gcTick=Z,Q.gcTick=Z;for(let $ of Q.renderGroupChildren)this._updateInstructionGCTick($,Z)}addCollection(Q,Z,$){this._managedCollections.push({context:Q,collection:Z,type:$})}addResource(Q,Z){if(Q._gcLastUsed!==-1){Q._gcLastUsed=this.now,Q._onTouch?.(this.now);return}let $=this._managedResources.length;Q._gcData={index:$,type:Z},Q._gcLastUsed=this.now,Q._onTouch?.(this.now),Q.once("unload",this.removeResource,this),this._managedResources.push(Q)}removeResource(Q){let Z=Q._gcData;if(!Z)return;let $=Z.index,X=this._managedResources.length-1;if($!==X){let K=this._managedResources[X];this._managedResources[$]=K,K._gcData.index=$}this._managedResources.length--,Q._gcData=null,Q._gcLastUsed=-1}addResourceHash(Q,Z,$,X=0){this._managedResourceHashes.push({context:Q,hash:Z,type:$,priority:X}),this._managedResourceHashes.sort((K,q)=>K.priority-q.priority)}run(){let Q=performance.now(),Z=this._managedResourceHashes;for(let X of Z)this.runOnHash(X,Q);let $=0;for(let X=0;X<this._managedResources.length;X++){let K=this._managedResources[X];$=this.runOnResource(K,Q,$)}this._managedResources.length=$}updateRenderableGCTick(Q,Z){let $=Q.renderGroup??Q.parentRenderGroup,X=$?.instructionSet?.gcTick??-1;if(($?.gcTick??0)===X)Q._gcLastUsed=Z,Q._onTouch?.(Z)}runOnResource(Q,Z,$){let X=Q._gcData;if(X.type==="renderable")this.updateRenderableGCTick(Q,Z);if(Z-Q._gcLastUsed<this.maxUnusedTime||!Q.autoGarbageCollect)this._managedResources[$]=Q,X.index=$,$++;else Q.unload(),Q._gcData=null,Q._gcLastUsed=-1,Q.off("unload",this.removeResource,this);return $}_createHashClone(Q,Z){let $=Object.create(null);for(let X in Q){if(X===Z)break;if(Q[X]!==null)$[X]=Q[X]}return $}runOnHash(Q,Z){let{context:$,hash:X,type:K}=Q,q=$[X],W=null,z=0;for(let V in q){let N=q[V];if(N===null){if(z++,z===1e4&&!W)W=this._createHashClone(q,V);continue}if(N._gcLastUsed===-1){if(N._gcLastUsed=Z,N._onTouch?.(Z),W)W[V]=N;continue}if(K==="renderable")this.updateRenderableGCTick(N,Z);if(!(Z-N._gcLastUsed<this.maxUnusedTime)&&N.autoGarbageCollect){if(!W)if(z+1!==1e4)q[V]=null,z++;else W=this._createHashClone(q,V);if(K==="renderable"){let M=N,j=M.renderGroup??M.parentRenderGroup;if(j)j.structureDidChange=!0}N.unload(),N._gcData=null,N._gcLastUsed=-1}else if(W)W[V]=N}if(W)$[X]=W}destroy(){this.enabled=!1,this._managedResources.forEach((Q)=>{Q.off("unload",this.removeResource,this)}),this._managedResources.length=0,this._managedResourceHashes.length=0,this._managedCollections.length=0,this._renderer=null}};CJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"gc",priority:0};CJ.defaultOptions={gcActive:!0,gcMaxUnusedTime:60000,gcFrequency:30000};var XQ=CJ;function KQ(J,Q,Z){let $=(J>>24&255)/255;Q[Z++]=(J&255)/255*$,Q[Z++]=(J>>8&255)/255*$,Q[Z++]=(J>>16&255)/255*$,Q[Z++]=$}class WJ{constructor(J){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=J}reset(){this._stackIndex=0;for(let J=0;J<this._activeUniforms.length;J++)this._uniformsPool.push(this._activeUniforms[J]);for(let J=0;J<this._activeBindGroups.length;J++)this._bindGroupPool.push(this._activeBindGroups[J]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(J){this.reset(),this.push(J)}bind({size:J,projectionMatrix:Q,worldTransformMatrix:Z,worldColor:$,offset:X}){let K=this._renderer.renderTarget.renderTarget,q=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:K,worldTransformMatrix:new O,worldColor:4294967295,offset:new YQ},W={projectionMatrix:Q||this._renderer.renderTarget.projectionMatrix,resolution:J||K.size,worldTransformMatrix:Z||q.worldTransformMatrix,worldColor:$||q.worldColor,offset:X||q.offset,bindGroup:null},z=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(z);let V=z.uniforms;V.uProjectionMatrix=W.projectionMatrix,V.uResolution=W.resolution,V.uWorldTransformMatrix.copyFrom(W.worldTransformMatrix),V.uWorldTransformMatrix.tx-=W.offset.x,V.uWorldTransformMatrix.ty-=W.offset.y,KQ(W.worldColor,V.uWorldColorAlpha,0),z.update();let N;if(this._renderer.renderPipes.uniformBatch)N=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(z,!1);else N=this._bindGroupPool.pop()||new qQ,this._activeBindGroups.push(N),N.setResource(z,0);W.bindGroup=N,this._currentGlobalUniformData=W}push(J){this.bind(J),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){if(this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===k.WEBGL)this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new n({uProjectionMatrix:{value:new O,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new O,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null,this._globalUniformDataStack.length=0,this._uniformsPool.length=0,this._activeUniforms.length=0,this._bindGroupPool.length=0,this._activeBindGroups.length=0,this._currentGlobalUniformData=null}}WJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"globalUniforms"};var EQ=1;class zJ{constructor(){this._tasks=[],this._offset=0}init(){RJ.system.add(this._update,this)}repeat(J,Q,Z=!0){let $=EQ++,X=0;if(Z)this._offset+=1000,X=this._offset;return this._tasks.push({func:J,duration:Q,start:performance.now(),offset:X,last:performance.now(),repeat:!0,id:$}),$}cancel(J){for(let Q=0;Q<this._tasks.length;Q++)if(this._tasks[Q].id===J){this._tasks.splice(Q,1);return}}_update(){let J=performance.now();for(let Q=0;Q<this._tasks.length;Q++){let Z=this._tasks[Q];if(J-Z.offset-Z.last>=Z.duration){let $=J-Z.start;Z.func($),Z.last=J}}}destroy(){RJ.system.remove(this._update,this),this._tasks.length=0}}zJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"scheduler",priority:0};var WQ=!1;function zQ(J){if(WQ)return;if(C.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let Q=[`%c %c %c %c %c PixiJS %c v${E} (${J}) http://www.pixijs.com/
171
171
 
172
172
  `,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...Q)}else if(globalThis.console)globalThis.console.log(`PixiJS ${E} - ${J} - http://www.pixijs.com/`);WQ=!0}class g{constructor(J){this._renderer=J}init(J){if(J.hello){let Q=this._renderer.name;if(this._renderer.type===k.WEBGL)Q+=` ${this._renderer.context.webGLVersion}`;zQ(Q)}}}g.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"hello",priority:-2};g.defaultOptions={hello:!1};var bJ=class J{constructor(Q){this._renderer=Q}init(Q){Q={...J.defaultOptions,...Q},this.maxUnusedTime=Q.renderableGCMaxUnusedTime}get enabled(){return F("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled}set enabled(Q){F("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled=Q}addManagedHash(Q,Z){F("8.15.0","RenderableGCSystem.addManagedHash is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(Q,Z,"hash")}addManagedArray(Q,Z){F("8.15.0","RenderableGCSystem.addManagedArray is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(Q,Z,"array")}addRenderable(Q){F("8.15.0","RenderableGCSystem.addRenderable is deprecated, please use the GCSystem instead."),this._renderer.gc.addResource(Q,"renderable")}run(){F("8.15.0","RenderableGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};bJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"renderableGC",priority:0};bJ.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:60000,renderableGCFrequency:30000};var NQ=bJ;var yJ=class J{get count(){return this._renderer.tick}get checkCount(){return this._checkCount}set checkCount(Q){F("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._checkCount=Q}get maxIdle(){return this._renderer.gc.maxUnusedTime/1000*60}set maxIdle(Q){F("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.maxUnusedTime=Q/60*1000}get checkCountMax(){return Math.floor(this._renderer.gc._frequency/1000)}set checkCountMax(Q){F("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead.")}get active(){return this._renderer.gc.enabled}set active(Q){F("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.enabled=Q}constructor(Q){this._renderer=Q,this._checkCount=0}init(Q){if(Q.textureGCActive!==J.defaultOptions.textureGCActive)this.active=Q.textureGCActive;if(Q.textureGCMaxIdle!==J.defaultOptions.textureGCMaxIdle)this.maxIdle=Q.textureGCMaxIdle;if(Q.textureGCCheckCountMax!==J.defaultOptions.textureGCCheckCountMax)this.checkCountMax=Q.textureGCCheckCountMax}run(){F("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};yJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem],name:"textureGC"};yJ.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};var VQ=yJ;var FQ=class J{constructor(Q={}){if(this.uid=p("renderTarget"),this.colorTextures=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,Q={...J.defaultOptions,...Q},this.stencil=Q.stencil,this.depth=Q.depth,this.isRoot=Q.isRoot,typeof Q.colorTextures==="number"){this._managedColorTextures=!0;for(let Z=0;Z<Q.colorTextures;Z++)this.colorTextures.push(new w({width:Q.width,height:Q.height,resolution:Q.resolution,antialias:Q.antialias}))}else{this.colorTextures=[...Q.colorTextures.map(($)=>$.source)];let Z=this.colorTexture.source;this.resize(Z.width,Z.height,Z._resolution)}if(this.colorTexture.source.on("resize",this.onSourceResize,this),Q.depthStencilTexture||this.stencil)if(Q.depthStencilTexture instanceof H||Q.depthStencilTexture instanceof w)this.depthStencilTexture=Q.depthStencilTexture.source;else this.ensureDepthStencilTexture()}get size(){let Q=this._size;return Q[0]=this.pixelWidth,Q[1]=this.pixelHeight,Q}get width(){return this.colorTexture.source.width}get height(){return this.colorTexture.source.height}get pixelWidth(){return this.colorTexture.source.pixelWidth}get pixelHeight(){return this.colorTexture.source.pixelHeight}get resolution(){return this.colorTexture.source._resolution}get colorTexture(){return this.colorTextures[0]}onSourceResize(Q){this.resize(Q.width,Q.height,Q._resolution,!0)}ensureDepthStencilTexture(){if(!this.depthStencilTexture)this.depthStencilTexture=new w({width:this.width,height:this.height,resolution:this.resolution,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1})}resize(Q,Z,$=this.resolution,X=!1){if(this.dirtyId++,this.colorTextures.forEach((K,q)=>{if(X&&q===0)return;K.source.resize(Q,Z,$)}),this.depthStencilTexture)this.depthStencilTexture.source.resize(Q,Z,$)}destroy(){if(this.colorTexture.source.off("resize",this.onSourceResize,this),this._managedColorTextures)this.colorTextures.forEach((Q)=>{Q.destroy()});if(this.depthStencilTexture)this.depthStencilTexture.destroy(),delete this.depthStencilTexture}};FQ.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};var S=FQ;var R=new Map;s.register(R);function NJ(J,Q){if(!R.has(J)){let Z=new H({source:new m({resource:J,...Q})}),$=()=>{if(R.get(J)===Z)R.delete(J)};Z.once("destroy",$),Z.source.once("destroy",$),R.set(J,Z)}return R.get(J)}var fJ=class J{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(Q){this.texture.source.autoDensity=Q}get resolution(){return this.texture.source._resolution}set resolution(Q){this.texture.source.resize(this.texture.source.width,this.texture.source.height,Q)}init(Q){if(Q={...J.defaultOptions,...Q},Q.view)F(a,"ViewSystem.view has been renamed to ViewSystem.canvas"),Q.canvas=Q.view;this.screen=new A(0,0,Q.width,Q.height),this.canvas=Q.canvas||C.get().createCanvas(),this.antialias=!!Q.antialias,this.texture=NJ(this.canvas,Q),this.renderTarget=new S({colorTextures:[this.texture],depth:!!Q.depth,isRoot:!0}),this.texture.source.transparent=Q.backgroundAlpha<1,this.resolution=Q.resolution}resize(Q,Z,$){this.texture.source.resize(Q,Z,$),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(Q=!1){if((typeof Q==="boolean"?Q:!!Q?.removeView)&&this.canvas.parentNode)this.canvas.parentNode.removeChild(this.canvas);this.texture.destroy()}};fJ.extension={type:[Y.WebGLSystem,Y.WebGPUSystem,Y.CanvasSystem],name:"view",priority:0};fJ.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};var HQ=fJ;var d$=[eJ,WJ,g,HQ,ZJ,XQ,VQ,qJ,JQ,$J,NQ,zJ],u$=[QJ,IJ,t,o,e,KJ,XJ,i];function OQ(J,Q,Z,$,X,K){let q=K?1:-1;return J.identity(),J.a=1/$*2,J.d=q*(1/X*2),J.tx=-1-Q*J.a,J.ty=-q-Z*J.d,J}function BQ(J){let Q=J.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&Q instanceof HTMLCanvasElement&&document.body.contains(Q)}class CQ{constructor(J){this.rootViewPort=new A,this.viewport=new A,this.mipLevel=0,this.layer=0,this.onRenderTargetChange=new f("onRenderTargetChange"),this.projectionMatrix=new O,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._renderer=J,J.gc.addCollection(this,"_gpuRenderTargetHash","hash")}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart({target:J,clear:Q,clearColor:Z,frame:$,mipLevel:X,layer:K}){this._renderTargetStack.length=0,this.push(J,Q,Z,$,X??0,K??0),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=BQ(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(J,Q=!0,Z,$,X=0,K=0){let q=this.getRenderTarget(J),W=this.renderTarget!==q;this.renderTarget=q,this.renderSurface=J;let z=this.getGpuRenderTarget(q);if(q.pixelWidth!==z.width||q.pixelHeight!==z.height)this.adaptor.resizeGpuRenderTarget(q),z.width=q.pixelWidth,z.height=q.pixelHeight;let V=q.colorTexture,N=this.viewport,b=V.arrayLayerCount||1;if((K|0)!==K)K|=0;if(K<0||K>=b)throw Error(`[RenderTargetSystem] layer ${K} is out of bounds (arrayLayerCount=${b}).`);this.mipLevel=X|0,this.layer=K|0;let M=Math.max(V.pixelWidth>>X,1),j=Math.max(V.pixelHeight>>X,1);if(!$&&J instanceof H)$=J.frame;if($){let l=V._resolution,c=1<<Math.max(X|0,0),UQ=$.x*l+0.5|0,IQ=$.y*l+0.5|0,DQ=$.width*l+0.5|0,wQ=$.height*l+0.5|0,d=Math.floor(UQ/c),u=Math.floor(IQ/c),VJ=Math.ceil(DQ/c),FJ=Math.ceil(wQ/c);d=Math.min(Math.max(d,0),M-1),u=Math.min(Math.max(u,0),j-1),VJ=Math.min(Math.max(VJ,1),M-d),FJ=Math.min(Math.max(FJ,1),j-u),N.x=d,N.y=u,N.width=VJ,N.height=FJ}else N.x=0,N.y=0,N.width=M,N.height=j;if(OQ(this.projectionMatrix,0,0,N.width/V.resolution,N.height/V.resolution,!q.isRoot),this.adaptor.startRenderPass(q,Q,Z,N,X,K),W)this.onRenderTargetChange.emit(q);return q}clear(J,Q=I.ALL,Z,$=this.mipLevel,X=this.layer){if(!Q)return;if(J)J=this.getRenderTarget(J);this.adaptor.clear(J||this.renderTarget,Q,Z,this.viewport,$,X)}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(J,Q=I.ALL,Z,$,X=0,K=0){let q=this.bind(J,Q,Z,$,X,K);return this._renderTargetStack.push({renderTarget:q,frame:$,mipLevel:X,layer:K}),q}pop(){this._renderTargetStack.pop();let J=this._renderTargetStack[this._renderTargetStack.length-1];this.bind(J.renderTarget,!1,null,J.frame,J.mipLevel,J.layer)}getRenderTarget(J){if(J.isTexture)J=J.source;return this._renderSurfaceToRenderTargetHash.get(J)??this._initRenderTarget(J)}copyToTexture(J,Q,Z,$,X){if(Z.x<0)$.width+=Z.x,X.x-=Z.x,Z.x=0;if(Z.y<0)$.height+=Z.y,X.y-=Z.y,Z.y=0;let{pixelWidth:K,pixelHeight:q}=J;return $.width=Math.min($.width,K-Z.x),$.height=Math.min($.height,q-Z.y),this.adaptor.copyToTexture(J,Q,Z,$,X)}ensureDepthStencil(){if(!this.renderTarget.stencil)this.renderTarget.stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport,0,this.layer)}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((J,Q)=>{if(J!==Q)J.destroy()}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(J){let Q=null;if(m.test(J))J=NJ(J).source;if(J instanceof S)Q=J;else if(J instanceof w){if(Q=new S({colorTextures:[J]}),J.source instanceof m)Q.isRoot=!0;J.once("destroy",()=>{Q.destroy(),this._renderSurfaceToRenderTargetHash.delete(J);let Z=this._gpuRenderTargetHash[Q.uid];if(Z)this._gpuRenderTargetHash[Q.uid]=null,this.adaptor.destroyGpuRenderTarget(Z)})}return this._renderSurfaceToRenderTargetHash.set(J,Q),Q}getGpuRenderTarget(J){return this._gpuRenderTargetHash[J.uid]||(this._gpuRenderTargetHash[J.uid]=this.adaptor.initGpuRenderTarget(J))}resetState(){this.renderTarget=null,this.renderSurface=null}}
173
- export{xJ as x,I as y,pQ as z,i as A,o as B,t as C,rJ as D,IJ as E,e as F,QJ as G,KQ as H,d$ as I,u$ as J,CQ as K};
173
+ export{xJ as y,I as z,pQ as A,i as B,o as C,t as D,rJ as E,IJ as F,e as G,QJ as H,KQ as I,d$ as J,u$ as K,CQ as L};
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { BeatmapPlayer, type IPlayerOptions, type StartMode } from "./player/player";
2
- export { AudioController } from "./player/audio_controller";
2
+ export { AudioEngine } from "./player/audio_engine";
3
3
  export { VideoController } from "./player/video_controller";
4
4
  export { OszLoader, type IOszLoaderOptions } from "./parser/osz_loader";
5
5
  export * from "./types/beatmap";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEvH,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,uBAAuB,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACrJ,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEvH,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,uBAAuB,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACrJ,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC"}