@rel-packages/osu-beatmap-preview 0.11.3 → 0.11.5

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 (39) hide show
  1. package/dist/assets/default_skin_archive.d.ts +2 -0
  2. package/dist/assets/default_skin_archive.d.ts.map +1 -0
  3. package/dist/assets/default_skin_embedded.d.ts.map +1 -1
  4. package/dist/chunk-0e4ebmdy.js +2 -0
  5. package/dist/chunk-1sw3e1ar.js +23 -0
  6. package/dist/chunk-21p7cseg.js +1 -0
  7. package/dist/chunk-525kvqgh.js +1 -0
  8. package/dist/chunk-5evxnj3k.js +9 -0
  9. package/dist/chunk-5v6x1wpn.js +84 -0
  10. package/dist/chunk-7qazncxz.js +15 -0
  11. package/dist/chunk-a7wf9wxx.js +173 -0
  12. package/dist/chunk-ay0z741j.js +1 -0
  13. package/dist/chunk-dvctxyxp.js +2 -0
  14. package/dist/chunk-eb5gmq04.js +186 -0
  15. package/dist/chunk-edbhr7zr.js +156 -0
  16. package/dist/chunk-ef1ghrsq.js +1 -0
  17. package/dist/chunk-f3y92gm3.js +1 -0
  18. package/dist/chunk-fsbv6vcn.js +2 -0
  19. package/dist/chunk-h72ajp0p.js +1 -0
  20. package/dist/chunk-kkmq6cvb.js +2 -0
  21. package/dist/chunk-kmf5rpya.js +1 -0
  22. package/dist/chunk-kt3t4zv0.js +2 -0
  23. package/dist/chunk-pn7re3na.js +2 -0
  24. package/dist/chunk-rp8z1jh7.js +2 -0
  25. package/dist/chunk-shb5s568.js +1 -0
  26. package/dist/chunk-sngkm5ds.js +218 -0
  27. package/dist/chunk-tb8nqrjk.js +1 -0
  28. package/dist/chunk-zc79wdxj.js +41 -0
  29. package/dist/index.js +1 -1146
  30. package/dist/player/audio_controller.d.ts +4 -0
  31. package/dist/player/audio_controller.d.ts.map +1 -1
  32. package/dist/player/player.d.ts +2 -0
  33. package/dist/player/player.d.ts.map +1 -1
  34. package/dist/renderer/backend/pixi_backend.d.ts +1 -1
  35. package/dist/renderer/backend/pixi_backend.d.ts.map +1 -1
  36. package/dist/renderer/backend/render_backend.d.ts +1 -1
  37. package/dist/renderer/backend/render_backend.d.ts.map +1 -1
  38. package/package.json +2 -2
  39. package/dist/index.js.map +0 -357
