@midscene/web 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/es/playwright-report.js +155 -179
  2. package/dist/lib/playwright-report.js +155 -179
  3. package/dist/visualizer-report/index.html +1 -0
  4. package/dist/visualizer-report/modern.config.json +196 -0
  5. package/dist/visualizer-report/route.json +36 -0
  6. package/dist/visualizer-report/static/css/index.c7751597.css +1 -0
  7. package/dist/visualizer-report/static/css/index.c7751597.css.map +1 -0
  8. package/dist/visualizer-report/static/js/915.d3f73af1.js +6 -0
  9. package/dist/visualizer-report/static/js/915.d3f73af1.js.LICENSE.txt +105 -0
  10. package/dist/visualizer-report/static/js/915.d3f73af1.js.map +1 -0
  11. package/dist/visualizer-report/static/js/async/16.8b96d0ce.js +151 -0
  12. package/dist/visualizer-report/static/js/async/16.8b96d0ce.js.map +1 -0
  13. package/dist/visualizer-report/static/js/async/212.b25a2c30.js +157 -0
  14. package/dist/visualizer-report/static/js/async/212.b25a2c30.js.map +1 -0
  15. package/dist/visualizer-report/static/js/async/353.78fcb703.js +147 -0
  16. package/dist/visualizer-report/static/js/async/353.78fcb703.js.map +1 -0
  17. package/dist/visualizer-report/static/js/async/399.84fa60a7.js +248 -0
  18. package/dist/visualizer-report/static/js/async/399.84fa60a7.js.map +1 -0
  19. package/dist/visualizer-report/static/js/async/453.782b249a.js +41 -0
  20. package/dist/visualizer-report/static/js/async/453.782b249a.js.map +1 -0
  21. package/dist/visualizer-report/static/js/async/544.ee973964.js +1 -0
  22. package/dist/visualizer-report/static/js/async/544.ee973964.js.map +1 -0
  23. package/dist/visualizer-report/static/js/async/983.ef821e39.js +1 -0
  24. package/dist/visualizer-report/static/js/index.ae9a86c5.js +1 -0
  25. package/dist/visualizer-report/static/js/index.ae9a86c5.js.map +1 -0
  26. package/dist/visualizer-report/static/js/lib-antd.55d65804.js +189 -0
  27. package/dist/visualizer-report/static/js/lib-antd.55d65804.js.map +1 -0
  28. package/dist/visualizer-report/static/js/lib-polyfill.3da3e38e.js +1 -0
  29. package/dist/visualizer-report/static/js/lib-polyfill.3da3e38e.js.map +1 -0
  30. package/dist/visualizer-report/static/js/lib-react.c011fc71.js +2 -0
  31. package/dist/visualizer-report/static/js/lib-react.c011fc71.js.LICENSE.txt +39 -0
  32. package/dist/visualizer-report/static/js/lib-react.c011fc71.js.map +1 -0
  33. package/dist/visualizer-report/static/js/lib-router.226970ff.js +2 -0
  34. package/dist/visualizer-report/static/js/lib-router.226970ff.js.LICENSE.txt +32 -0
  35. package/dist/visualizer-report/static/js/lib-router.226970ff.js.map +1 -0
  36. package/package.json +4 -4
