@midscene/android-playground 1.0.1-beta-20251021060907.0 → 1.0.1-beta-20251024063839.0
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.
- package/dist/es/bin.mjs +5 -3
- package/dist/lib/bin.js +5 -3
- package/package.json +5 -5
- package/static/index.html +1 -1
- package/static/static/js/142.64c1e0d5.js +697 -0
- package/static/static/js/{825.c5ade4c6.js.map → 142.64c1e0d5.js.map} +1 -1
- package/static/static/js/async/150.d439b38c.js +158 -0
- package/static/static/js/async/{212.850ade70.js.map → 150.d439b38c.js.map} +1 -1
- package/static/static/js/async/{624.8a1fe2e8.js → 195.aa1e3152.js} +3 -3
- package/static/static/js/async/{624.8a1fe2e8.js.map → 195.aa1e3152.js.map} +1 -1
- package/static/static/js/async/260.d838b3b7.js +2 -0
- package/static/static/js/async/{544.18ac9afb.js.map → 260.d838b3b7.js.map} +1 -1
- package/static/static/js/async/271.71b3326b.js +3 -0
- package/static/static/js/async/{173.f2381e64.js.map → 271.71b3326b.js.map} +1 -1
- package/static/static/js/async/355.76c31308.js +1 -0
- package/static/static/js/async/{644.910ce3d0.js → 441.675c15a8.js} +1 -1
- package/static/static/js/async/45.ce50b37f.js +21 -0
- package/static/static/js/async/45.ce50b37f.js.map +1 -0
- package/static/static/js/async/586.ffc417d5.js +26 -0
- package/static/static/js/async/{329.261bc4a1.js.map → 586.ffc417d5.js.map} +1 -1
- package/static/static/js/async/631.9799e85f.js +30 -0
- package/static/static/js/async/{364.d88c3cff.js.map → 631.9799e85f.js.map} +1 -1
- package/static/static/js/async/{702.1f38a17e.js → 779.e7bfc2ed.js} +15 -15
- package/static/static/js/async/{702.1f38a17e.js.map → 779.e7bfc2ed.js.map} +1 -1
- package/static/static/js/async/782.f77f2205.js +2 -0
- package/static/static/js/async/782.f77f2205.js.map +1 -0
- package/static/static/js/index.dd3aa15e.js +30 -0
- package/static/static/js/index.dd3aa15e.js.map +1 -0
- package/static/static/js/lib-react.d7dec362.js +3 -0
- package/static/static/js/{lib-react.c74a0742.js.map → lib-react.d7dec362.js.map} +1 -1
- package/static/static/js/825.c5ade4c6.js +0 -697
- package/static/static/js/async/166.834644b5.js +0 -2
- package/static/static/js/async/166.834644b5.js.map +0 -1
- package/static/static/js/async/173.f2381e64.js +0 -3
- package/static/static/js/async/212.850ade70.js +0 -158
- package/static/static/js/async/329.261bc4a1.js +0 -26
- package/static/static/js/async/364.d88c3cff.js +0 -30
- package/static/static/js/async/544.18ac9afb.js +0 -2
- package/static/static/js/async/582.8f4b5264.js +0 -21
- package/static/static/js/async/582.8f4b5264.js.map +0 -1
- package/static/static/js/async/983.b98b40af.js +0 -1
- package/static/static/js/index.eb785992.js +0 -30
- package/static/static/js/index.eb785992.js.map +0 -1
- package/static/static/js/lib-react.c74a0742.js +0 -3
- /package/static/static/js/{825.c5ade4c6.js.LICENSE.txt → 142.64c1e0d5.js.LICENSE.txt} +0 -0
- /package/static/static/js/{index.eb785992.js.LICENSE.txt → index.dd3aa15e.js.LICENSE.txt} +0 -0
- /package/static/static/js/{lib-react.c74a0742.js.LICENSE.txt → lib-react.d7dec362.js.LICENSE.txt} +0 -0
- /package/static/static/wasm/{9e906fbf55e08f98.module.wasm → 9e906fbf.module.wasm} +0 -0
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkandroid_playground=self.webpackChunkandroid_playground||[]).push([["212"],{52818:function(e,t,r){var i=r(91957);class s{static init(e){Object.defineProperty(this,"resizeTo",{set(e){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=e,e&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{let e,t;if(this._resizeTo){if(this._cancelResize(),this._resizeTo===globalThis.window)e=globalThis.innerWidth,t=globalThis.innerHeight;else{let{clientWidth:r,clientHeight:i}=this._resizeTo;e=r,t=i}this.renderer.resize(e,t),this.render()}},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}}s.extension=i.nw.Application;var a=r(95909),n=r(96743);class l{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(e){this._ticker&&this._ticker.remove(this.render,this),this._ticker=e,e&&e.add(this.render,this,a.u.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?n.v.shared:new n.v,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}}l.extension=i.nw.Application,i.Rw.add(s),i.Rw.add(l)},24508:function(e,t,r){var i=r(91957);class s{constructor(e){this._renderer=e}push(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:t,filterEffect:e})}pop(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(e){"pushFilter"===e.action?this._renderer.filter.push(e):"popFilter"===e.action&&this._renderer.filter.pop()}destroy(){this._renderer=null}}s.extension={type:[i.nw.WebGLPipes,i.nw.WebGPUPipes,i.nw.CanvasPipes],name:"filter"};var a=r(30044),n=r(87246),l=r(49458),o=r(73531),h=r(73109),d=r(41277),u=r(50900),c=r(71423),p=r(39622),f=r(51141);let g=new a.y;var m=r(92245);let x=new o.Z({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),location:0,format:"float32x2",stride:8,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])});class _{constructor(e){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new h.o({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new l.v({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){let t=this.renderer,r=e.filterEffect.filters;this._filterStack[this._filterStackIndex]||(this._filterStack[this._filterStackIndex]=this._getFilterData());let i=this._filterStack[this._filterStackIndex];if(this._filterStackIndex++,0===r.length){i.skip=!0;return}let s=i.bounds;if(e.renderables)!function(e,t){t.clear();let r=t.matrix;for(let r=0;r<e.length;r++){let i=e[r];i.globalDisplayStatus<7||(t.matrix=i.worldTransform,i.addBounds(t))}t.matrix=r}(e.renderables,s);else if(e.filterEffect.filterArea)s.clear(),s.addRect(e.filterEffect.filterArea),s.applyMatrix(e.container.worldTransform);else{var a;a=e.container,s.clear(),function e(t,r){if(7!==t.localDisplayStatus||!t.measurable)return;let i=!!t.effects.length,s=r;if((t.isRenderGroupRoot||i)&&(s=f.W.get().clear()),t.boundsArea)r.addRect(t.boundsArea,t.worldTransform);else{if(t.renderPipeId){let e=t.bounds;s.addFrame(e.minX,e.minY,e.maxX,e.maxY,t.groupTransform)}let r=t.children;for(let t=0;t<r.length;t++)e(r[t],s)}if(i){let e=!1;for(let r=0;r<t.effects.length;r++)t.effects[r].addBounds&&(e||(e=!0,s.applyMatrix(t.renderGroup.worldTransform)),t.effects[r].addBounds(s,!0));e&&(s.applyMatrix(t.renderGroup.worldTransform.copyTo(g).invert()),r.addBounds(s,t.relativeGroupTransform)),r.addBounds(s),f.W.return(s)}else t.isRenderGroupRoot&&(r.addBounds(s,t.relativeGroupTransform),f.W.return(s))}(a,s),s.isValid||s.set(0,0,0,0),a.isRenderGroupRoot?s.applyMatrix(a.renderGroup.localTransform):s.applyMatrix(a.renderGroup.worldTransform)}let n=t.renderTarget.rootRenderTarget.colorTexture.source,l=n._resolution,o=0,h=n.antialias,d=!1,c=!1;for(let e=0;e<r.length;e++){let i=r[e];if(l=Math.min(l,i.resolution),o+=i.padding,"inherit"!==i.antialias&&(h="on"===i.antialias),!(i.compatibleRenderers&t.type)){c=!1;break}if(i.blendRequired&&!(t.backBuffer?.useBackBuffer??!0)){(0,m.Z)("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),c=!1;break}c=i.enabled||c,d=d||i.blendRequired}if(!c){i.skip=!0;return}let p=t.renderTarget.rootViewPort;if(s.scale(l).fitBounds(0,p.width,0,p.height).scale(1/l).pad(o).ceil(),!s.isPositive){i.skip=!0;return}i.skip=!1,i.bounds=s,i.blendRequired=d,i.container=e.container,i.filterEffect=e.filterEffect,i.previousRenderSurface=t.renderTarget.renderSurface,i.inputTexture=u.z.getOptimalTexture(s.width,s.height,l,h),t.renderTarget.bind(i.inputTexture,!0),t.globalUniforms.push({offset:s})}pop(){let e=this.renderer;this._filterStackIndex--;let t=this._filterStack[this._filterStackIndex];if(t.skip)return;this._activeFilterData=t;let r=t.inputTexture,i=t.bounds,s=d.x.EMPTY;if(e.renderTarget.finishRenderPass(),t.blendRequired){let r=this._filterStackIndex>0?this._filterStack[this._filterStackIndex-1].bounds:null,a=e.renderTarget.getRenderTarget(t.previousRenderSurface);s=this.getBackTexture(a,i,r)}t.backTexture=s;let a=t.filterEffect.filters;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(s.source,3),e.globalUniforms.pop(),1===a.length)a[0].apply(this,r,t.previousRenderSurface,!1),u.z.returnTexture(r);else{let e=t.inputTexture,r=u.z.getOptimalTexture(i.width,i.height,e.source._resolution,!1),s=0;for(s=0;s<a.length-1;++s){a[s].apply(this,e,r,!0);let t=e;e=r,r=t}a[s].apply(this,e,t.previousRenderSurface,!1),u.z.returnTexture(e),u.z.returnTexture(r)}t.blendRequired&&u.z.returnTexture(s)}getBackTexture(e,t,r){let i=e.colorTexture.source._resolution,s=u.z.getOptimalTexture(t.width,t.height,i,!1),a=t.minX,n=t.minY;r&&(a-=r.minX,n-=r.minY),a=Math.floor(a*i),n=Math.floor(n*i);let l=Math.ceil(t.width*i),o=Math.ceil(t.height*i);return this.renderer.renderTarget.copyToTexture(e,s,{x:a,y:n},{width:l,height:o},{x:0,y:0}),s}applyFilter(e,t,r,i){let s=this.renderer,a=this._filterStack[this._filterStackIndex],l=a.bounds,o=n.E.shared,h=a.previousRenderSurface===r,u=this.renderer.renderTarget.rootRenderTarget.colorTexture.source._resolution,p=this._filterStackIndex-1;for(;p>0&&this._filterStack[p].skip;)--p;p>0&&(u=this._filterStack[p].inputTexture.source._resolution);let f=this._filterGlobalUniforms,g=f.uniforms,m=g.uOutputFrame,_=g.uInputSize,b=g.uInputPixel,y=g.uInputClamp,w=g.uGlobalFrame,T=g.uOutputTexture;if(h){let e=this._filterStackIndex;for(;e>0;){e--;let t=this._filterStack[this._filterStackIndex-1];if(!t.skip){o.x=t.bounds.minX,o.y=t.bounds.minY;break}}m[0]=l.minX-o.x,m[1]=l.minY-o.y}else m[0]=0,m[1]=0;m[2]=t.frame.width,m[3]=t.frame.height,_[0]=t.source.width,_[1]=t.source.height,_[2]=1/_[0],_[3]=1/_[1],b[0]=t.source.pixelWidth,b[1]=t.source.pixelHeight,b[2]=1/b[0],b[3]=1/b[1],y[0]=.5*b[2],y[1]=.5*b[3],y[2]=t.frame.width*_[2]-.5*b[2],y[3]=t.frame.height*_[3]-.5*b[3];let v=this.renderer.renderTarget.rootRenderTarget.colorTexture;w[0]=o.x*u,w[1]=o.y*u,w[2]=v.source.width*u,w[3]=v.source.height*u;let S=this.renderer.renderTarget.getRenderTarget(r);if(s.renderTarget.bind(r,!!i),r instanceof d.x?(T[0]=r.frame.width,T[1]=r.frame.height):(T[0]=S.width,T[1]=S.height),T[2]=S.isRoot?-1:1,f.update(),s.renderPipes.uniformBatch){let e=s.renderPipes.uniformBatch.getUboResource(f);this._globalFilterBindGroup.setResource(e,0)}else this._globalFilterBindGroup.setResource(f,0);this._globalFilterBindGroup.setResource(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,s.encoder.draw({geometry:x,shader:e,state:e._state,topology:"triangle-list"}),s.type===c.g.WEBGL&&s.renderTarget.finishRenderPass()}_getFilterData(){return{skip:!1,inputTexture:null,bounds:new p.Y,container:null,filterEffect:null,blendRequired:!1,previousRenderSurface:null}}calculateSpriteMatrix(e,t){let r=this._activeFilterData,i=e.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),s=t.worldTransform.copyTo(a.y.shared);return s.invert(),i.prepend(s),i.scale(1/t.texture.frame.width,1/t.texture.frame.height),i.translate(t.anchor.x,t.anchor.y),i}}_.extension={type:[i.nw.WebGLSystem,i.nw.WebGPUSystem],name:"filter"},i.Rw.add(_),i.Rw.add(s)},17094:function(e,t,r){r.d(t,{y:()=>n});var i=r(29465),s=r(73109);let a=new Int32Array(i.A);for(let e=0;e<i.A;e++)a[e]=e;let n=new s.o({uTextures:{value:a,type:"i32",size:i.A}},{isStatic:!0})},51982:function(e,t,r){r.d(t,{h:()=>a});var i=r(767),s=r(45854);let a=new class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let r=i.z.get().createCanvas();r.width=e,r.height=t;let s=r.getContext("2d");return{canvas:r,context:s}}getOptimalCanvasAndContext(e,t,r=1){e=Math.ceil(e*r-1e-6),t=Math.ceil(t*r-1e-6),e=(0,s.a9)(e),t=(0,s.a9)(t);let i=(e<<17)+(t<<1);this._canvasPool[i]||(this._canvasPool[i]=[]);let a=this._canvasPool[i].pop();return a||(a=this._createCanvasAndContext(e,t)),a}returnCanvasAndContext(e){let{width:t,height:r}=e.canvas;this._canvasPool[(t<<17)+(r<<1)].push(e)}clear(){this._canvasPool={}}}},42454:function(e,t,r){var i=r(91957),s=r(62014),a=r(29492),n=r(24951),l=r(23947),o=r(48876);class h{constructor(e,t){this.state=a.Z.for2d(),this._graphicsBatchesHash=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=e.context,r=!!this._graphicsBatchesHash[e.uid],i=this.renderer.graphicsContext.updateGpuContext(t);return!!i.isBatchable||r!==i.isBatchable}addRenderable(e,t){let r=this.renderer.graphicsContext.updateGpuContext(e.context);e._didGraphicsUpdate&&(e._didGraphicsUpdate=!1,this._rebuild(e)),r.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){let t=this._graphicsBatchesHash[e.uid];if(t)for(let e=0;e<t.length;e++){let r=t[e];r.batcher.updateElement(r)}}destroyRenderable(e){this._graphicsBatchesHash[e.uid]&&this._removeBatchForRenderable(e.uid)}execute(e){if(!e.isRenderable)return;let t=this.renderer,r=e.context;if(!t.graphicsContext.getGpuContext(r).batches.length)return;let i=r.customShader||this._adaptor.shader;this.state.blendMode=e.groupBlendMode;let s=i.resources.localUniforms.uniforms;s.uTransformMatrix=e.groupTransform,s.uRound=t._roundPixels|e._roundPixels,(0,l.V)(e.groupColorAlpha,s.uColor,0),this._adaptor.execute(this,e)}_rebuild(e){let t=!!this._graphicsBatchesHash[e.uid],r=this.renderer.graphicsContext.updateGpuContext(e.context);t&&this._removeBatchForRenderable(e.uid),r.isBatchable&&this._initBatchesForRenderable(e),e.batched=r.isBatchable}_addToBatcher(e,t){let r=this.renderer.renderPipes.batch,i=this._getBatchesForRenderable(e);for(let e=0;e<i.length;e++){let s=i[e];r.addToBatch(s,t)}}_getBatchesForRenderable(e){return this._graphicsBatchesHash[e.uid]||this._initBatchesForRenderable(e)}_initBatchesForRenderable(e){let t=e.context,r=this.renderer.graphicsContext.getGpuContext(t),i=this.renderer._roundPixels|e._roundPixels,s=r.batches.map(t=>{let r=n.u.get(o.I);return t.copyTo(r),r.renderable=e,r.roundPixels=i,r});return this._graphicsBatchesHash[e.uid]=s,e.on("destroyed",()=>{this.destroyRenderable(e)}),s}_removeBatchForRenderable(e){this._graphicsBatchesHash[e].forEach(e=>{n.u.return(e)}),this._graphicsBatchesHash[e]=null}destroy(){for(let e in this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null,this._graphicsBatchesHash)this._removeBatchForRenderable(e);this._graphicsBatchesHash=null}}h.extension={type:[i.nw.WebGLPipes,i.nw.WebGPUPipes,i.nw.CanvasPipes],name:"graphics"},i.Rw.add(h),i.Rw.add(s.hJ)},30773:function(e,t,r){var i=r(91957),s=r(30044),a=r(49458),n=r(73109),l=r(24951),o=r(23947),h=r(32594);class d{constructor(e,t){this.localUniforms=new n.o({uTransformMatrix:{value:new s.y,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new a.v({0:this.localUniforms}),this._meshDataHash=Object.create(null),this._gpuBatchableMeshHash=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=this._getMeshData(e),r=t.batched,i=e.batched;if(t.batched=i,r!==i)return!0;if(i){let r=e._geometry;if(r.indices.length!==t.indexSize||r.positions.length!==t.vertexSize)return t.indexSize=r.indices.length,t.vertexSize=r.positions.length,!0;let i=this._getBatchableMesh(e),s=e.texture;if(i.texture._source!==s._source&&i.texture._source!==s._source)return!i.batcher.checkAndUpdateTexture(i,s)}return!1}addRenderable(e,t){let r=this.renderer.renderPipes.batch,{batched:i}=this._getMeshData(e);if(i){let t=this._getBatchableMesh(e);t.texture=e._texture,t.geometry=e._geometry,r.addToBatch(t)}else r.break(t),t.add({renderPipeId:"mesh",mesh:e})}updateRenderable(e){if(e.batched){let t=this._gpuBatchableMeshHash[e.uid];t.texture=e._texture,t.geometry=e._geometry,t.batcher.updateElement(t)}}destroyRenderable(e){this._meshDataHash[e.uid]=null;let t=this._gpuBatchableMeshHash[e.uid];t&&(l.u.return(t),this._gpuBatchableMeshHash[e.uid]=null)}execute({mesh:e}){if(!e.isRenderable)return;e.state.blendMode=e.groupBlendMode;let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),(0,o.V)(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){return this._meshDataHash[e.uid]||this._initMeshData(e)}_initMeshData(e){return this._meshDataHash[e.uid]={batched:e.batched,indexSize:e._geometry.indices?.length,vertexSize:e._geometry.positions?.length},e.on("destroyed",()=>{this.destroyRenderable(e)}),this._meshDataHash[e.uid]}_getBatchableMesh(e){return this._gpuBatchableMeshHash[e.uid]||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=l.u.get(h.X);return t.mesh=e,t.texture=e._texture,t.roundPixels=this.renderer._roundPixels|e._roundPixels,this._gpuBatchableMeshHash[e.uid]=t,t.mesh=e,t}destroy(){for(let e in this._gpuBatchableMeshHash)this._gpuBatchableMeshHash[e]&&l.u.return(this._gpuBatchableMeshHash[e]);this._gpuBatchableMeshHash=null,this._meshDataHash=null,this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}}d.extension={type:[i.nw.WebGLPipes,i.nw.WebGPUPipes,i.nw.CanvasPipes],name:"mesh"},i.Rw.add(d)},32594:function(e,t,r){r.d(t,{X:()=>i});class i{constructor(){this.batcher=null,this.batch=null,this.roundPixels=0,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}get blendMode(){return this.mesh.groupBlendMode}reset(){this.mesh=null,this.texture=null,this.batcher=null,this.batch=null}packIndex(e,t,r){let i=this.geometry.indices;for(let s=0;s<i.length;s++)e[t++]=i[s]+r}packAttributes(e,t,r,i){let s=this.mesh,a=this.geometry,n=s.groupTransform,l=i<<16|65535&this.roundPixels,o=n.a,h=n.b,d=n.c,u=n.d,c=n.tx,p=n.ty,f=a.positions,g=a.getBuffer("aUV"),m=g.data,x=m,_=this.texture.textureMatrix;_.isSimple||(x=this._transformedUvs,(this._textureMatrixUpdateId!==_._updateID||this._uvUpdateId!==g._updateID)&&((!x||x.length<m.length)&&(x=this._transformedUvs=new Float32Array(m.length)),this._textureMatrixUpdateId=_._updateID,this._uvUpdateId=g._updateID,_.multiplyUvs(m,x)));let b=s.groupColorAlpha;for(let i=0;i<f.length;i+=2){let s=f[i],a=f[i+1];e[r]=o*s+d*a+c,e[r+1]=h*s+u*a+p,e[r+2]=x[i],e[r+3]=x[i+1],t[r+4]=b,t[r+5]=l,r+=6}}get vertexSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}}},14738:function(e,t,r){r.d(t,{x:()=>o});var i=r(36697),s=r(74821),a=r(73531),n=r(24584);let l=class e extends a.Z{constructor(...t){let r=t[0]??{};r instanceof Float32Array&&((0,n.a)(n.P,"use new MeshGeometry({ positions, uvs, indices }) instead"),r={positions:r,uvs:t[1],indices:t[2]});let a=(r={...e.defaultOptions,...r}).positions||new Float32Array([0,0,1,0,1,1,0,1]),l=r.uvs||new Float32Array([0,0,1,0,1,1,0,1]),o=r.indices||new Uint32Array([0,1,2,0,2,3]),h=r.shrinkBuffersToFit,d=new i.l({data:a,label:"attribute-mesh-positions",shrinkToFit:h,usage:s.F.VERTEX|s.F.COPY_DST});super({attributes:{aPosition:{buffer:d,format:"float32x2",stride:8,offset:0},aUV:{buffer:new i.l({data:l,label:"attribute-mesh-uvs",shrinkToFit:h,usage:s.F.VERTEX|s.F.COPY_DST}),format:"float32x2",stride:8,offset:0}},indexBuffer:new i.l({data:o,label:"index-mesh-buffer",shrinkToFit:h,usage:s.F.INDEX|s.F.COPY_DST}),topology:r.topology}),this.batchMode="auto"}get positions(){return this.attributes.aPosition.buffer.data}set positions(e){this.attributes.aPosition.buffer.data=e}get uvs(){return this.attributes.aUV.buffer.data}set uvs(e){this.attributes.aUV.buffer.data=e}get indices(){return this.indexBuffer.data}set indices(e){this.indexBuffer.data=e}};l.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};let o=l},34354:function(e,t,r){var i=r(91957),s=r(24951),a=r(32594),n=r(24584),l=r(14738);let o=class e extends l.x{constructor(...e){super({});let t=e[0]??{};"number"==typeof t&&((0,n.a)(n.P,"PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead"),t={width:t,height:e[1],verticesX:e[2],verticesY:e[3]}),this.build(t)}build(t){t={...e.defaultOptions,...t},this.verticesX=this.verticesX??t.verticesX,this.verticesY=this.verticesY??t.verticesY,this.width=this.width??t.width,this.height=this.height??t.height;let r=this.verticesX*this.verticesY,i=[],s=[],a=[],n=this.verticesX-1,l=this.verticesY-1,o=this.width/n,h=this.height/l;for(let e=0;e<r;e++){let t=e%this.verticesX,r=e/this.verticesX|0;i.push(t*o,r*h),s.push(t/n,r/l)}let d=n*l;for(let e=0;e<d;e++){let t=e%n,r=e/n|0,i=r*this.verticesX+t,s=r*this.verticesX+t+1,l=(r+1)*this.verticesX+t,o=(r+1)*this.verticesX+t+1;a.push(i,s,l,s,o,l)}this.buffers[0].data=new Float32Array(i),this.buffers[1].data=new Float32Array(s),this.indexBuffer.data=new Uint32Array(a),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update()}};o.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};let h=o,d=class e extends h{constructor(t={}){t={...e.defaultOptions,...t},super({width:t.width,height:t.height,verticesX:4,verticesY:4}),this.update(t)}update(e){this.width=e.width??this.width,this.height=e.height??this.height,this._originalWidth=e.originalWidth??this._originalWidth,this._originalHeight=e.originalHeight??this._originalHeight,this._leftWidth=e.leftWidth??this._leftWidth,this._rightWidth=e.rightWidth??this._rightWidth,this._topHeight=e.topHeight??this._topHeight,this._bottomHeight=e.bottomHeight??this._bottomHeight,this.updateUvs(),this.updatePositions()}updatePositions(){let e=this.positions,t=this._leftWidth+this._rightWidth,r=this.width>t?1:this.width/t,i=this._topHeight+this._bottomHeight,s=Math.min(r,this.height>i?1:this.height/i);e[9]=e[11]=e[13]=e[15]=this._topHeight*s,e[17]=e[19]=e[21]=e[23]=this.height-this._bottomHeight*s,e[25]=e[27]=e[29]=e[31]=this.height,e[2]=e[10]=e[18]=e[26]=this._leftWidth*s,e[4]=e[12]=e[20]=e[28]=this.width-this._rightWidth*s,e[6]=e[14]=e[22]=e[30]=this.width,this.getBuffer("aPosition").update()}updateUvs(){let e=this.uvs;e[0]=e[8]=e[16]=e[24]=0,e[1]=e[3]=e[5]=e[7]=0,e[6]=e[14]=e[22]=e[30]=1,e[25]=e[27]=e[29]=e[31]=1;let t=1/this._originalWidth,r=1/this._originalHeight;e[2]=e[10]=e[18]=e[26]=t*this._leftWidth,e[9]=e[11]=e[13]=e[15]=r*this._topHeight,e[4]=e[12]=e[20]=e[28]=1-t*this._rightWidth,e[17]=e[19]=e[21]=e[23]=1-r*this._bottomHeight,this.getBuffer("aUV").update()}};d.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};class u{constructor(e){this._gpuSpriteHash=Object.create(null),this._renderer=e}addRenderable(e,t){let r=this._getGpuSprite(e);e._didSpriteUpdate&&this._updateBatchableSprite(e,r),this._renderer.renderPipes.batch.addToBatch(r)}updateRenderable(e){let t=this._gpuSpriteHash[e.uid];e._didSpriteUpdate&&this._updateBatchableSprite(e,t),t.batcher.updateElement(t)}validateRenderable(e){let t=e._texture,r=this._getGpuSprite(e);return r.texture._source!==t._source&&!r.batcher.checkAndUpdateTexture(r,t)}destroyRenderable(e){let t=this._gpuSpriteHash[e.uid];s.u.return(t),this._gpuSpriteHash[e.uid]=null}_updateBatchableSprite(e,t){e._didSpriteUpdate=!1,t.geometry.update(e),t.texture=e._texture}_getGpuSprite(e){return this._gpuSpriteHash[e.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=new a.X;return t.geometry=new d,t.mesh=e,t.texture=e._texture,t.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuSpriteHash[e.uid]=t,e.on("destroyed",()=>{this.destroyRenderable(e)}),t}destroy(){for(let e in this._gpuSpriteHash)this._gpuSpriteHash[e].geometry.destroy();this._gpuSpriteHash=null,this._renderer=null}}u.extension={type:[i.nw.WebGLPipes,i.nw.WebGPUPipes,i.nw.CanvasPipes],name:"nineSliceSprite"},i.Rw.add(u)},28803:function(e,t,r){let i,s;var a=r(91957),n=r(29492),l=r(71423),o=r(23947),h=r(32594),d=r(14738),u=r(30044),c=r(43200),p=r(78300),f=r(71067),g=r(8482),m=r(73109),x=r(41277);let _={name:"tiling-bit",vertex:{header:`
|
|
2
|
-
struct TilingUniforms {
|
|
3
|
-
uMapCoord:mat3x3<f32>,
|
|
4
|
-
uClampFrame:vec4<f32>,
|
|
5
|
-
uClampOffset:vec2<f32>,
|
|
6
|
-
uTextureTransform:mat3x3<f32>,
|
|
7
|
-
uSizeAnchor:vec4<f32>
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
@group(2) @binding(0) var<uniform> tilingUniforms: TilingUniforms;
|
|
11
|
-
@group(2) @binding(1) var uTexture: texture_2d<f32>;
|
|
12
|
-
@group(2) @binding(2) var uSampler: sampler;
|
|
13
|
-
`,main:`
|
|
14
|
-
uv = (tilingUniforms.uTextureTransform * vec3(uv, 1.0)).xy;
|
|
15
|
-
|
|
16
|
-
position = (position - tilingUniforms.uSizeAnchor.zw) * tilingUniforms.uSizeAnchor.xy;
|
|
17
|
-
`},fragment:{header:`
|
|
18
|
-
struct TilingUniforms {
|
|
19
|
-
uMapCoord:mat3x3<f32>,
|
|
20
|
-
uClampFrame:vec4<f32>,
|
|
21
|
-
uClampOffset:vec2<f32>,
|
|
22
|
-
uTextureTransform:mat3x3<f32>,
|
|
23
|
-
uSizeAnchor:vec4<f32>
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
@group(2) @binding(0) var<uniform> tilingUniforms: TilingUniforms;
|
|
27
|
-
@group(2) @binding(1) var uTexture: texture_2d<f32>;
|
|
28
|
-
@group(2) @binding(2) var uSampler: sampler;
|
|
29
|
-
`,main:`
|
|
30
|
-
|
|
31
|
-
var coord = vUV + ceil(tilingUniforms.uClampOffset - vUV);
|
|
32
|
-
coord = (tilingUniforms.uMapCoord * vec3(coord, 1.0)).xy;
|
|
33
|
-
var unclamped = coord;
|
|
34
|
-
coord = clamp(coord, tilingUniforms.uClampFrame.xy, tilingUniforms.uClampFrame.zw);
|
|
35
|
-
|
|
36
|
-
var bias = 0.;
|
|
37
|
-
|
|
38
|
-
if(unclamped.x == coord.x && unclamped.y == coord.y)
|
|
39
|
-
{
|
|
40
|
-
bias = -32.;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
outColor = textureSampleBias(uTexture, uSampler, coord, bias);
|
|
44
|
-
`}},b={name:"tiling-bit",vertex:{header:`
|
|
45
|
-
uniform mat3 uTextureTransform;
|
|
46
|
-
uniform vec4 uSizeAnchor;
|
|
47
|
-
|
|
48
|
-
`,main:`
|
|
49
|
-
uv = (uTextureTransform * vec3(aUV, 1.0)).xy;
|
|
50
|
-
|
|
51
|
-
position = (position - uSizeAnchor.zw) * uSizeAnchor.xy;
|
|
52
|
-
`},fragment:{header:`
|
|
53
|
-
uniform sampler2D uTexture;
|
|
54
|
-
uniform mat3 uMapCoord;
|
|
55
|
-
uniform vec4 uClampFrame;
|
|
56
|
-
uniform vec2 uClampOffset;
|
|
57
|
-
`,main:`
|
|
58
|
-
|
|
59
|
-
vec2 coord = vUV + ceil(uClampOffset - vUV);
|
|
60
|
-
coord = (uMapCoord * vec3(coord, 1.0)).xy;
|
|
61
|
-
vec2 unclamped = coord;
|
|
62
|
-
coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);
|
|
63
|
-
|
|
64
|
-
outColor = texture(uTexture, coord, unclamped == coord ? 0.0 : -32.0);// lod-bias very negative to force lod 0
|
|
65
|
-
|
|
66
|
-
`}};class y extends g.e{constructor(){i??(i=(0,c.d)({name:"tiling-sprite-shader",bits:[p.XH,_,f.j]})),s??(s=(0,c.o)({name:"tiling-sprite-shader",bits:[p.$g,b,f.X]})),super({glProgram:s,gpuProgram:i,resources:{localUniforms:new m.o({uTransformMatrix:{value:new u.y,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),tilingUniforms:new m.o({uMapCoord:{value:new u.y,type:"mat3x3<f32>"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4<f32>"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2<f32>"},uTextureTransform:{value:new u.y,type:"mat3x3<f32>"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4<f32>"}}),uTexture:x.x.EMPTY.source,uSampler:x.x.EMPTY.source.style}})}updateUniforms(e,t,r,i,s,a){let n=this.resources.tilingUniforms,l=a.width,o=a.height,h=a.textureMatrix,d=n.uniforms.uTextureTransform;d.set(r.a*l/e,r.b*l/t,r.c*o/e,r.d*o/t,r.tx/e,r.ty/t),d.invert(),n.uniforms.uMapCoord=h.mapCoord,n.uniforms.uClampFrame=h.uClampFrame,n.uniforms.uClampOffset=h.uClampOffset,n.uniforms.uTextureTransform=d,n.uniforms.uSizeAnchor[0]=e,n.uniforms.uSizeAnchor[1]=t,n.uniforms.uSizeAnchor[2]=i,n.uniforms.uSizeAnchor[3]=s,a&&(this.resources.uTexture=a.source,this.resources.uSampler=a.source.style)}}class w extends d.x{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])})}}let T=new w;class v{constructor(e){this._tilingSpriteDataHash=Object.create(null),this._renderer=e}validateRenderable(e){let t=this._getTilingSpriteData(e),r=t.canBatch;this._updateCanBatch(e);let i=t.canBatch;if(i&&i===r){let{batchableMesh:r}=t;if(r.texture._source!==e.texture._source)return!r.batcher.checkAndUpdateTexture(r,e.texture)}return r!==i}addRenderable(e,t){let r=this._renderer.renderPipes.batch;this._updateCanBatch(e);let i=this._getTilingSpriteData(e),{geometry:s,canBatch:a}=i;if(a){i.batchableMesh||(i.batchableMesh=new h.X);let t=i.batchableMesh;e._didTilingSpriteUpdate&&(e._didTilingSpriteUpdate=!1,this._updateBatchableMesh(e),t.geometry=s,t.mesh=e,t.texture=e._texture),t.roundPixels=this._renderer._roundPixels|e._roundPixels,r.addToBatch(t)}else r.break(t),i.shader||(i.shader=new y),this.updateRenderable(e),t.add(e)}execute(e){let{shader:t}=this._tilingSpriteDataHash[e.uid];t.groups[0]=this._renderer.globalUniforms.bindGroup;let r=t.resources.localUniforms.uniforms;r.uTransformMatrix=e.groupTransform,r.uRound=this._renderer._roundPixels|e._roundPixels,(0,o.V)(e.groupColorAlpha,r.uColor,0),this._renderer.encoder.draw({geometry:T,shader:t,state:n.Z.default2d})}updateRenderable(e){let t=this._getTilingSpriteData(e),{canBatch:r}=t;if(r){let{batchableMesh:r}=t;e._didTilingSpriteUpdate&&this._updateBatchableMesh(e),r.batcher.updateElement(r)}else if(e._didTilingSpriteUpdate){let{shader:r}=t;r.updateUniforms(e.width,e.height,e._tileTransform.matrix,e.anchor.x,e.anchor.y,e.texture)}e._didTilingSpriteUpdate=!1}destroyRenderable(e){let t=this._getTilingSpriteData(e);t.batchableMesh=null,t.shader?.destroy(),this._tilingSpriteDataHash[e.uid]=null}_getTilingSpriteData(e){return this._tilingSpriteDataHash[e.uid]||this._initTilingSpriteData(e)}_initTilingSpriteData(e){let t=new d.x({indices:T.indices,positions:T.positions.slice(),uvs:T.uvs.slice()});return this._tilingSpriteDataHash[e.uid]={canBatch:!0,renderable:e,geometry:t},e.on("destroyed",()=>{this.destroyRenderable(e)}),this._tilingSpriteDataHash[e.uid]}_updateBatchableMesh(e){let{geometry:t}=this._getTilingSpriteData(e),r=e.texture.source.style;"repeat"!==r.addressMode&&(r.addressMode="repeat",r.update()),function(e,t){let r=e.texture,i=r.frame.width,s=r.frame.height,a=0,n=0;e._applyAnchorToTexture&&(a=e.anchor.x,n=e.anchor.y),t[0]=t[6]=-a,t[2]=t[4]=1-a,t[1]=t[3]=-n,t[5]=t[7]=1-n;let l=u.y.shared;l.copyFrom(e._tileTransform.matrix),l.tx/=e.width,l.ty/=e.height,l.invert(),l.scale(e.width/i,e.height/s),function(e,t,r,i){let s=0,a=e.length/2,n=i.a,l=i.b,o=i.c,h=i.d,d=i.tx,u=i.ty;for(r*=2;s<a;){let i=e[r],a=e[r+1];e[r]=n*i+o*a+d,e[r+1]=l*i+h*a+u,r+=t,s++}}(t,2,0,l)}(e,t.uvs);var i=t.positions;let s=e.anchor.x,a=e.anchor.y;i[0]=-s*e.width,i[1]=-a*e.height,i[2]=(1-s)*e.width,i[3]=-a*e.height,i[4]=(1-s)*e.width,i[5]=(1-a)*e.height,i[6]=-s*e.width,i[7]=(1-a)*e.height}destroy(){for(let e in this._tilingSpriteDataHash)this.destroyRenderable(this._tilingSpriteDataHash[e].renderable);this._tilingSpriteDataHash=null,this._renderer=null}_updateCanBatch(e){let t=this._getTilingSpriteData(e),r=e.texture,i=!0;return this._renderer.type===l.g.WEBGL&&(i=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=r.textureMatrix.isSimple&&(i||r.source.isPowerOfTwo),t.canBatch}}v.extension={type:[a.nw.WebGLPipes,a.nw.WebGPUPipes,a.nw.CanvasPipes],name:"tilingSprite"},a.Rw.add(v)},53828:function(e,t,r){var i=r(91957),s=r(79886),a=r(86160),n=r(767),l=r(15792),o=r(45266),h=r(41277),d=r(72193),u=r(24584);class c extends d.Z{constructor(){super(...arguments),this.chars=Object.create(null),this.lineHeight=0,this.fontFamily="",this.fontMetrics={fontSize:0,ascent:0,descent:0},this.baseLineOffset=0,this.distanceField={type:"none",range:0},this.pages=[],this.baseMeasurementFontSize=100,this.baseRenderedFontSize=100}get font(){return(0,u.a)(u.P,"BitmapFont.font is deprecated, please use BitmapFont.fontFamily instead."),this.fontFamily}get pageTextures(){return(0,u.a)(u.P,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}get size(){return(0,u.a)(u.P,"BitmapFont.size is deprecated, please use BitmapFont.fontMetrics.fontSize instead."),this.fontMetrics.fontSize}get distanceFieldRange(){return(0,u.a)(u.P,"BitmapFont.distanceFieldRange is deprecated, please use BitmapFont.distanceField.range instead."),this.distanceField.range}get distanceFieldType(){return(0,u.a)(u.P,"BitmapFont.distanceFieldType is deprecated, please use BitmapFont.distanceField.type instead."),this.distanceField.type}destroy(e=!1){for(let e in this.emit("destroy",this),this.removeAllListeners(),this.chars)this.chars[e].texture.destroy();this.chars=null,e&&(this.pages.forEach(e=>e.texture.destroy(!0)),this.pages=null)}}var p=r(45158),f=r(82175),g=r(32036),m=r(51982),x=r(31315),_=r(24332),b=r(92007),y=r(29331);function w(e){if(""===e)return[];"string"==typeof e&&(e=[e]);let t=[];for(let r=0,i=e.length;r<i;r++){let i=e[r];if(Array.isArray(i)){if(2!==i.length)throw Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${i.length}.`);if(0===i[0].length||0===i[1].length)throw Error("[BitmapFont]: Invalid character delimiter.");let e=i[0].charCodeAt(0),r=i[1].charCodeAt(0);if(r<e)throw Error("[BitmapFont]: Invalid character range.");for(let i=e;i<=r;i++)t.push(String.fromCharCode(i))}else t.push(...Array.from(i))}if(0===t.length)throw Error("[BitmapFont]: Empty set when resolving characters.");return t}class T extends c{constructor(e){super(),this.resolution=1,this.pages=[],this._padding=4,this._measureCache=Object.create(null),this._currentChars=[],this._currentX=0,this._currentY=0,this._currentPageIndex=-1,this._skipKerning=!1;let t=e.style.clone();e.overrideFill&&(t._fill.color=0xffffff,t._fill.alpha=1,t._fill.texture=h.x.WHITE,t._fill.fill=null);let r=t.fontSize;t.fontSize=this.baseMeasurementFontSize;let i=(0,b.M)(t);e.overrideSize?t._stroke&&(t._stroke.width*=this.baseRenderedFontSize/r):t.fontSize=this.baseRenderedFontSize=r,this._style=t,this._skipKerning=e.skipKerning??!1,this.resolution=e.resolution??1,this._padding=e.padding??4,this.fontMetrics=_.c.measureFont(i),this.lineHeight=t.lineHeight||this.fontMetrics.fontSize||t.fontSize}ensureCharacters(e){let t,r=w(e).filter(e=>!this._currentChars.includes(e)).filter((e,t,r)=>r.indexOf(e)===t);if(!r.length)return;this._currentChars=[...this._currentChars,...r];let{canvas:i,context:s}=(t=-1===this._currentPageIndex?this._nextPage():this.pages[this._currentPageIndex]).canvasAndContext,a=t.texture.source,n=this._style,l=this._currentX,d=this._currentY,u=this.baseRenderedFontSize/this.baseMeasurementFontSize,c=this._padding*u,p="italic"===n.fontStyle?2:1,f=0,g=!1;for(let e=0;e<r.length;e++){let t=r[e],m=_.c.measureText(t,n,i,!1);m.lineHeight=m.height;let x=p*m.width*u,b=m.height*u,y=x+2*c,w=b+2*c;if(g=!1,"\n"!==t&&"\r"!==t&&" "!==t&&" "!==t&&(g=!0,f=Math.ceil(Math.max(w,f))),l+y>512&&(l=0,(d+=f)+(f=w)>512)){a.update();let e=this._nextPage();i=e.canvasAndContext.canvas,s=e.canvasAndContext.context,a=e.texture.source,d=0}let T=x/u-(n.dropShadow?.distance??0)-(n._stroke?.width??0);if(this.chars[t]={id:t.codePointAt(0),xOffset:-this._padding,yOffset:-this._padding,xAdvance:T,kerning:{}},g){this._drawGlyph(s,m,l+c,d+c,u,n);let e=a.width*u,r=a.height*u,i=new o.A(l/e*a.width,d/r*a.height,y/e*a.width,w/r*a.height);this.chars[t].texture=new h.x({source:a,frame:i}),l+=Math.ceil(y)}}a.update(),this._currentX=l,this._currentY=d,this._skipKerning&&this._applyKerning(r,s)}get pageTextures(){return(0,u.a)(u.P,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}_applyKerning(e,t){let r=this._measureCache;for(let i=0;i<e.length;i++){let s=e[i];for(let e=0;e<this._currentChars.length;e++){let i=this._currentChars[e],a=r[s];a||(a=r[s]=t.measureText(s).width);let n=r[i];n||(n=r[i]=t.measureText(i).width);let l=t.measureText(s+i).width,o=l-(a+n);o&&(this.chars[s].kerning[i]=o),(o=(l=t.measureText(s+i).width)-(a+n))&&(this.chars[i].kerning[s]=o)}}}_nextPage(){this._currentPageIndex++;let e=this.resolution,t=m.h.getOptimalCanvasAndContext(512,512,e);this._setupContext(t.context,this._style,e);let r=e*(this.baseRenderedFontSize/this.baseMeasurementFontSize),i=new h.x({source:new x.c({resource:t.canvas,resolution:r,alphaMode:"premultiply-alpha-on-upload"})}),s={canvasAndContext:t,texture:i};return this.pages[this._currentPageIndex]=s,s}_setupContext(e,t,r){t.fontSize=this.baseRenderedFontSize,e.scale(r,r),e.font=(0,b.M)(t),t.fontSize=this.baseMeasurementFontSize,e.textBaseline=t.textBaseline;let i=t._stroke,s=i?.width??0;if(i&&(e.lineWidth=s,e.lineJoin=i.join,e.miterLimit=i.miterLimit,e.strokeStyle=(0,y.m)(i,e)),t._fill&&(e.fillStyle=(0,y.m)(t._fill,e)),t.dropShadow){let i=t.dropShadow,s=g.I.shared.setValue(i.color).toArray(),a=i.blur*r,n=i.distance*r;e.shadowColor=`rgba(${255*s[0]},${255*s[1]},${255*s[2]},${i.alpha})`,e.shadowBlur=a,e.shadowOffsetX=Math.cos(i.angle)*n,e.shadowOffsetY=Math.sin(i.angle)*n}else e.shadowColor="black",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0}_drawGlyph(e,t,r,i,s,a){let n=t.text,l=t.fontProperties,o=a._stroke,h=(o?.width??0)*s,d=r+h/2,u=i-h/2,c=l.descent*s,p=t.lineHeight*s;a.stroke&&h&&e.strokeText(n,d,u+p-c),a._fill&&e.fillText(n,d,u+p-c)}destroy(){super.destroy();for(let e=0;e<this.pages.length;e++){let{canvasAndContext:t,texture:r}=this.pages[e];m.h.returnCanvasAndContext(t),r.destroy(!0)}this.pages=null}}function v(e,t,r){let i={width:0,height:0,offsetY:0,scale:t.fontSize/r.baseMeasurementFontSize,lines:[{width:0,charPositions:[],spaceWidth:0,spacesIndex:[],chars:[]}]};i.offsetY=r.baseLineOffset;let s=i.lines[0],a=null,n=!0,l={spaceWord:!1,width:0,start:0,index:0,positions:[],chars:[]},o=e=>{let t=s.width;for(let r=0;r<l.index;r++){let i=e.positions[r];s.chars.push(e.chars[r]),s.charPositions.push(i+t)}s.width+=e.width,n=!1,l.width=0,l.index=0,l.chars.length=0},h=()=>{let e=s.chars.length-1,t=s.chars[e];for(;" "===t;)s.width-=r.chars[t].xAdvance,t=s.chars[--e];i.width=Math.max(i.width,s.width),s={width:0,charPositions:[],chars:[],spaceWidth:0,spacesIndex:[]},n=!0,i.lines.push(s),i.height+=r.lineHeight},d=r.baseMeasurementFontSize/t.fontSize,u=t.letterSpacing*d,c=t.wordWrapWidth*d;for(let i=0;i<e.length+1;i++){let d,p=i===e.length;p||(d=e[i]);let f=r.chars[d]||r.chars[" "];if(/(?:\s)/.test(d)||"\r"===d||"\n"===d||p){if(!n&&t.wordWrap&&s.width+l.width-u>c?h():l.start=s.width,o(l),p||s.charPositions.push(0),"\r"===d||"\n"===d)0!==s.width&&h();else if(!p){let e=f.xAdvance+(f.kerning[a]||0)+u;s.width+=e,s.spaceWidth=e,s.spacesIndex.push(s.charPositions.length),s.chars.push(d)}}else{let e=f.kerning[a]||0,t=f.xAdvance+e+u;l.positions[l.index++]=l.width+e,l.chars.push(d),l.width+=t}a=d}return h(),"center"===t.align?function(e){for(let t=0;t<e.lines.length;t++){let r=e.lines[t],i=e.width/2-r.width/2;for(let e=0;e<r.charPositions.length;e++)r.charPositions[e]+=i}}(i):"right"===t.align?function(e){for(let t=0;t<e.lines.length;t++){let r=e.lines[t],i=e.width-r.width;for(let e=0;e<r.charPositions.length;e++)r.charPositions[e]+=i}}(i):"justify"===t.align&&function(e){let t=e.width;for(let r=0;r<e.lines.length;r++){let i=e.lines[r],s=0,a=i.spacesIndex[s++],n=0,l=i.spacesIndex.length,o=(t-i.width)/l;for(let e=0;e<i.charPositions.length;e++)e===a&&(a=i.spacesIndex[s++],n+=o),i.charPositions[e]+=n}}(i),i}let S=new class{constructor(){this.ALPHA=[["a","z"],["A","Z"]," "],this.NUMERIC=[["0","9"]],this.ALPHANUMERIC=[["a","z"],["A","Z"],["0","9"]," "],this.ASCII=[[" ","~"]],this.defaultOptions={chars:this.ALPHANUMERIC,resolution:1,padding:4,skipKerning:!1}}getFont(e,t){let r=`${t.fontFamily}-bitmap`,i=!0;if(t._fill.fill&&(r+=t._fill.fill.uid,i=!1),!p.C.has(r)){let e=new T({style:t,overrideFill:i,overrideSize:!0,...this.defaultOptions});e.once("destroy",()=>p.C.remove(r)),p.C.set(r,e)}let s=p.C.get(r);return s.ensureCharacters?.(e),s}getLayout(e,t){let r=this.getFont(e,t);return v(e.split(""),t,r)}measureText(e,t){return this.getLayout(e,t)}install(...e){let t=e[0];"string"==typeof t&&(t={name:t,style:e[1],chars:e[2]?.chars,resolution:e[2]?.resolution,padding:e[2]?.padding,skipKerning:e[2]?.skipKerning},(0,u.a)(u.P,"BitmapFontManager.install(name, style, options) is deprecated, use BitmapFontManager.install({name, style, ...options})"));let r=t?.name;if(!r)throw Error("[BitmapFontManager] Property `name` is required.");let i=(t={...this.defaultOptions,...t}).style,s=i instanceof f.p?i:new f.p(i),a=null!==s._fill.fill&&void 0!==s._fill.fill,n=new T({style:s,overrideFill:a,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1}),l=w(t.chars);return n.ensureCharacters(l.join("")),p.C.set(`${r}-bitmap`,n),n.once("destroy",()=>p.C.remove(`${r}-bitmap`)),n}uninstall(e){let t=`${e}-bitmap`,r=p.C.get(t);r&&(p.C.remove(t),r.destroy())}};class C extends c{constructor(e,t){super();let{textures:r,data:i}=e;Object.keys(i.pages).forEach(e=>{let t=r[i.pages[parseInt(e,10)].id];this.pages.push({texture:t})}),Object.keys(i.chars).forEach(e=>{let t=i.chars[e],{frame:s,source:a}=r[t.page],n=new o.A(t.x+s.x,t.y+s.y,t.width,t.height),l=new h.x({source:a,frame:n});this.chars[e]={id:e.codePointAt(0),xOffset:t.xOffset,yOffset:t.yOffset,xAdvance:t.xAdvance,kerning:t.kerning??{},texture:l}}),this.baseRenderedFontSize=i.fontSize,this.baseMeasurementFontSize=i.fontSize,this.fontMetrics={ascent:0,descent:0,fontSize:i.fontSize},this.baseLineOffset=i.baseLineOffset,this.lineHeight=i.lineHeight,this.fontFamily=i.fontFamily,this.distanceField=i.distanceField??{type:"none",range:0},this.url=t}destroy(){super.destroy();for(let e=0;e<this.pages.length;e++){let{texture:t}=this.pages[e];t.destroy(!0)}this.pages=null}static install(e){S.install(e)}static uninstall(e){S.uninstall(e)}}let P={test:e=>"string"==typeof e&&e.startsWith("info face="),parse(e){let t=e.match(/^[a-z]+\s+.+$/gm),r={info:[],common:[],page:[],char:[],chars:[],kerning:[],kernings:[],distanceField:[]};for(let e in t){let i=t[e].match(/^[a-z]+/gm)[0],s=t[e].match(/[a-zA-Z]+=([^\s"']+|"([^"]*)")/gm),a={};for(let e in s){let t=s[e].split("="),r=t[0],i=t[1].replace(/"/gm,""),n=parseFloat(i),l=isNaN(n)?i:n;a[r]=l}r[i].push(a)}let i={chars:{},pages:[],lineHeight:0,fontSize:0,fontFamily:"",distanceField:null,baseLineOffset:0},[s]=r.info,[a]=r.common,[n]=r.distanceField??[];n&&(i.distanceField={range:parseInt(n.distanceRange,10),type:n.fieldType}),i.fontSize=parseInt(s.size,10),i.fontFamily=s.face,i.lineHeight=parseInt(a.lineHeight,10);let l=r.page;for(let e=0;e<l.length;e++)i.pages.push({id:parseInt(l[e].id,10)||0,file:l[e].file});let o={};i.baseLineOffset=i.lineHeight-parseInt(a.base,10);let h=r.char;for(let e=0;e<h.length;e++){let t=h[e],r=parseInt(t.id,10),s=t.letter??t.char??String.fromCharCode(r);"space"===s&&(s=" "),o[r]=s,i.chars[s]={id:r,page:parseInt(t.page,10)||0,x:parseInt(t.x,10),y:parseInt(t.y,10),width:parseInt(t.width,10),height:parseInt(t.height,10),xOffset:parseInt(t.xoffset,10),yOffset:parseInt(t.yoffset,10),xAdvance:parseInt(t.xadvance,10),kerning:{}}}let d=r.kerning||[];for(let e=0;e<d.length;e++){let t=parseInt(d[e].first,10),r=parseInt(d[e].second,10),s=parseInt(d[e].amount,10);i.chars[o[r]].kerning[o[t]]=s}return i}},M={test:e=>"string"!=typeof e&&"getElementsByTagName"in e&&e.getElementsByTagName("page").length&&null!==e.getElementsByTagName("info")[0].getAttribute("face"),parse(e){let t={chars:{},pages:[],lineHeight:0,fontSize:0,fontFamily:"",distanceField:null,baseLineOffset:0},r=e.getElementsByTagName("info")[0],i=e.getElementsByTagName("common")[0],s=e.getElementsByTagName("distanceField")[0];s&&(t.distanceField={type:s.getAttribute("fieldType"),range:parseInt(s.getAttribute("distanceRange"),10)});let a=e.getElementsByTagName("page"),n=e.getElementsByTagName("char"),l=e.getElementsByTagName("kerning");t.fontSize=parseInt(r.getAttribute("size"),10),t.fontFamily=r.getAttribute("face"),t.lineHeight=parseInt(i.getAttribute("lineHeight"),10);for(let e=0;e<a.length;e++)t.pages.push({id:parseInt(a[e].getAttribute("id"),10)||0,file:a[e].getAttribute("file")});let o={};t.baseLineOffset=t.lineHeight-parseInt(i.getAttribute("base"),10);for(let e=0;e<n.length;e++){let r=n[e],i=parseInt(r.getAttribute("id"),10),s=r.getAttribute("letter")??r.getAttribute("char")??String.fromCharCode(i);"space"===s&&(s=" "),o[i]=s,t.chars[s]={id:i,page:parseInt(r.getAttribute("page"),10)||0,x:parseInt(r.getAttribute("x"),10),y:parseInt(r.getAttribute("y"),10),width:parseInt(r.getAttribute("width"),10),height:parseInt(r.getAttribute("height"),10),xOffset:parseInt(r.getAttribute("xoffset"),10),yOffset:parseInt(r.getAttribute("yoffset"),10),xAdvance:parseInt(r.getAttribute("xadvance"),10),kerning:{}}}for(let e=0;e<l.length;e++){let r=parseInt(l[e].getAttribute("first"),10),i=parseInt(l[e].getAttribute("second"),10),s=parseInt(l[e].getAttribute("amount"),10);t.chars[o[i]].kerning[o[r]]=s}return t}},F={test:e=>!!("string"==typeof e&&e.includes("<font>"))&&M.test(n.z.get().parseXML(e)),parse:e=>M.parse(n.z.get().parseXML(e))},R=[".xml",".fnt"],B={extension:i.nw.CacheParser,test:e=>e instanceof C,getCacheableAssets(e,t){let r={};return e.forEach(e=>{r[e]=t}),r[`${t.fontFamily}-bitmap`]=t,r}},A={extension:{type:i.nw.LoadParser,priority:s.Q.Normal},test:e=>R.includes(l.E.extname(e).toLowerCase()),testParse:async e=>P.test(e)||F.test(e),async parse(e,t,r){let i=P.test(e)?P.parse(e):F.parse(e),{src:s}=t,{pages:n}=i,o=[];for(let e=0;e<n.length;++e){let t=n[e].file,r=l.E.join(l.E.dirname(s),t);r=(0,a.u)(r,s),o.push(r)}let h=await r.load(o);return new C({data:i,textures:o.map(e=>h[e])},s)},async load(e,t){let r=await n.z.get().fetch(e);return await r.text()},async unload(e,t,r){await Promise.all(e.pages.map(e=>r.unload(e.texture.source._sourceOrigin))),e.destroy()}};var k=r(24951),z=r(40318),U=r(30044),I=r(29465),H=r(43200),O=r(23149),G=r(39193),W=r(71067),E=r(17094),L=r(8482),D=r(73109);let $={name:"local-uniform-msdf-bit",vertex:{header:`
|
|
67
|
-
struct LocalUniforms {
|
|
68
|
-
uColor:vec4<f32>,
|
|
69
|
-
uTransformMatrix:mat3x3<f32>,
|
|
70
|
-
uDistance: f32,
|
|
71
|
-
uRound:f32,
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@group(2) @binding(0) var<uniform> localUniforms : LocalUniforms;
|
|
75
|
-
`,main:`
|
|
76
|
-
vColor *= localUniforms.uColor;
|
|
77
|
-
modelMatrix *= localUniforms.uTransformMatrix;
|
|
78
|
-
`,end:`
|
|
79
|
-
if(localUniforms.uRound == 1)
|
|
80
|
-
{
|
|
81
|
-
vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
|
|
82
|
-
}
|
|
83
|
-
`},fragment:{header:`
|
|
84
|
-
struct LocalUniforms {
|
|
85
|
-
uColor:vec4<f32>,
|
|
86
|
-
uTransformMatrix:mat3x3<f32>,
|
|
87
|
-
uDistance: f32
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
@group(2) @binding(0) var<uniform> localUniforms : LocalUniforms;
|
|
91
|
-
`,main:`
|
|
92
|
-
outColor = vColor * calculateMSDFAlpha(outColor, localUniforms.uDistance);
|
|
93
|
-
`}},X={name:"local-uniform-msdf-bit",vertex:{header:`
|
|
94
|
-
uniform mat3 uTransformMatrix;
|
|
95
|
-
uniform vec4 uColor;
|
|
96
|
-
uniform float uRound;
|
|
97
|
-
`,main:`
|
|
98
|
-
vColor *= uColor;
|
|
99
|
-
modelMatrix *= uTransformMatrix;
|
|
100
|
-
`,end:`
|
|
101
|
-
if(uRound == 1.)
|
|
102
|
-
{
|
|
103
|
-
gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
|
|
104
|
-
}
|
|
105
|
-
`},fragment:{header:`
|
|
106
|
-
uniform float uDistance;
|
|
107
|
-
`,main:`
|
|
108
|
-
outColor = vColor * calculateMSDFAlpha(outColor, uDistance);
|
|
109
|
-
`}},V={name:"msdf-bit",fragment:{header:`
|
|
110
|
-
fn calculateMSDFAlpha(msdfColor:vec4<f32>, distance:f32) -> f32 {
|
|
111
|
-
|
|
112
|
-
// MSDF
|
|
113
|
-
var median = msdfColor.r + msdfColor.g + msdfColor.b -
|
|
114
|
-
min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -
|
|
115
|
-
max(msdfColor.r, max(msdfColor.g, msdfColor.b));
|
|
116
|
-
|
|
117
|
-
// SDF
|
|
118
|
-
median = min(median, msdfColor.a);
|
|
119
|
-
|
|
120
|
-
var screenPxDistance = distance * (median - 0.5);
|
|
121
|
-
var alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);
|
|
122
|
-
if (median < 0.01) {
|
|
123
|
-
alpha = 0.0;
|
|
124
|
-
} else if (median > 0.99) {
|
|
125
|
-
alpha = 1.0;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
return alpha;
|
|
129
|
-
}
|
|
130
|
-
`}},Y={name:"msdf-bit",fragment:{header:`
|
|
131
|
-
float calculateMSDFAlpha(vec4 msdfColor, float distance) {
|
|
132
|
-
|
|
133
|
-
// MSDF
|
|
134
|
-
float median = msdfColor.r + msdfColor.g + msdfColor.b -
|
|
135
|
-
min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -
|
|
136
|
-
max(msdfColor.r, max(msdfColor.g, msdfColor.b));
|
|
137
|
-
|
|
138
|
-
// SDF
|
|
139
|
-
median = min(median, msdfColor.a);
|
|
140
|
-
|
|
141
|
-
float screenPxDistance = distance * (median - 0.5);
|
|
142
|
-
float alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);
|
|
143
|
-
|
|
144
|
-
if (median < 0.01) {
|
|
145
|
-
alpha = 0.0;
|
|
146
|
-
} else if (median > 0.99) {
|
|
147
|
-
alpha = 1.0;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
return alpha;
|
|
151
|
-
}
|
|
152
|
-
`}};class K extends L.e{constructor(){let e=new D.o({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new U.y,type:"mat3x3<f32>"},uDistance:{value:4,type:"f32"},uRound:{value:0,type:"f32"}});super({glProgram:(0,H.o)({name:"sdf-shader",bits:[O.T,(0,G.h)(I.A),X,Y,W.X]}),gpuProgram:(0,H.d)({name:"sdf-shader",bits:[O.M,(0,G.m)(I.A),$,V,W.j]}),resources:{localUniforms:e,batchSamplers:E.y}})}}class j{constructor(e){this._gpuBitmapText={},this._renderer=e}validateRenderable(e){let t=this._getGpuBitmapText(e);return e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,t)),this._renderer.renderPipes.graphics.validateRenderable(t)}addRenderable(e,t){let r=this._getGpuBitmapText(e);N(e,r),e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,r)),this._renderer.renderPipes.graphics.addRenderable(r,t),r.context.customShader&&this._updateDistanceField(e)}destroyRenderable(e){this._destroyRenderableByUid(e.uid)}_destroyRenderableByUid(e){k.u.return(this._gpuBitmapText[e]),this._gpuBitmapText[e]=null}updateRenderable(e){let t=this._getGpuBitmapText(e);N(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:r}=t,i=S.getFont(e.text,e._style);r.clear(),"none"===i.distanceField.type||r.customShader||(this._sdfShader||(this._sdfShader=new K),r.customShader=this._sdfShader);let s=Array.from(e.text),a=e._style,n=(a._stroke?.width||0)/2;n+=i.baseLineOffset;let l=v(s,a,i),o=0,h=a.padding,d=l.scale;r.translate(-e._anchor._x*l.width-h,-e._anchor._y*(l.height+l.offsetY)-h).scale(d,d);let u=a._fill.color;for(let e=0;e<l.lines.length;e++){let t=l.lines[e];for(let e=0;e<t.charPositions.length;e++){let a=s[o++],l=i.chars[a];l?.texture&&r.texture(l.texture,u||"black",Math.round(t.charPositions[e]+l.xOffset),Math.round(n+l.yOffset))}n+=i.lineHeight}}_getGpuBitmapText(e){return this._gpuBitmapText[e.uid]||this.initGpuText(e)}initGpuText(e){let t=k.u.get(z.T);return this._gpuBitmapText[e.uid]=t,this._updateContext(e,t),e.on("destroyed",()=>{this.destroyRenderable(e)}),this._gpuBitmapText[e.uid]}_updateDistanceField(e){let t=this._getGpuBitmapText(e).context,r=e._style.fontFamily,i=p.C.get(`${r}-bitmap`),{a:s,b:a,c:n,d:l}=e.groupTransform,o=(Math.abs(Math.sqrt(s*s+a*a))+Math.abs(Math.sqrt(n*n+l*l)))/2,h=i.baseRenderedFontSize/e._style.fontSize,d=e.resolution??this._renderer.resolution,u=o*i.distanceField.range*(1/h)*d;t.customShader.resources.localUniforms.uniforms.uDistance=u}destroy(){for(let e in this._gpuBitmapText)this._destroyRenderableByUid(e);this._gpuBitmapText=null,this._sdfShader?.destroy(!0),this._sdfShader=null,this._renderer=null}}function N(e,t){t.groupTransform=e.groupTransform,t.groupColorAlpha=e.groupColorAlpha,t.groupColor=e.groupColor,t.groupBlendMode=e.groupBlendMode,t.globalDisplayStatus=e.globalDisplayStatus,t.groupTransform=e.groupTransform,t.localDisplayStatus=e.localDisplayStatus,t.groupAlpha=e.groupAlpha,t._roundPixels=e._roundPixels}j.extension={type:[i.nw.WebGLPipes,i.nw.WebGPUPipes,i.nw.CanvasPipes],name:"bitmapText"},i.Rw.add(j,A,B)},19921:function(e,t,r){let i;var s=r(91957),a=r(41277),n=r(88515),l=r(24951),o=r(88556);class h{constructor(e){this._gpuText=Object.create(null),this._renderer=e}validateRenderable(e){let t=this._getGpuText(e),r=e._getKey();return t.textureNeedsUploading?(t.textureNeedsUploading=!1,!0):t.currentKey!==r}addRenderable(e){let t=this._getGpuText(e).batchableSprite;e._didTextUpdate&&this._updateText(e),this._renderer.renderPipes.batch.addToBatch(t)}updateRenderable(e){let t=this._getGpuText(e).batchableSprite;e._didTextUpdate&&this._updateText(e),t.batcher.updateElement(t)}destroyRenderable(e){this._destroyRenderableById(e.uid)}_destroyRenderableById(e){let t=this._gpuText[e];this._renderer.htmlText.decreaseReferenceCount(t.currentKey),l.u.return(t.batchableSprite),this._gpuText[e]=null}_updateText(e){let t=e._getKey(),r=this._getGpuText(e),i=r.batchableSprite;r.currentKey!==t&&this._updateGpuText(e).catch(e=>{console.error(e)}),e._didTextUpdate=!1;let s=e._style.padding;(0,n.w)(i.bounds,e._anchor,i.texture,s)}async _updateGpuText(e){e._didTextUpdate=!1;let t=this._getGpuText(e);if(t.generatingTexture)return;let r=e._getKey();this._renderer.htmlText.decreaseReferenceCount(t.currentKey),t.generatingTexture=!0,t.currentKey=r;let i=e.resolution??this._renderer.resolution,s=await this._renderer.htmlText.getManagedTexture(e.text,i,e._style,e._getKey()),a=t.batchableSprite;a.texture=t.texture=s,t.generatingTexture=!1,t.textureNeedsUploading=!0,e.onViewUpdate();let l=e._style.padding;(0,n.w)(a.bounds,e._anchor,a.texture,l)}_getGpuText(e){return this._gpuText[e.uid]||this.initGpuText(e)}initGpuText(e){let t={texture:a.x.EMPTY,currentKey:"--",batchableSprite:l.u.get(o.c),textureNeedsUploading:!1,generatingTexture:!1},r=t.batchableSprite;return r.renderable=e,r.texture=a.x.EMPTY,r.bounds={minX:0,maxX:1,minY:0,maxY:0},r.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuText[e.uid]=t,e.on("destroyed",()=>{this.destroyRenderable(e)}),t}destroy(){for(let e in this._gpuText)this._destroyRenderableById(e);this._gpuText=null,this._renderer=null}}h.extension={type:[s.nw.WebGLPipes,s.nw.WebGPUPipes,s.nw.CanvasPipes],name:"htmlText"};var d=r(50900),u=r(71423),c=r(767),p=r(92245),f=r(13263);let g="http://www.w3.org/2000/svg",m="http://www.w3.org/1999/xhtml";class x{constructor(){this.svgRoot=document.createElementNS(g,"svg"),this.foreignObject=document.createElementNS(g,"foreignObject"),this.domElement=document.createElementNS(m,"div"),this.styleElement=document.createElementNS(m,"style"),this.image=new Image;let{foreignObject:e,svgRoot:t,styleElement:r,domElement:i}=this;e.setAttribute("width","10000"),e.setAttribute("height","10000"),e.style.overflow="hidden",t.appendChild(e),e.appendChild(r),e.appendChild(i)}}var _=r(82175),b=r(71722),y=r(32036);function w(e){let t=y.I.shared.setValue(e.color).setAlpha(e.alpha).toHexa(),r=Math.round(Math.cos(e.angle)*e.distance),i=Math.round(Math.sin(e.angle)*e.distance),s=`${r}px ${i}px`;return e.blur>0?`text-shadow: ${s} ${e.blur}px ${t}`:`text-shadow: ${s} ${t}`}function T(e){return`-webkit-text-stroke-width: ${e.width}px;-webkit-text-stroke-color: ${y.I.shared.setValue(e.color).toHex()};text-stroke-width: ${e.width}px;text-stroke-color: ${y.I.shared.setValue(e.color).toHex()};paint-order: stroke`}let v={fontSize:"font-size: {{VALUE}}px",fontFamily:"font-family: {{VALUE}}",fontWeight:"font-weight: {{VALUE}}",fontStyle:"font-style: {{VALUE}}",fontVariant:"font-variant: {{VALUE}}",letterSpacing:"letter-spacing: {{VALUE}}px",align:"text-align: {{VALUE}}",padding:"padding: {{VALUE}}px",whiteSpace:"white-space: {{VALUE}}",lineHeight:"line-height: {{VALUE}}px",wordWrapWidth:"max-width: {{VALUE}}px"},S={fill:e=>`color: ${y.I.shared.setValue(e).toHex()}`,breakWords:e=>`word-wrap: ${e?"break-all":"break-word"}`,stroke:T,dropShadow:w};class C extends _.p{constructor(e={}){super(e),this._cssOverrides=[],this.cssOverrides??(this.cssOverrides=e.cssOverrides),this.tagStyles=e.tagStyles??{}}set cssOverrides(e){this._cssOverrides=e instanceof Array?e:[e],this.update()}get cssOverrides(){return this._cssOverrides}_generateKey(){return this._styleKey=(0,b.L)(this)+this._cssOverrides.join("-"),this._styleKey}update(){this._cssStyle=null,super.update()}clone(){return new C({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,cssOverrides:this.cssOverrides})}get cssStyle(){return this._cssStyle||(this._cssStyle=function(e){let t=e._stroke,r=e._fill,i=[`color: ${y.I.shared.setValue(r.color).toHex()}`,`font-size: ${e.fontSize}px`,`font-family: ${e.fontFamily}`,`font-weight: ${e.fontWeight}`,`font-style: ${e.fontStyle}`,`font-variant: ${e.fontVariant}`,`letter-spacing: ${e.letterSpacing}px`,`text-align: ${e.align}`,`padding: ${e.padding}px`,`white-space: ${"pre"===e.whiteSpace&&e.wordWrap?"pre-wrap":e.whiteSpace}`,...e.lineHeight?[`line-height: ${e.lineHeight}px`]:[],...e.wordWrap?[`word-wrap: ${e.breakWords?"break-all":"break-word"}`,`max-width: ${e.wordWrapWidth}px`]:[],...t?[T(t)]:[],...e.dropShadow?[w(e.dropShadow)]:[],...e.cssOverrides].join(";"),s=[`div { ${i} }`];return function(e,t){for(let r in e){let i=e[r],s=[];for(let e in i)S[e]?s.push(S[e](i[e])):v[e]&&s.push(v[e].replace("{{VALUE}}",i[e]));t.push(`${r} { ${s.join(";")} }`)}}(e.tagStyles,s),s.join(" ")}(this)),this._cssStyle}addOverride(...e){let t=e.filter(e=>!this.cssOverrides.includes(e));t.length>0&&(this.cssOverrides.push(...t),this.update())}removeOverride(...e){let t=e.filter(e=>this.cssOverrides.includes(e));t.length>0&&(this.cssOverrides=this.cssOverrides.filter(e=>!t.includes(e)),this.update())}set fill(e){"string"!=typeof e&&"number"!=typeof e&&(0,p.Z)("[HTMLTextStyle] only color fill is not supported by HTMLText"),super.fill=e}set stroke(e){e&&"string"!=typeof e&&"number"!=typeof e&&(0,p.Z)("[HTMLTextStyle] only color stroke is not supported by HTMLText"),super.stroke=e}}var P=r(45158);async function M(e){let t=await c.z.get().fetch(e),r=await t.blob(),i=new FileReader;return await new Promise((e,t)=>{i.onloadend=()=>e(i.result),i.onerror=t,i.readAsDataURL(r)})}async function F(e,t){let r=await M(t);return`@font-face {
|
|
153
|
-
font-family: "${e.fontFamily}";
|
|
154
|
-
src: url('${r}');
|
|
155
|
-
font-weight: ${e.fontWeight};
|
|
156
|
-
font-style: ${e.fontStyle};
|
|
157
|
-
}`}let R=new Map;async function B(e,t,r){let i=e.filter(e=>P.C.has(`${e}-and-url`)).map((e,i)=>{if(!R.has(e)){let{url:s}=P.C.get(`${e}-and-url`);0===i?R.set(e,F(t,s)):R.set(e,F({fontWeight:r.fontWeight,fontStyle:r.fontStyle,fontFamily:e},s))}return R.get(e)});return(await Promise.all(i)).join("\n")}var A=r(51982),k=r(24332);class z{constructor(e){this._activeTextures={},this._renderer=e,this._createCanvas=e.type===u.g.WEBGPU}getTexture(e){return this._buildTexturePromise(e.text,e.resolution,e.style)}getManagedTexture(e,t,r,i){if(this._activeTextures[i])return this._increaseReferenceCount(i),this._activeTextures[i].promise;let s=this._buildTexturePromise(e,t,r).then(e=>(this._activeTextures[i].texture=e,e));return this._activeTextures[i]={texture:null,promise:s,usageCount:1},s}async _buildTexturePromise(e,t,r){var s;let a=l.u.get(x),n=function(e,t){let r=t.fontFamily,i=[],s={},a=e.match(/font-family:([^;"\s]+)/g);function n(e){s[e]||(i.push(e),s[e]=!0)}if(Array.isArray(r))for(let e=0;e<r.length;e++)n(r[e]);else n(r);for(let e in a&&a.forEach(e=>{n(e.split(":")[1].trim())}),t.tagStyles)n(t.tagStyles[e].fontFamily);return i}(e,r),o=await B(n,r,C.defaultTextStyle),h=function(e,t,r,s){let{domElement:a,styleElement:n,svgRoot:l}=s=s||i||(i=new x);a.innerHTML=`<style>${t.cssStyle}</style><div>${e}</div>`,a.setAttribute("style","transform-origin: top left; display: inline-block"),r&&(n.textContent=r),document.body.appendChild(l);let o=a.getBoundingClientRect();l.remove();let h=k.c.measureFont(t.fontStyle).descent;return{width:o.width,height:o.height+h}}(e,r,o,a),d=Math.ceil(Math.ceil(Math.max(1,h.width)+2*r.padding)*t),u=Math.ceil(Math.ceil(Math.max(1,h.height)+2*r.padding)*t),p=a.image;p.width=0|d,p.height=0|u;let g=function(e,t,r,i,s){let{domElement:a,styleElement:n,svgRoot:l}=s;a.innerHTML=`<style>${t.cssStyle}</style><div>${e}</div>`,a.setAttribute("style",`transform: scale(${r});transform-origin: top left; display: inline-block`),n.textContent=i;let{width:o,height:h}=s.image;return l.setAttribute("width",o.toString()),l.setAttribute("height",h.toString()),new XMLSerializer().serializeToString(l)}(e,r,t,o,a);await (s=function(){let{userAgent:e}=c.z.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(e)}()&&n.length>0,new Promise(async e=>{s&&await new Promise(e=>setTimeout(e,100)),p.onload=()=>{e()},p.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(g)}`,p.crossOrigin="anonymous"}));let m=p;this._createCanvas&&(m=function(e,t){let r=A.h.getOptimalCanvasAndContext(e.width,e.height,t),{context:i}=r;return i.clearRect(0,0,e.width,e.height),i.drawImage(e,0,0),A.h.returnCanvasAndContext(r),r.canvas}(p,t));let _=(0,f.H)(m,p.width,p.height,t);return this._createCanvas&&this._renderer.texture.initSource(_.source),l.u.return(a),_}_increaseReferenceCount(e){this._activeTextures[e].usageCount++}decreaseReferenceCount(e){let t=this._activeTextures[e];t&&(t.usageCount--,0===t.usageCount&&(t.texture?this._cleanUp(t):t.promise.then(e=>{t.texture=e,this._cleanUp(t)}).catch(()=>{(0,p.Z)("HTMLTextSystem: Failed to clean texture")}),this._activeTextures[e]=null))}_cleanUp(e){d.z.returnTexture(e.texture),e.texture.source.resource=null,e.texture.source.uploadMethodId="unknown"}getReferenceCount(e){return this._activeTextures[e].usageCount}destroy(){this._activeTextures=null}}z.extension={type:[s.nw.WebGLSystem,s.nw.WebGPUSystem,s.nw.CanvasSystem],name:"htmlText"},z.defaultFontOptions={fontFamily:"Arial",fontStyle:"normal",fontWeight:"normal"},s.Rw.add(z),s.Rw.add(h)},29331:function(e,t,r){r.d(t,{m:()=>h});var i=r(32036),s=r(30044),a=r(41277),n=r(92245),l=r(46456),o=r(23901);function h(e,t){if(e.texture===a.x.WHITE&&!e.fill)return i.I.shared.setValue(e.color).toHex();if(e.fill){if(e.fill instanceof o.h){let r=e.fill,i=t.createPattern(r.texture.source.resource,"repeat"),a=r.transform.copyTo(s.y.shared);return a.scale(r.texture.frame.width,r.texture.frame.height),i.setTransform(a),i}else if(e.fill instanceof l.f){let r=e.fill;if("linear"===r.type){let e=t.createLinearGradient(r.x0,r.y0,r.x1,r.y1);return r.gradientStops.forEach(t=>{e.addColorStop(t.offset,i.I.shared.setValue(t.color).toHex())}),e}}}else{let r=t.createPattern(e.texture.source.resource,"repeat"),i=e.matrix.copyTo(s.y.shared);return i.scale(e.texture.frame.width,e.texture.frame.height),r.setTransform(i),r}return(0,n.Z)("FillStyle not recognised",e),"red"}},66241:function(e,t,r){var i=r(91957),s=r(88515),a=r(24951),n=r(88556);class l{constructor(e){this._gpuText=Object.create(null),this._renderer=e}validateRenderable(e){let t=this._getGpuText(e),r=e._getKey();if(t.currentKey!==r){let r=e.resolution??this._renderer.resolution,{width:i,height:s}=this._renderer.canvasText.getTextureSize(e.text,r,e._style);return 1!==this._renderer.canvasText.getReferenceCount(t.currentKey)||i!==t.texture._source.width||s!==t.texture._source.height}return!1}addRenderable(e,t){let r=this._getGpuText(e).batchableSprite;e._didTextUpdate&&this._updateText(e),this._renderer.renderPipes.batch.addToBatch(r)}updateRenderable(e){let t=this._getGpuText(e).batchableSprite;e._didTextUpdate&&this._updateText(e),t.batcher.updateElement(t)}destroyRenderable(e){this._destroyRenderableById(e.uid)}_destroyRenderableById(e){let t=this._gpuText[e];this._renderer.canvasText.decreaseReferenceCount(t.currentKey),a.u.return(t.batchableSprite),this._gpuText[e]=null}_updateText(e){let t=e._getKey(),r=this._getGpuText(e),i=r.batchableSprite;r.currentKey!==t&&this._updateGpuText(e),e._didTextUpdate=!1;let a=e._style.padding;(0,s.w)(i.bounds,e._anchor,i.texture,a)}_updateGpuText(e){let t=this._getGpuText(e),r=t.batchableSprite;t.texture&&this._renderer.canvasText.decreaseReferenceCount(t.currentKey),t.texture=r.texture=this._renderer.canvasText.getManagedTexture(e),t.currentKey=e._getKey(),r.texture=t.texture}_getGpuText(e){return this._gpuText[e.uid]||this.initGpuText(e)}initGpuText(e){let t={texture:null,currentKey:"--",batchableSprite:a.u.get(n.c)};return t.batchableSprite.renderable=e,t.batchableSprite.bounds={minX:0,maxX:1,minY:0,maxY:0},t.batchableSprite.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuText[e.uid]=t,this._updateText(e),e.on("destroyed",()=>{this.destroyRenderable(e)}),t}destroy(){for(let e in this._gpuText)this._destroyRenderableById(e);this._gpuText=null,this._renderer=null}}l.extension={type:[i.nw.WebGLPipes,i.nw.WebGPUPipes,i.nw.CanvasPipes],name:"text"};var o=r(32036),h=r(45854),d=r(51982),u=r(50900),c=r(45266);function p(e,t,r){for(let i=0,s=4*r*t;i<t;++i,s+=4)if(0!==e[s+3])return!1;return!0}function f(e,t,r,i,s){let a=4*t;for(let t=i,n=i*a+4*r;t<=s;++t,n+=a)if(0!==e[n+3])return!1;return!0}var g=r(24584),m=r(82175),x=r(13263),_=r(24332),b=r(92007),y=r(29331);class w{constructor(e){this._activeTextures={},this._renderer=e}getTextureSize(e,t,r){let i=_.c.measureText(e||" ",r),s=Math.ceil(Math.ceil(Math.max(1,i.width)+2*r.padding)*t),a=Math.ceil(Math.ceil(Math.max(1,i.height)+2*r.padding)*t);return s=Math.ceil(s-1e-6),a=Math.ceil(a-1e-6),{width:s=(0,h.a9)(s),height:a=(0,h.a9)(a)}}getTexture(e,t,r,i){"string"==typeof e&&((0,g.a)("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:r,resolution:t}),e.style instanceof m.p||(e.style=new m.p(e.style));let{texture:s,canvasAndContext:a}=this.createTextureAndCanvas(e);return this._renderer.texture.initSource(s._source),d.h.returnCanvasAndContext(a),s}createTextureAndCanvas(e){let{text:t,style:r}=e,i=e.resolution??this._renderer.resolution,s=_.c.measureText(t||" ",r),a=Math.ceil(Math.ceil(Math.max(1,s.width)+2*r.padding)*i),n=Math.ceil(Math.ceil(Math.max(1,s.height)+2*r.padding)*i),l=d.h.getOptimalCanvasAndContext(a,n),{canvas:o}=l;this.renderTextToCanvas(t,r,i,l);let h=(0,x.H)(o,a,n,i);if(r.trim){let e=function(e,t=1){let{width:r,height:i}=e,s=e.getContext("2d",{willReadFrequently:!0});if(null===s)throw TypeError("Failed to get canvas 2D context");let a=s.getImageData(0,0,r,i).data,n=0,l=0,o=r-1,h=i-1;for(;l<i&&p(a,r,l);)++l;if(l===i)return c.A.EMPTY;for(;p(a,r,h);)--h;for(;f(a,r,n,l,h);)++n;for(;f(a,r,o,l,h);)--o;return++o,++h,new c.A(n/t,l/t,(o-n)/t,(h-l)/t)}(o,i);h.frame.copyFrom(e),h.updateUvs()}return{texture:h,canvasAndContext:l}}getManagedTexture(e){let t=e._getKey();if(this._activeTextures[t])return this._increaseReferenceCount(t),this._activeTextures[t].texture;let{texture:r,canvasAndContext:i}=this.createTextureAndCanvas(e);return this._activeTextures[t]={canvasAndContext:i,texture:r,usageCount:1},r}_increaseReferenceCount(e){this._activeTextures[e].usageCount++}decreaseReferenceCount(e){let t=this._activeTextures[e];if(t.usageCount--,0===t.usageCount){d.h.returnCanvasAndContext(t.canvasAndContext),u.z.returnTexture(t.texture);let r=t.texture.source;r.resource=null,r.uploadMethodId="unknown",r.alphaMode="no-premultiply-alpha",this._activeTextures[e]=null}}getReferenceCount(e){return this._activeTextures[e].usageCount}renderTextToCanvas(e,t,r,i){let s,a,{canvas:n,context:l}=i,h=(0,b.M)(t),d=_.c.measureText(e||" ",t),u=d.lines,c=d.lineHeight,p=d.lineWidths,f=d.maxLineWidth,g=d.fontProperties,m=n.height;l.resetTransform(),l.scale(r,r);let x=2*t.padding;if(l.clearRect(0,0,d.width+4+x,d.height+4+x),t._stroke?.width){let e=t._stroke;l.lineWidth=e.width,l.miterLimit=e.miterLimit,l.lineJoin=e.join,l.lineCap=e.cap}l.font=h;let w=t.dropShadow?2:1;for(let e=0;e<w;++e){let n=t.dropShadow&&0===e,h=n?Math.ceil(Math.max(1,m)+2*t.padding):0,d=h*r;if(n){l.fillStyle="black",l.strokeStyle="black";let e=t.dropShadow,i=e.color,s=e.alpha;l.shadowColor=o.I.shared.setValue(i).setAlpha(s).toRgbaString();let a=e.blur*r,n=e.distance*r;l.shadowBlur=a,l.shadowOffsetX=Math.cos(e.angle)*n,l.shadowOffsetY=Math.sin(e.angle)*n+d}else l.globalAlpha=t._fill?.alpha??1,l.fillStyle=t._fill?(0,y.m)(t._fill,l):null,t._stroke?.width&&(l.strokeStyle=(0,y.m)(t._stroke,l)),l.shadowColor="black";let x=(c-g.fontSize)/2;c-g.fontSize<0&&(x=0);let _=t._stroke?.width??0;for(let e=0;e<u.length;e++)s=_/2,a=_/2+e*c+g.ascent+x,"right"===t.align?s+=f-p[e]:"center"===t.align&&(s+=(f-p[e])/2),t._stroke?.width&&this._drawLetterSpacing(u[e],t,i,s+t.padding,a+t.padding-h,!0),void 0!==t._fill&&this._drawLetterSpacing(u[e],t,i,s+t.padding,a+t.padding-h)}}_drawLetterSpacing(e,t,r,i,s,a=!1){let{context:n}=r,l=t.letterSpacing,o=!1;if(_.c.experimentalLetterSpacingSupported&&(_.c.experimentalLetterSpacing?(n.letterSpacing=`${l}px`,n.textLetterSpacing=`${l}px`,o=!0):(n.letterSpacing="0px",n.textLetterSpacing="0px")),0===l||o)return void(a?n.strokeText(e,i,s):n.fillText(e,i,s));let h=i,d=_.c.graphemeSegmenter(e),u=n.measureText(e).width,c=0;for(let e=0;e<d.length;++e){let t=d[e];a?n.strokeText(t,h,s):n.fillText(t,h,s);let r="";for(let t=e+1;t<d.length;++t)r+=d[t];h+=u-(c=n.measureText(r).width)+l,u=c}}destroy(){this._activeTextures=null}}w.extension={type:[i.nw.WebGLSystem,i.nw.WebGPUSystem,i.nw.CanvasSystem],name:"canvasText"},i.Rw.add(w),i.Rw.add(l)},13263:function(e,t,r){r.d(t,{H:()=>a});var i=r(50900);let s=new(r(39622)).Y;function a(e,t,r,a){s.minX=0,s.minY=0,s.maxX=e.width/a|0,s.maxY=e.height/a|0;let n=i.z.getOptimalTexture(s.width,s.height,a,!1);return n.source.uploadMethodId="image",n.source.resource=e,n.source.alphaMode="premultiply-alpha-on-upload",n.frame.width=t/a,n.frame.height=r/a,n.source.emit("update",n.source),n.updateUvs(),n}}}]);
|
|
158
|
-
//# sourceMappingURL=212.850ade70.js.map
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkandroid_playground=self.webpackChunkandroid_playground||[]).push([["329"],{67187:function(e,t,r){r.d(t,{WebGPURenderer:()=>em});var s=r(91957),i=r(30044),n=r(50473),o=r(29465),a=r(43200),u=r(23149),d=r(39193),h=r(78300),l=r(71067),c=r(8482),p=r(73109);class f{init(){let e=new p.o({uTransformMatrix:{value:new i.y,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),t=(0,a.d)({name:"graphics",bits:[u.M,(0,d.m)(o.A),h.Kt,l.j]});this.shader=new c.e({gpuProgram:t,resources:{localUniforms:e}})}execute(e,t){let r=t.context,s=r.customShader||this.shader,i=e.renderer,{geometry:o,instructions:a}=i.graphicsContext.getContextRenderData(r),u=i.encoder;u.setPipelineFromGeometryProgramAndState(o,s.gpuProgram,e.state),u.setGeometry(o);let d=i.globalUniforms.bindGroup;u.setBindGroup(0,d,s.gpuProgram);let h=i.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);u.setBindGroup(2,h,s.gpuProgram);let l=a.instructions;for(let e=0;e<a.instructionSize;e++){let t=l[e];if(s.groups[1]=t.bindGroup,!t.gpuBindGroup){let e=t.textures;t.bindGroup=(0,n.Q)(e.textures,e.count),t.gpuBindGroup=i.bindGroup.getBindGroup(t.bindGroup,s.gpuProgram,1)}u.setBindGroup(1,t.bindGroup,s.gpuProgram),u.renderPassEncoder.drawIndexed(t.size,1,t.start)}}destroy(){this.shader.destroy(!0),this.shader=null}}f.extension={type:[s.nw.WebGPUPipesAdaptor],name:"graphics"};var g=r(17893),_=r(41277),m=r(92245);class b{init(){let e=(0,a.d)({name:"mesh",bits:[h.XH,g.r,l.j]});this._shader=new c.e({gpuProgram:e,resources:{uTexture:_.x.EMPTY._source,uSampler:_.x.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new i.y}}}})}execute(e,t){let r=e.renderer,s=t._shader;if(s){if(!s.gpuProgram)return void(0,m.Z)("Mesh shader has no gpuProgram",t.shader)}else(s=this._shader).resources.uTexture=t.texture.source,s.resources.uSampler=t.texture.source.style,s.resources.textureUniforms.uniforms.uTextureMatrix=t.texture.textureMatrix.mapCoord;let i=s.gpuProgram;if(i.autoAssignGlobalUniforms&&(s.groups[0]=r.globalUniforms.bindGroup),i.autoAssignLocalUniforms){let t=e.localUniforms;s.groups[1]=r.renderPipes.uniformBatch.getUniformBindGroup(t,!0)}r.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}}b.extension={type:[s.nw.WebGPUPipesAdaptor],name:"mesh"};var x=r(29492);let y=x.Z.for2d();class G{init(){let e=(0,a.d)({name:"batch",bits:[u.M,(0,d.m)(o.A),l.j]});this._shader=new c.e({gpuProgram:e,groups:{}})}start(e,t){let r=e.renderer,s=r.encoder,i=this._shader.gpuProgram;this._geometry=t,s.setGeometry(t),y.blendMode="normal",r.pipeline.getPipeline(t,i,y);let n=r.globalUniforms.bindGroup;s.resetBindGroup(1),s.setBindGroup(0,n,i)}execute(e,t){let r=this._shader.gpuProgram,s=e.renderer,i=s.encoder;if(!t.bindGroup){let e=t.textures;t.bindGroup=(0,n.Q)(e.textures,e.count)}y.blendMode=t.blendMode;let o=s.bindGroup.getBindGroup(t.bindGroup,r,1),a=s.pipeline.getPipeline(this._geometry,r,y);t.bindGroup._touch(s.textureGC.count),i.setPipeline(a),i.renderPassEncoder.setBindGroup(1,o),i.renderPassEncoder.drawIndexed(t.size,1,t.start)}destroy(){this._shader.destroy(!0),this._shader=null}}G.extension={type:[s.nw.WebGPUPipesAdaptor],name:"batch"};var P=r(17638),B=r(8826),S=r(71423);class T{constructor(e){this._hash=Object.create(null),this._renderer=e}contextChange(e){this._gpu=e}getBindGroup(e,t,r){return e._updateKey(),this._hash[e._key]||this._createBindGroup(e,t,r)}_createBindGroup(e,t,r){let s=this._gpu.device,i=t.layout[r],n=[],o=this._renderer;for(let t in i){let r,s=e.resources[t]??e.resources[i[t]];if("uniformGroup"===s._resourceType){o.ubo.updateUniformGroup(s);let e=s.buffer;r={buffer:o.buffer.getGPUBuffer(e),offset:0,size:e.descriptor.size}}else"buffer"===s._resourceType?r={buffer:o.buffer.getGPUBuffer(s),offset:0,size:s.descriptor.size}:"bufferResource"===s._resourceType?r={buffer:o.buffer.getGPUBuffer(s.buffer),offset:s.offset,size:s.size}:"textureSampler"===s._resourceType?r=o.texture.getGpuSampler(s):"textureSource"===s._resourceType&&(r=o.texture.getGpuSource(s).createView({}));n.push({binding:i[t],resource:r})}let a=o.shader.getProgramData(t).bindGroups[r],u=s.createBindGroup({layout:a,entries:n});return this._hash[e._key]=u,u}destroy(){for(let e of Object.keys(this._hash))this._hash[e]=null;this._hash=null,this._renderer=null}}T.extension={type:[s.nw.WebGPUSystem],name:"bindGroup"};var C=r(74039);class v{constructor(){this._gpuBuffers=Object.create(null),this._managedBuffers=[]}contextChange(e){this._gpu=e}getGPUBuffer(e){return this._gpuBuffers[e.uid]||this.createGPUBuffer(e)}updateBuffer(e){let t=this._gpuBuffers[e.uid]||this.createGPUBuffer(e),r=e.data;return e._updateID&&r&&(e._updateID=0,this._gpu.device.queue.writeBuffer(t,0,r.buffer,0,(e._updateSize||r.byteLength)+3&-4)),t}destroyAll(){for(let e in this._gpuBuffers)this._gpuBuffers[e].destroy();this._gpuBuffers={}}createGPUBuffer(e){this._gpuBuffers[e.uid]||(e.on("update",this.updateBuffer,this),e.on("change",this.onBufferChange,this),e.on("destroy",this.onBufferDestroy,this));let t=this._gpu.device.createBuffer(e.descriptor);return e._updateID=0,e.data&&((0,C.T)(e.data.buffer,t.getMappedRange()),t.unmap()),this._gpuBuffers[e.uid]=t,this._managedBuffers.push(e),t}onBufferChange(e){this._gpuBuffers[e.uid].destroy(),e._updateID=0,this._gpuBuffers[e.uid]=this.createGPUBuffer(e)}onBufferDestroy(e){this._managedBuffers.splice(this._managedBuffers.indexOf(e),1),this._destroyBuffer(e)}destroy(){this._managedBuffers.forEach(e=>this._destroyBuffer(e)),this._managedBuffers=null,this._gpuBuffers=null}_destroyBuffer(e){this._gpuBuffers[e.uid].destroy(),e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this),e.off("destroy",this.onBufferDestroy,this),this._gpuBuffers[e.uid]=null}}v.extension={type:[s.nw.WebGPUSystem],name:"buffer"};class w{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.pipeline.setColorMask(e))}destroy(){this._renderer=null,this._colorMaskCache=null}}w.extension={type:[s.nw.WebGPUSystem],name:"colorMask"};class M{constructor(e){this._renderer=e}async init(e){return this._initPromise||(this._initPromise=this._createDeviceAndAdaptor(e).then(e=>{this.gpu=e,this._renderer.runners.contextChange.emit(this.gpu)})),this._initPromise}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){let t=await navigator.gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter}),r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2"].filter(e=>t.features.has(e)),s=await t.requestDevice({requiredFeatures:r});return{adapter:t,device:s}}destroy(){this.gpu=null,this._renderer=null}}M.extension={type:[s.nw.WebGPUSystem],name:"device"},M.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1};class U{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e}renderStart(){this.commandFinished=new Promise(e=>{this._resolveCommandFinished=e}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this.renderPassEncoder=this.commandEncoder.beginRenderPass(e.descriptor)}endRenderPass(){this.renderPassEncoder&&this.renderPassEncoder.end(),this.renderPassEncoder=null}setViewport(e){this.renderPassEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setPipelineFromGeometryProgramAndState(e,t,r,s){let i=this._renderer.pipeline.getPipeline(e,t,r,s);this.setPipeline(i)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;let t=2===e.data.BYTES_PER_ELEMENT?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){this._boundBindGroup[e]=null}setBindGroup(e,t,r){if(this._boundBindGroup[e]===t)return;this._boundBindGroup[e]=t,t._touch(this._renderer.textureGC.count);let s=this._renderer.bindGroup.getBindGroup(t,r,e);this.renderPassEncoder.setBindGroup(e,s)}setGeometry(e){for(let t in e.attributes){let r=e.attributes[t];this._setVertexBuffer(r.location,r.buffer)}e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){for(let r in e.groups){let s=e.groups[r];t||this._syncBindGroup(s),this.setBindGroup(r,s,e.gpuProgram)}}_syncBindGroup(e){for(let t in e.resources){let r=e.resources[t];r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(e){let{geometry:t,shader:r,state:s,topology:i,size:n,start:o,instanceCount:a,skipSync:u}=e;this.setPipelineFromGeometryProgramAndState(t,r.gpuProgram,s,i),this.setGeometry(t),this._setShaderBindGroups(r,u),t.indexBuffer?this.renderPassEncoder.drawIndexed(n||t.indexBuffer.data.length,a||t.instanceCount,o||0):this.renderPassEncoder.draw(n||t.getSize(),a||t.instanceCount,o||0)}finishRenderPass(){this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}restoreRenderPass(){let e=this._renderer.renderTarget.adaptor.getDescriptor(this._renderer.renderTarget.renderTarget,!1,[0,0,0,1]);this.renderPassEncoder=this.commandEncoder.beginRenderPass(e);let t=this._boundPipeline,r={...this._boundVertexBuffer},s=this._boundIndexBuffer,i={...this._boundBindGroup};this._clearCache();let n=this._renderer.renderTarget.viewport;for(let e in this.renderPassEncoder.setViewport(n.x,n.y,n.width,n.height,0,1),this.setPipeline(t),r)this._setVertexBuffer(e,r[e]);for(let e in i)this.setBindGroup(e,i[e],null);this._setIndexBuffer(s)}_clearCache(){for(let e=0;e<16;e++)this._boundBindGroup[e]=null,this._boundVertexBuffer[e]=null;this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null}contextChange(e){this._gpu=e}}U.extension={type:[s.nw.WebGPUSystem],name:"encoder",priority:1};var E=r(22246);class R{constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:E.D.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){let r=this._renderTargetStencilState[this._activeRenderTarget.uid];r.stencilMode=e,r.stencilReference=t;let s=this._renderer;s.pipeline.setStencilMode(e),s.encoder.renderPassEncoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}}R.extension={type:[s.nw.WebGPUSystem],name:"stencil"};var k=r(1839),A=r(36697),H=r(95753),F=r(74821);class O{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw Error(`UniformBufferBatch: array is too large: ${4*e}`);let t=this.byteIndex,r=t+4*e;if((r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment)>4*this.data.length)throw Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,t}addGroup(e){let t=this.addEmptyGroup(e.length);for(let r=0;r<e.length;r++)this.data[t/4+r]=e[r];return t}destroy(){this._buffer.destroy(),this._buffer=null,this.data=null}}var D=r(49458);class L{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._batchBuffer=new O({minUniformOffsetAlignment:128});for(let e=0;e<2;e++){let t=F.F.UNIFORM|F.F.COPY_DST;0===e&&(t|=F.F.COPY_SRC),this._buffers.push(new A.l({data:this._batchBuffer.data,usage:t}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){for(let e in this._bindGroupHash)this._bindGroupHash[e]=null;this._batchBuffer.clear()}getUniformBindGroup(e,t){if(!t&&this._bindGroupHash[e.uid])return this._bindGroupHash[e.uid];this._renderer.ubo.ensureUniformGroup(e);let r=e.buffer.data,s=this._batchBuffer.addEmptyGroup(r.length);return this._renderer.ubo.syncUniformGroup(e,this._batchBuffer.data,s/4),this._bindGroupHash[e.uid]=this._getBindGroup(s/128),this._bindGroupHash[e.uid]}getUboResource(e){this._renderer.ubo.updateUniformGroup(e);let t=e.buffer.data,r=this._batchBuffer.addGroup(t);return this._getBufferResource(r/128)}getArrayBindGroup(e){let t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/128)}getArrayBufferResource(e){let t=this._batchBuffer.addGroup(e);return this._getBufferResource(t/128)}_getBufferResource(e){if(!this._bufferResources[e]){let t=this._buffers[e%2];this._bufferResources[e]=new H.q({buffer:t,offset:(e/2|0)*256,size:128})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){let t=new D.v({0:this._getBufferResource(e)});this._bindGroups[e]=t}return this._bindGroups[e]}_uploadBindGroups(){let e=this._renderer.buffer,t=this._buffers[0];t.update(this._batchBuffer.byteIndex),e.updateBuffer(t);let r=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let i=this._buffers[s];r.copyBufferToBuffer(e.getGPUBuffer(t),128,e.getGPUBuffer(i),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([r.finish()])}destroy(){for(let e=0;e<this._bindGroups.length;e++)this._bindGroups[e].destroy();this._bindGroups=null,this._bindGroupHash=null;for(let e=0;e<this._buffers.length;e++)this._buffers[e].destroy();this._buffers=null;for(let e=0;e<this._bufferResources.length;e++)this._bufferResources[e].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._bindGroupHash=null,this._renderer=null}}L.extension={type:[s.nw.WebGPUPipes],name:"uniformBatch"};var I=r(532),W=r(12568),V=r(18228);let z={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4};class N{constructor(e){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._pipeCache=Object.create(null),this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._renderer=e}contextChange(e){this._gpu=e,this.setStencilMode(E.D.DISABLED),this._updatePipeHash()}setMultisampleCount(e){this._multisampleCount!==e&&(this._multisampleCount=e,this._updatePipeHash())}setRenderTarget(e){this._multisampleCount=e.msaaSamples,this._depthStencilAttachment=+!!e.descriptor.depthStencilAttachment,this._updatePipeHash()}setColorMask(e){this._colorMask!==e&&(this._colorMask=e,this._updatePipeHash())}setStencilMode(e){this._stencilMode!==e&&(this._stencilMode=e,this._stencilState=V.L[e],this._updatePipeHash())}setPipeline(e,t,r,s){let i=this.getPipeline(e,t,r);s.setPipeline(i)}getPipeline(e,t,r,s){var i,n,o;e._layoutKey||((0,I.B)(e,t.attributeData),this._generateBufferKey(e)),s=s||e.topology;let a=(i=e._layoutKey,n=t._layoutKey,o=r.data,i<<24|n<<16|o<<10|r._blendModeId<<5|z[s]);return this._pipeCache[a]||(this._pipeCache[a]=this._createPipeline(e,t,r,s)),this._pipeCache[a]}_createPipeline(e,t,r,s){let i=this._gpu.device,n=this._createVertexBufferLayouts(e),o=this._renderer.state.getColorTargets(r);o[0].writeMask=this._stencilMode===E.D.RENDERING_MASK_ADD?0:this._colorMask;let a=this._renderer.shader.getProgramData(t).pipeline,u={vertex:{module:this._getModule(t.vertex.source),entryPoint:t.vertex.entryPoint,buffers:n},fragment:{module:this._getModule(t.fragment.source),entryPoint:t.fragment.entryPoint,targets:o},primitive:{topology:s,cullMode:r.cullMode},layout:a,multisample:{count:this._multisampleCount},label:"PIXI Pipeline"};return this._depthStencilAttachment&&(u.depthStencil={...this._stencilState,format:"depth24plus-stencil8",depthWriteEnabled:r.depthTest,depthCompare:r.depthTest?"less":"always"}),i.createRenderPipeline(u)}_getModule(e){return this._moduleCache[e]||this._createModule(e)}_createModule(e){let t=this._gpu.device;return this._moduleCache[e]=t.createShaderModule({code:e}),this._moduleCache[e]}_generateBufferKey(e){let t=[],r=0,s=Object.keys(e.attributes).sort();for(let i=0;i<s.length;i++){let n=e.attributes[s[i]];t[r++]=n.location,t[r++]=n.offset,t[r++]=n.format,t[r++]=n.stride}let i=t.join("");return e._layoutKey=(0,W.Z)(i,"geometry"),e._layoutKey}_createVertexBufferLayouts(e){if(this._bufferLayoutsCache[e._layoutKey])return this._bufferLayoutsCache[e._layoutKey];let t=[];return e.buffers.forEach(r=>{let s={arrayStride:0,stepMode:"vertex",attributes:[]},i=s.attributes;for(let t in e.attributes){let n=e.attributes[t];n.buffer===r&&(s.arrayStride=n.stride,s.stepMode=n.instance?"instance":"vertex",i.push({shaderLocation:n.location,offset:n.offset,format:n.format}))}i.length&&t.push(s)}),this._bufferLayoutsCache[e._layoutKey]=t,t}_updatePipeHash(){var e,t;let r=(e=this._stencilMode,t=this._multisampleCount,this._colorMask<<6|e<<3|this._depthStencilAttachment<<1|t);this._pipeStateCaches[r]||(this._pipeStateCaches[r]=Object.create(null)),this._pipeCache=this._pipeStateCaches[r]}destroy(){this._renderer=null,this._bufferLayoutsCache=null}}N.extension={type:[s.nw.WebGPUSystem],name:"pipeline"};var j=r(72310),K=r(81599),q=r(11300),Y=r(62815);class X{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}class Z{init(e,t){this._renderer=e,this._renderTargetSystem=t}copyToTexture(e,t,r,s,i){let n=this._renderer,o=this._getGpuColorTexture(e),a=n.texture.getGpuSource(t.source);return n.encoder.commandEncoder.copyTextureToTexture({texture:o,origin:r},{texture:a,origin:i},s),t}startRenderPass(e,t=!0,r,s){let i=this._renderTargetSystem.getGpuRenderTarget(e);i.descriptor=this.getDescriptor(e,t,r),this._renderer.pipeline.setRenderTarget(i),this._renderer.encoder.beginRenderPass(i),this._renderer.encoder.setViewport(s)}finishRenderPass(){this._renderer.encoder.endRenderPass()}_getGpuColorTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);return t.contexts[0]?t.contexts[0].getCurrentTexture():this._renderer.texture.getGpuSource(e.colorTextures[0].source)}getDescriptor(e,t,r){let s;"boolean"==typeof t&&(t=t?K.E.ALL:K.E.NONE);let i=this._renderTargetSystem,n=i.getGpuRenderTarget(e),o=e.colorTextures.map((e,s)=>{let o,a,u=n.contexts[s];o=u?u.getCurrentTexture().createView():this._renderer.texture.getGpuSource(e).createView({mipLevelCount:1}),n.msaaTextures[s]&&(a=o,o=this._renderer.texture.getTextureView(n.msaaTextures[s]));let d=t&K.E.COLOR?"clear":"load";return r??(r=i.defaultClearColor),{view:o,resolveTarget:a,clearValue:r,storeOp:"store",loadOp:d}});if((e.stencil||e.depth)&&!e.depthStencilTexture&&(e.ensureDepthStencilTexture(),e.depthStencilTexture.source.sampleCount=n.msaa?4:1),e.depthStencilTexture){let r=t&K.E.STENCIL?"clear":"load",i=t&K.E.DEPTH?"clear":"load";s={view:this._renderer.texture.getGpuSource(e.depthStencilTexture.source).createView(),stencilStoreOp:"store",stencilLoadOp:r,depthClearValue:1,depthLoadOp:i,depthStoreOp:"store"}}return{colorAttachments:o,depthStencilAttachment:s}}clear(e,t=!0,r,s){if(!t)return;let{gpu:i,encoder:n}=this._renderer,o=i.device;if(null===n.commandEncoder){let i=o.createCommandEncoder(),n=this.getDescriptor(e,t,r),a=i.beginRenderPass(n);a.setViewport(s.x,s.y,s.width,s.height,0,1),a.end();let u=i.finish();o.queue.submit([u])}else this.startRenderPass(e,t,r,s)}initGpuRenderTarget(e){e.isRoot=!0;let t=new X;return e.colorTextures.forEach((e,r)=>{if(q.D.test(e.resource)){let s=e.resource.getContext("webgpu"),i=e.transparent?"premultiplied":"opaque";try{s.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:"bgra8unorm",alphaMode:i})}catch(e){console.error(e)}t.contexts[r]=s}if(t.msaa=e.source.antialias,e.source.antialias){let e=new Y.p({width:0,height:0,sampleCount:4});t.msaaTextures[r]=e}}),t.msaa&&(t.msaaSamples=4,e.depthStencilTexture&&(e.depthStencilTexture.source.sampleCount=4)),t}destroyGpuRenderTarget(e){e.contexts.forEach(e=>{e.unconfigure()}),e.msaaTextures.forEach(e=>{e.destroy()}),e.msaaTextures.length=0,e.contexts.length=0}ensureDepthStencilTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);e.depthStencilTexture&&t.msaa&&(e.depthStencilTexture.source.sampleCount=4)}resizeGpuRenderTarget(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.width,t.height=e.height,t.msaa&&e.colorTextures.forEach((e,r)=>{let s=t.msaaTextures[r];s?.resize(e.source.width,e.source.height,e.source._resolution)})}}class Q extends j.l{constructor(e){super(e),this.adaptor=new Z,this.adaptor.init(e,this)}}Q.extension={type:[s.nw.WebGPUSystem],name:"renderTarget"};class ${constructor(){this._gpuProgramData=Object.create(null)}contextChange(e){this._gpu=e}getProgramData(e){return this._gpuProgramData[e._layoutKey]||this._createGPUProgramData(e)}_createGPUProgramData(e){let t=this._gpu.device,r=e.gpuLayout.map(e=>t.createBindGroupLayout({entries:e}));return this._gpuProgramData[e._layoutKey]={bindGroups:r,pipeline:t.createPipelineLayout({bindGroupLayouts:r})},this._gpuProgramData[e._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}}$.extension={type:[s.nw.WebGPUSystem],name:"shader"};let J={};J.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}},J.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}},J.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}},J.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},J.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},J.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}},J["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}},J["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}},J["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}},J.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};class ee{constructor(){this.defaultState=new x.Z,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e){return[{format:"bgra8unorm",writeMask:0,blend:J[e.blendMode]||J.normal}]}destroy(){this.gpu=null}}ee.extension={type:[s.nw.WebGPUSystem],name:"state"};var et=r(767),er=r(51982);let es={type:"image",upload(e,t,r){let s=e.resource,i=(0|e.pixelWidth)*(0|e.pixelHeight),n=s.byteLength/i;r.device.queue.writeTexture({texture:t},s,{offset:0,rowsPerImage:e.pixelHeight,bytesPerRow:e.pixelHeight*n},{width:e.pixelWidth,height:e.pixelHeight,depthOrArrayLayers:1})}},ei={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},en={blockBytes:4,blockWidth:1,blockHeight:1},eo={type:"compressed",upload(e,t,r){let s=e.pixelWidth,i=e.pixelHeight,n=ei[e.format]||en;for(let o=0;o<e.resource.length;o++){let a=e.resource[o],u=Math.ceil(s/n.blockWidth)*n.blockBytes;r.device.queue.writeTexture({texture:t,mipLevel:o},a,{offset:0,bytesPerRow:u},{width:Math.ceil(s/n.blockWidth)*n.blockWidth,height:Math.ceil(i/n.blockHeight)*n.blockHeight,depthOrArrayLayers:1}),s=Math.max(s>>1,1),i=Math.max(i>>1,1)}}},ea={type:"image",upload(e,t,r){let s=e.resource;if(!s)return;let i=Math.min(t.width,e.resourceWidth||e.pixelWidth),n=Math.min(t.height,e.resourceHeight||e.pixelHeight),o="premultiply-alpha-on-upload"===e.alphaMode;r.device.queue.copyExternalImageToTexture({source:s},{texture:t,premultipliedAlpha:o},{width:i,height:n})}},eu={type:"video",upload(e,t,r){ea.upload(e,t,r)}};class ed{constructor(e){this.device=e,this.sampler=e.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(e){let t=this.pipelines[e];return t||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
|
|
2
|
-
var<private> pos : array<vec2<f32>, 3> = array<vec2<f32>, 3>(
|
|
3
|
-
vec2<f32>(-1.0, -1.0), vec2<f32>(-1.0, 3.0), vec2<f32>(3.0, -1.0));
|
|
4
|
-
|
|
5
|
-
struct VertexOutput {
|
|
6
|
-
@builtin(position) position : vec4<f32>,
|
|
7
|
-
@location(0) texCoord : vec2<f32>,
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
@vertex
|
|
11
|
-
fn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {
|
|
12
|
-
var output : VertexOutput;
|
|
13
|
-
output.texCoord = pos[vertexIndex] * vec2<f32>(0.5, -0.5) + vec2<f32>(0.5);
|
|
14
|
-
output.position = vec4<f32>(pos[vertexIndex], 0.0, 1.0);
|
|
15
|
-
return output;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@group(0) @binding(0) var imgSampler : sampler;
|
|
19
|
-
@group(0) @binding(1) var img : texture_2d<f32>;
|
|
20
|
-
|
|
21
|
-
@fragment
|
|
22
|
-
fn fragmentMain(@location(0) texCoord : vec2<f32>) -> @location(0) vec4<f32> {
|
|
23
|
-
return textureSample(img, imgSampler, texCoord);
|
|
24
|
-
}
|
|
25
|
-
`})),t=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:e}]}}),this.pipelines[e]=t),t}generateMipmap(e){let t=this._getMipmapPipeline(e.format);if("3d"===e.dimension||"1d"===e.dimension)throw Error("Generating mipmaps for non-2d textures is currently unsupported!");let r=e,s=e.depthOrArrayLayers||1,i=e.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!i){let t={size:{width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s},format:e.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:e.mipLevelCount-1};r=this.device.createTexture(t)}let n=this.device.createCommandEncoder({}),o=t.getBindGroupLayout(0);for(let a=0;a<s;++a){let s=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:a,arrayLayerCount:1}),u=+!!i;for(let i=1;i<e.mipLevelCount;++i){let e=r.createView({baseMipLevel:u++,mipLevelCount:1,dimension:"2d",baseArrayLayer:a,arrayLayerCount:1}),i=n.beginRenderPass({colorAttachments:[{view:e,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),d=this.device.createBindGroup({layout:o,entries:[{binding:0,resource:this.sampler},{binding:1,resource:s}]});i.setPipeline(t),i.setBindGroup(0,d),i.draw(3,1,0,0),i.end(),s=e}}if(!i){let t={width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s};for(let s=1;s<e.mipLevelCount;++s)n.copyTextureToTexture({texture:r,mipLevel:s-1},{texture:e,mipLevel:s},t),t.width=Math.ceil(t.width/2),t.height=Math.ceil(t.height/2)}return this.device.queue.submit([n.finish()]),i||r.destroy(),e}}class eh{constructor(e){this.managedTextures=[],this._gpuSources=Object.create(null),this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._textureViewHash=Object.create(null),this._uploads={image:ea,buffer:es,video:eu,compressed:eo},this._renderer=e}contextChange(e){this._gpu=e}initSource(e){if(e.autoGenerateMipmaps){let t=Math.max(e.pixelWidth,e.pixelHeight);e.mipLevelCount=Math.floor(Math.log2(t))+1}let t=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST;"compressed"!==e.uploadMethodId&&(t|=GPUTextureUsage.RENDER_ATTACHMENT,t|=GPUTextureUsage.COPY_SRC);let r=ei[e.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(e.pixelWidth/r.blockWidth)*r.blockWidth,i=Math.ceil(e.pixelHeight/r.blockHeight)*r.blockHeight,n={label:e.label,size:{width:s,height:i},format:e.format,sampleCount:e.sampleCount,mipLevelCount:e.mipLevelCount,dimension:e.dimension,usage:t},o=this._gpu.device.createTexture(n);return this._gpuSources[e.uid]=o,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceResize,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),o}onSourceUpdate(e){let t=this.getGpuSource(e);t&&(this._uploads[e.uploadMethodId]&&this._uploads[e.uploadMethodId].upload(e,t,this._gpu),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e))}onSourceUnload(e){let t=this._gpuSources[e.uid];t&&(this._gpuSources[e.uid]=null,t.destroy())}onUpdateMipmaps(e){this._mipmapGenerator||(this._mipmapGenerator=new ed(this._gpu.device));let t=this.getGpuSource(e);this._mipmapGenerator.generateMipmap(t)}onSourceDestroy(e){e.off("update",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("destroy",this.onSourceDestroy,this),e.off("resize",this.onSourceResize,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}onSourceResize(e){let t=this._gpuSources[e.uid];t?(t.width!==e.pixelWidth||t.height!==e.pixelHeight)&&(this._textureViewHash[e.uid]=null,this._bindGroupHash[e.uid]=null,this.onSourceUnload(e),this.initSource(e)):this.initSource(e)}_initSampler(e){return this._gpuSamplers[e._resourceId]=this._gpu.device.createSampler(e),this._gpuSamplers[e._resourceId]}getGpuSampler(e){return this._gpuSamplers[e._resourceId]||this._initSampler(e)}getGpuSource(e){return this._gpuSources[e.uid]||this.initSource(e)}getTextureBindGroup(e){return this._bindGroupHash[e.uid]??this._createTextureBindGroup(e)}_createTextureBindGroup(e){let t=e.source,r=t.uid;return this._bindGroupHash[r]=new D.v({0:t,1:t.style}),this._bindGroupHash[r]}getTextureView(e){let t=e.source;return this._textureViewHash[t.uid]??this._createTextureView(t)}_createTextureView(e){return this._textureViewHash[e.uid]=this.getGpuSource(e).createView(),this._textureViewHash[e.uid]}generateCanvas(e){let t=this._renderer,r=t.gpu.device.createCommandEncoder(),s=et.z.get().createCanvas();s.width=e.source.pixelWidth,s.height=e.source.pixelHeight;let i=s.getContext("webgpu");return i.configure({device:t.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:navigator.gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),r.copyTextureToTexture({texture:t.texture.getGpuSource(e.source),origin:{x:0,y:0}},{texture:i.getCurrentTexture()},{width:s.width,height:s.height}),t.gpu.device.queue.submit([r.finish()]),s}getPixels(e){let t=this.generateCanvas(e),r=er.h.getOptimalCanvasAndContext(t.width,t.height),s=r.context;s.drawImage(t,0,0);let{width:i,height:n}=t,o=new Uint8ClampedArray(s.getImageData(0,0,i,n).data.buffer);return er.h.returnCanvasAndContext(r),{pixels:o,width:i,height:n}}destroy(){for(let e of(this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null,Object.keys(this._bindGroupHash))){let t=Number(e),r=this._bindGroupHash[t];r?.destroy(),this._bindGroupHash[t]=null}this._gpu=null,this._mipmapGenerator=null,this._gpuSources=null,this._bindGroupHash=null,this._textureViewHash=null,this._gpuSamplers=null}}eh.extension={type:[s.nw.WebGPUSystem],name:"texture"};let el=[...B.N,k.Y,U,M,v,eh,Q,$,ee,N,w,R,T],ec=[...B.U,L],ep=[G,b,f],ef=[],eg=[],e_=[];s.Rw.handleByNamedList(s.nw.WebGPUSystem,ef),s.Rw.handleByNamedList(s.nw.WebGPUPipes,eg),s.Rw.handleByNamedList(s.nw.WebGPUPipesAdaptor,e_),s.Rw.add(...el,...ec,...ep);class em extends P.I{constructor(){super({name:"webgpu",type:S.g.WEBGPU,systems:ef,renderPipes:eg,renderPipeAdaptors:e_})}}},51982:function(e,t,r){r.d(t,{h:()=>n});var s=r(767),i=r(45854);let n=new class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let r=s.z.get().createCanvas();r.width=e,r.height=t;let i=r.getContext("2d");return{canvas:r,context:i}}getOptimalCanvasAndContext(e,t,r=1){e=Math.ceil(e*r-1e-6),t=Math.ceil(t*r-1e-6),e=(0,i.a9)(e),t=(0,i.a9)(t);let s=(e<<17)+(t<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(e,t)),n}returnCanvasAndContext(e){let{width:t,height:r}=e.canvas;this._canvasPool[(t<<17)+(r<<1)].push(e)}clear(){this._canvasPool={}}}}}]);
|
|
26
|
-
//# sourceMappingURL=329.261bc4a1.js.map
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkandroid_playground=self.webpackChunkandroid_playground||[]).push([["364"],{17893:function(e,t,r){r.d(t,{e:()=>i,r:()=>n});let n={name:"texture-bit",vertex:{header:`
|
|
2
|
-
|
|
3
|
-
struct TextureUniforms {
|
|
4
|
-
uTextureMatrix:mat3x3<f32>,
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
@group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;
|
|
8
|
-
`,main:`
|
|
9
|
-
uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;
|
|
10
|
-
`},fragment:{header:`
|
|
11
|
-
@group(2) @binding(0) var uTexture: texture_2d<f32>;
|
|
12
|
-
@group(2) @binding(1) var uSampler: sampler;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
`,main:`
|
|
16
|
-
outColor = textureSample(uTexture, uSampler, vUV);
|
|
17
|
-
`}},i={name:"texture-bit",vertex:{header:`
|
|
18
|
-
uniform mat3 uTextureMatrix;
|
|
19
|
-
`,main:`
|
|
20
|
-
uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
|
|
21
|
-
`},fragment:{header:`
|
|
22
|
-
uniform sampler2D uTexture;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
`,main:`
|
|
26
|
-
outColor = texture(uTexture, vUV);
|
|
27
|
-
`}}},532:function(e,t,r){r.d(t,{B:()=>a});var n=r(92245),i=r(12713);function a(e,t){for(let r in e.attributes){let i=e.attributes[r],a=t[r];a?(i.location??(i.location=a.location),i.format??(i.format=a.format),i.offset??(i.offset=a.offset),i.instance??(i.instance=a.instance)):(0,n.Z)(`Attribute ${r} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}!function(e){let{buffers:t,attributes:r}=e,n={},a={};for(let e in t){let r=t[e];n[r.uid]=0,a[r.uid]=0}for(let e in r){let t=r[e];n[t.buffer.uid]+=(0,i.v)(t.format).stride}for(let e in r){let t=r[e];t.stride??(t.stride=n[t.buffer.uid]),t.start??(t.start=a[t.buffer.uid]),a[t.buffer.uid]+=(0,i.v)(t.format).stride}}(e)}},18228:function(e,t,r){r.d(t,{L:()=>i});var n=r(22246);let i=[];i[n.D.NONE]=void 0,i[n.D.DISABLED]={stencilWriteMask:0,stencilReadMask:0},i[n.D.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}},i[n.D.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}},i[n.D.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}}},72310:function(e,t,r){r.d(t,{l:()=>h});var n=r(30044),i=r(45266),a=r(81599),o=r(90851),s=r(11300),l=r(62815),d=r(41277),u=r(72787),c=r(71783);class h{constructor(e){this.rootViewPort=new i.A,this.viewport=new i.A,this.onRenderTargetChange=new o.P("onRenderTargetChange"),this.projectionMatrix=new n.y,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._renderer=e}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart({target:e,clear:t,clearColor:r,frame:n}){this._renderTargetStack.length=0,this.push(e,t,r,n),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=function(e){let t=e.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement&&document.body.contains(t)}(this.rootRenderTarget)}bind(e,t=!0,r,n){let i=this.getRenderTarget(e),a=this.renderTarget!==i;this.renderTarget=i,this.renderSurface=e;let o=this.getGpuRenderTarget(i);(i.pixelWidth!==o.width||i.pixelHeight!==o.height)&&(this.adaptor.resizeGpuRenderTarget(i),o.width=i.pixelWidth,o.height=i.pixelHeight);let s=i.colorTexture,l=this.viewport,u=s.pixelWidth,c=s.pixelHeight;if(!n&&e instanceof d.x&&(n=e.frame),n){let e=s._resolution;l.x=n.x*e+.5|0,l.y=n.y*e+.5|0,l.width=n.width*e+.5|0,l.height=n.height*e+.5|0}else l.x=0,l.y=0,l.width=u,l.height=c;return!function(e,t,r,n,i,a){let o=a?1:-1;e.identity(),e.a=1/n*2,e.d=1/i*2*o,e.tx=-1-0*e.a,e.ty=-o-0*e.d}(this.projectionMatrix,0,0,l.width/s.resolution,l.height/s.resolution,!i.isRoot),this.adaptor.startRenderPass(i,t,r,l),a&&this.onRenderTargetChange.emit(i),i}clear(e,t=a.E.ALL,r){t&&(e&&(e=this.getRenderTarget(e)),this.adaptor.clear(e||this.renderTarget,t,r,this.viewport))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=a.E.ALL,r,n){let i=this.bind(e,t,r,n);return this._renderTargetStack.push({renderTarget:i,frame:n}),i}pop(){this._renderTargetStack.pop();let e=this._renderTargetStack[this._renderTargetStack.length-1];this.bind(e.renderTarget,!1,null,e.frame)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,r,n,i){r.x<0&&(n.width+=r.x,i.x-=r.x,r.x=0),r.y<0&&(n.height+=r.y,i.y-=r.y,r.y=0);let{pixelWidth:a,pixelHeight:o}=e;return n.width=Math.min(n.width,a-r.x),n.height=Math.min(n.height,o-r.y),this.adaptor.copyToTexture(e,t,r,n,i)}ensureDepthStencil(){this.renderTarget.stencil||(this.renderTarget.stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport))}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((e,t)=>{e!==t&&e.destroy()}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let t=null;return s.D.test(e)&&(e=(0,u.t)(e)),e instanceof c.A?t=e:e instanceof l.p&&(t=new c.A({colorTextures:[e]}),s.D.test(e.source.resource)&&(t.isRoot=!0),e.once("destroy",()=>{t.destroy();let e=this._gpuRenderTargetHash[t.uid];e&&(this._gpuRenderTargetHash[t.uid]=null,this.adaptor.destroyGpuRenderTarget(e))})),this._renderSurfaceToRenderTargetHash.set(e,t),t}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}}},8826:function(e,t,r){r.d(t,{N:()=>ef,U:()=>em});var n=r(91957);class i{constructor(e){this._renderer=e}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&e.render(this._renderer)}destroy(){this._renderer=null}}function a(e,t){let r=e.instructionSet,n=r.instructions;for(let e=0;e<r.instructionSize;e++){let r=n[e];t[r.renderPipeId].execute(r)}}i.extension={type:[n.nw.WebGLPipes,n.nw.WebGPUPipes,n.nw.CanvasPipes],name:"customRender"};class o{constructor(e){this._renderer=e}addRenderGroup(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&(this._renderer.globalUniforms.push({worldTransformMatrix:e.worldTransform,worldColor:e.worldColorAlpha}),a(e,this._renderer.renderPipes),this._renderer.globalUniforms.pop())}destroy(){this._renderer=null}}o.extension={type:[n.nw.WebGLPipes,n.nw.WebGPUPipes,n.nw.CanvasPipes],name:"renderGroup"};var s=r(30044);function l(e,t,r){!(e.globalDisplayStatus<7)&&e.includeInBuild&&(e.sortableChildren&&e.sortChildren(),e.isSimple?function(e,t,r){if(e.renderPipeId&&(r.blendMode.setBlendMode(e,e.groupBlendMode,t),e.didViewUpdate=!1,r[e.renderPipeId].addRenderable(e,t)),!e.isRenderGroupRoot){let n=e.children,i=n.length;for(let e=0;e<i;e++)l(n[e],t,r)}}(e,t,r):d(e,t,r,!1))}function d(e,t,r,n){if(!n&&e.isRenderGroupRoot)r.renderGroup.addRenderGroup(e.renderGroup,t);else{for(let n=0;n<e.effects.length;n++){let i=e.effects[n];r[i.pipe].push(i,e,t)}let n=e.renderPipeId;n&&(r.blendMode.setBlendMode(e,e.groupBlendMode,t),e.didViewUpdate=!1,r[n].addRenderable(e,t));let i=e.children;if(i.length)for(let e=0;e<i.length;e++)l(i[e],t,r);for(let n=e.effects.length-1;n>=0;n--){let i=e.effects[n];r[i.pipe].pop(i,e,t)}}}var u=r(82930);function c(e,t){if(0xffffff===e||0xffffff===t)return e+t-0xffffff;let r=e>>16&255,n=e>>8&255,i=255&e;return(r+((t>>16&255)-r)*.5<<16)+(n+((t>>8&255)-n)*.5<<8)+(i+((255&t)-i)*.5)}let h=new u.W2;function p(e,t,r){if(r&u.wO){e.groupColor=c(e.localColor,t.groupColor);let r=e.localAlpha*t.groupAlpha;e.groupAlpha=r=r<0?0:r>1?1:r,e.groupColorAlpha=e.groupColor+((255*r|0)<<24)}r&u.pA&&(e.groupBlendMode="inherit"===e.localBlendMode?t.groupBlendMode:e.localBlendMode),r&u.Jm&&(e.globalDisplayStatus=e.localDisplayStatus&t.globalDisplayStatus),e._updateFlags=0}let f=new s.y;class m{constructor(e){this._renderer=e}render({container:e,transform:t}){e.isRenderGroup=!0;let r=e.parent,n=e.renderGroup.renderGroupParent;e.parent=null,e.renderGroup.renderGroupParent=null;let i=this._renderer,o=function e(t,r=[]){r.push(t);for(let n=0;n<t.renderGroupChildren.length;n++)e(t.renderGroupChildren[n],r);return r}(e.renderGroup,[]),s=f;t&&(s=s.copyFrom(e.renderGroup.localTransform),e.renderGroup.localTransform.copyFrom(t));let l=i.renderPipes;for(let e=0;e<o.length;e++){let t=o[e];if(t.runOnRender(),t.instructionSet.renderPipes=l,t.structureDidChange||function(e,t){let{list:r,index:n}=e.childrenRenderablesToUpdate,i=!1;for(let e=0;e<n;e++){let n=r[e];if(i=t[n.renderPipeId].validateRenderable(n))break}e.structureDidChange=i}(t,l),!function e(t,r=!1){!function(e){let t,r=e.root;if(e.renderGroupParent){let n=e.renderGroupParent;e.worldTransform.appendFrom(r.relativeGroupTransform,n.worldTransform),e.worldColor=c(r.groupColor,n.worldColor),t=r.groupAlpha*n.worldAlpha}else e.worldTransform.copyFrom(r.localTransform),e.worldColor=r.localColor,t=r.localAlpha;e.worldAlpha=t=t<0?0:t>1?1:t,e.worldColorAlpha=e.worldColor+((255*t|0)<<24)}(t);let n=t.childrenToUpdate,i=t.updateTick;for(let e in t.updateTick++,n){let t=n[e],r=t.list,a=t.index;for(let e=0;e<a;e++)!function e(t,r,n){if(r===t.updateTick)return;t.updateTick=r,t.didChange=!1;let i=t.localTransform;t.updateLocalTransform();let a=t.parent;if(a&&!a.isRenderGroupRoot?(n|=t._updateFlags,t.relativeGroupTransform.appendFrom(i,a.relativeGroupTransform),n&&p(t,a,n)):(n=t._updateFlags,t.relativeGroupTransform.copyFrom(i),n&&p(t,h,n)),!t.isRenderGroupRoot){let i=t.children,a=i.length;for(let t=0;t<a;t++)e(i[t],r,n);let o=t.renderGroup;t.renderPipeId&&!o.structureDidChange&&o.updateRenderable(t)}}(r[e],i,0);t.index=0}if(r)for(let n=0;n<t.renderGroupChildren.length;n++)e(t.renderGroupChildren[n],r)}(t),t.structureDidChange){t.structureDidChange=!1;let e=t.root,r=t.instructionSet;r.reset(),l.batch.buildStart(r),l.blendMode.buildStart(),l.colorMask.buildStart(),e.sortableChildren&&e.sortChildren(),d(e,r,l,!0),l.batch.buildEnd(r),l.blendMode.buildEnd(r)}else{var u=t;let{list:e,index:r}=u.childrenRenderablesToUpdate;for(let t=0;t<r;t++){let r=e[t];r.didViewUpdate&&u.updateRenderable(r)}}t.childrenRenderablesToUpdate.index=0,i.renderPipes.batch.upload(t.instructionSet)}i.globalUniforms.start({worldTransformMatrix:t?e.renderGroup.localTransform:e.renderGroup.worldTransform,worldColor:e.renderGroup.worldColorAlpha}),a(e.renderGroup,l),l.uniformBatch&&l.uniformBatch.renderEnd(),t&&e.renderGroup.localTransform.copyFrom(s),e.parent=r,e.renderGroup.renderGroupParent=n}destroy(){this._renderer=null}}m.extension={type:[n.nw.WebGLSystem,n.nw.WebGPUSystem,n.nw.CanvasSystem],name:"renderGroup"};var g=r(24951),x=r(88556);class _{constructor(e){this._gpuSpriteHash=Object.create(null),this._renderer=e}addRenderable(e,t){let r=this._getGpuSprite(e);e._didSpriteUpdate&&this._updateBatchableSprite(e,r),this._renderer.renderPipes.batch.addToBatch(r)}updateRenderable(e){let t=this._gpuSpriteHash[e.uid];e._didSpriteUpdate&&this._updateBatchableSprite(e,t),t.batcher.updateElement(t)}validateRenderable(e){let t=e._texture,r=this._getGpuSprite(e);return r.texture._source!==t._source&&!r.batcher.checkAndUpdateTexture(r,t)}destroyRenderable(e){let t=this._gpuSpriteHash[e.uid];g.u.return(t),this._gpuSpriteHash[e.uid]=null}_updateBatchableSprite(e,t){e._didSpriteUpdate=!1,t.bounds=e.bounds,t.texture=e._texture}_getGpuSprite(e){return this._gpuSpriteHash[e.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=g.u.get(x.c);return t.renderable=e,t.texture=e._texture,t.bounds=e.bounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuSpriteHash[e.uid]=t,e._didSpriteUpdate=!1,e.on("destroyed",()=>{this.destroyRenderable(e)}),t}destroy(){for(let e in this._gpuSpriteHash)g.u.return(this._gpuSpriteHash[e]);this._gpuSpriteHash=null,this._renderer=null}}_.extension={type:[n.nw.WebGLPipes,n.nw.WebGPUPipes,n.nw.CanvasPipes],name:"sprite"};var b=r(29492),v=r(54809),k=r(84376);class T{constructor(e,t){this.state=b.Z.for2d(),this._batches=Object.create(null),this._geometries=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init(this)}buildStart(e){if(!this._batches[e.uid]){let t=new k.m;this._batches[e.uid]=t,this._geometries[t.uid]=new v.J}this._activeBatch=this._batches[e.uid],this._activeGeometry=this._geometries[this._activeBatch.uid],this._activeBatch.begin()}addToBatch(e){this._activeBatch.add(e)}break(e){this._activeBatch.break(e)}buildEnd(e){let t=this._activeBatch,r=this._activeGeometry;t.finish(e),r.indexBuffer.setDataWithSize(t.indexBuffer,t.indexSize,!0),r.buffers[0].setDataWithSize(t.attributeBuffer.float32View,t.attributeSize,!1)}upload(e){let t=this._batches[e.uid],r=this._geometries[t.uid];t.dirty&&(t.dirty=!1,r.buffers[0].update(4*t.attributeSize))}execute(e){if("startBatch"===e.action){let t=e.batcher,r=this._geometries[t.uid];this._adaptor.start(this,r)}this._adaptor.execute(this,e)}destroy(){for(let e in this.state=null,this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this._batches)this._batches[e].destroy();for(let e in this._batches=null,this._geometries)this._geometries[e].destroy();this._geometries=null}}T.extension={type:[n.nw.WebGLPipes,n.nw.WebGPUPipes,n.nw.CanvasPipes],name:"batch"};var w=r(25521),M=r(95098),y=r(45025),C=r(73109),S=r(34855),P=r(83782),G="struct GlobalFilterUniforms {\n uInputSize:vec4<f32>,\n uInputPixel:vec4<f32>,\n uInputClamp:vec4<f32>,\n uOutputFrame:vec4<f32>,\n uGlobalFrame:vec4<f32>,\n uOutputTexture:vec4<f32>, \n};\n\nstruct MaskUniforms {\n uFilterMatrix:mat3x3<f32>,\n uMaskClamp:vec4<f32>,\n uAlpha:f32,\n};\n\n\n@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d<f32>;\n@group(0) @binding(2) var uSampler : sampler;\n\n@group(1) @binding(0) var<uniform> filterUniforms : MaskUniforms;\n@group(1) @binding(1) var uMaskTexture: texture_2d<f32>;\n\nstruct VSOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) uv : vec2<f32>,\n @location(1) filterUv : vec2<f32>,\n };\n\nfn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>\n{\n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>\n{\n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>\n{\n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); \n}\n\nfn getFilterCoord(aPosition:vec2<f32> ) -> vec2<f32>\n{\n return ( filterUniforms.uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;\n}\n\nfn getSize() -> vec2<f32>\n{\n\n \n return gfu.uGlobalFrame.zw;\n}\n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2<f32>, \n) -> VSOutput {\n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition),\n getFilterCoord(aPosition)\n );\n}\n\n@fragment\nfn mainFragment(\n @location(0) uv: vec2<f32>,\n @location(1) filterUv: vec2<f32>,\n @builtin(position) position: vec4<f32>\n) -> @location(0) vec4<f32> {\n\n var maskClamp = filterUniforms.uMaskClamp;\n\n var clip = step(3.5,\n step(maskClamp.x, filterUv.x) +\n step(maskClamp.y, filterUv.y) +\n step(filterUv.x, maskClamp.z) +\n step(filterUv.y, maskClamp.w));\n\n var mask = textureSample(uMaskTexture, uSampler, filterUv);\n var source = textureSample(uTexture, uSampler, uv);\n \n var npmAlpha = 0.0;\n\n var alphaMul = 1.0 - npmAlpha * (1.0 - mask.a);\n\n var a = (alphaMul * mask.r) * clip;\n\n return vec4(source.rgb, source.a) * a;\n}";class R extends P.w{constructor(e){let{sprite:t,...r}=e,n=new S.U(t.texture),i=new C.o({uFilterMatrix:{value:new s.y,type:"mat3x3<f32>"},uMaskClamp:{value:n.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"}});super({...r,gpuProgram:y.O.from({vertex:{source:G,entryPoint:"mainVertex"},fragment:{source:G,entryPoint:"mainFragment"}}),glProgram:M.J.from({vertex:"in vec2 aPosition;\n\nout vec2 vTextureCoord;\nout vec2 vMaskCoord;\n\n\nuniform vec4 uInputSize;\nuniform vec4 uOutputFrame;\nuniform vec4 uOutputTexture;\nuniform mat3 uFilterMatrix;\n\nvec4 filterVertexPosition( vec2 aPosition )\n{\n vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;\n \n position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( vec2 aPosition )\n{\n return aPosition * (uOutputFrame.zw * uInputSize.zw);\n}\n\nvec2 getFilterCoord( vec2 aPosition )\n{\n return ( uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;\n} \n\nvoid main(void)\n{\n gl_Position = filterVertexPosition(aPosition);\n vTextureCoord = filterTextureCoord(aPosition);\n vMaskCoord = getFilterCoord(aPosition);\n}\n",fragment:"in vec2 vMaskCoord;\nin vec2 vTextureCoord;\n\nuniform sampler2D uTexture;\nuniform sampler2D uMaskTexture;\n\nuniform float uAlpha;\nuniform vec4 uMaskClamp;\n\nout vec4 finalColor;\n\nvoid main(void)\n{\n float clip = step(3.5,\n step(uMaskClamp.x, vMaskCoord.x) +\n step(uMaskClamp.y, vMaskCoord.y) +\n step(vMaskCoord.x, uMaskClamp.z) +\n step(vMaskCoord.y, uMaskClamp.w));\n\n // TODO look into why this is needed\n float npmAlpha = uAlpha; \n vec4 original = texture(uTexture, vTextureCoord);\n vec4 masky = texture(uMaskTexture, vMaskCoord);\n float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);\n\n original *= (alphaMul * masky.r * uAlpha * clip);\n\n finalColor = original;\n}\n",name:"mask-filter"}),resources:{filterUniforms:i,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=n}apply(e,t,r,n){this._textureMatrix.texture=this.sprite.texture,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,e.applyFilter(this,t,r,n)}}var B=r(39622),U=r(71829),A=r(66388),I=r(41277),F=r(50900);let D=new B.Y;class O extends w.U{constructor(){super({filters:[new R({sprite:new A.j(I.x.EMPTY)})]})}get sprite(){return this.filters[0].sprite}set sprite(e){this.filters[0].sprite=e}}class E{constructor(e){this._activeMaskStage=[],this._renderer=e}push(e,t,r){let n=this._renderer;if(n.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:e,canBundle:!1,maskedContainer:t}),e.renderMaskToTexture){let t=e.mask;t.includeInBuild=!0,l(t,r,n.renderPipes),t.includeInBuild=!1}n.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:e,maskedContainer:t,canBundle:!1})}pop(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:e,canBundle:!1})}execute(e){let t=this._renderer,r=e.mask.renderMaskToTexture;if("pushMaskBegin"===e.action){let n=g.u.get(O);if(r){e.mask.mask.measurable=!0;let r=(0,U.qW)(e.mask.mask,!0,D);e.mask.mask.measurable=!1,r.ceil();let i=F.z.getOptimalTexture(r.width,r.height,1,!1);t.renderTarget.push(i,!0),t.globalUniforms.push({offset:r,worldColor:0xffffffff});let a=n.sprite;a.texture=i,a.worldTransform.tx=r.minX,a.worldTransform.ty=r.minY,this._activeMaskStage.push({filterEffect:n,maskedContainer:e.maskedContainer,filterTexture:i})}else n.sprite=e.mask.mask,this._activeMaskStage.push({filterEffect:n,maskedContainer:e.maskedContainer})}else if("pushMaskEnd"===e.action){let e=this._activeMaskStage[this._activeMaskStage.length-1];r&&(t.renderTarget.pop(),t.globalUniforms.pop()),t.filter.push({renderPipeId:"filter",action:"pushFilter",container:e.maskedContainer,filterEffect:e.filterEffect,canBundle:!1})}else if("popMaskEnd"===e.action){t.filter.pop();let e=this._activeMaskStage.pop();r&&F.z.returnTexture(e.filterTexture),g.u.return(e.filterEffect)}}destroy(){this._renderer=null,this._activeMaskStage=null}}E.extension={type:[n.nw.WebGLPipes,n.nw.WebGPUPipes,n.nw.CanvasPipes],name:"alphaMask"};class W{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&e.mask;let i=this._colorStack[this._colorStackIndex];i!==this._currentColor&&(this._currentColor=i,r.add({renderPipeId:"colorMask",colorMask:i,canBundle:!1})),this._colorStackIndex++}pop(e,t,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;this._colorStackIndex--;let i=n[this._colorStackIndex-1];i!==this._currentColor&&(this._currentColor=i,r.add({renderPipeId:"colorMask",colorMask:i,canBundle:!1}))}execute(e){this._renderer.colorMask.setMask(e.colorMask)}destroy(){this._colorStack=null}}W.extension={type:[n.nw.WebGLPipes,n.nw.WebGPUPipes,n.nw.CanvasPipes],name:"colorMask"};var z=r(81599),L=r(22246);class H{constructor(e){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=e}push(e,t,r){var n;let i=this._renderer;i.renderPipes.batch.break(r),i.renderPipes.blendMode.setBlendMode(e.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,canBundle:!1});let a=e.mask;a.includeInBuild=!0,this._maskHash.has(e)||this._maskHash.set(e,{instructionsStart:0,instructionsLength:0});let o=this._maskHash.get(e);o.instructionsStart=r.instructionSize,l(a,r,i.renderPipes),a.includeInBuild=!1,i.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:e,canBundle:!1});let s=r.instructionSize-o.instructionsStart-1;o.instructionsLength=s;let d=i.renderTarget.renderTarget.uid;(n=this._maskStackHash)[d]??(n[d]=0)}pop(e,t,r){let n=this._renderer;n.renderPipes.batch.break(r),n.renderPipes.blendMode.setBlendMode(e.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"popMaskBegin",canBundle:!1});let i=this._maskHash.get(e);for(let e=0;e<i.instructionsLength;e++)r.instructions[r.instructionSize++]=r.instructions[i.instructionsStart++];r.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(e){var t;let r=this._renderer,n=r.renderTarget.renderTarget.uid,i=(t=this._maskStackHash)[n]??(t[n]=0);"pushMaskBegin"===e.action?(r.renderTarget.ensureDepthStencil(),r.stencil.setStencilMode(L.D.RENDERING_MASK_ADD,i),i++,r.colorMask.setMask(0)):"pushMaskEnd"===e.action?(r.stencil.setStencilMode(L.D.MASK_ACTIVE,i),r.colorMask.setMask(15)):"popMaskBegin"===e.action?(r.colorMask.setMask(0),0!==i?r.stencil.setStencilMode(L.D.RENDERING_MASK_REMOVE,i):(r.renderTarget.clear(null,z.E.STENCIL),r.stencil.setStencilMode(L.D.DISABLED,i)),i--):"popMaskEnd"===e.action&&(r.stencil.setStencilMode(L.D.MASK_ACTIVE,i),r.colorMask.setMask(15)),this._maskStackHash[n]=i}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}}H.extension={type:[n.nw.WebGLPipes,n.nw.WebGPUPipes,n.nw.CanvasPipes],name:"stencilMask"};var V=r(32036);let j=class e{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new V.I(0),this.color=this._backgroundColor,this.alpha=1}init(t){t={...e.defaultOptions,...t},this.clearBeforeRender=t.clearBeforeRender,this.color=t.background||t.backgroundColor||this._backgroundColor,this.alpha=t.backgroundAlpha,this._backgroundColor.setAlpha(t.backgroundAlpha)}get color(){return this._backgroundColor}set color(e){this._backgroundColor.setValue(e)}get alpha(){return this._backgroundColor.alpha}set alpha(e){this._backgroundColor.setAlpha(e)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};j.extension={type:[n.nw.WebGLSystem,n.nw.WebGPUSystem,n.nw.CanvasSystem],name:"background",priority:0},j.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};var N=r(92245);let $={};n.Rw.handle(n.nw.BlendMode,e=>{if(!e.name)throw Error("BlendMode extension must have a name property");$[e.name]=e.ref},e=>{delete $[e.name]});class q{constructor(e){this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e}setBlendMode(e,t,r){if(this._activeBlendMode===t){this._isAdvanced&&this._renderableList.push(e);return}this._activeBlendMode=t,this._isAdvanced&&this._endAdvancedBlendMode(r),this._isAdvanced=!!$[t],this._isAdvanced&&(this._beginAdvancedBlendMode(r),this._renderableList.push(e))}_beginAdvancedBlendMode(e){this._renderer.renderPipes.batch.break(e);let t=this._activeBlendMode;if(!$[t])return void(0,N.Z)(`Unable to assign BlendMode: '${t}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);this._filterHash[t]||(this._filterHash[t]=new w.U({filters:[new $[t]]}));let r={renderPipeId:"filter",action:"pushFilter",renderables:[],filterEffect:this._filterHash[t],canBundle:!1};this._renderableList=r.renderables,e.add(r)}_endAdvancedBlendMode(e){this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){for(let e in this._renderer=null,this._renderableList=null,this._filterHash)this._filterHash[e].destroy();this._filterHash=null}}q.extension={type:[n.nw.WebGLPipes,n.nw.WebGPUPipes,n.nw.CanvasPipes],name:"blendMode"};let K={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},J=class e{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof u.W2||e instanceof I.x?{target:e,...t}:{...t,...e}}async image(e){let t=new Image;return t.src=await this.base64(e),t}async base64(t){let{format:r,quality:n}=t=this._normalizeOptions(t,e.defaultImageOptions),i=this.canvas(t);if(void 0!==i.toBlob)return new Promise((e,t)=>{i.toBlob(r=>{if(!r)return void t(Error("ICanvas.toBlob failed!"));let n=new FileReader;n.onload=()=>e(n.result),n.onerror=t,n.readAsDataURL(r)},K[r],n)});if(void 0!==i.toDataURL)return i.toDataURL(K[r],n);if(void 0!==i.convertToBlob){let e=await i.convertToBlob({type:K[r],quality:n});return new Promise((t,r)=>{let n=new FileReader;n.onload=()=>t(n.result),n.onerror=r,n.readAsDataURL(e)})}throw Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e){let t=(e=this._normalizeOptions(e)).target,r=this._renderer;if(t instanceof I.x)return r.texture.generateCanvas(t);let n=r.textureGenerator.generateTexture(e),i=r.texture.generateCanvas(n);return n.destroy(),i}pixels(e){let t=(e=this._normalizeOptions(e)).target,r=this._renderer,n=t instanceof I.x?t:r.textureGenerator.generateTexture(e),i=r.texture.getPixels(n);return t instanceof u.W2&&n.destroy(),i}texture(e){return(e=this._normalizeOptions(e)).target instanceof I.x?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);let t=this.canvas(e),r=document.createElement("a");r.download=e.filename??"image.png",r.href=t.toDataURL("image/png"),document.body.appendChild(r),r.click(),document.body.removeChild(r)}log(e){let t=e.width??200;e=this._normalizeOptions(e);let r=this.canvas(e),n=r.toDataURL();console.log(`[Pixi Texture] ${r.width}px ${r.height}px`),console.log("%c ",`font-size: 1px; padding: ${t}px 300px; background: url(${n}) no-repeat; background-size: contain;`)}destroy(){this._renderer=null}};J.extension={type:[n.nw.WebGLSystem,n.nw.WebGPUSystem],name:"extract"},J.defaultImageOptions={format:"png",quality:1};var Y=r(45266),Z=r(30858),X=r(62815);class Q extends I.x{static create(e){return new I.x({source:new X.p(e)})}resize(e,t,r){return this.source.resize(e,t,r),this}}let ee=new Y.A,et=new B.Y,er=[0,0,0,0];class en{constructor(e){this._renderer=e}generateTexture(e){e instanceof u.W2&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});let t=e.resolution||this._renderer.resolution,r=e.antialias||this._renderer.view.antialias,n=e.target,i=e.clearColor;i=i?Array.isArray(i)&&4===i.length?i:V.I.shared.setValue(i).toArray():er;let a=e.frame?.copyTo(ee)||(0,Z.a)(n,et).rectangle;a.width=0|Math.max(a.width,1/t),a.height=0|Math.max(a.height,1/t);let o=Q.create({...e.textureSourceOptions,width:a.width,height:a.height,resolution:t,antialias:r}),l=s.y.shared.translate(-a.x,-a.y);return this._renderer.render({container:n,transform:l,target:o,clearColor:i}),o}destroy(){this._renderer=null}}en.extension={type:[n.nw.WebGLSystem,n.nw.WebGPUSystem],name:"textureGenerator"};var ei=r(87246),ea=r(23947),eo=r(49458),es=r(71423);class el{constructor(e){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=e}reset(){this._stackIndex=0;for(let e=0;e<this._activeUniforms.length;e++)this._uniformsPool.push(this._activeUniforms[e]);for(let e=0;e<this._activeBindGroups.length;e++)this._bindGroupPool.push(this._activeBindGroups[e]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(e){this.reset(),this.push(e)}bind({size:e,projectionMatrix:t,worldTransformMatrix:r,worldColor:n,offset:i}){let a,o=this._renderer.renderTarget.renderTarget,l=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new s.y,worldColor:0xffffffff,offset:new ei.E},d={projectionMatrix:t||this._renderer.renderTarget.projectionMatrix,resolution:e||o.size,worldTransformMatrix:r||l.worldTransformMatrix,worldColor:n||l.worldColor,offset:i||l.offset,bindGroup:null},u=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(u);let c=u.uniforms;c.uProjectionMatrix=d.projectionMatrix,c.uResolution=d.resolution,c.uWorldTransformMatrix.copyFrom(d.worldTransformMatrix),c.uWorldTransformMatrix.tx-=d.offset.x,c.uWorldTransformMatrix.ty-=d.offset.y,(0,ea.V)(d.worldColor,c.uWorldColorAlpha,0),u.update(),this._renderer.renderPipes.uniformBatch?a=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(u,!1):(a=this._bindGroupPool.pop()||new eo.v,this._activeBindGroups.push(a),a.setResource(u,0)),d.bindGroup=a,this._currentGlobalUniformData=d}push(e){this.bind(e),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===es.g.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new C.o({uProjectionMatrix:{value:new s.y,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new s.y,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null}}el.extension={type:[n.nw.WebGLSystem,n.nw.WebGPUSystem,n.nw.CanvasSystem],name:"globalUniforms"};var ed=r(767);let eu=!1,ec="8.1.1";class eh{constructor(e){this._renderer=e}init(e){if(e.hello){let e=this._renderer.name;this._renderer.type===es.g.WEBGL&&(e+=` ${this._renderer.context.webGLVersion}`);var t=e;if(!eu){if(ed.z.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let e=[`%c %c %c %c %c PixiJS %c v${ec} (${t}) http://www.pixijs.com/
|
|
28
|
-
|
|
29
|
-
`,"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(...e)}else globalThis.console&&globalThis.console.log(`PixiJS ${ec} - ${t} - http://www.pixijs.com/`);eu=!0}}}}eh.extension={type:[n.nw.WebGLSystem,n.nw.WebGPUSystem,n.nw.CanvasSystem],name:"hello",priority:-2},eh.defaultOptions={hello:!1};let ep=class e{constructor(e){this._renderer=e,this.count=0,this.checkCount=0}init(t){t={...e.defaultOptions,...t},this.checkCountMax=t.textureGCCheckCountMax,this.maxIdle=t.textureGCAMaxIdle,this.active=t.textureGCActive}postrender(){this._renderer.renderingToScreen&&(this.count++,this.active&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let e=this._renderer.texture.managedTextures;for(let t=0;t<e.length;t++){let r=e[t];r.autoGarbageCollect&&r.resource&&r._touched>-1&&this.count-r._touched>this.maxIdle&&(r._touched=-1,r.unload())}}destroy(){this._renderer=null}};ep.extension={type:[n.nw.WebGLSystem,n.nw.WebGPUSystem],name:"textureGC"},ep.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:3600,textureGCCheckCountMax:600},n.Rw.add(ep);let ef=[j,el,eh,r(36966).l,m,ep,en,J],em=[q,T,_,o,E,H,W,i]}}]);
|
|
30
|
-
//# sourceMappingURL=364.d88c3cff.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkandroid_playground=self.webpackChunkandroid_playground||[]).push([["544"],{84522:function(e,t,i){var n=i(91957),o=i(82930),s=i(87246);class r{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=r.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new s.E,this.page=new s.E,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,i){throw Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,i,n,o){throw Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}var a=/iPhone/i,h=/iPod/i,l=/iPad/i,d=/\biOS-universal(?:.+)Mac\b/i,p=/\bAndroid(?:.+)Mobile\b/i,u=/Android/i,c=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,v=/Silk/i,m=/Windows Phone/i,g=/\bWindows(?:.+)ARM\b/i,y=/BlackBerry/i,E=/BB10/i,b=/Opera Mini/i,f=/\b(CriOS|Chrome)(?:.+)Mobile/i,_=/Mobile(?:.+)Firefox\b/i,T=function(e){return void 0!==e&&"MacIntel"===e.platform&&"number"==typeof e.maxTouchPoints&&e.maxTouchPoints>1&&"undefined"==typeof MSStream};function P(e){var t,i={userAgent:"",platform:"",maxTouchPoints:0};e||"undefined"==typeof navigator?"string"==typeof e?i.userAgent=e:e&&e.userAgent&&(i={userAgent:e.userAgent,platform:e.platform,maxTouchPoints:e.maxTouchPoints||0}):i={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0};var n=i.userAgent,o=n.split("[FBAN");void 0!==o[1]&&(n=o[0]),void 0!==(o=n.split("Twitter"))[1]&&(n=o[0]);var s=(t=n,function(e){return e.test(t)}),r={apple:{phone:s(a)&&!s(m),ipod:s(h),tablet:!s(a)&&(s(l)||T(i))&&!s(m),universal:s(d),device:(s(a)||s(h)||s(l)||s(d)||T(i))&&!s(m)},amazon:{phone:s(c),tablet:!s(c)&&s(v),device:s(c)||s(v)},android:{phone:!s(m)&&s(c)||!s(m)&&s(p),tablet:!s(m)&&!s(c)&&!s(p)&&(s(v)||s(u)),device:!s(m)&&(s(c)||s(v)||s(p)||s(u))||s(/\bokhttp\b/i)},windows:{phone:s(m),tablet:s(g),device:s(m)||s(g)},other:{blackberry:s(y),blackberry10:s(E),opera:s(b),firefox:s(_),chrome:s(f),device:s(y)||s(E)||s(b)||s(_)||s(f)},any:!1,phone:!1,tablet:!1};return r.any=r.apple.device||r.android.device||r.windows.device||r.other.device,r.phone=r.apple.phone||r.android.phone||r.windows.phone,r.tablet=r.apple.tablet||r.android.tablet||r.windows.tablet,r}let w=(P.default??P)(globalThis.navigator);var M=i(32472);class A{constructor(e,t=w){this._mobileInfo=t,this.debug=!1,this._isActive=!1,this._isMobileAccessibility=!1,this._pool=[],this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook();let i=document.createElement("div");i.style.width="100px",i.style.height="100px",i.style.position="absolute",i.style.top="0px",i.style.left="0px",i.style.zIndex="2",this._div=i,this._renderer=e,this._onKeyDown=this._onKeyDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}_createTouchHook(){let e=document.createElement("button");e.style.width="1px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.left="-1000px",e.style.zIndex="2",e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){this._isActive||(this._isActive=!0,globalThis.document.addEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.add(this),this._renderer.view.canvas.parentNode?.appendChild(this._div))}_deactivate(){this._isActive&&!this._isMobileAccessibility&&(this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.addEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.remove(this),this._div.parentNode?.removeChild(this._div))}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&e.isInteractive()&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);let t=e.children;if(t)for(let e=0;e<t.length;e++)this._updateAccessibleObjects(t[e])}init(e){this.debug=e?.debug??this.debug,this._renderer.runners.postrender.remove(this)}postrender(){let e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,!this._renderer.renderingToScreen||!this._renderer.view.canvas))return;this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered);let{x:t,y:i,width:n,height:o}=this._renderer.view.canvas.getBoundingClientRect(),{width:s,height:r,resolution:a}=this._renderer,h=n/s*a,l=o/r*a,d=this._div;d.style.left=`${t}px`,d.style.top=`${i}px`,d.style.width=`${s}px`,d.style.height=`${r}px`;for(let e=0;e<this._children.length;e++){let t=this._children[e];if(t._renderId!==this._renderId)t._accessibleActive=!1,(0,M.E)(this._children,e,1),this._div.removeChild(t._accessibleDiv),this._pool.push(t._accessibleDiv),t._accessibleDiv=null,e--;else{d=t._accessibleDiv;let e=t.hitArea,i=t.worldTransform;t.hitArea?(d.style.left=`${(i.tx+e.x*i.a)*h}px`,d.style.top=`${(i.ty+e.y*i.d)*l}px`,d.style.width=`${e.width*i.a*h}px`,d.style.height=`${e.height*i.d*l}px`):(e=t.getBounds().rectangle,this._capHitArea(e),d.style.left=`${e.x*h}px`,d.style.top=`${e.y*l}px`,d.style.width=`${e.width*h}px`,d.style.height=`${e.height*l}px`,d.title!==t.accessibleTitle&&null!==t.accessibleTitle&&(d.title=t.accessibleTitle||""),d.getAttribute("aria-label")!==t.accessibleHint&&null!==t.accessibleHint&&d.setAttribute("aria-label",t.accessibleHint||"")),(t.accessibleTitle!==d.title||t.tabIndex!==d.tabIndex)&&(d.title=t.accessibleTitle||"",d.tabIndex=t.tabIndex,this.debug&&this._updateDebugHTML(d))}}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:i}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>i&&(e.height=i-e.y)}_addChild(e){let t=this._pool.pop();t||((t=document.createElement("button")).style.width="100px",t.style.height="100px",t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex="2",t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&null!==e.accessibleTitle?t.title=e.accessibleTitle:e.accessibleHint&&null!==e.accessibleHint||(t.title=`container ${e.tabIndex}`),e.accessibleHint&&null!==e.accessibleHint&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this._updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv),e._accessibleDiv.tabIndex=e.tabIndex}_dispatchEvent(e,t){let{container:i}=e.target,n=this._renderer.events.rootBoundary,o=Object.assign(new r(n),{target:i});n.rootTarget=this._renderer.lastObjectRendered,t.forEach(e=>n.dispatchEvent(o,e))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){9===e.keyCode&&this._activate()}_onMouseMove(e){(0!==e.movementX||0!==e.movementY)&&this._deactivate()}destroy(){this._destroyTouchHook(),this._div=null,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown),this._pool=null,this._children=null,this._renderer=null}}A.extension={type:[n.nw.WebGLSystem,n.nw.WebGPUSystem],name:"accessibility"},n.Rw.add(A),o.W2.mixin({accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,_accessibleActive:!1,_accessibleDiv:null,accessibleType:"button",accessiblePointerEvents:"auto",accessibleChildren:!0,_renderId:-1}),i(52818);var D=i(72193),I=i(92245),k=i(95909),x=i(96743);let O=new class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){!this._tickerAdded&&this.domElement&&(x.v.system.add(this._tickerUpdate,this,k.u.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(x.v.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events._rootPointerEvent;this.events.supportsTouchEvents&&"touch"===e.pointerType||globalThis.document.dispatchEvent(new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY}))}_tickerUpdate(e){this._deltaTime+=e.deltaTime,this._deltaTime<this.interactionFrequency||(this._deltaTime=0,this._update())}};class L extends r{constructor(){super(...arguments),this.client=new s.E,this.movement=new s.E,this.offset=new s.E,this.global=new s.E,this.screen=new s.E}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,i){return e.worldTransform.applyInverse(i||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,i,n,o,s,r,a,h,l,d,p,u,c,v){throw Error("Method not implemented.")}}class B extends L{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return"pointermove"===this.type||"mousemove"===this.type||"touchmove"===this.type?[this]:[]}getPredictedEvents(){throw Error("getPredictedEvents is not supported!")}}class C extends L{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}}C.DOM_DELTA_PIXEL=0,C.DOM_DELTA_LINE=1,C.DOM_DELTA_PAGE=2;let S=new s.E,U=new s.E;class F{constructor(e){this.dispatch=new D.Z,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=e,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping("pointerdown",this.mapPointerDown),this.addEventMapping("pointermove",this.mapPointerMove),this.addEventMapping("pointerout",this.mapPointerOut),this.addEventMapping("pointerleave",this.mapPointerOut),this.addEventMapping("pointerover",this.mapPointerOver),this.addEventMapping("pointerup",this.mapPointerUp),this.addEventMapping("pointerupoutside",this.mapPointerUpOutside),this.addEventMapping("wheel",this.mapWheel)}addEventMapping(e,t){this.mappingTable[e]||(this.mappingTable[e]=[]),this.mappingTable[e].push({fn:t,priority:0}),this.mappingTable[e].sort((e,t)=>e.priority-t.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let i=0,n=t.length;i<n;i++)t[i].fn(e);else(0,I.Z)(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){O.pauseUpdate=!0;let i=this[this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive"](this.rootTarget,this.rootTarget.eventMode,S.set(e,t),this.hitTestFn,this.hitPruneFn);return i&&i[0]}propagate(e,t){if(!e.target)return;let i=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let n=0,o=i.length-1;n<o;n++)if(e.currentTarget=i[n],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,t),!e.propagationStopped&&!e.propagationImmediatelyStopped){e.eventPhase=e.BUBBLING_PHASE;for(let n=i.length-2;n>=0;n--)if(e.currentTarget=i[n],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,i=this._allInteractiveElements){if(0===i.length)return;e.eventPhase=e.BUBBLING_PHASE;let n=Array.isArray(t)?t:[t];for(let t=i.length-1;t>=0;t--)n.forEach(n=>{e.currentTarget=i[t],this.notifyTarget(e,n)})}propagationPath(e){let t=[e];for(let i=0;i<2048&&e!==this.rootTarget&&e.parent;i++){if(!e.parent)throw Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,i,n,o,s=!1){let r=!1;if(this._interactivePrune(e))return null;if(("dynamic"===e.eventMode||"dynamic"===t)&&(O.pauseUpdate=!1),e.interactiveChildren&&e.children){let a=e.children;for(let h=a.length-1;h>=0;h--){let l=a[h],d=this.hitTestMoveRecursive(l,this._isInteractive(t)?t:l.eventMode,i,n,o,s||o(e,i));if(d){if(d.length>0&&!d[d.length-1].parent)continue;let t=e.isInteractive();(d.length>0||t)&&(t&&this._allInteractiveElements.push(e),d.push(e)),0===this._hitElements.length&&(this._hitElements=d),r=!0}}}let a=this._isInteractive(t),h=e.isInteractive();return(h&&h&&this._allInteractiveElements.push(e),s||this._hitElements.length>0)?null:r?this._hitElements:a&&!o(e,i)&&n(e,i)?h?[e]:[]:null}hitTestRecursive(e,t,i,n,o){if(this._interactivePrune(e)||o(e,i))return null;if(("dynamic"===e.eventMode||"dynamic"===t)&&(O.pauseUpdate=!1),e.interactiveChildren&&e.children){let s=e.children;for(let r=s.length-1;r>=0;r--){let a=s[r],h=this.hitTestRecursive(a,this._isInteractive(t)?t:a.eventMode,i,n,o);if(h){if(h.length>0&&!h[h.length-1].parent)continue;let t=e.isInteractive();return(h.length>0||t)&&h.push(e),h}}}let s=this._isInteractive(t),r=e.isInteractive();return s&&n(e,i)?r?[e]:[]:null}_isInteractive(e){return"static"===e||"dynamic"===e}_interactivePrune(e){return!e||!e.visible||!e.renderable||"none"===e.eventMode||"passive"===e.eventMode&&!e.interactiveChildren}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,U),!e.hitArea.contains(U.x,U.y)))return!0;if(e.effects&&e.effects.length)for(let i=0;i<e.effects.length;i++){let n=e.effects[i];if(n.containsPoint&&!n.containsPoint(t,this.hitTestFn))return!0}return!1}hitTestFn(e,t){return!!e.hitArea||!!e?.containsPoint&&(e.worldTransform.applyInverse(t,U),e.containsPoint(U))}notifyTarget(e,t){t=t??e.type;let i=`on${t}`;e.currentTarget[i]?.(e);let n=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this._notifyListeners(e,n),e.eventPhase===e.AT_TARGET&&this._notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof B))return void(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),"touch"===t.pointerType)this.dispatchEvent(t,"touchstart");else if("mouse"===t.pointerType||"pen"===t.pointerType){let e=2===t.button;this.dispatchEvent(t,e?"rightdown":"mousedown")}this.trackingData(e.pointerId).pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof B))return void(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let i="mouse"===t.pointerType||"pen"===t.pointerType,n=this.trackingData(e.pointerId),o=this.findMountedTarget(n.overTargets);if(n.overTargets?.length>0&&o!==t.target){let n="mousemove"===e.type?"mouseout":"pointerout",s=this.createPointerEvent(e,n,o);if(this.dispatchEvent(s,"pointerout"),i&&this.dispatchEvent(s,"mouseout"),!t.composedPath().includes(o)){let n=this.createPointerEvent(e,"pointerleave",o);for(n.eventPhase=n.AT_TARGET;n.target&&!t.composedPath().includes(n.target);)n.currentTarget=n.target,this.notifyTarget(n),i&&this.notifyTarget(n,"mouseleave"),n.target=n.target.parent;this.freeEvent(n)}this.freeEvent(s)}if(o!==t.target){let n="mousemove"===e.type?"mouseover":"pointerover",s=this.clonePointerEvent(t,n);this.dispatchEvent(s,"pointerover"),i&&this.dispatchEvent(s,"mouseover");let r=o?.parent;for(;r&&r!==this.rootTarget.parent&&r!==t.target;)r=r.parent;if(!r||r===this.rootTarget.parent){let e=this.clonePointerEvent(t,"pointerenter");for(e.eventPhase=e.AT_TARGET;e.target&&e.target!==o&&e.target!==this.rootTarget.parent;)e.currentTarget=e.target,this.notifyTarget(e),i&&this.notifyTarget(e,"mouseenter"),e.target=e.target.parent;this.freeEvent(e)}this.freeEvent(s)}let s=[],r=this.enableGlobalMoveEvents??!0;this.moveOnAll?s.push("pointermove"):this.dispatchEvent(t,"pointermove"),r&&s.push("globalpointermove"),"touch"===t.pointerType&&(this.moveOnAll?s.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),r&&s.push("globaltouchmove")),i&&(this.moveOnAll?s.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),r&&s.push("globalmousemove"),this.cursor=t.target?.cursor),s.length>0&&this.all(t,s),this._allInteractiveElements.length=0,this._hitElements.length=0,n.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof B))return void(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");let t=this.trackingData(e.pointerId),i=this.createPointerEvent(e),n="mouse"===i.pointerType||"pen"===i.pointerType;this.dispatchEvent(i,"pointerover"),n&&this.dispatchEvent(i,"mouseover"),"mouse"===i.pointerType&&(this.cursor=i.target?.cursor);let o=this.clonePointerEvent(i,"pointerenter");for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),n&&this.notifyTarget(o,"mouseenter"),o.target=o.target.parent;t.overTargets=i.composedPath(),this.freeEvent(i),this.freeEvent(o)}mapPointerOut(e){if(!(e instanceof B))return void(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");let t=this.trackingData(e.pointerId);if(t.overTargets){let i="mouse"===e.pointerType||"pen"===e.pointerType,n=this.findMountedTarget(t.overTargets),o=this.createPointerEvent(e,"pointerout",n);this.dispatchEvent(o),i&&this.dispatchEvent(o,"mouseout");let s=this.createPointerEvent(e,"pointerleave",n);for(s.eventPhase=s.AT_TARGET;s.target&&s.target!==this.rootTarget.parent;)s.currentTarget=s.target,this.notifyTarget(s),i&&this.notifyTarget(s,"mouseleave"),s.target=s.target.parent;t.overTargets=null,this.freeEvent(o),this.freeEvent(s)}this.cursor=null}mapPointerUp(e){if(!(e instanceof B))return void(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");let t=performance.now(),i=this.createPointerEvent(e);if(this.dispatchEvent(i,"pointerup"),"touch"===i.pointerType)this.dispatchEvent(i,"touchend");else if("mouse"===i.pointerType||"pen"===i.pointerType){let e=2===i.button;this.dispatchEvent(i,e?"rightup":"mouseup")}let n=this.trackingData(e.pointerId),o=this.findMountedTarget(n.pressTargetsByButton[e.button]),s=o;if(o&&!i.composedPath().includes(o)){let t=o;for(;t&&!i.composedPath().includes(t);){if(i.currentTarget=t,this.notifyTarget(i,"pointerupoutside"),"touch"===i.pointerType)this.notifyTarget(i,"touchendoutside");else if("mouse"===i.pointerType||"pen"===i.pointerType){let e=2===i.button;this.notifyTarget(i,e?"rightupoutside":"mouseupoutside")}t=t.parent}delete n.pressTargetsByButton[e.button],s=t}if(s){let o=this.clonePointerEvent(i,"click");o.target=s,o.path=null,n.clicksByButton[e.button]||(n.clicksByButton[e.button]={clickCount:0,target:o.target,timeStamp:t});let r=n.clicksByButton[e.button];if(r.target===o.target&&t-r.timeStamp<200?++r.clickCount:r.clickCount=1,r.target=o.target,r.timeStamp=t,o.detail=r.clickCount,"mouse"===o.pointerType){let e=2===o.button;this.dispatchEvent(o,e?"rightclick":"click")}else"touch"===o.pointerType&&this.dispatchEvent(o,"tap");this.dispatchEvent(o,"pointertap"),this.freeEvent(o)}this.freeEvent(i)}mapPointerUpOutside(e){if(!(e instanceof B))return void(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");let t=this.trackingData(e.pointerId),i=this.findMountedTarget(t.pressTargetsByButton[e.button]),n=this.createPointerEvent(e);if(i){let o=i;for(;o;)n.currentTarget=o,this.notifyTarget(n,"pointerupoutside"),"touch"===n.pointerType?this.notifyTarget(n,"touchendoutside"):("mouse"===n.pointerType||"pen"===n.pointerType)&&this.notifyTarget(n,2===n.button?"rightupoutside":"mouseupoutside"),o=o.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(n)}mapWheel(e){if(!(e instanceof C))return void(0,I.Z)("EventBoundary cannot map a non-wheel event as a wheel event");let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let i=1;i<e.length;i++)if(e[i].parent===t)t=e[i];else break;return t}createPointerEvent(e,t,i){let n=this.allocateEvent(B);return this.copyPointerData(e,n),this.copyMouseData(e,n),this.copyData(e,n),n.nativeEvent=e.nativeEvent,n.originalEvent=e,n.target=i??this.hitTest(n.global.x,n.global.y)??this._hitElements[0],"string"==typeof t&&(n.type=t),n}createWheelEvent(e){let t=this.allocateEvent(C);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let i=this.allocateEvent(B);return i.nativeEvent=e.nativeEvent,i.originalEvent=e.originalEvent,this.copyPointerData(e,i),this.copyMouseData(e,i),this.copyData(e,i),i.target=e.target,i.path=e.composedPath().slice(),i.type=t??i.type,i}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof B&&t instanceof B&&(t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist)}copyMouseData(e,t){e instanceof L&&t instanceof L&&(t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.copyFrom(e.client),t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.copyFrom(e.movement),t.screen.copyFrom(e.screen),t.shiftKey=e.shiftKey,t.global.copyFrom(e.global))}copyData(e,t){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.detail=e.detail,t.view=e.view,t.which=e.which,t.layer.copyFrom(e.layer),t.page.copyFrom(e.page)}trackingData(e){return this.mappingState.trackingData[e]||(this.mappingState.trackingData[e]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[e]}allocateEvent(e){this.eventPool.has(e)||this.eventPool.set(e,[]);let t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,t.path=null,t.target=null,t}freeEvent(e){if(e.manager!==this)throw Error("It is illegal to free an event not managed by this EventBoundary!");let t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}_notifyListeners(e,t){let i=e.currentTarget._events[t];if(i&&e.currentTarget.isInteractive())if("fn"in i)i.once&&e.currentTarget.removeListener(t,i.fn,void 0,!0),i.fn.call(i.context,e);else for(let n=0,o=i.length;n<o&&!e.propagationImmediatelyStopped;n++)i[n].once&&e.currentTarget.removeListener(t,i[n].fn,void 0,!0),i[n].fn.call(i[n].context,e)}}let X={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},Y=class e{constructor(t){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=t,this.rootBoundary=new F(null),O.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new B(null),this._rootWheelEvent=new C(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...e.defaultEventFeatures},{set:(e,t,i)=>("globalMove"===t&&(this.rootBoundary.enableGlobalMoveEvents=i),e[t]=i,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(t){let{canvas:i,resolution:n}=this.renderer;this.setTargetElement(i),this.resolution=n,e._defaultEventMode=t.eventMode??"passive",Object.assign(this.features,t.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e=e||"default";let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;let i=this.cursorStyles[e];if(i)switch(typeof i){case"string":t&&(this.domElement.style.cursor=i);break;case"function":i(e);break;case"object":t&&Object.assign(this.domElement.style,i)}else t&&"string"==typeof e&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(!e.cancelable&&"cancelable"in e||e.preventDefault());for(let e=0,i=t.length;e<i;e++){let i=t[e],n=this._bootstrapEvent(this._rootPointerEvent,i);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,O.pointerMoved();let t=this._normalizeToPointerData(e);for(let e=0,i=t.length;e<i;e++){let i=this._bootstrapEvent(this._rootPointerEvent,t[e]);this.rootBoundary.mapEvent(i)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=e.target;e.composedPath&&e.composedPath().length>0&&(t=e.composedPath()[0]);let i=t!==this.domElement?"outside":"",n=this._normalizeToPointerData(e);for(let e=0,t=n.length;e<t;e++){let t=this._bootstrapEvent(this._rootPointerEvent,n[e]);t.type+=i,this.rootBoundary.mapEvent(t)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);for(let e=0,i=t.length;e<i;e++){let i=this._bootstrapEvent(this._rootPointerEvent,t[e]);this.rootBoundary.mapEvent(i)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;let t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this._removeEvents(),this.domElement=e,O.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;O.addTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="none",e.msTouchAction="none"):this.supportsPointerEvents&&(e.touchAction="none")),this.supportsPointerEvents?(globalThis.document.addEventListener("pointermove",this._onPointerMove,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;O.removeTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="",e.msTouchAction=""):this.supportsPointerEvents&&(e.touchAction="")),this.supportsPointerEvents?(globalThis.document.removeEventListener("pointermove",this._onPointerMove,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(e,t,i){let n=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},o=1/this.resolution;e.x=(t-n.left)*(this.domElement.width/n.width)*o,e.y=(i-n.top)*(this.domElement.height/n.height)*o}_normalizeToPointerData(e){let t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let i=0,n=e.changedTouches.length;i<n;i++){let n=e.changedTouches[i];void 0===n.button&&(n.button=0),void 0===n.buttons&&(n.buttons=1),void 0===n.isPrimary&&(n.isPrimary=1===e.touches.length&&"touchstart"===e.type),void 0===n.width&&(n.width=n.radiusX||1),void 0===n.height&&(n.height=n.radiusY||1),void 0===n.tiltX&&(n.tiltX=0),void 0===n.tiltY&&(n.tiltY=0),void 0===n.pointerType&&(n.pointerType="touch"),void 0===n.pointerId&&(n.pointerId=n.identifier||0),void 0===n.pressure&&(n.pressure=n.force||.5),void 0===n.twist&&(n.twist=0),void 0===n.tangentialPressure&&(n.tangentialPressure=0),void 0===n.layerX&&(n.layerX=n.offsetX=n.clientX),void 0===n.layerY&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=e.type,t.push(n)}else(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent)))&&(void 0===e.isPrimary&&(e.isPrimary=!0),void 0===e.width&&(e.width=1),void 0===e.height&&(e.height=1),void 0===e.tiltX&&(e.tiltX=0),void 0===e.tiltY&&(e.tiltY=0),void 0===e.pointerType&&(e.pointerType="mouse"),void 0===e.pointerId&&(e.pointerId=1),void 0===e.pressure&&(e.pressure=.5),void 0===e.twist&&(e.twist=0),void 0===e.tangentialPressure&&(e.tangentialPressure=0),e.isNormalized=!0),t.push(e);return t}normalizeWheelEvent(e){let t=this._rootWheelEvent;return this._transferMouseData(t,e),t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ,t.deltaMode=e.deltaMode,this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.nativeEvent=e,t.type=e.type,t}_bootstrapEvent(e,t){return e.originalEvent=null,e.nativeEvent=t,e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist,this._transferMouseData(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.isTrusted=t.isTrusted,"pointerleave"===e.type&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=X[e.type]||e.type),e}_transferMouseData(e,t){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.x=t.clientX,e.client.y=t.clientY,e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.x=t.movementX,e.movement.y=t.movementY,e.page.x=t.pageX,e.page.y=t.pageY,e.relatedTarget=null,e.shiftKey=t.shiftKey}};Y.extension={name:"events",type:[n.nw.WebGLSystem,n.nw.CanvasSystem,n.nw.WebGPUSystem],priority:-1},Y.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0},n.Rw.add(Y),o.W2.mixin({onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return"dynamic"===this.eventMode||"static"===this.eventMode},set interactive(value){this.eventMode=value?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??Y.defaultEventMode},set eventMode(value){this._internalEventMode=value},isInteractive(){return"static"===this.eventMode||"dynamic"===this.eventMode},interactiveChildren:!0,hitArea:null,addEventListener(e,t,i){let n="boolean"==typeof i&&i||"object"==typeof i&&i.capture,o="object"==typeof i?i.signal:void 0,s="object"==typeof i&&!0===i.once,r="function"==typeof t?void 0:t;e=n?`${e}capture`:e;let a="function"==typeof t?t:t.handleEvent,h=this;o&&o.addEventListener("abort",()=>{h.off(e,a,r)}),s?h.once(e,a,r):h.on(e,a,r)},removeEventListener(e,t,i){let n="boolean"==typeof i&&i||"object"==typeof i&&i.capture,o="function"==typeof t?void 0:t;e=n?`${e}capture`:e,t="function"==typeof t?t:t.handleEvent,this.off(e,t,o)},dispatchEvent(e){if(!(e instanceof r))throw Error("Container cannot propagate events outside of the Federated Events API");return e.defaultPrevented=!1,e.path=null,e.target=this,e.manager.dispatchEvent(e),!e.defaultPrevented}}),i(65003),i(62737),i(42454),i(30773),i(66241),i(53828),i(19921),i(28803),i(34354),i(24508)}}]);
|
|
2
|
-
//# sourceMappingURL=544.18ac9afb.js.map
|