@@ -0,0 +1,173 @@
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;
2
+ in vec2 vTextureCoord;
3
+
4
+ uniform sampler2D uTexture;
5
+ uniform sampler2D uMaskTexture;
6
+
7
+ uniform float uAlpha;
8
+ uniform vec4 uMaskClamp;
9
+ uniform float uInverse;
10
+
11
+ out vec4 finalColor;
12
+
13
+ void main(void)
14
+ {
15
+ float clip = step(3.5,
16
+ step(uMaskClamp.x, vMaskCoord.x) +
17
+ step(uMaskClamp.y, vMaskCoord.y) +
18
+ step(vMaskCoord.x, uMaskClamp.z) +
19
+ step(vMaskCoord.y, uMaskClamp.w));
20
+
21
+ // TODO look into why this is needed
22
+ float npmAlpha = uAlpha;
23
+ vec4 original = texture(uTexture, vTextureCoord);
24
+ vec4 masky = texture(uMaskTexture, vMaskCoord);
25
+ float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);
26
+
27
+ float a = alphaMul * masky.r * npmAlpha * clip;
28
+
29
+ if (uInverse == 1.0) {
30
+ a = 1.0 - a;
31
+ }
32
+
33
+ finalColor = original * a;
34
+ }
35
+ `;var SJ=`in vec2 aPosition;
36
+
37
+ out vec2 vTextureCoord;
38
+ out vec2 vMaskCoord;
39
+
40
+
41
+ uniform vec4 uInputSize;
42
+ uniform vec4 uOutputFrame;
43
+ uniform vec4 uOutputTexture;
44
+ uniform mat3 uFilterMatrix;
45
+
46
+ vec4 filterVertexPosition( vec2 aPosition )
47
+ {
48
+ vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;
49
+
50
+ position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;
51
+ position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;
52
+
53
+ return vec4(position, 0.0, 1.0);
54
+ }
55
+
56
+ vec2 filterTextureCoord( vec2 aPosition )
57
+ {
58
+ return aPosition * (uOutputFrame.zw * uInputSize.zw);
59
+ }
60
+
61
+ vec2 getFilterCoord( vec2 aPosition )
62
+ {
63
+ return ( uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;
64
+ }
65
+
66
+ void main(void)
67
+ {
68
+ gl_Position = filterVertexPosition(aPosition);
69
+ vTextureCoord = filterTextureCoord(aPosition);
70
+ vMaskCoord = getFilterCoord(aPosition);
71
+ }
72
+ `;var DJ=`struct GlobalFilterUniforms {
73
+ uInputSize:vec4<f32>,
74
+ uInputPixel:vec4<f32>,
75
+ uInputClamp:vec4<f32>,
76
+ uOutputFrame:vec4<f32>,
77
+ uGlobalFrame:vec4<f32>,
78
+ uOutputTexture:vec4<f32>,
79
+ };
80
+
81
+ struct MaskUniforms {
82
+ uFilterMatrix:mat3x3<f32>,
83
+ uMaskClamp:vec4<f32>,
84
+ uAlpha:f32,
85
+ uInverse:f32,
86
+ };
87
+
88
+ @group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;
89
+ @group(0) @binding(1) var uTexture: texture_2d<f32>;
90
+ @group(0) @binding(2) var uSampler : sampler;
91
+
92
+ @group(1) @binding(0) var<uniform> filterUniforms : MaskUniforms;
93
+ @group(1) @binding(1) var uMaskTexture: texture_2d<f32>;
94
+
95
+ struct VSOutput {
96
+ @builtin(position) position: vec4<f32>,
97
+ @location(0) uv : vec2<f32>,
98
+ @location(1) filterUv : vec2<f32>,
99
+ };
100
+
101
+ fn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>
102
+ {
103
+ var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;
104
+
105
+ position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;
106
+ position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;
107
+
108
+ return vec4(position, 0.0, 1.0);
109
+ }
110
+
111
+ fn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
112
+ {
113
+ return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);
114
+ }
115
+
116
+ fn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
117
+ {
118
+ return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw);
119
+ }
120
+
121
+ fn getFilterCoord(aPosition:vec2<f32> ) -> vec2<f32>
122
+ {
123
+ return ( filterUniforms.uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;
124
+ }
125
+
126
+ fn getSize() -> vec2<f32>
127
+ {
128
+ return gfu.uGlobalFrame.zw;
129
+ }
130
+
131
+ @vertex
132
+ fn mainVertex(
133
+ @location(0) aPosition : vec2<f32>,
134
+ ) -> VSOutput {
135
+ return VSOutput(
136
+ filterVertexPosition(aPosition),
137
+ filterTextureCoord(aPosition),
138
+ getFilterCoord(aPosition)
139
+ );
140
+ }
141
+
142
+ @fragment
143
+ fn mainFragment(
144
+ @location(0) uv: vec2<f32>,
145
+ @location(1) filterUv: vec2<f32>,
146
+ @builtin(position) position: vec4<f32>
147
+ ) -> @location(0) vec4<f32> {
148
+
149
+ var maskClamp = filterUniforms.uMaskClamp;
150
+ var uAlpha = filterUniforms.uAlpha;
151
+
152
+ var clip = step(3.5,
153
+ step(maskClamp.x, filterUv.x) +
154
+ step(maskClamp.y, filterUv.y) +
155
+ step(filterUv.x, maskClamp.z) +
156
+ step(filterUv.y, maskClamp.w));
157
+
158
+ var mask = textureSample(uMaskTexture, uSampler, filterUv);
159
+ var source = textureSample(uTexture, uSampler, uv);
160
+ var alphaMul = 1.0 - uAlpha * (1.0 - mask.a);
161
+
162
+ var a: f32 = alphaMul * mask.r * uAlpha * clip;
163
+
164
+ if (filterUniforms.uInverse == 1.0) {
165
+ a = 1.0 - a;
166
+ }
167
+
168
+ return source * a;
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/
171
+
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};
@@ -0,0 +1 @@
1
+ import{a as z,b as B,c as D,d as G}from"./chunk-7qazncxz.js";import"./chunk-f3y92gm3.js";import"./chunk-5v6x1wpn.js";import{Y as q}from"./chunk-kt3t4zv0.js";import"./chunk-kkmq6cvb.js";import"./chunk-pn7re3na.js";import{Ka as k}from"./chunk-1sw3e1ar.js";import"./chunk-dvctxyxp.js";k.add(z);k.mixin(q,B);k.add(D);k.mixin(q,G);
@@ -0,0 +1,2 @@
1
+ var j=Object.create;var{getPrototypeOf:k,defineProperty:i,getOwnPropertyNames:l}=Object;var m=Object.prototype.hasOwnProperty;function n(a){return this[a]}var o,p,q=(a,b,c)=>{var f=a!=null&&typeof a==="object";if(f){var g=b?o??=new WeakMap:p??=new WeakMap,h=g.get(a);if(h)return h}c=a!=null?j(k(a)):{};let d=b||!a||!a.__esModule?i(c,"default",{value:a,enumerable:!0}):c;for(let e of l(a))if(!m.call(d,e))i(d,e,{get:n.bind(a,e),enumerable:!0});if(f)g.set(a,d);return d};var r=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var s=((a)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(b,c)=>(typeof require<"u"?require:b)[c]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});
2
+ export{q as vb,r as wb,s as xb};
@@ -0,0 +1,186 @@
1
+ import{x as I}from"./chunk-a7wf9wxx.js";import{Ea as $}from"./chunk-sngkm5ds.js";import{La as L,Ra as A,Va as P,mb as v,sb as z,tb as _}from"./chunk-1sw3e1ar.js";var O={name:"local-uniform-bit",vertex:{header:`
2
+
3
+ struct LocalUniforms {
4
+ uTransformMatrix:mat3x3<f32>,
5
+ uColor:vec4<f32>,
6
+ uRound:f32,
7
+ }
8
+
9
+ @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;
10
+ `,main:`
11
+ vColor *= localUniforms.uColor;
12
+ modelMatrix *= localUniforms.uTransformMatrix;
13
+ `,end:`
14
+ if(localUniforms.uRound == 1)
15
+ {
16
+ vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
17
+ }
18
+ `}},B={...O,vertex:{...O.vertex,header:O.vertex.header.replace("group(1)","group(2)")}},U={name:"local-uniform-bit",vertex:{header:`
19
+
20
+ uniform mat3 uTransformMatrix;
21
+ uniform vec4 uColor;
22
+ uniform float uRound;
23
+ `,main:`
24
+ vColor *= uColor;
25
+ modelMatrix = uTransformMatrix;
26
+ `,end:`
27
+ if(uRound == 1.)
28
+ {
29
+ gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
30
+ }
31
+ `}};var M={name:"texture-bit",vertex:{header:`
32
+
33
+ struct TextureUniforms {
34
+ uTextureMatrix:mat3x3<f32>,
35
+ }
36
+
37
+ @group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;
38
+ `,main:`
39
+ uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;
40
+ `},fragment:{header:`
41
+ @group(2) @binding(0) var uTexture: texture_2d<f32>;
42
+ @group(2) @binding(1) var uSampler: sampler;
43
+
44
+
45
+ `,main:`
46
+ outColor = textureSample(uTexture, uSampler, vUV);
47
+ `}},E={name:"texture-bit",vertex:{header:`
48
+ uniform mat3 uTextureMatrix;
49
+ `,main:`
50
+ uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
51
+ `},fragment:{header:`
52
+ uniform sampler2D uTexture;
53
+
54
+
55
+ `,main:`
56
+ outColor = texture(uTexture, vUV);
57
+ `}};class T{constructor(k){this._syncFunctionHash=Object.create(null),this._adaptor=k,this._systemCheck()}_systemCheck(){if(!I())throw Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(k){let q=this.getUniformGroupData(k);k.buffer||(k.buffer=new _({data:new Float32Array(q.layout.size/4),usage:z.UNIFORM|z.COPY_DST}))}getUniformGroupData(k){return this._syncFunctionHash[k._signature]||this._initUniformGroup(k)}_initUniformGroup(k){let q=k._signature,H=this._syncFunctionHash[q];if(!H){let Q=Object.keys(k.uniformStructures).map((K)=>k.uniformStructures[K]),J=this._adaptor.createUboElements(Q),V=this._generateUboSync(J.uboElements);H=this._syncFunctionHash[q]={layout:J,syncFunction:V}}return this._syncFunctionHash[q]}_generateUboSync(k){return this._adaptor.generateUboSync(k)}syncUniformGroup(k,q,H){let Q=this.getUniformGroupData(k);k.buffer||(k.buffer=new _({data:new Float32Array(Q.layout.size/4),usage:z.UNIFORM|z.COPY_DST}));let J=null;if(!q)q=k.buffer.data,J=k.buffer.dataInt32;return H||(H=0),Q.syncFunction(k.uniforms,q,J,H),!0}updateUniformGroup(k){if(k.isStatic&&!k._dirtyId)return!1;k._dirtyId=0;let q=this.syncUniformGroup(k);return k.buffer.update(),q}destroy(){this._syncFunctionHash=null}}class x extends L{constructor({buffer:k,offset:q,size:H}){super();this.uid=A("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=A("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=k,this.offset=q|0,this.size=H,this.buffer.on("change",this.onBufferChange,this)}onBufferChange(){this._resourceId=A("resource"),this.emit("change",this)}destroy(k=!1){if(this.destroyed=!0,k)this.buffer.destroy();this.emit("change",this),this.buffer=null,this.removeAllListeners()}}function f(k,q){for(let H in k.attributes){let Q=k.attributes[H],J=q[H];if(J)Q.format??(Q.format=J.format),Q.offset??(Q.offset=J.offset),Q.instance??(Q.instance=J.instance);else P(`Attribute ${H} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}D(k)}function D(k){let{buffers:q,attributes:H}=k,Q={},J={};for(let V in q){let K=q[V];Q[K.uid]=0,J[K.uid]=0}for(let V in H){let K=H[V];Q[K.buffer.uid]+=v(K.format).stride}for(let V in H){let K=H[V];K.stride??(K.stride=Q[K.buffer.uid]),K.start??(K.start=J[K.buffer.uid]),J[K.buffer.uid]+=v(K.format).stride}}var W=[];W[$.NONE]=void 0;W[$.DISABLED]={stencilWriteMask:0,stencilReadMask:0};W[$.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};W[$.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};W[$.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};W[$.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}};var w=[{type:"mat3x3<f32>",test:(k)=>{return k.value.a!==void 0},ubo:`
58
+ var matrix = uv[name].toArray(true);
59
+ data[offset] = matrix[0];
60
+ data[offset + 1] = matrix[1];
61
+ data[offset + 2] = matrix[2];
62
+ data[offset + 4] = matrix[3];
63
+ data[offset + 5] = matrix[4];
64
+ data[offset + 6] = matrix[5];
65
+ data[offset + 8] = matrix[6];
66
+ data[offset + 9] = matrix[7];
67
+ data[offset + 10] = matrix[8];
68
+ `,uniform:`
69
+ gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
70
+ `},{type:"vec4<f32>",test:(k)=>k.type==="vec4<f32>"&&k.size===1&&k.value.width!==void 0,ubo:`
71
+ v = uv[name];
72
+ data[offset] = v.x;
73
+ data[offset + 1] = v.y;
74
+ data[offset + 2] = v.width;
75
+ data[offset + 3] = v.height;
76
+ `,uniform:`
77
+ cv = ud[name].value;
78
+ v = uv[name];
79
+ if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {
80
+ cv[0] = v.x;
81
+ cv[1] = v.y;
82
+ cv[2] = v.width;
83
+ cv[3] = v.height;
84
+ gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);
85
+ }
86
+ `},{type:"vec2<f32>",test:(k)=>k.type==="vec2<f32>"&&k.size===1&&k.value.x!==void 0,ubo:`
87
+ v = uv[name];
88
+ data[offset] = v.x;
89
+ data[offset + 1] = v.y;
90
+ `,uniform:`
91
+ cv = ud[name].value;
92
+ v = uv[name];
93
+ if (cv[0] !== v.x || cv[1] !== v.y) {
94
+ cv[0] = v.x;
95
+ cv[1] = v.y;
96
+ gl.uniform2f(ud[name].location, v.x, v.y);
97
+ }
98
+ `},{type:"vec4<f32>",test:(k)=>k.type==="vec4<f32>"&&k.size===1&&k.value.red!==void 0,ubo:`
99
+ v = uv[name];
100
+ data[offset] = v.red;
101
+ data[offset + 1] = v.green;
102
+ data[offset + 2] = v.blue;
103
+ data[offset + 3] = v.alpha;
104
+ `,uniform:`
105
+ cv = ud[name].value;
106
+ v = uv[name];
107
+ if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {
108
+ cv[0] = v.red;
109
+ cv[1] = v.green;
110
+ cv[2] = v.blue;
111
+ cv[3] = v.alpha;
112
+ gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);
113
+ }
114
+ `},{type:"vec3<f32>",test:(k)=>k.type==="vec3<f32>"&&k.size===1&&k.value.red!==void 0,ubo:`
115
+ v = uv[name];
116
+ data[offset] = v.red;
117
+ data[offset + 1] = v.green;
118
+ data[offset + 2] = v.blue;
119
+ `,uniform:`
120
+ cv = ud[name].value;
121
+ v = uv[name];
122
+ if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {
123
+ cv[0] = v.red;
124
+ cv[1] = v.green;
125
+ cv[2] = v.blue;
126
+ gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
127
+ }
128
+ `}];function o(k,q,H,Q){let J=[`
129
+ var v = null;
130
+ var v2 = null;
131
+ var t = 0;
132
+ var index = 0;
133
+ var name = null;
134
+ var arrayOffset = null;
135
+ `],V=0;for(let N=0;N<k.length;N++){let X=k[N],C=X.data.name,R=!1,Y=0;for(let Z=0;Z<w.length;Z++)if(w[Z].test(X.data)){Y=X.offset/4,J.push(`name = "${C}";`,`offset += ${Y-V};`,w[Z][q]||w[Z].ubo),R=!0;break}if(!R)if(X.data.size>1)Y=X.offset/4,J.push(H(X,Y-V));else{let Z=Q[X.data.type];Y=X.offset/4,J.push(`
136
+ v = uv.${C};
137
+ offset += ${Y-V};
138
+ ${Z};
139
+ `)}V=Y}let K=J.join(`
140
+ `);return Function("uv","data","dataInt32","offset",K)}function h(k,q){return`
141
+ for (let i = 0; i < ${k*q}; i++) {
142
+ data[offset + (((i / ${k})|0) * 4) + (i % ${k})] = v[i];
143
+ }
144
+ `}var F={f32:`
145
+ data[offset] = v;`,i32:`
146
+ dataInt32[offset] = v;`,"vec2<f32>":`
147
+ data[offset] = v[0];
148
+ data[offset + 1] = v[1];`,"vec3<f32>":`
149
+ data[offset] = v[0];
150
+ data[offset + 1] = v[1];
151
+ data[offset + 2] = v[2];`,"vec4<f32>":`
152
+ data[offset] = v[0];
153
+ data[offset + 1] = v[1];
154
+ data[offset + 2] = v[2];
155
+ data[offset + 3] = v[3];`,"vec2<i32>":`
156
+ dataInt32[offset] = v[0];
157
+ dataInt32[offset + 1] = v[1];`,"vec3<i32>":`
158
+ dataInt32[offset] = v[0];
159
+ dataInt32[offset + 1] = v[1];
160
+ dataInt32[offset + 2] = v[2];`,"vec4<i32>":`
161
+ dataInt32[offset] = v[0];
162
+ dataInt32[offset + 1] = v[1];
163
+ dataInt32[offset + 2] = v[2];
164
+ dataInt32[offset + 3] = v[3];`,"mat2x2<f32>":`
165
+ data[offset] = v[0];
166
+ data[offset + 1] = v[1];
167
+ data[offset + 4] = v[2];
168
+ data[offset + 5] = v[3];`,"mat3x3<f32>":`
169
+ data[offset] = v[0];
170
+ data[offset + 1] = v[1];
171
+ data[offset + 2] = v[2];
172
+ data[offset + 4] = v[3];
173
+ data[offset + 5] = v[4];
174
+ data[offset + 6] = v[5];
175
+ data[offset + 8] = v[6];
176
+ data[offset + 9] = v[7];
177
+ data[offset + 10] = v[8];`,"mat4x4<f32>":`
178
+ for (let i = 0; i < 16; i++) {
179
+ data[offset + i] = v[i];
180
+ }`,"mat3x2<f32>":h(3,2),"mat4x2<f32>":h(4,2),"mat2x3<f32>":h(2,3),"mat4x3<f32>":h(4,3),"mat2x4<f32>":h(2,4),"mat3x4<f32>":h(3,4)},t={...F,"mat2x2<f32>":`
181
+ data[offset] = v[0];
182
+ data[offset + 1] = v[1];
183
+ data[offset + 2] = v[2];
184
+ data[offset + 3] = v[3];
185
+ `};
186
+ export{O as i,B as j,U as k,M as l,E as m,T as n,w as o,o as p,F as q,t as r,x as s,f as t,W as u};