@@ -0,0 +1,41 @@
1
+ "use strict";(self.webpackChunk_midscene_visualizer_report=self.webpackChunk_midscene_visualizer_report||[]).push([["453"],{15256:function(e,t,r){r.r(t),r.d(t,{WebGPURenderer:()=>eS});let s=r("91957"),i=r("30044"),n=r("50473"),a=r("29465"),o=r("43200"),u=r("23149"),d=r("39193"),l=r("78300"),h=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,o.d)({name:"graphics",bits:[u.M,(0,d.m)(a.A),l.Kt,h.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:a,instructions:o}=i.graphicsContext.getContextRenderData(r),u=i.encoder;u.setPipelineFromGeometryProgramAndState(a,s.gpuProgram,e.state),u.setGeometry(a);let d=i.globalUniforms.bindGroup;u.setBindGroup(0,d,s.gpuProgram);let l=i.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);u.setBindGroup(2,l,s.gpuProgram);let h=o.instructions;for(let e=0;e<o.instructionSize;e++){let t=h[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"};let g=r("17893"),m=r("41277"),_=r("92245");class b{init(){let e=(0,o.d)({name:"mesh",bits:[l.XH,g.r,h.j]});this._shader=new c.e({gpuProgram:e,resources:{uTexture:m.x.EMPTY._source,uSampler:m.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){(0,_.Z)("Mesh shader has no gpuProgram",t.shader);return}}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"};let x=r("29492"),y=x.Z.for2d();class G{init(){let e=(0,o.d)({name:"batch",bits:[u.M,(0,d.m)(a.A),h.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 a=s.bindGroup.getBindGroup(t.bindGroup,r,1),o=s.pipeline.getPipeline(this._geometry,r,y);t.bindGroup._touch(s.textureGC.count),i.setPipeline(o),i.renderPassEncoder.setBindGroup(1,a),i.renderPassEncoder.drawIndexed(t.size,1,t.start)}destroy(){this._shader.destroy(!0),this._shader=null}}G.extension={type:[s.nw.WebGPUPipesAdaptor],name:"batch"};let P=r("17638"),B=r("83962"),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=[],a=this._renderer;for(let t in i){let r;let s=e.resources[t]??e.resources[i[t]];if("uniformGroup"===s._resourceType){a.ubo.updateUniformGroup(s);let e=s.buffer;r={buffer:a.buffer.getGPUBuffer(e),offset:0,size:e.descriptor.size}}else"buffer"===s._resourceType?r={buffer:a.buffer.getGPUBuffer(s),offset:0,size:s.descriptor.size}:"bufferResource"===s._resourceType?r={buffer:a.buffer.getGPUBuffer(s.buffer),offset:s.offset,size:s.size}:"textureSampler"===s._resourceType?r=a.texture.getGpuSampler(s):"textureSource"===s._resourceType&&(r=a.texture.getGpuSource(s).createView({}));n.push({binding:i[t],resource:r})}let o=a.shader.getProgramData(t).bindGroups[r],u=s.createBindGroup({layout:o,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"};let v=r("74039");class C{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,v.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}}C.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._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:a,instanceCount:o,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,o||t.instanceCount,a||0):this.renderPassEncoder.draw(n||t.getSize(),o||t.instanceCount,a||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};let 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"};let z=r("63949"),k={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}};function A(e){let t=e.map(e=>({data:e,offset:0,size:0})),r=0;for(let e=0;e<t.length;e++){let s=t[e],i=k[s.data.type].size,n=k[s.data.type].align;if(!k[s.data.type])throw Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${s.data.type}`);s.data.size>1&&(i=Math.max(i,n)*s.data.size),r=Math.ceil(r/n)*n,s.size=i,s.offset=r,r+=i}return{uboElements:t,size:r=16*Math.ceil(r/16)}}let O=r("38396"),H=r("91864");function F(e,t){let{size:r,align:s}=k[e.data.type],i=(s-r)/4;return`
2
+ v = uv.${e.data.name};
3
+ ${0!==t?`offset += ${t};`:""}
4
+
5
+ arrayOffset = offset;
6
+
7
+ t = 0;
8
+
9
+ for(var i=0; i < ${e.data.size*(r/4)}; i++)
10
+ {
11
+ for(var j = 0; j < ${r/4}; j++)
12
+ {
13
+ data[arrayOffset++] = v[t++];
14
+ }
15
+ ${0!==i?`arrayOffset += ${i};`:""}
16
+ }
17
+ `}function D(e){return(0,O.S)(e,"uboWgsl",F,H.R)}class L extends z.L{constructor(){super({createUboElements:A,generateUboSync:D})}}L.extension={type:[s.nw.WebGPUSystem],name:"ubo"};let I=r("36697"),W=r("95753"),V=r("74821");class j{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}}let N=r("49458");class K{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._batchBuffer=new j({minUniformOffsetAlignment:128});let t=2;for(let e=0;e<t;e++){let t=V.F.UNIFORM|V.F.COPY_DST;0===e&&(t|=V.F.COPY_SRC),this._buffers.push(new I.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 W.q({buffer:t,offset:(e/2|0)*256,size:128})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){let t=new N.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}}K.extension={type:[s.nw.WebGPUPipes],name:"uniformBatch"};let q=r("532"),Y=r("12568"),$=r("18228"),X={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4};class Z{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?1:0,this._updatePipeHash()}setColorMask(e){this._colorMask!==e&&(this._colorMask=e,this._updatePipeHash())}setStencilMode(e){this._stencilMode!==e&&(this._stencilMode=e,this._stencilState=$.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,a,o;!e._layoutKey&&((0,q.B)(e,t.attributeData),this._generateBufferKey(e)),s=s||e.topology;let u=(i=e._layoutKey,n=t._layoutKey,a=r.data,o=r._blendModeId,i<<24|n<<16|a<<10|o<<5|X[s]);return this._pipeCache[u]?this._pipeCache[u]:(this._pipeCache[u]=this._createPipeline(e,t,r,s),this._pipeCache[u])}_createPipeline(e,t,r,s){let i=this._gpu.device,n=this._createVertexBufferLayouts(e),a=this._renderer.state.getColorTargets(r);a[0].writeMask=this._stencilMode===E.D.RENDERING_MASK_ADD?0:this._colorMask;let o=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:a},primitive:{topology:s,cullMode:r.cullMode},layout:o,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,Y.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,r;let s=(e=this._stencilMode,t=this._multisampleCount,r=this._colorMask,r<<6|e<<3|this._depthStencilAttachment<<1|t);!this._pipeStateCaches[s]&&(this._pipeStateCaches[s]=Object.create(null)),this._pipeCache=this._pipeStateCaches[s]}destroy(){this._renderer=null,this._bufferLayoutsCache=null}}Z.extension={type:[s.nw.WebGPUSystem],name:"pipeline"};let Q=r("72310"),J=r("81599"),ee=r("11300"),et=r("32970");class er{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}class es{init(e,t){this._renderer=e,this._renderTargetSystem=t}copyToTexture(e,t,r,s,i){let n=this._renderer,a=this._getGpuColorTexture(e),o=n.texture.getGpuSource(t.source);return n.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:r},{texture:o,origin:i},s),t}startRenderPass(e,t=!0,r,s){let i=this._renderTargetSystem.getGpuRenderTarget(e),n=this.getDescriptor(e,t,r);i.descriptor=n,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?J.E.ALL:J.E.NONE);let i=this._renderTargetSystem,n=i.getGpuRenderTarget(e),a=e.colorTextures.map((e,s)=>{let a,o;let u=n.contexts[s];a=u?u.getCurrentTexture().createView():this._renderer.texture.getGpuSource(e).createView({mipLevelCount:1}),n.msaaTextures[s]&&(o=a,a=this._renderer.texture.getTextureView(n.msaaTextures[s]));let d=t&J.E.COLOR?"clear":"load";return r??(r=i.defaultClearColor),{view:a,resolveTarget:o,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&J.E.STENCIL?"clear":"load",i=t&J.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:a,depthStencilAttachment:s}}clear(e,t=!0,r,s){if(!t)return;let{gpu:i,encoder:n}=this._renderer,a=i.device;if(null===n.commandEncoder){let i=a.createCommandEncoder(),n=this.getDescriptor(e,t,r),o=i.beginRenderPass(n);o.setViewport(s.x,s.y,s.width,s.height,0,1),o.end();let u=i.finish();a.queue.submit([u])}else this.startRenderPass(e,t,r,s)}initGpuRenderTarget(e){e.isRoot=!0;let t=new er;return e.colorTextures.forEach((e,r)=>{if(ee.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 et.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 ei extends Q.l{constructor(e){super(e),this.adaptor=new es,this.adaptor.init(e,this)}}ei.extension={type:[s.nw.WebGPUSystem],name:"renderTarget"};class en{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}}en.extension={type:[s.nw.WebGPUSystem],name:"shader"};let ea={};ea.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}},ea.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}},ea.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}},ea.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},ea.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},ea.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}},ea["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}},ea["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}},ea["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}},ea.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};class eo{constructor(){this.defaultState=new x.Z,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e){return[{format:"bgra8unorm",writeMask:0,blend:ea[e.blendMode]||ea.normal}]}destroy(){this.gpu=null}}eo.extension={type:[s.nw.WebGPUSystem],name:"state"};let eu=r("767"),ed=r("51982"),el={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})}},eh={"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}},ec={blockBytes:4,blockWidth:1,blockHeight:1},ep={type:"compressed",upload(e,t,r){let s=e.pixelWidth,i=e.pixelHeight,n=eh[e.format]||ec;for(let a=0;a<e.resource.length;a++){let o=e.resource[a],u=Math.ceil(s/n.blockWidth)*n.blockBytes;r.device.queue.writeTexture({texture:t,mipLevel:a},o,{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)}}},ef={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),a="premultiply-alpha-on-upload"===e.alphaMode;r.device.queue.copyExternalImageToTexture({source:s},{texture:t,premultipliedAlpha:a},{width:i,height:n})}},eg={type:"video",upload(e,t,r){ef.upload(e,t,r)}};class em{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:`
18
+ var<private> pos : array<vec2<f32>, 3> = array<vec2<f32>, 3>(
19
+ vec2<f32>(-1.0, -1.0), vec2<f32>(-1.0, 3.0), vec2<f32>(3.0, -1.0));
20
+
21
+ struct VertexOutput {
22
+ @builtin(position) position : vec4<f32>,
23
+ @location(0) texCoord : vec2<f32>,
24
+ };
25
+
26
+ @vertex
27
+ fn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {
28
+ var output : VertexOutput;
29
+ output.texCoord = pos[vertexIndex] * vec2<f32>(0.5, -0.5) + vec2<f32>(0.5);
30
+ output.position = vec4<f32>(pos[vertexIndex], 0.0, 1.0);
31
+ return output;
32
+ }
33
+
34
+ @group(0) @binding(0) var imgSampler : sampler;
35
+ @group(0) @binding(1) var img : texture_2d<f32>;
36
+
37
+ @fragment
38
+ fn fragmentMain(@location(0) texCoord : vec2<f32>) -> @location(0) vec4<f32> {
39
+ return textureSample(img, imgSampler, texCoord);
40
+ }
41
+ `})),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({}),a=t.getBindGroupLayout(0);for(let o=0;o<s;++o){let s=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:o,arrayLayerCount:1}),u=i?1:0;for(let i=1;i<e.mipLevelCount;++i){let e=r.createView({baseMipLevel:u++,mipLevelCount:1,dimension:"2d",baseArrayLayer:o,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:a,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 e_{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:ef,buffer:el,video:eg,compressed:ep},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=eh[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},a=this._gpu.device.createTexture(n);return this._gpuSources[e.uid]=a,!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),a}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 em(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 N.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=eu.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=ed.h.getOptimalCanvasAndContext(t.width,t.height),s=r.context;s.drawImage(t,0,0);let{width:i,height:n}=t,a=new Uint8ClampedArray(s.getImageData(0,0,i,n).data.buffer);return ed.h.returnCanvasAndContext(r),{pixels:a,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}}e_.extension={type:[s.nw.WebGPUSystem],name:"texture"};let eb=[...B.N,L,U,M,C,e_,ei,en,eo,Z,w,R,T],ex=[...B.U,K],ey=[G,b,f],eG=[],eP=[],eB=[];s.Rw.handleByNamedList(s.nw.WebGPUSystem,eG),s.Rw.handleByNamedList(s.nw.WebGPUPipes,eP),s.Rw.handleByNamedList(s.nw.WebGPUPipesAdaptor,eB),s.Rw.add(...eb,...ex,...ey);class eS extends P.I{constructor(){super({name:"webgpu",type:S.g.WEBGPU,systems:eG,renderPipes:eP,renderPipeAdaptors:eB})}}},51982:function(e,t,r){r.d(t,{h:function(){return n}});var s=r(767),i=r(45854);let n=new class e{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={}}}}}]);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/async/453.782b249a.js","sources":["webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/graphics/gpu/GpuGraphicsAdaptor.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/mesh/gpu/GpuMeshAdapter.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/batcher/gpu/GpuBatchAdaptor.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/BindGroupSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/buffer/GpuBufferSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuColorMaskSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuDeviceSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuEncoderSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuStencilSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/createUboElementsWGSL.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/generateArraySyncWGSL.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/createUboSyncFunctionWGSL.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuUboSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/buffer/UboBatch.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuUniformBatchPipe.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/pipeline/PipelineSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/renderTarget/GpuRenderTarget.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/renderTarget/GpuRenderTargetAdaptor.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/renderTarget/GpuRenderTargetSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/GpuShaderSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/state/GpuBlendModesToPixi.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/state/GpuStateSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/uploaders/gpuUploadBufferImageResource.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/uploaders/gpuUploadCompressedTextureResource.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/uploaders/gpuUploadImageSource.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/uploaders/gpuUploadVideoSource.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/utils/GpuMipmapGenerator.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/GpuTextureSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/WebGPURenderer.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/shared/texture/CanvasPool.mjs"],"sourcesContent":["import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { Matrix } from '../../../maths/matrix/Matrix.mjs';\nimport { getTextureBatchBindGroup } from '../../../rendering/batcher/gpu/getTextureBatchBindGroup.mjs';\nimport { MAX_TEXTURES } from '../../../rendering/batcher/shared/const.mjs';\nimport { compileHighShaderGpuProgram } from '../../../rendering/high-shader/compileHighShaderToProgram.mjs';\nimport { colorBit } from '../../../rendering/high-shader/shader-bits/colorBit.mjs';\nimport { generateTextureBatchBit } from '../../../rendering/high-shader/shader-bits/generateTextureBatchBit.mjs';\nimport { localUniformBitGroup2 } from '../../../rendering/high-shader/shader-bits/localUniformBit.mjs';\nimport { roundPixelsBit } from '../../../rendering/high-shader/shader-bits/roundPixelsBit.mjs';\nimport { Shader } from '../../../rendering/renderers/shared/shader/Shader.mjs';\nimport { UniformGroup } from '../../../rendering/renderers/shared/shader/UniformGroup.mjs';\n\n\"use strict\";\nclass GpuGraphicsAdaptor {\n init() {\n const localUniforms = new UniformGroup({\n uTransformMatrix: { value: new Matrix(), type: \"mat3x3<f32>\" },\n uColor: { value: new Float32Array([1, 1, 1, 1]), type: \"vec4<f32>\" },\n uRound: { value: 0, type: \"f32\" }\n });\n const gpuProgram = compileHighShaderGpuProgram({\n name: \"graphics\",\n bits: [\n colorBit,\n generateTextureBatchBit(MAX_TEXTURES),\n localUniformBitGroup2,\n roundPixelsBit\n ]\n });\n this.shader = new Shader({\n gpuProgram,\n resources: {\n // added on the fly!\n localUniforms\n }\n });\n }\n execute(graphicsPipe, renderable) {\n const context = renderable.context;\n const shader = context.customShader || this.shader;\n const renderer = graphicsPipe.renderer;\n const contextSystem = renderer.graphicsContext;\n const {\n geometry,\n instructions\n } = contextSystem.getContextRenderData(context);\n const encoder = renderer.encoder;\n encoder.setPipelineFromGeometryProgramAndState(\n geometry,\n shader.gpuProgram,\n graphicsPipe.state\n );\n encoder.setGeometry(geometry);\n const globalUniformsBindGroup = renderer.globalUniforms.bindGroup;\n encoder.setBindGroup(0, globalUniformsBindGroup, shader.gpuProgram);\n const localBindGroup = renderer.renderPipes.uniformBatch.getUniformBindGroup(shader.resources.localUniforms, true);\n encoder.setBindGroup(2, localBindGroup, shader.gpuProgram);\n const batches = instructions.instructions;\n for (let i = 0; i < instructions.instructionSize; i++) {\n const batch = batches[i];\n shader.groups[1] = batch.bindGroup;\n if (!batch.gpuBindGroup) {\n const textureBatch = batch.textures;\n batch.bindGroup = getTextureBatchBindGroup(textureBatch.textures, textureBatch.count);\n batch.gpuBindGroup = renderer.bindGroup.getBindGroup(\n batch.bindGroup,\n shader.gpuProgram,\n 1\n );\n }\n encoder.setBindGroup(1, batch.bindGroup, shader.gpuProgram);\n encoder.renderPassEncoder.drawIndexed(batch.size, 1, batch.start);\n }\n }\n destroy() {\n this.shader.destroy(true);\n this.shader = null;\n }\n}\n/** @ignore */\nGpuGraphicsAdaptor.extension = {\n type: [\n ExtensionType.WebGPUPipesAdaptor\n ],\n name: \"graphics\"\n};\n\nexport { GpuGraphicsAdaptor };\n//# sourceMappingURL=GpuGraphicsAdaptor.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { Matrix } from '../../../maths/matrix/Matrix.mjs';\nimport { compileHighShaderGpuProgram } from '../../../rendering/high-shader/compileHighShaderToProgram.mjs';\nimport { localUniformBit } from '../../../rendering/high-shader/shader-bits/localUniformBit.mjs';\nimport { roundPixelsBit } from '../../../rendering/high-shader/shader-bits/roundPixelsBit.mjs';\nimport { textureBit } from '../../../rendering/high-shader/shader-bits/textureBit.mjs';\nimport { Shader } from '../../../rendering/renderers/shared/shader/Shader.mjs';\nimport { Texture } from '../../../rendering/renderers/shared/texture/Texture.mjs';\nimport { warn } from '../../../utils/logging/warn.mjs';\n\n\"use strict\";\nclass GpuMeshAdapter {\n init() {\n const gpuProgram = compileHighShaderGpuProgram({\n name: \"mesh\",\n bits: [\n localUniformBit,\n textureBit,\n roundPixelsBit\n ]\n });\n this._shader = new Shader({\n gpuProgram,\n resources: {\n uTexture: Texture.EMPTY._source,\n uSampler: Texture.EMPTY._source.style,\n textureUniforms: {\n uTextureMatrix: { type: \"mat3x3<f32>\", value: new Matrix() }\n }\n }\n });\n }\n execute(meshPipe, mesh) {\n const renderer = meshPipe.renderer;\n let shader = mesh._shader;\n if (!shader) {\n shader = this._shader;\n shader.resources.uTexture = mesh.texture.source;\n shader.resources.uSampler = mesh.texture.source.style;\n shader.resources.textureUniforms.uniforms.uTextureMatrix = mesh.texture.textureMatrix.mapCoord;\n } else if (!shader.gpuProgram) {\n warn(\"Mesh shader has no gpuProgram\", mesh.shader);\n return;\n }\n const gpuProgram = shader.gpuProgram;\n if (gpuProgram.autoAssignGlobalUniforms) {\n shader.groups[0] = renderer.globalUniforms.bindGroup;\n }\n if (gpuProgram.autoAssignLocalUniforms) {\n const localUniforms = meshPipe.localUniforms;\n shader.groups[1] = renderer.renderPipes.uniformBatch.getUniformBindGroup(localUniforms, true);\n }\n renderer.encoder.draw({\n geometry: mesh._geometry,\n shader,\n state: mesh.state\n });\n }\n destroy() {\n this._shader.destroy(true);\n this._shader = null;\n }\n}\n/** @ignore */\nGpuMeshAdapter.extension = {\n type: [\n ExtensionType.WebGPUPipesAdaptor\n ],\n name: \"mesh\"\n};\n\nexport { GpuMeshAdapter };\n//# sourceMappingURL=GpuMeshAdapter.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { compileHighShaderGpuProgram } from '../../high-shader/compileHighShaderToProgram.mjs';\nimport { colorBit } from '../../high-shader/shader-bits/colorBit.mjs';\nimport { generateTextureBatchBit } from '../../high-shader/shader-bits/generateTextureBatchBit.mjs';\nimport { roundPixelsBit } from '../../high-shader/shader-bits/roundPixelsBit.mjs';\nimport { Shader } from '../../renderers/shared/shader/Shader.mjs';\nimport { State } from '../../renderers/shared/state/State.mjs';\nimport { MAX_TEXTURES } from '../shared/const.mjs';\nimport { getTextureBatchBindGroup } from './getTextureBatchBindGroup.mjs';\n\n\"use strict\";\nconst tempState = State.for2d();\nclass GpuBatchAdaptor {\n init() {\n const gpuProgram = compileHighShaderGpuProgram({\n name: \"batch\",\n bits: [\n colorBit,\n generateTextureBatchBit(MAX_TEXTURES),\n roundPixelsBit\n ]\n });\n this._shader = new Shader({\n gpuProgram,\n groups: {\n // these will be dynamically allocated\n }\n });\n }\n start(batchPipe, geometry) {\n const renderer = batchPipe.renderer;\n const encoder = renderer.encoder;\n const program = this._shader.gpuProgram;\n this._geometry = geometry;\n encoder.setGeometry(geometry);\n tempState.blendMode = \"normal\";\n renderer.pipeline.getPipeline(\n geometry,\n program,\n tempState\n );\n const globalUniformsBindGroup = renderer.globalUniforms.bindGroup;\n encoder.resetBindGroup(1);\n encoder.setBindGroup(0, globalUniformsBindGroup, program);\n }\n execute(batchPipe, batch) {\n const program = this._shader.gpuProgram;\n const renderer = batchPipe.renderer;\n const encoder = renderer.encoder;\n if (!batch.bindGroup) {\n const textureBatch = batch.textures;\n batch.bindGroup = getTextureBatchBindGroup(textureBatch.textures, textureBatch.count);\n }\n tempState.blendMode = batch.blendMode;\n const gpuBindGroup = renderer.bindGroup.getBindGroup(\n batch.bindGroup,\n program,\n 1\n );\n const pipeline = renderer.pipeline.getPipeline(\n this._geometry,\n program,\n tempState\n );\n batch.bindGroup._touch(renderer.textureGC.count);\n encoder.setPipeline(pipeline);\n encoder.renderPassEncoder.setBindGroup(1, gpuBindGroup);\n encoder.renderPassEncoder.drawIndexed(batch.size, 1, batch.start);\n }\n destroy() {\n this._shader.destroy(true);\n this._shader = null;\n }\n}\n/** @ignore */\nGpuBatchAdaptor.extension = {\n type: [\n ExtensionType.WebGPUPipesAdaptor\n ],\n name: \"batch\"\n};\n\nexport { GpuBatchAdaptor };\n//# sourceMappingURL=GpuBatchAdaptor.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\n\n\"use strict\";\nclass BindGroupSystem {\n constructor(renderer) {\n this._hash = /* @__PURE__ */ Object.create(null);\n this._renderer = renderer;\n }\n contextChange(gpu) {\n this._gpu = gpu;\n }\n getBindGroup(bindGroup, program, groupIndex) {\n bindGroup._updateKey();\n const gpuBindGroup = this._hash[bindGroup._key] || this._createBindGroup(bindGroup, program, groupIndex);\n return gpuBindGroup;\n }\n _createBindGroup(group, program, groupIndex) {\n const device = this._gpu.device;\n const groupLayout = program.layout[groupIndex];\n const entries = [];\n const renderer = this._renderer;\n for (const j in groupLayout) {\n const resource = group.resources[j] ?? group.resources[groupLayout[j]];\n let gpuResource;\n if (resource._resourceType === \"uniformGroup\") {\n const uniformGroup = resource;\n renderer.ubo.updateUniformGroup(uniformGroup);\n const buffer = uniformGroup.buffer;\n gpuResource = {\n buffer: renderer.buffer.getGPUBuffer(buffer),\n offset: 0,\n size: buffer.descriptor.size\n };\n } else if (resource._resourceType === \"buffer\") {\n const buffer = resource;\n gpuResource = {\n buffer: renderer.buffer.getGPUBuffer(buffer),\n offset: 0,\n size: buffer.descriptor.size\n };\n } else if (resource._resourceType === \"bufferResource\") {\n const bufferResource = resource;\n gpuResource = {\n buffer: renderer.buffer.getGPUBuffer(bufferResource.buffer),\n offset: bufferResource.offset,\n size: bufferResource.size\n };\n } else if (resource._resourceType === \"textureSampler\") {\n const sampler = resource;\n gpuResource = renderer.texture.getGpuSampler(sampler);\n } else if (resource._resourceType === \"textureSource\") {\n const texture = resource;\n gpuResource = renderer.texture.getGpuSource(texture).createView({});\n }\n entries.push({\n binding: groupLayout[j],\n resource: gpuResource\n });\n }\n const layout = renderer.shader.getProgramData(program).bindGroups[groupIndex];\n const gpuBindGroup = device.createBindGroup({\n layout,\n entries\n });\n this._hash[group._key] = gpuBindGroup;\n return gpuBindGroup;\n }\n destroy() {\n for (const key of Object.keys(this._hash)) {\n this._hash[key] = null;\n }\n this._hash = null;\n this._renderer = null;\n }\n}\n/** @ignore */\nBindGroupSystem.extension = {\n type: [\n ExtensionType.WebGPUSystem\n ],\n name: \"bindGroup\"\n};\n\nexport { BindGroupSystem };\n//# sourceMappingURL=BindGroupSystem.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { fastCopy } from '../../shared/buffer/utils/fastCopy.mjs';\n\n\"use strict\";\nclass GpuBufferSystem {\n constructor() {\n this._gpuBuffers = /* @__PURE__ */ Object.create(null);\n this._managedBuffers = [];\n }\n contextChange(gpu) {\n this._gpu = gpu;\n }\n getGPUBuffer(buffer) {\n return this._gpuBuffers[buffer.uid] || this.createGPUBuffer(buffer);\n }\n updateBuffer(buffer) {\n const gpuBuffer = this._gpuBuffers[buffer.uid] || this.createGPUBuffer(buffer);\n const data = buffer.data;\n if (buffer._updateID && data) {\n buffer._updateID = 0;\n this._gpu.device.queue.writeBuffer(\n gpuBuffer,\n 0,\n data.buffer,\n 0,\n // round to the nearest 4 bytes\n (buffer._updateSize || data.byteLength) + 3 & ~3\n );\n }\n return gpuBuffer;\n }\n /** dispose all WebGL resources of all managed buffers */\n destroyAll() {\n for (const id in this._gpuBuffers) {\n this._gpuBuffers[id].destroy();\n }\n this._gpuBuffers = {};\n }\n createGPUBuffer(buffer) {\n if (!this._gpuBuffers[buffer.uid]) {\n buffer.on(\"update\", this.updateBuffer, this);\n buffer.on(\"change\", this.onBufferChange, this);\n buffer.on(\"destroy\", this.onBufferDestroy, this);\n }\n const gpuBuffer = this._gpu.device.createBuffer(buffer.descriptor);\n buffer._updateID = 0;\n if (buffer.data) {\n fastCopy(buffer.data.buffer, gpuBuffer.getMappedRange());\n gpuBuffer.unmap();\n }\n this._gpuBuffers[buffer.uid] = gpuBuffer;\n this._managedBuffers.push(buffer);\n return gpuBuffer;\n }\n onBufferChange(buffer) {\n const gpuBuffer = this._gpuBuffers[buffer.uid];\n gpuBuffer.destroy();\n buffer._updateID = 0;\n this._gpuBuffers[buffer.uid] = this.createGPUBuffer(buffer);\n }\n /**\n * Disposes buffer\n * @param buffer - buffer with data\n */\n onBufferDestroy(buffer) {\n this._managedBuffers.splice(this._managedBuffers.indexOf(buffer), 1);\n this._destroyBuffer(buffer);\n }\n destroy() {\n this._managedBuffers.forEach((buffer) => this._destroyBuffer(buffer));\n this._managedBuffers = null;\n this._gpuBuffers = null;\n }\n _destroyBuffer(buffer) {\n const gpuBuffer = this._gpuBuffers[buffer.uid];\n gpuBuffer.destroy();\n buffer.off(\"update\", this.updateBuffer, this);\n buffer.off(\"change\", this.onBufferChange, this);\n buffer.off(\"destroy\", this.onBufferDestroy, this);\n this._gpuBuffers[buffer.uid] = null;\n }\n}\n/** @ignore */\nGpuBufferSystem.extension = {\n type: [\n ExtensionType.WebGPUSystem\n ],\n name: \"buffer\"\n};\n\nexport { GpuBufferSystem };\n//# sourceMappingURL=GpuBufferSystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\n\n\"use strict\";\nclass GpuColorMaskSystem {\n constructor(renderer) {\n this._colorMaskCache = 15;\n this._renderer = renderer;\n }\n setMask(colorMask) {\n if (this._colorMaskCache === colorMask)\n return;\n this._colorMaskCache = colorMask;\n this._renderer.pipeline.setColorMask(colorMask);\n }\n destroy() {\n this._renderer = null;\n this._colorMaskCache = null;\n }\n}\n/** @ignore */\nGpuColorMaskSystem.extension = {\n type: [\n ExtensionType.WebGPUSystem\n ],\n name: \"colorMask\"\n};\n\nexport { GpuColorMaskSystem };\n//# sourceMappingURL=GpuColorMaskSystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\n\n\"use strict\";\nclass GpuDeviceSystem {\n /**\n * @param {WebGPURenderer} renderer - The renderer this System works for.\n */\n constructor(renderer) {\n this._renderer = renderer;\n }\n async init(options) {\n if (this._initPromise)\n return this._initPromise;\n this._initPromise = this._createDeviceAndAdaptor(options).then((gpu) => {\n this.gpu = gpu;\n this._renderer.runners.contextChange.emit(this.gpu);\n });\n return this._initPromise;\n }\n /**\n * Handle the context change event\n * @param gpu\n */\n contextChange(gpu) {\n this._renderer.gpu = gpu;\n }\n /**\n * Helper class to create a WebGL Context\n * @param {object} options - An options object that gets passed in to the canvas element containing the\n * context attributes\n * @see https://developer.mozilla.org/en/docs/Web/API/HTMLCanvasElement/getContext\n * @returns {WebGLRenderingContext} the WebGL context\n */\n async _createDeviceAndAdaptor(options) {\n const adapter = await navigator.gpu.requestAdapter({\n powerPreference: options.powerPreference,\n forceFallbackAdapter: options.forceFallbackAdapter\n });\n const requiredFeatures = [\n \"texture-compression-bc\",\n \"texture-compression-astc\",\n \"texture-compression-etc2\"\n ].filter((feature) => adapter.features.has(feature));\n const device = await adapter.requestDevice({\n requiredFeatures\n });\n return { adapter, device };\n }\n destroy() {\n this.gpu = null;\n this._renderer = null;\n }\n}\n/** @ignore */\nGpuDeviceSystem.extension = {\n type: [\n ExtensionType.WebGPUSystem\n ],\n name: \"device\"\n};\n/** The default options for the GpuDeviceSystem. */\nGpuDeviceSystem.defaultOptions = {\n /**\n * {@link WebGPUOptions.powerPreference}\n * @default default\n */\n powerPreference: void 0,\n /**\n * Force the use of the fallback adapter\n * @default false\n */\n forceFallbackAdapter: false\n};\n\nexport { GpuDeviceSystem };\n//# sourceMappingURL=GpuDeviceSystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\n\n\"use strict\";\nclass GpuEncoderSystem {\n constructor(renderer) {\n this._boundBindGroup = /* @__PURE__ */ Object.create(null);\n this._boundVertexBuffer = /* @__PURE__ */ Object.create(null);\n this._renderer = renderer;\n }\n renderStart() {\n this.commandFinished = new Promise((resolve) => {\n this._resolveCommandFinished = resolve;\n });\n this.commandEncoder = this._renderer.gpu.device.createCommandEncoder();\n }\n beginRenderPass(gpuRenderTarget) {\n this.endRenderPass();\n this._clearCache();\n this.renderPassEncoder = this.commandEncoder.beginRenderPass(gpuRenderTarget.descriptor);\n }\n endRenderPass() {\n if (this.renderPassEncoder) {\n this.renderPassEncoder.end();\n }\n this.renderPassEncoder = null;\n }\n setViewport(viewport) {\n this.renderPassEncoder.setViewport(viewport.x, viewport.y, viewport.width, viewport.height, 0, 1);\n }\n setPipelineFromGeometryProgramAndState(geometry, program, state, topology) {\n const pipeline = this._renderer.pipeline.getPipeline(geometry, program, state, topology);\n this.setPipeline(pipeline);\n }\n setPipeline(pipeline) {\n if (this._boundPipeline === pipeline)\n return;\n this._boundPipeline = pipeline;\n this.renderPassEncoder.setPipeline(pipeline);\n }\n _setVertexBuffer(index, buffer) {\n if (this._boundVertexBuffer[index] === buffer)\n return;\n this._boundVertexBuffer[index] = buffer;\n this.renderPassEncoder.setVertexBuffer(index, this._renderer.buffer.updateBuffer(buffer));\n }\n _setIndexBuffer(buffer) {\n if (this._boundIndexBuffer === buffer)\n return;\n this._boundIndexBuffer = buffer;\n const indexFormat = buffer.data.BYTES_PER_ELEMENT === 2 ? \"uint16\" : \"uint32\";\n this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(buffer), indexFormat);\n }\n resetBindGroup(index) {\n this._boundBindGroup[index] = null;\n }\n setBindGroup(index, bindGroup, program) {\n if (this._boundBindGroup[index] === bindGroup)\n return;\n this._boundBindGroup[index] = bindGroup;\n bindGroup._touch(this._renderer.textureGC.count);\n const gpuBindGroup = this._renderer.bindGroup.getBindGroup(bindGroup, program, index);\n this.renderPassEncoder.setBindGroup(index, gpuBindGroup);\n }\n setGeometry(geometry) {\n for (const i in geometry.attributes) {\n const attribute = geometry.attributes[i];\n this._setVertexBuffer(attribute.location, attribute.buffer);\n }\n if (geometry.indexBuffer) {\n this._setIndexBuffer(geometry.indexBuffer);\n }\n }\n _setShaderBindGroups(shader, skipSync) {\n for (const i in shader.groups) {\n const bindGroup = shader.groups[i];\n if (!skipSync) {\n this._syncBindGroup(bindGroup);\n }\n this.setBindGroup(i, bindGroup, shader.gpuProgram);\n }\n }\n _syncBindGroup(bindGroup) {\n for (const j in bindGroup.resources) {\n const resource = bindGroup.resources[j];\n if (resource.isUniformGroup) {\n this._renderer.ubo.updateUniformGroup(resource);\n }\n }\n }\n draw(options) {\n const { geometry, shader, state, topology, size, start, instanceCount, skipSync } = options;\n this.setPipelineFromGeometryProgramAndState(geometry, shader.gpuProgram, state, topology);\n this.setGeometry(geometry);\n this._setShaderBindGroups(shader, skipSync);\n if (geometry.indexBuffer) {\n this.renderPassEncoder.drawIndexed(\n size || geometry.indexBuffer.data.length,\n instanceCount || geometry.instanceCount,\n start || 0\n );\n } else {\n this.renderPassEncoder.draw(size || geometry.getSize(), instanceCount || geometry.instanceCount, start || 0);\n }\n }\n finishRenderPass() {\n if (this.renderPassEncoder) {\n this.renderPassEncoder.end();\n this.renderPassEncoder = null;\n }\n }\n postrender() {\n this.finishRenderPass();\n this._gpu.device.queue.submit([this.commandEncoder.finish()]);\n this._resolveCommandFinished();\n this.commandEncoder = null;\n }\n // restores a render pass if finishRenderPass was called\n // not optimised as really used for debugging!\n // used when we want to stop drawing and log a texture..\n restoreRenderPass() {\n const descriptor = this._renderer.renderTarget.adaptor.getDescriptor(\n this._renderer.renderTarget.renderTarget,\n false,\n [0, 0, 0, 1]\n );\n this.renderPassEncoder = this.commandEncoder.beginRenderPass(descriptor);\n const boundPipeline = this._boundPipeline;\n const boundVertexBuffer = { ...this._boundVertexBuffer };\n const boundIndexBuffer = this._boundIndexBuffer;\n const boundBindGroup = { ...this._boundBindGroup };\n this._clearCache();\n const viewport = this._renderer.renderTarget.viewport;\n this.renderPassEncoder.setViewport(viewport.x, viewport.y, viewport.width, viewport.height, 0, 1);\n this.setPipeline(boundPipeline);\n for (const i in boundVertexBuffer) {\n this._setVertexBuffer(i, boundVertexBuffer[i]);\n }\n for (const i in boundBindGroup) {\n this.setBindGroup(i, boundBindGroup[i], null);\n }\n this._setIndexBuffer(boundIndexBuffer);\n }\n _clearCache() {\n for (let i = 0; i < 16; i++) {\n this._boundBindGroup[i] = null;\n this._boundVertexBuffer[i] = null;\n }\n this._boundIndexBuffer = null;\n this._boundPipeline = null;\n }\n destroy() {\n this._renderer = null;\n this._gpu = null;\n this._boundBindGroup = null;\n this._boundVertexBuffer = null;\n this._boundIndexBuffer = null;\n this._boundPipeline = null;\n }\n contextChange(gpu) {\n this._gpu = gpu;\n }\n}\n/** @ignore */\nGpuEncoderSystem.extension = {\n type: [ExtensionType.WebGPUSystem],\n name: \"encoder\",\n priority: 1\n};\n\nexport { GpuEncoderSystem };\n//# sourceMappingURL=GpuEncoderSystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { STENCIL_MODES } from '../shared/state/const.mjs';\n\n\"use strict\";\nclass GpuStencilSystem {\n constructor(renderer) {\n this._renderTargetStencilState = /* @__PURE__ */ Object.create(null);\n this._renderer = renderer;\n renderer.renderTarget.onRenderTargetChange.add(this);\n }\n onRenderTargetChange(renderTarget) {\n let stencilState = this._renderTargetStencilState[renderTarget.uid];\n if (!stencilState) {\n stencilState = this._renderTargetStencilState[renderTarget.uid] = {\n stencilMode: STENCIL_MODES.DISABLED,\n stencilReference: 0\n };\n }\n this._activeRenderTarget = renderTarget;\n this.setStencilMode(stencilState.stencilMode, stencilState.stencilReference);\n }\n setStencilMode(stencilMode, stencilReference) {\n const stencilState = this._renderTargetStencilState[this._activeRenderTarget.uid];\n stencilState.stencilMode = stencilMode;\n stencilState.stencilReference = stencilReference;\n const renderer = this._renderer;\n renderer.pipeline.setStencilMode(stencilMode);\n renderer.encoder.renderPassEncoder.setStencilReference(stencilReference);\n }\n destroy() {\n this._renderer.renderTarget.onRenderTargetChange.remove(this);\n this._renderer = null;\n this._activeRenderTarget = null;\n this._renderTargetStencilState = null;\n }\n}\n/** @ignore */\nGpuStencilSystem.extension = {\n type: [\n ExtensionType.WebGPUSystem\n ],\n name: \"stencil\"\n};\n\nexport { GpuStencilSystem };\n//# sourceMappingURL=GpuStencilSystem.mjs.map\n","\"use strict\";\nconst WGSL_ALIGN_SIZE_DATA = {\n i32: { align: 4, size: 4 },\n u32: { align: 4, size: 4 },\n f32: { align: 4, size: 4 },\n f16: { align: 2, size: 2 },\n \"vec2<i32>\": { align: 8, size: 8 },\n \"vec2<u32>\": { align: 8, size: 8 },\n \"vec2<f32>\": { align: 8, size: 8 },\n \"vec2<f16>\": { align: 4, size: 4 },\n \"vec3<i32>\": { align: 16, size: 12 },\n \"vec3<u32>\": { align: 16, size: 12 },\n \"vec3<f32>\": { align: 16, size: 12 },\n \"vec3<f16>\": { align: 8, size: 6 },\n \"vec4<i32>\": { align: 16, size: 16 },\n \"vec4<u32>\": { align: 16, size: 16 },\n \"vec4<f32>\": { align: 16, size: 16 },\n \"vec4<f16>\": { align: 8, size: 8 },\n \"mat2x2<f32>\": { align: 8, size: 16 },\n \"mat2x2<f16>\": { align: 4, size: 8 },\n \"mat3x2<f32>\": { align: 8, size: 24 },\n \"mat3x2<f16>\": { align: 4, size: 12 },\n \"mat4x2<f32>\": { align: 8, size: 32 },\n \"mat4x2<f16>\": { align: 4, size: 16 },\n \"mat2x3<f32>\": { align: 16, size: 32 },\n \"mat2x3<f16>\": { align: 8, size: 16 },\n \"mat3x3<f32>\": { align: 16, size: 48 },\n \"mat3x3<f16>\": { align: 8, size: 24 },\n \"mat4x3<f32>\": { align: 16, size: 64 },\n \"mat4x3<f16>\": { align: 8, size: 32 },\n \"mat2x4<f32>\": { align: 16, size: 32 },\n \"mat2x4<f16>\": { align: 8, size: 16 },\n \"mat3x4<f32>\": { align: 16, size: 48 },\n \"mat3x4<f16>\": { align: 8, size: 24 },\n \"mat4x4<f32>\": { align: 16, size: 64 },\n \"mat4x4<f16>\": { align: 8, size: 32 }\n};\nfunction createUboElementsWGSL(uniformData) {\n const uboElements = uniformData.map((data) => ({\n data,\n offset: 0,\n size: 0\n }));\n let offset = 0;\n for (let i = 0; i < uboElements.length; i++) {\n const uboElement = uboElements[i];\n let size = WGSL_ALIGN_SIZE_DATA[uboElement.data.type].size;\n const align = WGSL_ALIGN_SIZE_DATA[uboElement.data.type].align;\n if (!WGSL_ALIGN_SIZE_DATA[uboElement.data.type]) {\n throw new Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${uboElement.data.type}`);\n }\n if (uboElement.data.size > 1) {\n size = Math.max(size, align) * uboElement.data.size;\n }\n offset = Math.ceil(offset / align) * align;\n uboElement.size = size;\n uboElement.offset = offset;\n offset += size;\n }\n offset = Math.ceil(offset / 16) * 16;\n return { uboElements, size: offset };\n}\n\nexport { WGSL_ALIGN_SIZE_DATA, createUboElementsWGSL };\n//# sourceMappingURL=createUboElementsWGSL.mjs.map\n","import { WGSL_ALIGN_SIZE_DATA } from './createUboElementsWGSL.mjs';\n\n\"use strict\";\nfunction generateArraySyncWGSL(uboElement, offsetToAdd) {\n const { size, align } = WGSL_ALIGN_SIZE_DATA[uboElement.data.type];\n const remainder = (align - size) / 4;\n return `\n v = uv.${uboElement.data.name};\n ${offsetToAdd !== 0 ? `offset += ${offsetToAdd};` : \"\"}\n\n arrayOffset = offset;\n\n t = 0;\n\n for(var i=0; i < ${uboElement.data.size * (size / 4)}; i++)\n {\n for(var j = 0; j < ${size / 4}; j++)\n {\n data[arrayOffset++] = v[t++];\n }\n ${remainder !== 0 ? `arrayOffset += ${remainder};` : \"\"}\n }\n `;\n}\n\nexport { generateArraySyncWGSL };\n//# sourceMappingURL=generateArraySyncWGSL.mjs.map\n","import { createUboSyncFunction } from '../../../shared/shader/utils/createUboSyncFunction.mjs';\nimport { uboSyncFunctionsWGSL } from '../../../shared/shader/utils/uboSyncFunctions.mjs';\nimport { generateArraySyncWGSL } from './generateArraySyncWGSL.mjs';\n\n\"use strict\";\nfunction createUboSyncFunctionWGSL(uboElements) {\n return createUboSyncFunction(\n uboElements,\n \"uboWgsl\",\n generateArraySyncWGSL,\n uboSyncFunctionsWGSL\n );\n}\n\nexport { createUboSyncFunctionWGSL };\n//# sourceMappingURL=createUboSyncFunctionWGSL.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { UboSystem } from '../shared/shader/UboSystem.mjs';\nimport { createUboElementsWGSL } from './shader/utils/createUboElementsWGSL.mjs';\nimport { createUboSyncFunctionWGSL } from './shader/utils/createUboSyncFunctionWGSL.mjs';\n\n\"use strict\";\nclass GpuUboSystem extends UboSystem {\n constructor() {\n super({\n createUboElements: createUboElementsWGSL,\n generateUboSync: createUboSyncFunctionWGSL\n });\n }\n}\n/** @ignore */\nGpuUboSystem.extension = {\n type: [ExtensionType.WebGPUSystem],\n name: \"ubo\"\n};\n\nexport { GpuUboSystem };\n//# sourceMappingURL=GpuUboSystem.mjs.map\n","\"use strict\";\nclass UboBatch {\n constructor({ minUniformOffsetAlignment }) {\n this._minUniformOffsetAlignment = 256;\n this.byteIndex = 0;\n this._minUniformOffsetAlignment = minUniformOffsetAlignment;\n this.data = new Float32Array(65535);\n }\n clear() {\n this.byteIndex = 0;\n }\n addEmptyGroup(size) {\n if (size > this._minUniformOffsetAlignment / 4) {\n throw new Error(`UniformBufferBatch: array is too large: ${size * 4}`);\n }\n const start = this.byteIndex;\n let newSize = start + size * 4;\n newSize = Math.ceil(newSize / this._minUniformOffsetAlignment) * this._minUniformOffsetAlignment;\n if (newSize > this.data.length * 4) {\n throw new Error(\"UniformBufferBatch: ubo batch got too big\");\n }\n this.byteIndex = newSize;\n return start;\n }\n addGroup(array) {\n const offset = this.addEmptyGroup(array.length);\n for (let i = 0; i < array.length; i++) {\n this.data[offset / 4 + i] = array[i];\n }\n return offset;\n }\n destroy() {\n this._buffer.destroy();\n this._buffer = null;\n this.data = null;\n }\n}\n\nexport { UboBatch };\n//# sourceMappingURL=UboBatch.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { Buffer } from '../shared/buffer/Buffer.mjs';\nimport { BufferResource } from '../shared/buffer/BufferResource.mjs';\nimport { BufferUsage } from '../shared/buffer/const.mjs';\nimport { UboBatch } from './buffer/UboBatch.mjs';\nimport { BindGroup } from './shader/BindGroup.mjs';\n\n\"use strict\";\nconst minUniformOffsetAlignment = 128;\nclass GpuUniformBatchPipe {\n constructor(renderer) {\n this._bindGroupHash = /* @__PURE__ */ Object.create(null);\n // number of buffers..\n this._buffers = [];\n this._bindGroups = [];\n this._bufferResources = [];\n this._renderer = renderer;\n this._batchBuffer = new UboBatch({ minUniformOffsetAlignment });\n const totalBuffers = 256 / minUniformOffsetAlignment;\n for (let i = 0; i < totalBuffers; i++) {\n let usage = BufferUsage.UNIFORM | BufferUsage.COPY_DST;\n if (i === 0)\n usage |= BufferUsage.COPY_SRC;\n this._buffers.push(new Buffer({\n data: this._batchBuffer.data,\n usage\n }));\n }\n }\n renderEnd() {\n this._uploadBindGroups();\n this._resetBindGroups();\n }\n _resetBindGroups() {\n for (const i in this._bindGroupHash) {\n this._bindGroupHash[i] = null;\n }\n this._batchBuffer.clear();\n }\n // just works for single bind groups for now\n getUniformBindGroup(group, duplicate) {\n if (!duplicate && this._bindGroupHash[group.uid]) {\n return this._bindGroupHash[group.uid];\n }\n this._renderer.ubo.ensureUniformGroup(group);\n const data = group.buffer.data;\n const offset = this._batchBuffer.addEmptyGroup(data.length);\n this._renderer.ubo.syncUniformGroup(group, this._batchBuffer.data, offset / 4);\n this._bindGroupHash[group.uid] = this._getBindGroup(offset / minUniformOffsetAlignment);\n return this._bindGroupHash[group.uid];\n }\n getUboResource(group) {\n this._renderer.ubo.updateUniformGroup(group);\n const data = group.buffer.data;\n const offset = this._batchBuffer.addGroup(data);\n return this._getBufferResource(offset / minUniformOffsetAlignment);\n }\n getArrayBindGroup(data) {\n const offset = this._batchBuffer.addGroup(data);\n return this._getBindGroup(offset / minUniformOffsetAlignment);\n }\n getArrayBufferResource(data) {\n const offset = this._batchBuffer.addGroup(data);\n const index = offset / minUniformOffsetAlignment;\n return this._getBufferResource(index);\n }\n _getBufferResource(index) {\n if (!this._bufferResources[index]) {\n const buffer = this._buffers[index % 2];\n this._bufferResources[index] = new BufferResource({\n buffer,\n offset: (index / 2 | 0) * 256,\n size: minUniformOffsetAlignment\n });\n }\n return this._bufferResources[index];\n }\n _getBindGroup(index) {\n if (!this._bindGroups[index]) {\n const bindGroup = new BindGroup({\n 0: this._getBufferResource(index)\n });\n this._bindGroups[index] = bindGroup;\n }\n return this._bindGroups[index];\n }\n _uploadBindGroups() {\n const bufferSystem = this._renderer.buffer;\n const firstBuffer = this._buffers[0];\n firstBuffer.update(this._batchBuffer.byteIndex);\n bufferSystem.updateBuffer(firstBuffer);\n const commandEncoder = this._renderer.gpu.device.createCommandEncoder();\n for (let i = 1; i < this._buffers.length; i++) {\n const buffer = this._buffers[i];\n commandEncoder.copyBufferToBuffer(\n bufferSystem.getGPUBuffer(firstBuffer),\n minUniformOffsetAlignment,\n bufferSystem.getGPUBuffer(buffer),\n 0,\n this._batchBuffer.byteIndex\n );\n }\n this._renderer.gpu.device.queue.submit([commandEncoder.finish()]);\n }\n destroy() {\n for (let i = 0; i < this._bindGroups.length; i++) {\n this._bindGroups[i].destroy();\n }\n this._bindGroups = null;\n this._bindGroupHash = null;\n for (let i = 0; i < this._buffers.length; i++) {\n this._buffers[i].destroy();\n }\n this._buffers = null;\n for (let i = 0; i < this._bufferResources.length; i++) {\n this._bufferResources[i].destroy();\n }\n this._bufferResources = null;\n this._batchBuffer.destroy();\n this._bindGroupHash = null;\n this._renderer = null;\n }\n}\n/** @ignore */\nGpuUniformBatchPipe.extension = {\n type: [\n ExtensionType.WebGPUPipes\n ],\n name: \"uniformBatch\"\n};\n\nexport { GpuUniformBatchPipe };\n//# sourceMappingURL=GpuUniformBatchPipe.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { ensureAttributes } from '../../gl/shader/program/ensureAttributes.mjs';\nimport { STENCIL_MODES } from '../../shared/state/const.mjs';\nimport { createIdFromString } from '../../shared/utils/createIdFromString.mjs';\nimport { GpuStencilModesToPixi } from '../state/GpuStencilModesToPixi.mjs';\n\n\"use strict\";\nconst topologyStringToId = {\n \"point-list\": 0,\n \"line-list\": 1,\n \"line-strip\": 2,\n \"triangle-list\": 3,\n \"triangle-strip\": 4\n};\nfunction getGraphicsStateKey(geometryLayout, shaderKey, state, blendMode, topology) {\n return geometryLayout << 24 | shaderKey << 16 | state << 10 | blendMode << 5 | topology;\n}\nfunction getGlobalStateKey(stencilStateId, multiSampleCount, colorMask, renderTarget) {\n return colorMask << 6 | stencilStateId << 3 | renderTarget << 1 | multiSampleCount;\n}\nclass PipelineSystem {\n constructor(renderer) {\n this._moduleCache = /* @__PURE__ */ Object.create(null);\n this._bufferLayoutsCache = /* @__PURE__ */ Object.create(null);\n this._pipeCache = /* @__PURE__ */ Object.create(null);\n this._pipeStateCaches = /* @__PURE__ */ Object.create(null);\n this._colorMask = 15;\n this._multisampleCount = 1;\n this._renderer = renderer;\n }\n contextChange(gpu) {\n this._gpu = gpu;\n this.setStencilMode(STENCIL_MODES.DISABLED);\n this._updatePipeHash();\n }\n setMultisampleCount(multisampleCount) {\n if (this._multisampleCount === multisampleCount)\n return;\n this._multisampleCount = multisampleCount;\n this._updatePipeHash();\n }\n setRenderTarget(renderTarget) {\n this._multisampleCount = renderTarget.msaaSamples;\n this._depthStencilAttachment = renderTarget.descriptor.depthStencilAttachment ? 1 : 0;\n this._updatePipeHash();\n }\n setColorMask(colorMask) {\n if (this._colorMask === colorMask)\n return;\n this._colorMask = colorMask;\n this._updatePipeHash();\n }\n setStencilMode(stencilMode) {\n if (this._stencilMode === stencilMode)\n return;\n this._stencilMode = stencilMode;\n this._stencilState = GpuStencilModesToPixi[stencilMode];\n this._updatePipeHash();\n }\n setPipeline(geometry, program, state, passEncoder) {\n const pipeline = this.getPipeline(geometry, program, state);\n passEncoder.setPipeline(pipeline);\n }\n getPipeline(geometry, program, state, topology) {\n if (!geometry._layoutKey) {\n ensureAttributes(geometry, program.attributeData);\n this._generateBufferKey(geometry);\n }\n topology = topology || geometry.topology;\n const key = getGraphicsStateKey(\n geometry._layoutKey,\n program._layoutKey,\n state.data,\n state._blendModeId,\n topologyStringToId[topology]\n );\n if (this._pipeCache[key])\n return this._pipeCache[key];\n this._pipeCache[key] = this._createPipeline(geometry, program, state, topology);\n return this._pipeCache[key];\n }\n _createPipeline(geometry, program, state, topology) {\n const device = this._gpu.device;\n const buffers = this._createVertexBufferLayouts(geometry);\n const blendModes = this._renderer.state.getColorTargets(state);\n blendModes[0].writeMask = this._stencilMode === STENCIL_MODES.RENDERING_MASK_ADD ? 0 : this._colorMask;\n const layout = this._renderer.shader.getProgramData(program).pipeline;\n const descriptor = {\n // TODO later check if its helpful to create..\n // layout,\n vertex: {\n module: this._getModule(program.vertex.source),\n entryPoint: program.vertex.entryPoint,\n // geometry..\n buffers\n },\n fragment: {\n module: this._getModule(program.fragment.source),\n entryPoint: program.fragment.entryPoint,\n targets: blendModes\n },\n primitive: {\n topology,\n cullMode: state.cullMode\n },\n layout,\n multisample: {\n count: this._multisampleCount\n },\n // depthStencil,\n label: `PIXI Pipeline`\n };\n if (this._depthStencilAttachment) {\n descriptor.depthStencil = {\n ...this._stencilState,\n format: \"depth24plus-stencil8\",\n depthWriteEnabled: state.depthTest,\n depthCompare: state.depthTest ? \"less\" : \"always\"\n };\n }\n const pipeline = device.createRenderPipeline(descriptor);\n return pipeline;\n }\n _getModule(code) {\n return this._moduleCache[code] || this._createModule(code);\n }\n _createModule(code) {\n const device = this._gpu.device;\n this._moduleCache[code] = device.createShaderModule({\n code\n });\n return this._moduleCache[code];\n }\n _generateBufferKey(geometry) {\n const keyGen = [];\n let index = 0;\n const attributeKeys = Object.keys(geometry.attributes).sort();\n for (let i = 0; i < attributeKeys.length; i++) {\n const attribute = geometry.attributes[attributeKeys[i]];\n keyGen[index++] = attribute.location;\n keyGen[index++] = attribute.offset;\n keyGen[index++] = attribute.format;\n keyGen[index++] = attribute.stride;\n }\n const stringKey = keyGen.join(\"\");\n geometry._layoutKey = createIdFromString(stringKey, \"geometry\");\n return geometry._layoutKey;\n }\n _createVertexBufferLayouts(geometry) {\n if (this._bufferLayoutsCache[geometry._layoutKey]) {\n return this._bufferLayoutsCache[geometry._layoutKey];\n }\n const vertexBuffersLayout = [];\n geometry.buffers.forEach((buffer) => {\n const bufferEntry = {\n arrayStride: 0,\n stepMode: \"vertex\",\n attributes: []\n };\n const bufferEntryAttributes = bufferEntry.attributes;\n for (const i in geometry.attributes) {\n const attribute = geometry.attributes[i];\n if (attribute.buffer === buffer) {\n bufferEntry.arrayStride = attribute.stride;\n bufferEntry.stepMode = attribute.instance ? \"instance\" : \"vertex\";\n bufferEntryAttributes.push({\n shaderLocation: attribute.location,\n offset: attribute.offset,\n format: attribute.format\n });\n }\n }\n if (bufferEntryAttributes.length) {\n vertexBuffersLayout.push(bufferEntry);\n }\n });\n this._bufferLayoutsCache[geometry._layoutKey] = vertexBuffersLayout;\n return vertexBuffersLayout;\n }\n _updatePipeHash() {\n const key = getGlobalStateKey(\n this._stencilMode,\n this._multisampleCount,\n this._colorMask,\n this._depthStencilAttachment\n );\n if (!this._pipeStateCaches[key]) {\n this._pipeStateCaches[key] = /* @__PURE__ */ Object.create(null);\n }\n this._pipeCache = this._pipeStateCaches[key];\n }\n destroy() {\n this._renderer = null;\n this._bufferLayoutsCache = null;\n }\n}\n/** @ignore */\nPipelineSystem.extension = {\n type: [ExtensionType.WebGPUSystem],\n name: \"pipeline\"\n};\n\nexport { PipelineSystem };\n//# sourceMappingURL=PipelineSystem.mjs.map\n","\"use strict\";\nclass GpuRenderTarget {\n constructor() {\n this.contexts = [];\n this.msaaTextures = [];\n this.msaaSamples = 1;\n }\n}\n\nexport { GpuRenderTarget };\n//# sourceMappingURL=GpuRenderTarget.mjs.map\n","import { CLEAR } from '../../gl/const.mjs';\nimport { CanvasSource } from '../../shared/texture/sources/CanvasSource.mjs';\nimport { TextureSource } from '../../shared/texture/sources/TextureSource.mjs';\nimport { GpuRenderTarget } from './GpuRenderTarget.mjs';\n\n\"use strict\";\nclass GpuRenderTargetAdaptor {\n init(renderer, renderTargetSystem) {\n this._renderer = renderer;\n this._renderTargetSystem = renderTargetSystem;\n }\n copyToTexture(sourceRenderSurfaceTexture, destinationTexture, originSrc, size, originDest) {\n const renderer = this._renderer;\n const baseGpuTexture = this._getGpuColorTexture(\n sourceRenderSurfaceTexture\n );\n const backGpuTexture = renderer.texture.getGpuSource(\n destinationTexture.source\n );\n renderer.encoder.commandEncoder.copyTextureToTexture(\n {\n texture: baseGpuTexture,\n origin: originSrc\n },\n {\n texture: backGpuTexture,\n origin: originDest\n },\n size\n );\n return destinationTexture;\n }\n startRenderPass(renderTarget, clear = true, clearColor, viewport) {\n const renderTargetSystem = this._renderTargetSystem;\n const gpuRenderTarget = renderTargetSystem.getGpuRenderTarget(renderTarget);\n const descriptor = this.getDescriptor(renderTarget, clear, clearColor);\n gpuRenderTarget.descriptor = descriptor;\n this._renderer.pipeline.setRenderTarget(gpuRenderTarget);\n this._renderer.encoder.beginRenderPass(gpuRenderTarget);\n this._renderer.encoder.setViewport(viewport);\n }\n finishRenderPass() {\n this._renderer.encoder.endRenderPass();\n }\n /**\n * returns the gpu texture for the first color texture in the render target\n * mainly used by the filter manager to get copy the texture for blending\n * @param renderTarget\n * @returns a gpu texture\n */\n _getGpuColorTexture(renderTarget) {\n const gpuRenderTarget = this._renderTargetSystem.getGpuRenderTarget(renderTarget);\n if (gpuRenderTarget.contexts[0]) {\n return gpuRenderTarget.contexts[0].getCurrentTexture();\n }\n return this._renderer.texture.getGpuSource(\n renderTarget.colorTextures[0].source\n );\n }\n getDescriptor(renderTarget, clear, clearValue) {\n if (typeof clear === \"boolean\") {\n clear = clear ? CLEAR.ALL : CLEAR.NONE;\n }\n const renderTargetSystem = this._renderTargetSystem;\n const gpuRenderTarget = renderTargetSystem.getGpuRenderTarget(renderTarget);\n const colorAttachments = renderTarget.colorTextures.map(\n (texture, i) => {\n const context = gpuRenderTarget.contexts[i];\n let view;\n let resolveTarget;\n if (context) {\n const currentTexture = context.getCurrentTexture();\n const canvasTextureView = currentTexture.createView();\n view = canvasTextureView;\n } else {\n view = this._renderer.texture.getGpuSource(texture).createView({\n mipLevelCount: 1\n });\n }\n if (gpuRenderTarget.msaaTextures[i]) {\n resolveTarget = view;\n view = this._renderer.texture.getTextureView(\n gpuRenderTarget.msaaTextures[i]\n );\n }\n const loadOp = clear & CLEAR.COLOR ? \"clear\" : \"load\";\n clearValue ?? (clearValue = renderTargetSystem.defaultClearColor);\n return {\n view,\n resolveTarget,\n clearValue,\n storeOp: \"store\",\n loadOp\n };\n }\n );\n let depthStencilAttachment;\n if ((renderTarget.stencil || renderTarget.depth) && !renderTarget.depthStencilTexture) {\n renderTarget.ensureDepthStencilTexture();\n renderTarget.depthStencilTexture.source.sampleCount = gpuRenderTarget.msaa ? 4 : 1;\n }\n if (renderTarget.depthStencilTexture) {\n const stencilLoadOp = clear & CLEAR.STENCIL ? \"clear\" : \"load\";\n const depthLoadOp = clear & CLEAR.DEPTH ? \"clear\" : \"load\";\n depthStencilAttachment = {\n view: this._renderer.texture.getGpuSource(renderTarget.depthStencilTexture.source).createView(),\n stencilStoreOp: \"store\",\n stencilLoadOp,\n depthClearValue: 1,\n depthLoadOp,\n depthStoreOp: \"store\"\n };\n }\n const descriptor = {\n colorAttachments,\n depthStencilAttachment\n };\n return descriptor;\n }\n clear(renderTarget, clear = true, clearColor, viewport) {\n if (!clear)\n return;\n const { gpu, encoder } = this._renderer;\n const device = gpu.device;\n const standAlone = encoder.commandEncoder === null;\n if (standAlone) {\n const commandEncoder = device.createCommandEncoder();\n const renderPassDescriptor = this.getDescriptor(renderTarget, clear, clearColor);\n const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);\n passEncoder.setViewport(viewport.x, viewport.y, viewport.width, viewport.height, 0, 1);\n passEncoder.end();\n const gpuCommands = commandEncoder.finish();\n device.queue.submit([gpuCommands]);\n } else {\n this.startRenderPass(renderTarget, clear, clearColor, viewport);\n }\n }\n initGpuRenderTarget(renderTarget) {\n renderTarget.isRoot = true;\n const gpuRenderTarget = new GpuRenderTarget();\n renderTarget.colorTextures.forEach((colorTexture, i) => {\n if (CanvasSource.test(colorTexture.resource)) {\n const context = colorTexture.resource.getContext(\n \"webgpu\"\n );\n const alphaMode = colorTexture.transparent ? \"premultiplied\" : \"opaque\";\n try {\n context.configure({\n device: this._renderer.gpu.device,\n // eslint-disable-next-line max-len\n usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC,\n format: \"bgra8unorm\",\n alphaMode\n });\n } catch (e) {\n console.error(e);\n }\n gpuRenderTarget.contexts[i] = context;\n }\n gpuRenderTarget.msaa = colorTexture.source.antialias;\n if (colorTexture.source.antialias) {\n const msaaTexture = new TextureSource({\n width: 0,\n height: 0,\n sampleCount: 4\n });\n gpuRenderTarget.msaaTextures[i] = msaaTexture;\n }\n });\n if (gpuRenderTarget.msaa) {\n gpuRenderTarget.msaaSamples = 4;\n if (renderTarget.depthStencilTexture) {\n renderTarget.depthStencilTexture.source.sampleCount = 4;\n }\n }\n return gpuRenderTarget;\n }\n destroyGpuRenderTarget(gpuRenderTarget) {\n gpuRenderTarget.contexts.forEach((context) => {\n context.unconfigure();\n });\n gpuRenderTarget.msaaTextures.forEach((texture) => {\n texture.destroy();\n });\n gpuRenderTarget.msaaTextures.length = 0;\n gpuRenderTarget.contexts.length = 0;\n }\n ensureDepthStencilTexture(renderTarget) {\n const gpuRenderTarget = this._renderTargetSystem.getGpuRenderTarget(renderTarget);\n if (renderTarget.depthStencilTexture && gpuRenderTarget.msaa) {\n renderTarget.depthStencilTexture.source.sampleCount = 4;\n }\n }\n resizeGpuRenderTarget(renderTarget) {\n const gpuRenderTarget = this._renderTargetSystem.getGpuRenderTarget(renderTarget);\n gpuRenderTarget.width = renderTarget.width;\n gpuRenderTarget.height = renderTarget.height;\n if (gpuRenderTarget.msaa) {\n renderTarget.colorTextures.forEach((colorTexture, i) => {\n const msaaTexture = gpuRenderTarget.msaaTextures[i];\n msaaTexture?.resize(\n colorTexture.source.width,\n colorTexture.source.height,\n colorTexture.source._resolution\n );\n });\n }\n }\n}\n\nexport { GpuRenderTargetAdaptor };\n//# sourceMappingURL=GpuRenderTargetAdaptor.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { RenderTargetSystem } from '../../shared/renderTarget/RenderTargetSystem.mjs';\nimport { GpuRenderTargetAdaptor } from './GpuRenderTargetAdaptor.mjs';\n\n\"use strict\";\nclass GpuRenderTargetSystem extends RenderTargetSystem {\n constructor(renderer) {\n super(renderer);\n this.adaptor = new GpuRenderTargetAdaptor();\n this.adaptor.init(renderer, this);\n }\n}\n/** @ignore */\nGpuRenderTargetSystem.extension = {\n type: [ExtensionType.WebGPUSystem],\n name: \"renderTarget\"\n};\n\nexport { GpuRenderTargetSystem };\n//# sourceMappingURL=GpuRenderTargetSystem.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\n\n\"use strict\";\nclass GpuShaderSystem {\n constructor() {\n this._gpuProgramData = /* @__PURE__ */ Object.create(null);\n }\n contextChange(gpu) {\n this._gpu = gpu;\n }\n getProgramData(program) {\n return this._gpuProgramData[program._layoutKey] || this._createGPUProgramData(program);\n }\n _createGPUProgramData(program) {\n const device = this._gpu.device;\n const bindGroups = program.gpuLayout.map((group) => device.createBindGroupLayout({ entries: group }));\n const pipelineLayoutDesc = { bindGroupLayouts: bindGroups };\n this._gpuProgramData[program._layoutKey] = {\n bindGroups,\n pipeline: device.createPipelineLayout(pipelineLayoutDesc)\n };\n return this._gpuProgramData[program._layoutKey];\n }\n destroy() {\n this._gpu = null;\n this._gpuProgramData = null;\n }\n}\n/** @ignore */\nGpuShaderSystem.extension = {\n type: [\n ExtensionType.WebGPUSystem\n ],\n name: \"shader\"\n};\n\nexport { GpuShaderSystem };\n//# sourceMappingURL=GpuShaderSystem.mjs.map\n","\"use strict\";\nconst GpuBlendModesToPixi = {};\nGpuBlendModesToPixi.normal = {\n alpha: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n },\n color: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n }\n};\nGpuBlendModesToPixi.add = {\n alpha: {\n srcFactor: \"src-alpha\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n },\n color: {\n srcFactor: \"one\",\n dstFactor: \"one\",\n operation: \"add\"\n }\n};\nGpuBlendModesToPixi.multiply = {\n alpha: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n },\n color: {\n srcFactor: \"dst\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n }\n};\nGpuBlendModesToPixi.screen = {\n alpha: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n },\n color: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src\",\n operation: \"add\"\n }\n};\nGpuBlendModesToPixi.overlay = {\n alpha: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n },\n color: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src\",\n operation: \"add\"\n }\n};\nGpuBlendModesToPixi.none = {\n alpha: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n },\n color: {\n srcFactor: \"zero\",\n dstFactor: \"zero\",\n operation: \"add\"\n }\n};\nGpuBlendModesToPixi[\"normal-npm\"] = {\n alpha: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n },\n color: {\n srcFactor: \"src-alpha\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n }\n};\nGpuBlendModesToPixi[\"add-npm\"] = {\n alpha: {\n srcFactor: \"one\",\n dstFactor: \"one\",\n operation: \"add\"\n },\n color: {\n srcFactor: \"src-alpha\",\n dstFactor: \"one\",\n operation: \"add\"\n }\n};\nGpuBlendModesToPixi[\"screen-npm\"] = {\n alpha: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n },\n color: {\n srcFactor: \"src-alpha\",\n dstFactor: \"one-minus-src\",\n operation: \"add\"\n }\n};\nGpuBlendModesToPixi.erase = {\n alpha: {\n srcFactor: \"zero\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\"\n },\n color: {\n srcFactor: \"zero\",\n dstFactor: \"one-minus-src\",\n operation: \"add\"\n }\n};\n\nexport { GpuBlendModesToPixi };\n//# sourceMappingURL=GpuBlendModesToPixi.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { State } from '../../shared/state/State.mjs';\nimport { GpuBlendModesToPixi } from './GpuBlendModesToPixi.mjs';\n\n\"use strict\";\nclass GpuStateSystem {\n constructor() {\n this.defaultState = new State();\n this.defaultState.blend = true;\n }\n contextChange(gpu) {\n this.gpu = gpu;\n }\n /**\n * Gets the blend mode data for the current state\n * @param state - The state to get the blend mode from\n */\n getColorTargets(state) {\n const blend = GpuBlendModesToPixi[state.blendMode] || GpuBlendModesToPixi.normal;\n return [\n {\n format: \"bgra8unorm\",\n writeMask: 0,\n blend\n }\n ];\n }\n destroy() {\n this.gpu = null;\n }\n}\n/** @ignore */\nGpuStateSystem.extension = {\n type: [\n ExtensionType.WebGPUSystem\n ],\n name: \"state\"\n};\n\nexport { GpuStateSystem };\n//# sourceMappingURL=GpuStateSystem.mjs.map\n","\"use strict\";\nconst gpuUploadBufferImageResource = {\n type: \"image\",\n upload(source, gpuTexture, gpu) {\n const resource = source.resource;\n const total = (source.pixelWidth | 0) * (source.pixelHeight | 0);\n const bytesPerPixel = resource.byteLength / total;\n gpu.device.queue.writeTexture(\n { texture: gpuTexture },\n resource,\n {\n offset: 0,\n rowsPerImage: source.pixelHeight,\n bytesPerRow: source.pixelHeight * bytesPerPixel\n },\n {\n width: source.pixelWidth,\n height: source.pixelHeight,\n depthOrArrayLayers: 1\n }\n );\n }\n};\n\nexport { gpuUploadBufferImageResource };\n//# sourceMappingURL=gpuUploadBufferImageResource.mjs.map\n","\"use strict\";\nconst blockDataMap = {\n \"bc1-rgba-unorm\": { blockBytes: 8, blockWidth: 4, blockHeight: 4 },\n \"bc2-rgba-unorm\": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n \"bc3-rgba-unorm\": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n \"bc7-rgba-unorm\": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n \"etc1-rgb-unorm\": { blockBytes: 8, blockWidth: 4, blockHeight: 4 },\n \"etc2-rgba8unorm\": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n \"astc-4x4-unorm\": { blockBytes: 16, blockWidth: 4, blockHeight: 4 }\n};\nconst defaultBlockData = { blockBytes: 4, blockWidth: 1, blockHeight: 1 };\nconst gpuUploadCompressedTextureResource = {\n type: \"compressed\",\n upload(source, gpuTexture, gpu) {\n let mipWidth = source.pixelWidth;\n let mipHeight = source.pixelHeight;\n const blockData = blockDataMap[source.format] || defaultBlockData;\n for (let i = 0; i < source.resource.length; i++) {\n const levelBuffer = source.resource[i];\n const bytesPerRow = Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockBytes;\n gpu.device.queue.writeTexture(\n {\n texture: gpuTexture,\n mipLevel: i\n },\n levelBuffer,\n {\n offset: 0,\n bytesPerRow\n },\n {\n width: Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockWidth,\n height: Math.ceil(mipHeight / blockData.blockHeight) * blockData.blockHeight,\n depthOrArrayLayers: 1\n }\n );\n mipWidth = Math.max(mipWidth >> 1, 1);\n mipHeight = Math.max(mipHeight >> 1, 1);\n }\n }\n};\n\nexport { blockDataMap, gpuUploadCompressedTextureResource };\n//# sourceMappingURL=gpuUploadCompressedTextureResource.mjs.map\n","\"use strict\";\nconst gpuUploadImageResource = {\n type: \"image\",\n upload(source, gpuTexture, gpu) {\n const resource = source.resource;\n if (!resource)\n return;\n const width = Math.min(gpuTexture.width, source.resourceWidth || source.pixelWidth);\n const height = Math.min(gpuTexture.height, source.resourceHeight || source.pixelHeight);\n const premultipliedAlpha = source.alphaMode === \"premultiply-alpha-on-upload\";\n gpu.device.queue.copyExternalImageToTexture(\n { source: resource },\n { texture: gpuTexture, premultipliedAlpha },\n {\n width,\n height\n }\n );\n }\n};\n\nexport { gpuUploadImageResource };\n//# sourceMappingURL=gpuUploadImageSource.mjs.map\n","import { gpuUploadImageResource } from './gpuUploadImageSource.mjs';\n\n\"use strict\";\nconst gpuUploadVideoResource = {\n type: \"video\",\n upload(source, gpuTexture, gpu) {\n gpuUploadImageResource.upload(source, gpuTexture, gpu);\n }\n};\n\nexport { gpuUploadVideoResource };\n//# sourceMappingURL=gpuUploadVideoSource.mjs.map\n","\"use strict\";\nclass GpuMipmapGenerator {\n constructor(device) {\n this.device = device;\n this.sampler = device.createSampler({ minFilter: \"linear\" });\n this.pipelines = {};\n }\n _getMipmapPipeline(format) {\n let pipeline = this.pipelines[format];\n if (!pipeline) {\n if (!this.mipmapShaderModule) {\n this.mipmapShaderModule = this.device.createShaderModule({\n code: (\n /* wgsl */\n `\n var<private> pos : array<vec2<f32>, 3> = array<vec2<f32>, 3>(\n vec2<f32>(-1.0, -1.0), vec2<f32>(-1.0, 3.0), vec2<f32>(3.0, -1.0));\n\n struct VertexOutput {\n @builtin(position) position : vec4<f32>,\n @location(0) texCoord : vec2<f32>,\n };\n\n @vertex\n fn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {\n var output : VertexOutput;\n output.texCoord = pos[vertexIndex] * vec2<f32>(0.5, -0.5) + vec2<f32>(0.5);\n output.position = vec4<f32>(pos[vertexIndex], 0.0, 1.0);\n return output;\n }\n\n @group(0) @binding(0) var imgSampler : sampler;\n @group(0) @binding(1) var img : texture_2d<f32>;\n\n @fragment\n fn fragmentMain(@location(0) texCoord : vec2<f32>) -> @location(0) vec4<f32> {\n return textureSample(img, imgSampler, texCoord);\n }\n `\n )\n });\n }\n pipeline = this.device.createRenderPipeline({\n layout: \"auto\",\n vertex: {\n module: this.mipmapShaderModule,\n entryPoint: \"vertexMain\"\n },\n fragment: {\n module: this.mipmapShaderModule,\n entryPoint: \"fragmentMain\",\n targets: [{ format }]\n }\n });\n this.pipelines[format] = pipeline;\n }\n return pipeline;\n }\n /**\n * Generates mipmaps for the given GPUTexture from the data in level 0.\n * @param {module:External.GPUTexture} texture - Texture to generate mipmaps for.\n * @returns {module:External.GPUTexture} - The originally passed texture\n */\n generateMipmap(texture) {\n const pipeline = this._getMipmapPipeline(texture.format);\n if (texture.dimension === \"3d\" || texture.dimension === \"1d\") {\n throw new Error(\"Generating mipmaps for non-2d textures is currently unsupported!\");\n }\n let mipTexture = texture;\n const arrayLayerCount = texture.depthOrArrayLayers || 1;\n const renderToSource = texture.usage & GPUTextureUsage.RENDER_ATTACHMENT;\n if (!renderToSource) {\n const mipTextureDescriptor = {\n size: {\n width: Math.ceil(texture.width / 2),\n height: Math.ceil(texture.height / 2),\n depthOrArrayLayers: arrayLayerCount\n },\n format: texture.format,\n usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC | GPUTextureUsage.RENDER_ATTACHMENT,\n mipLevelCount: texture.mipLevelCount - 1\n };\n mipTexture = this.device.createTexture(mipTextureDescriptor);\n }\n const commandEncoder = this.device.createCommandEncoder({});\n const bindGroupLayout = pipeline.getBindGroupLayout(0);\n for (let arrayLayer = 0; arrayLayer < arrayLayerCount; ++arrayLayer) {\n let srcView = texture.createView({\n baseMipLevel: 0,\n mipLevelCount: 1,\n dimension: \"2d\",\n baseArrayLayer: arrayLayer,\n arrayLayerCount: 1\n });\n let dstMipLevel = renderToSource ? 1 : 0;\n for (let i = 1; i < texture.mipLevelCount; ++i) {\n const dstView = mipTexture.createView({\n baseMipLevel: dstMipLevel++,\n mipLevelCount: 1,\n dimension: \"2d\",\n baseArrayLayer: arrayLayer,\n arrayLayerCount: 1\n });\n const passEncoder = commandEncoder.beginRenderPass({\n colorAttachments: [{\n view: dstView,\n storeOp: \"store\",\n loadOp: \"clear\",\n clearValue: { r: 0, g: 0, b: 0, a: 0 }\n }]\n });\n const bindGroup = this.device.createBindGroup({\n layout: bindGroupLayout,\n entries: [{\n binding: 0,\n resource: this.sampler\n }, {\n binding: 1,\n resource: srcView\n }]\n });\n passEncoder.setPipeline(pipeline);\n passEncoder.setBindGroup(0, bindGroup);\n passEncoder.draw(3, 1, 0, 0);\n passEncoder.end();\n srcView = dstView;\n }\n }\n if (!renderToSource) {\n const mipLevelSize = {\n width: Math.ceil(texture.width / 2),\n height: Math.ceil(texture.height / 2),\n depthOrArrayLayers: arrayLayerCount\n };\n for (let i = 1; i < texture.mipLevelCount; ++i) {\n commandEncoder.copyTextureToTexture({\n texture: mipTexture,\n mipLevel: i - 1\n }, {\n texture,\n mipLevel: i\n }, mipLevelSize);\n mipLevelSize.width = Math.ceil(mipLevelSize.width / 2);\n mipLevelSize.height = Math.ceil(mipLevelSize.height / 2);\n }\n }\n this.device.queue.submit([commandEncoder.finish()]);\n if (!renderToSource) {\n mipTexture.destroy();\n }\n return texture;\n }\n}\n\nexport { GpuMipmapGenerator };\n//# sourceMappingURL=GpuMipmapGenerator.mjs.map\n","import { DOMAdapter } from '../../../../environment/adapter.mjs';\nimport { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { CanvasPool } from '../../shared/texture/CanvasPool.mjs';\nimport { BindGroup } from '../shader/BindGroup.mjs';\nimport { gpuUploadBufferImageResource } from './uploaders/gpuUploadBufferImageResource.mjs';\nimport { gpuUploadCompressedTextureResource, blockDataMap } from './uploaders/gpuUploadCompressedTextureResource.mjs';\nimport { gpuUploadImageResource } from './uploaders/gpuUploadImageSource.mjs';\nimport { gpuUploadVideoResource } from './uploaders/gpuUploadVideoSource.mjs';\nimport { GpuMipmapGenerator } from './utils/GpuMipmapGenerator.mjs';\n\n\"use strict\";\nclass GpuTextureSystem {\n constructor(renderer) {\n this.managedTextures = [];\n this._gpuSources = /* @__PURE__ */ Object.create(null);\n this._gpuSamplers = /* @__PURE__ */ Object.create(null);\n this._bindGroupHash = /* @__PURE__ */ Object.create(null);\n this._textureViewHash = /* @__PURE__ */ Object.create(null);\n this._uploads = {\n image: gpuUploadImageResource,\n buffer: gpuUploadBufferImageResource,\n video: gpuUploadVideoResource,\n compressed: gpuUploadCompressedTextureResource\n };\n this._renderer = renderer;\n }\n contextChange(gpu) {\n this._gpu = gpu;\n }\n initSource(source) {\n if (source.autoGenerateMipmaps) {\n const biggestDimension = Math.max(source.pixelWidth, source.pixelHeight);\n source.mipLevelCount = Math.floor(Math.log2(biggestDimension)) + 1;\n }\n let usage = GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST;\n if (source.uploadMethodId !== \"compressed\") {\n usage |= GPUTextureUsage.RENDER_ATTACHMENT;\n usage |= GPUTextureUsage.COPY_SRC;\n }\n const blockData = blockDataMap[source.format] || { blockBytes: 4, blockWidth: 1, blockHeight: 1 };\n const width = Math.ceil(source.pixelWidth / blockData.blockWidth) * blockData.blockWidth;\n const height = Math.ceil(source.pixelHeight / blockData.blockHeight) * blockData.blockHeight;\n const textureDescriptor = {\n label: source.label,\n size: { width, height },\n format: source.format,\n sampleCount: source.sampleCount,\n mipLevelCount: source.mipLevelCount,\n dimension: source.dimension,\n usage\n };\n const gpuTexture = this._gpu.device.createTexture(textureDescriptor);\n this._gpuSources[source.uid] = gpuTexture;\n if (!this.managedTextures.includes(source)) {\n source.on(\"update\", this.onSourceUpdate, this);\n source.on(\"resize\", this.onSourceResize, this);\n source.on(\"destroy\", this.onSourceDestroy, this);\n source.on(\"unload\", this.onSourceUnload, this);\n source.on(\"updateMipmaps\", this.onUpdateMipmaps, this);\n this.managedTextures.push(source);\n }\n this.onSourceUpdate(source);\n return gpuTexture;\n }\n onSourceUpdate(source) {\n const gpuTexture = this.getGpuSource(source);\n if (!gpuTexture)\n return;\n if (this._uploads[source.uploadMethodId]) {\n this._uploads[source.uploadMethodId].upload(source, gpuTexture, this._gpu);\n }\n if (source.autoGenerateMipmaps && source.mipLevelCount > 1) {\n this.onUpdateMipmaps(source);\n }\n }\n onSourceUnload(source) {\n const gpuTexture = this._gpuSources[source.uid];\n if (gpuTexture) {\n this._gpuSources[source.uid] = null;\n gpuTexture.destroy();\n }\n }\n onUpdateMipmaps(source) {\n if (!this._mipmapGenerator) {\n this._mipmapGenerator = new GpuMipmapGenerator(this._gpu.device);\n }\n const gpuTexture = this.getGpuSource(source);\n this._mipmapGenerator.generateMipmap(gpuTexture);\n }\n onSourceDestroy(source) {\n source.off(\"update\", this.onSourceUpdate, this);\n source.off(\"unload\", this.onSourceUnload, this);\n source.off(\"destroy\", this.onSourceDestroy, this);\n source.off(\"resize\", this.onSourceResize, this);\n source.off(\"updateMipmaps\", this.onUpdateMipmaps, this);\n this.managedTextures.splice(this.managedTextures.indexOf(source), 1);\n this.onSourceUnload(source);\n }\n onSourceResize(source) {\n const gpuTexture = this._gpuSources[source.uid];\n if (!gpuTexture) {\n this.initSource(source);\n } else if (gpuTexture.width !== source.pixelWidth || gpuTexture.height !== source.pixelHeight) {\n this._textureViewHash[source.uid] = null;\n this._bindGroupHash[source.uid] = null;\n this.onSourceUnload(source);\n this.initSource(source);\n }\n }\n _initSampler(sampler) {\n this._gpuSamplers[sampler._resourceId] = this._gpu.device.createSampler(sampler);\n return this._gpuSamplers[sampler._resourceId];\n }\n getGpuSampler(sampler) {\n return this._gpuSamplers[sampler._resourceId] || this._initSampler(sampler);\n }\n getGpuSource(source) {\n return this._gpuSources[source.uid] || this.initSource(source);\n }\n getTextureBindGroup(texture) {\n return this._bindGroupHash[texture.uid] ?? this._createTextureBindGroup(texture);\n }\n _createTextureBindGroup(texture) {\n const source = texture.source;\n const bindGroupId = source.uid;\n this._bindGroupHash[bindGroupId] = new BindGroup({\n 0: source,\n 1: source.style\n });\n return this._bindGroupHash[bindGroupId];\n }\n getTextureView(texture) {\n const source = texture.source;\n return this._textureViewHash[source.uid] ?? this._createTextureView(source);\n }\n _createTextureView(texture) {\n this._textureViewHash[texture.uid] = this.getGpuSource(texture).createView();\n return this._textureViewHash[texture.uid];\n }\n generateCanvas(texture) {\n const renderer = this._renderer;\n const commandEncoder = renderer.gpu.device.createCommandEncoder();\n const canvas = DOMAdapter.get().createCanvas();\n canvas.width = texture.source.pixelWidth;\n canvas.height = texture.source.pixelHeight;\n const context = canvas.getContext(\"webgpu\");\n context.configure({\n device: renderer.gpu.device,\n // eslint-disable-next-line max-len\n usage: GPUTextureUsage.COPY_DST | GPUTextureUsage.COPY_SRC,\n format: navigator.gpu.getPreferredCanvasFormat(),\n alphaMode: \"premultiplied\"\n });\n commandEncoder.copyTextureToTexture({\n texture: renderer.texture.getGpuSource(texture.source),\n origin: {\n x: 0,\n y: 0\n }\n }, {\n texture: context.getCurrentTexture()\n }, {\n width: canvas.width,\n height: canvas.height\n });\n renderer.gpu.device.queue.submit([commandEncoder.finish()]);\n return canvas;\n }\n getPixels(texture) {\n const webGPUCanvas = this.generateCanvas(texture);\n const canvasAndContext = CanvasPool.getOptimalCanvasAndContext(webGPUCanvas.width, webGPUCanvas.height);\n const context = canvasAndContext.context;\n context.drawImage(webGPUCanvas, 0, 0);\n const { width, height } = webGPUCanvas;\n const imageData = context.getImageData(0, 0, width, height);\n const pixels = new Uint8ClampedArray(imageData.data.buffer);\n CanvasPool.returnCanvasAndContext(canvasAndContext);\n return { pixels, width, height };\n }\n destroy() {\n this.managedTextures.slice().forEach((source) => this.onSourceDestroy(source));\n this.managedTextures = null;\n for (const k of Object.keys(this._bindGroupHash)) {\n const key = Number(k);\n const bindGroup = this._bindGroupHash[key];\n bindGroup?.destroy();\n this._bindGroupHash[key] = null;\n }\n this._gpu = null;\n this._mipmapGenerator = null;\n this._gpuSources = null;\n this._bindGroupHash = null;\n this._textureViewHash = null;\n this._gpuSamplers = null;\n }\n}\n/** @ignore */\nGpuTextureSystem.extension = {\n type: [\n ExtensionType.WebGPUSystem\n ],\n name: \"texture\"\n};\n\nexport { GpuTextureSystem };\n//# sourceMappingURL=GpuTextureSystem.mjs.map\n","import { extensions, ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { GpuGraphicsAdaptor } from '../../../scene/graphics/gpu/GpuGraphicsAdaptor.mjs';\nimport { GpuMeshAdapter } from '../../../scene/mesh/gpu/GpuMeshAdapter.mjs';\nimport { GpuBatchAdaptor } from '../../batcher/gpu/GpuBatchAdaptor.mjs';\nimport { AbstractRenderer } from '../shared/system/AbstractRenderer.mjs';\nimport { SharedSystems, SharedRenderPipes } from '../shared/system/SharedSystems.mjs';\nimport { RendererType } from '../types.mjs';\nimport { BindGroupSystem } from './BindGroupSystem.mjs';\nimport { GpuBufferSystem } from './buffer/GpuBufferSystem.mjs';\nimport { GpuColorMaskSystem } from './GpuColorMaskSystem.mjs';\nimport { GpuDeviceSystem } from './GpuDeviceSystem.mjs';\nimport { GpuEncoderSystem } from './GpuEncoderSystem.mjs';\nimport { GpuStencilSystem } from './GpuStencilSystem.mjs';\nimport { GpuUboSystem } from './GpuUboSystem.mjs';\nimport { GpuUniformBatchPipe } from './GpuUniformBatchPipe.mjs';\nimport { PipelineSystem } from './pipeline/PipelineSystem.mjs';\nimport { GpuRenderTargetSystem } from './renderTarget/GpuRenderTargetSystem.mjs';\nimport { GpuShaderSystem } from './shader/GpuShaderSystem.mjs';\nimport { GpuStateSystem } from './state/GpuStateSystem.mjs';\nimport { GpuTextureSystem } from './texture/GpuTextureSystem.mjs';\n\n\"use strict\";\nconst DefaultWebGPUSystems = [\n ...SharedSystems,\n GpuUboSystem,\n GpuEncoderSystem,\n GpuDeviceSystem,\n GpuBufferSystem,\n GpuTextureSystem,\n GpuRenderTargetSystem,\n GpuShaderSystem,\n GpuStateSystem,\n PipelineSystem,\n GpuColorMaskSystem,\n GpuStencilSystem,\n BindGroupSystem\n];\nconst DefaultWebGPUPipes = [...SharedRenderPipes, GpuUniformBatchPipe];\nconst DefaultWebGPUAdapters = [GpuBatchAdaptor, GpuMeshAdapter, GpuGraphicsAdaptor];\nconst systems = [];\nconst renderPipes = [];\nconst renderPipeAdaptors = [];\nextensions.handleByNamedList(ExtensionType.WebGPUSystem, systems);\nextensions.handleByNamedList(ExtensionType.WebGPUPipes, renderPipes);\nextensions.handleByNamedList(ExtensionType.WebGPUPipesAdaptor, renderPipeAdaptors);\nextensions.add(...DefaultWebGPUSystems, ...DefaultWebGPUPipes, ...DefaultWebGPUAdapters);\nclass WebGPURenderer extends AbstractRenderer {\n constructor() {\n const systemConfig = {\n name: \"webgpu\",\n type: RendererType.WEBGPU,\n systems,\n renderPipes,\n renderPipeAdaptors\n };\n super(systemConfig);\n }\n}\n\nexport { WebGPURenderer };\n//# sourceMappingURL=WebGPURenderer.mjs.map\n","import { DOMAdapter } from '../../../../environment/adapter.mjs';\nimport { nextPow2 } from '../../../../maths/misc/pow2.mjs';\n\n\"use strict\";\nclass CanvasPoolClass {\n constructor(canvasOptions) {\n this._canvasPool = /* @__PURE__ */ Object.create(null);\n this.canvasOptions = canvasOptions || {};\n this.enableFullScreen = false;\n }\n /**\n * Creates texture with params that were specified in pool constructor.\n * @param pixelWidth - Width of texture in pixels.\n * @param pixelHeight - Height of texture in pixels.\n */\n _createCanvasAndContext(pixelWidth, pixelHeight) {\n const canvas = DOMAdapter.get().createCanvas();\n canvas.width = pixelWidth;\n canvas.height = pixelHeight;\n const context = canvas.getContext(\"2d\");\n return { canvas, context };\n }\n /**\n * Gets a Power-of-Two render texture or fullScreen texture\n * @param minWidth - The minimum width of the render texture.\n * @param minHeight - The minimum height of the render texture.\n * @param resolution - The resolution of the render texture.\n * @returns The new render texture.\n */\n getOptimalCanvasAndContext(minWidth, minHeight, resolution = 1) {\n minWidth = Math.ceil(minWidth * resolution - 1e-6);\n minHeight = Math.ceil(minHeight * resolution - 1e-6);\n minWidth = nextPow2(minWidth);\n minHeight = nextPow2(minHeight);\n const key = (minWidth << 17) + (minHeight << 1);\n if (!this._canvasPool[key]) {\n this._canvasPool[key] = [];\n }\n let canvasAndContext = this._canvasPool[key].pop();\n if (!canvasAndContext) {\n canvasAndContext = this._createCanvasAndContext(minWidth, minHeight);\n }\n return canvasAndContext;\n }\n /**\n * Place a render texture back into the pool.\n * @param canvasAndContext\n */\n returnCanvasAndContext(canvasAndContext) {\n const { width, height } = canvasAndContext.canvas;\n const key = (width << 17) + (height << 1);\n this._canvasPool[key].push(canvasAndContext);\n }\n clear() {\n this._canvasPool = {};\n }\n}\nconst CanvasPool = new CanvasPoolClass();\n\nexport { CanvasPool, CanvasPoolClass };\n//# sourceMappingURL=CanvasPool.mjs.map\n"],"names":["GpuGraphicsAdaptor","init","localUniforms","uTransformMatrix","value","type","uColor","Float32Array","uRound","gpuProgram","name","bits","shader","resources","execute","graphicsPipe","renderable","context","customShader","renderer","geometry","instructions","contextSystem","graphicsContext","getContextRenderData","encoder","setPipelineFromGeometryProgramAndState","state","setGeometry","globalUniformsBindGroup","globalUniforms","bindGroup","setBindGroup","localBindGroup","renderPipes","uniformBatch","getUniformBindGroup","batches","i","instructionSize","batch","groups","gpuBindGroup","textureBatch","textures","count","getBindGroup","renderPassEncoder","drawIndexed","size","start","destroy","extension","GpuMeshAdapter","_shader","uTexture","uSampler","textureUniforms","uTextureMatrix","meshPipe","mesh","texture","source","style","uniforms","textureMatrix","mapCoord","autoAssignGlobalUniforms","autoAssignLocalUniforms","draw","_geometry","tempState","GpuBatchAdaptor","batchPipe","program","blendMode","pipeline","getPipeline","resetBindGroup","_touch","textureGC","setPipeline","BindGroupSystem","constructor","_hash","Object","create","_renderer","contextChange","gpu","_gpu","groupIndex","_updateKey","_key","_createBindGroup","group","device","groupLayout","layout","entries","j","gpuResource","resource","_resourceType","ubo","updateUniformGroup","buffer","uniformGroup","getGPUBuffer","offset","descriptor","bufferResource","getGpuSampler","getGpuSource","createView","push","binding","getProgramData","bindGroups","createBindGroup","key","keys","GpuBufferSystem","_gpuBuffers","_managedBuffers","uid","createGPUBuffer","updateBuffer","gpuBuffer","data","_updateID","queue","writeBuffer","_updateSize","byteLength","destroyAll","id","on","onBufferChange","onBufferDestroy","createBuffer","getMappedRange","unmap","splice","indexOf","_destroyBuffer","forEach","off","GpuColorMaskSystem","_colorMaskCache","setMask","colorMask","setColorMask","GpuDeviceSystem","options","_initPromise","_createDeviceAndAdaptor","then","runners","emit","adapter","navigator","requestAdapter","powerPreference","forceFallbackAdapter","requiredFeatures","filter","feature","features","has","requestDevice","defaultOptions","GpuEncoderSystem","_boundBindGroup","_boundVertexBuffer","renderStart","commandFinished","Promise","resolve","_resolveCommandFinished","commandEncoder","createCommandEncoder","beginRenderPass","gpuRenderTarget","endRenderPass","_clearCache","end","setViewport","viewport","x","y","width","height","topology","_boundPipeline","_setVertexBuffer","index","setVertexBuffer","_setIndexBuffer","_boundIndexBuffer","indexFormat","BYTES_PER_ELEMENT","setIndexBuffer","attributes","attribute","location","indexBuffer","_setShaderBindGroups","skipSync","_syncBindGroup","isUniformGroup","instanceCount","length","getSize","finishRenderPass","postrender","submit","finish","restoreRenderPass","renderTarget","adaptor","getDescriptor","boundPipeline","boundVertexBuffer","boundIndexBuffer","boundBindGroup","priority","GpuStencilSystem","_renderTargetStencilState","onRenderTargetChange","add","stencilState","stencilMode","stencilReference","_activeRenderTarget","setStencilMode","setStencilReference","remove","WGSL_ALIGN_SIZE_DATA","i32","align","u32","f32","f16","createUboElementsWGSL","uniformData","uboElements","map","uboElement","Error","Math","max","ceil","generateArraySyncWGSL","offsetToAdd","remainder","createUboSyncFunctionWGSL","GpuUboSystem","createUboElements","generateUboSync","UboBatch","minUniformOffsetAlignment","_minUniformOffsetAlignment","byteIndex","clear","addEmptyGroup","newSize","addGroup","array","_buffer","GpuUniformBatchPipe","_bindGroupHash","_buffers","_bindGroups","_bufferResources","_batchBuffer","totalBuffers","usage","renderEnd","_uploadBindGroups","_resetBindGroups","duplicate","ensureUniformGroup","syncUniformGroup","_getBindGroup","getUboResource","_getBufferResource","getArrayBindGroup","getArrayBufferResource","bufferSystem","firstBuffer","update","copyBufferToBuffer","topologyStringToId","PipelineSystem","_moduleCache","_bufferLayoutsCache","_pipeCache","_pipeStateCaches","_colorMask","_multisampleCount","_updatePipeHash","setMultisampleCount","multisampleCount","setRenderTarget","msaaSamples","_depthStencilAttachment","depthStencilAttachment","_stencilMode","_stencilState","passEncoder","geometryLayout","shaderKey","_layoutKey","attributeData","_generateBufferKey","_blendModeId","_createPipeline","buffers","_createVertexBufferLayouts","blendModes","getColorTargets","writeMask","vertex","module","_getModule","entryPoint","fragment","targets","primitive","cullMode","multisample","label","depthStencil","format","depthWriteEnabled","depthTest","depthCompare","createRenderPipeline","code","_createModule","createShaderModule","keyGen","attributeKeys","sort","stride","stringKey","join","vertexBuffersLayout","bufferEntry","arrayStride","stepMode","bufferEntryAttributes","instance","shaderLocation","stencilStateId","multiSampleCount","GpuRenderTarget","contexts","msaaTextures","GpuRenderTargetAdaptor","renderTargetSystem","_renderTargetSystem","copyToTexture","sourceRenderSurfaceTexture","destinationTexture","originSrc","originDest","baseGpuTexture","_getGpuColorTexture","backGpuTexture","copyTextureToTexture","origin","startRenderPass","clearColor","getGpuRenderTarget","getCurrentTexture","colorTextures","clearValue","colorAttachments","view","resolveTarget","currentTexture","mipLevelCount","getTextureView","loadOp","defaultClearColor","storeOp","stencil","depth","depthStencilTexture","ensureDepthStencilTexture","sampleCount","msaa","stencilLoadOp","depthLoadOp","stencilStoreOp","depthClearValue","depthStoreOp","renderPassDescriptor","gpuCommands","initGpuRenderTarget","isRoot","colorTexture","getContext","alphaMode","transparent","configure","GPUTextureUsage","TEXTURE_BINDING","COPY_DST","RENDER_ATTACHMENT","COPY_SRC","e","console","error","antialias","msaaTexture","destroyGpuRenderTarget","unconfigure","resizeGpuRenderTarget","resize","_resolution","GpuRenderTargetSystem","GpuShaderSystem","_gpuProgramData","_createGPUProgramData","gpuLayout","createBindGroupLayout","createPipelineLayout","bindGroupLayouts","GpuBlendModesToPixi","normal","alpha","srcFactor","dstFactor","operation","color","multiply","screen","overlay","none","erase","GpuStateSystem","defaultState","blend","gpuUploadBufferImageResource","upload","gpuTexture","total","pixelWidth","pixelHeight","bytesPerPixel","writeTexture","rowsPerImage","bytesPerRow","depthOrArrayLayers","blockDataMap","blockBytes","blockWidth","blockHeight","defaultBlockData","gpuUploadCompressedTextureResource","mipWidth","mipHeight","blockData","levelBuffer","mipLevel","gpuUploadImageResource","min","resourceWidth","resourceHeight","premultipliedAlpha","copyExternalImageToTexture","gpuUploadVideoResource","GpuMipmapGenerator","sampler","createSampler","minFilter","pipelines","_getMipmapPipeline","mipmapShaderModule","generateMipmap","dimension","mipTexture","arrayLayerCount","renderToSource","mipTextureDescriptor","createTexture","bindGroupLayout","getBindGroupLayout","arrayLayer","srcView","baseMipLevel","baseArrayLayer","dstMipLevel","dstView","r","g","b","a","mipLevelSize","GpuTextureSystem","managedTextures","_gpuSources","_gpuSamplers","_textureViewHash","_uploads","image","video","compressed","initSource","autoGenerateMipmaps","biggestDimension","floor","log2","uploadMethodId","textureDescriptor","includes","onSourceUpdate","onSourceResize","onSourceDestroy","onSourceUnload","onUpdateMipmaps","_mipmapGenerator","_initSampler","_resourceId","getTextureBindGroup","_createTextureBindGroup","bindGroupId","_createTextureView","generateCanvas","canvas","createCanvas","getPreferredCanvasFormat","getPixels","webGPUCanvas","canvasAndContext","drawImage","pixels","Uint8ClampedArray","imageData","getImageData","k","slice","Number","DefaultWebGPUSystems","DefaultWebGPUPipes","DefaultWebGPUAdapters","systems","renderPipeAdaptors","WebGPURenderer","CanvasPool","CanvasPoolClass","canvasOptions","_canvasPool","enableFullScreen","_createCanvasAndContext","getOptimalCanvasAndContext","minWidth","minHeight","resolution","pop","returnCanvasAndContext"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_midscene_visualizer_report=self.webpackChunk_midscene_visualizer_report||[]).push([["544"],{84522:function(e,t,i){let 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,f=/Opera Mini/i,b=/\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(f),firefox:s(_),chrome:s(b),device:s(y)||s(E)||s(f)||s(_)||s(b)},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),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(){if(!!this._hookDiv)document.body.removeChild(this._hookDiv),this._hookDiv=null}_activate(){if(!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(){if(!!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)return;if(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){if(9===e.keyCode)this._activate()}_onMouseMove(e){if(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");let D=i("72193"),I=i("92245"),k=i("95909"),x=i("96743"),O=new class e{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(){if(!this._tickerAdded&&!!this.domElement)x.v.system.add(this._tickerUpdate,this,k.u.INTERACTION),this._tickerAdded=!0}removeTickerListener(){if(!!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;if(!this.events.supportsTouchEvents||"touch"!==e.pointerType)globalThis.document.dispatchEvent(new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY}))}_tickerUpdate(e){if(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._isPointerMoveEvent&&this.enableGlobalMoveEvents,n=this[i?"hitTestMoveRecursive":"hitTestRecursive"](this.rootTarget,this.rootTarget.eventMode,S.set(e,t),this.hitTestFn,this.hitPruneFn);return n&&n[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)&&!0}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)){(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");return}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)){(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");return}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)){(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");return}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)){(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");return}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)){(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");return}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)){(0,I.Z)("EventBoundary cannot map a non-pointer event as a pointer event");return}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)){(0,I.Z)("EventBoundary cannot map a non-wheel event as a wheel event");return}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){if(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("10722"),i("35893"),i("42454"),i("30773"),i("66241"),i("53828"),i("19921"),i("28803"),i("34354"),i("80929")}}]);