@midscene/playground 1.0.1-beta-20251204075416.0 → 1.0.1-beta-20251204081114.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/package.json +3 -3
  2. package/static/index.html +1 -1
  3. package/static/static/js/430.adc9a336.js +611 -0
  4. package/static/static/js/{828.f9eb1ea0.js.LICENSE.txt → 430.adc9a336.js.LICENSE.txt} +0 -4
  5. package/static/static/js/{828.f9eb1ea0.js.map → 430.adc9a336.js.map} +1 -1
  6. package/static/static/js/async/195.6b544830.js +3 -0
  7. package/static/static/js/async/{195.211344dc.js.map → 195.6b544830.js.map} +1 -1
  8. package/static/static/js/async/{199.3807c13f.js → 199.30b3461a.js} +7 -7
  9. package/static/static/js/async/{199.3807c13f.js.map → 199.30b3461a.js.map} +1 -1
  10. package/static/static/js/async/221.d7bad1ad.js +21 -0
  11. package/static/static/js/async/{221.f69d95bd.js.map → 221.d7bad1ad.js.map} +1 -1
  12. package/static/static/js/async/271.8c3746e1.js +30 -0
  13. package/static/static/js/async/{271.9c705eb3.js.map → 271.8c3746e1.js.map} +1 -1
  14. package/static/static/js/async/35.4b29edc8.js +1 -0
  15. package/static/static/js/async/{467.4a88bee0.js → 467.b56c3730.js} +1 -1
  16. package/static/static/js/async/652.7a830db9.js +3 -0
  17. package/static/static/js/async/{652.600e8692.js.map → 652.7a830db9.js.map} +1 -1
  18. package/static/static/js/async/856.0d869a94.js +158 -0
  19. package/static/static/js/async/{856.a4d5847b.js.map → 856.0d869a94.js.map} +1 -1
  20. package/static/static/js/async/860.1bcb36d0.js +2 -0
  21. package/static/static/js/async/{860.a2c80fa6.js.map → 860.1bcb36d0.js.map} +1 -1
  22. package/static/static/js/async/990.27e22d92.js +26 -0
  23. package/static/static/js/async/{990.3f9d55fe.js.map → 990.27e22d92.js.map} +1 -1
  24. package/static/static/js/index.2ccfc3ce.js +10 -0
  25. package/static/static/js/index.2ccfc3ce.js.map +1 -0
  26. package/static/static/js/lib-react.bc3a3965.js +3 -0
  27. package/static/static/js/{lib-react.88bfef40.js.map → lib-react.bc3a3965.js.map} +1 -1
  28. package/static/static/js/828.f9eb1ea0.js +0 -614
  29. package/static/static/js/async/195.211344dc.js +0 -3
  30. package/static/static/js/async/221.f69d95bd.js +0 -21
  31. package/static/static/js/async/271.9c705eb3.js +0 -30
  32. package/static/static/js/async/35.11835a6c.js +0 -1
  33. package/static/static/js/async/652.600e8692.js +0 -3
  34. package/static/static/js/async/856.a4d5847b.js +0 -158
  35. package/static/static/js/async/860.a2c80fa6.js +0 -2
  36. package/static/static/js/async/990.3f9d55fe.js +0 -26
  37. package/static/static/js/index.6f6332ad.js +0 -10
  38. package/static/static/js/index.6f6332ad.js.map +0 -1
  39. package/static/static/js/lib-react.88bfef40.js +0 -3
  40. /package/static/static/js/{index.6f6332ad.js.LICENSE.txt → index.2ccfc3ce.js.LICENSE.txt} +0 -0
  41. /package/static/static/js/{lib-react.88bfef40.js.LICENSE.txt → lib-react.bc3a3965.js.LICENSE.txt} +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";(self.webpackChunkplayground=self.webpackChunkplayground||[]).push([["199"],{96653:function(e,r,o){o.d(r,{v:()=>M,I:()=>U});var t=o(82378),n=o(39305),i=o(86840);function a(e,r,o){if(e)for(let t in e){let n=r[t.toLocaleLowerCase()];if(n){let r=e[t];"header"===t&&(r=r.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),o&&n.push(`//----${o}----//`),n.push(r)}else(0,i.R)(`${t} placement hook does not exist in shader`)}}let u=/\{\{(.*?)\}\}/g;function l(e){let r={};return(e.match(u)?.map(e=>e.replace(/[{()}]/g,""))??[]).forEach(e=>{r[e]=[]}),r}function s(e,r){let o,t=/@in\s+([^;]+);/g;for(;null!==(o=t.exec(e));)r.push(o[1])}function f(e,r,o=!1){let t=[];s(r,t),e.forEach(e=>{e.header&&s(e.header,t)}),o&&t.sort();let n=t.map((e,r)=>` @location(${r}) ${e},`).join("\n"),i=r.replace(/@in\s+[^;]+;\s*/g,"");return i.replace("{{in}}",`
1
+ "use strict";(self.webpackChunkplayground=self.webpackChunkplayground||[]).push([["199"],{6653:function(e,r,o){o.d(r,{v:()=>M,I:()=>U});var t=o(2378),n=o(9305),i=o(6840);function a(e,r,o){if(e)for(let t in e){let n=r[t.toLocaleLowerCase()];if(n){let r=e[t];"header"===t&&(r=r.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),o&&n.push(`//----${o}----//`),n.push(r)}else(0,i.R)(`${t} placement hook does not exist in shader`)}}let u=/\{\{(.*?)\}\}/g;function l(e){let r={};return(e.match(u)?.map(e=>e.replace(/[{()}]/g,""))??[]).forEach(e=>{r[e]=[]}),r}function s(e,r){let o,t=/@in\s+([^;]+);/g;for(;null!==(o=t.exec(e));)r.push(o[1])}function f(e,r,o=!1){let t=[];s(r,t),e.forEach(e=>{e.header&&s(e.header,t)}),o&&t.sort();let n=t.map((e,r)=>` @location(${r}) ${e},`).join("\n"),i=r.replace(/@in\s+[^;]+;\s*/g,"");return i.replace("{{in}}",`
2
2
  ${n}
3
3
  `)}function c(e,r){let o,t=/@out\s+([^;]+);/g;for(;null!==(o=t.exec(e));)r.push(o[1])}function v(e,r){let o=e;for(let e in r){let t=r[e];o=t.join("\n").length?o.replace(`{{${e}}}`,`//-----${e} START-----//
4
4
  ${t.join("\n")}
@@ -141,7 +141,7 @@ ${i}
141
141
  ${a}
142
142
  `).replace("{{return}}",`
143
143
  ${u}
144
- `),fragment:f(s,e.fragment,!0)}}(e,r);return d[o]=h(t,n,r),d[o]}({template:{fragment:b,vertex:g},bits:[T,...e]});return n.B.from({name:r,vertex:{source:o.vertex,entryPoint:"main"},fragment:{source:o.fragment,entryPoint:"main"}})}function U({bits:e,name:r}){return new t.M({name:r,...function({template:e,bits:r}){let o=p(e,r);return d[o]||(d[o]=h(e.vertex,e.fragment,r)),d[o]}({template:{vertex:C,fragment:P},bits:[$,...e]})})}},89911:function(e,r,o){o.d(r,{F:()=>t,a:()=>n});let t={name:"color-bit",vertex:{header:`
144
+ `),fragment:f(s,e.fragment,!0)}}(e,r);return d[o]=h(t,n,r),d[o]}({template:{fragment:b,vertex:g},bits:[T,...e]});return n.B.from({name:r,vertex:{source:o.vertex,entryPoint:"main"},fragment:{source:o.fragment,entryPoint:"main"}})}function U({bits:e,name:r}){return new t.M({name:r,...function({template:e,bits:r}){let o=p(e,r);return d[o]||(d[o]=h(e.vertex,e.fragment,r)),d[o]}({template:{vertex:C,fragment:P},bits:[$,...e]})})}},9911:function(e,r,o){o.d(r,{F:()=>t,a:()=>n});let t={name:"color-bit",vertex:{header:`
145
145
  @in aColor: vec4<f32>;
146
146
  `,main:`
147
147
  vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
@@ -149,7 +149,7 @@ ${u}
149
149
  in vec4 aColor;
150
150
  `,main:`
151
151
  vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
152
- `}}},52844:function(e,r,o){o.d(r,{P:()=>a,_:()=>n});let t={};function n(e){return t[e]||(t[e]={name:"texture-batch-bit",vertex:{header:`
152
+ `}}},2844:function(e,r,o){o.d(r,{P:()=>a,_:()=>n});let t={};function n(e){return t[e]||(t[e]={name:"texture-batch-bit",vertex:{header:`
153
153
  @in aTextureIdAndRound: vec2<u32>;
154
154
  @out @interpolate(flat) vTextureId : u32;
155
155
  `,main:`
@@ -187,7 +187,7 @@ ${u}
187
187
  `,main:`
188
188
 
189
189
  ${function(e){let r=[];for(let e=0;e<16;e++)e>0&&r.push("else"),e<15&&r.push(`if(vTextureId < ${e}.5)`),r.push("{"),r.push(` outColor = texture(uTextures[${e}], vUV);`),r.push("}");return r.join("\n")}(0)}
190
- `}}),i[e]}},54447:function(e,r,o){o.d(r,{Ls:()=>t,_Q:()=>n,mA:()=>i});let t={name:"local-uniform-bit",vertex:{header:`
190
+ `}}),i[e]}},4447:function(e,r,o){o.d(r,{Ls:()=>t,_Q:()=>n,mA:()=>i});let t={name:"local-uniform-bit",vertex:{header:`
191
191
 
192
192
  struct LocalUniforms {
193
193
  uTransformMatrix:mat3x3<f32>,
@@ -217,7 +217,7 @@ ${u}
217
217
  {
218
218
  gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
219
219
  }
220
- `}}},57261:function(e,r,o){o.d(r,{b:()=>t,m:()=>n});let t={name:"round-pixels-bit",vertex:{header:`
220
+ `}}},7261:function(e,r,o){o.d(r,{b:()=>t,m:()=>n});let t={name:"round-pixels-bit",vertex:{header:`
221
221
  fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>
222
222
  {
223
223
  return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
@@ -227,5 +227,5 @@ ${u}
227
227
  {
228
228
  return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
229
229
  }
230
- `}}},13372:function(e,r,o){o.d(r,{V:()=>t});function t(e,r,o){let t=(e>>24&255)/255;r[o++]=(255&e)/255*t,r[o++]=(e>>8&255)/255*t,r[o++]=(e>>16&255)/255*t,r[o++]=t}},59786:function(e,r,o){o.d(r,{K:()=>t});class t{constructor(){this.vertexSize=4,this.indexSize=6,this.location=0,this.batcher=null,this.batch=null,this.roundPixels=0}get blendMode(){return this.renderable.groupBlendMode}packAttributes(e,r,o,t){let n=this.renderable,i=this.texture,a=n.groupTransform,u=a.a,l=a.b,s=a.c,f=a.d,c=a.tx,v=a.ty,d=this.bounds,m=d.maxX,x=d.minX,p=d.maxY,h=d.minY,g=i.uvs,b=n.groupColorAlpha,C=t<<16|65535&this.roundPixels;e[o+0]=u*x+s*h+c,e[o+1]=f*h+l*x+v,e[o+2]=g.x0,e[o+3]=g.y0,r[o+4]=b,r[o+5]=C,e[o+6]=u*m+s*h+c,e[o+7]=f*h+l*m+v,e[o+8]=g.x1,e[o+9]=g.y1,r[o+10]=b,r[o+11]=C,e[o+12]=u*m+s*p+c,e[o+13]=f*p+l*m+v,e[o+14]=g.x2,e[o+15]=g.y2,r[o+16]=b,r[o+17]=C,e[o+18]=u*x+s*p+c,e[o+19]=f*p+l*x+v,e[o+20]=g.x3,e[o+21]=g.y3,r[o+22]=b,r[o+23]=C}packIndex(e,r,o){e[r]=o+0,e[r+1]=o+1,e[r+2]=o+2,e[r+3]=o+0,e[r+4]=o+2,e[r+5]=o+3}reset(){this.renderable=null,this.texture=null,this.batcher=null,this.batch=null,this.bounds=null}}}}]);
231
- //# sourceMappingURL=199.3807c13f.js.map
230
+ `}}},3372:function(e,r,o){o.d(r,{V:()=>t});function t(e,r,o){let t=(e>>24&255)/255;r[o++]=(255&e)/255*t,r[o++]=(e>>8&255)/255*t,r[o++]=(e>>16&255)/255*t,r[o++]=t}},9786:function(e,r,o){o.d(r,{K:()=>t});class t{constructor(){this.vertexSize=4,this.indexSize=6,this.location=0,this.batcher=null,this.batch=null,this.roundPixels=0}get blendMode(){return this.renderable.groupBlendMode}packAttributes(e,r,o,t){let n=this.renderable,i=this.texture,a=n.groupTransform,u=a.a,l=a.b,s=a.c,f=a.d,c=a.tx,v=a.ty,d=this.bounds,m=d.maxX,x=d.minX,p=d.maxY,h=d.minY,g=i.uvs,b=n.groupColorAlpha,C=t<<16|65535&this.roundPixels;e[o+0]=u*x+s*h+c,e[o+1]=f*h+l*x+v,e[o+2]=g.x0,e[o+3]=g.y0,r[o+4]=b,r[o+5]=C,e[o+6]=u*m+s*h+c,e[o+7]=f*h+l*m+v,e[o+8]=g.x1,e[o+9]=g.y1,r[o+10]=b,r[o+11]=C,e[o+12]=u*m+s*p+c,e[o+13]=f*p+l*m+v,e[o+14]=g.x2,e[o+15]=g.y2,r[o+16]=b,r[o+17]=C,e[o+18]=u*x+s*p+c,e[o+19]=f*p+l*x+v,e[o+20]=g.x3,e[o+21]=g.y3,r[o+22]=b,r[o+23]=C}packIndex(e,r,o){e[r]=o+0,e[r+1]=o+1,e[r+2]=o+2,e[r+3]=o+0,e[r+4]=o+2,e[r+5]=o+3}reset(){this.renderable=null,this.texture=null,this.batcher=null,this.batch=null,this.bounds=null}}}}]);
231
+ //# sourceMappingURL=199.30b3461a.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"static/js/async/199.3807c13f.js","sources":["../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/addBits.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileHooks.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileInputs.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileOutputs.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/injectBits.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/compileHighShader.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/defaultProgramTemplate.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/globalUniformsBit.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compileHighShaderToProgram.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/colorBit.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/generateTextureBatchBit.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/localUniformBit.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/roundPixelsBit.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/graphics/gpu/colorToUniform.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/sprite/BatchableSprite.mjs"],"sourcesContent":["import { warn } from '../../../../utils/logging/warn.mjs';\n\n\"use strict\";\nfunction addBits(srcParts, parts, name) {\n if (srcParts) {\n for (const i in srcParts) {\n const id = i.toLocaleLowerCase();\n const part = parts[id];\n if (part) {\n let sanitisedPart = srcParts[i];\n if (i === \"header\") {\n sanitisedPart = sanitisedPart.replace(/@in\\s+[^;]+;\\s*/g, \"\").replace(/@out\\s+[^;]+;\\s*/g, \"\");\n }\n if (name) {\n part.push(`//----${name}----//`);\n }\n part.push(sanitisedPart);\n } else {\n warn(`${i} placement hook does not exist in shader`);\n }\n }\n }\n}\n\nexport { addBits };\n//# sourceMappingURL=addBits.mjs.map\n","\"use strict\";\nconst findHooksRx = /\\{\\{(.*?)\\}\\}/g;\nfunction compileHooks(programSrc) {\n const parts = {};\n const partMatches = programSrc.match(findHooksRx)?.map((hook) => hook.replace(/[{()}]/g, \"\")) ?? [];\n partMatches.forEach((hook) => {\n parts[hook] = [];\n });\n return parts;\n}\n\nexport { compileHooks, findHooksRx };\n//# sourceMappingURL=compileHooks.mjs.map\n","\"use strict\";\nfunction extractInputs(fragmentSource, out) {\n let match;\n const regex = /@in\\s+([^;]+);/g;\n while ((match = regex.exec(fragmentSource)) !== null) {\n out.push(match[1]);\n }\n}\nfunction compileInputs(fragments, template, sort = false) {\n const results = [];\n extractInputs(template, results);\n fragments.forEach((fragment) => {\n if (fragment.header) {\n extractInputs(fragment.header, results);\n }\n });\n const mainInput = results;\n if (sort) {\n mainInput.sort();\n }\n const finalString = mainInput.map((inValue, i) => ` @location(${i}) ${inValue},`).join(\"\\n\");\n let cleanedString = template.replace(/@in\\s+[^;]+;\\s*/g, \"\");\n cleanedString = cleanedString.replace(\"{{in}}\", `\n${finalString}\n`);\n return cleanedString;\n}\n\nexport { compileInputs };\n//# sourceMappingURL=compileInputs.mjs.map\n","\"use strict\";\nfunction extractOutputs(fragmentSource, out) {\n let match;\n const regex = /@out\\s+([^;]+);/g;\n while ((match = regex.exec(fragmentSource)) !== null) {\n out.push(match[1]);\n }\n}\nfunction extractVariableName(value) {\n const regex = /\\b(\\w+)\\s*:/g;\n const match = regex.exec(value);\n return match ? match[1] : \"\";\n}\nfunction stripVariable(value) {\n const regex = /@.*?\\s+/g;\n return value.replace(regex, \"\");\n}\nfunction compileOutputs(fragments, template) {\n const results = [];\n extractOutputs(template, results);\n fragments.forEach((fragment) => {\n if (fragment.header) {\n extractOutputs(fragment.header, results);\n }\n });\n let index = 0;\n const mainStruct = results.sort().map((inValue) => {\n if (inValue.indexOf(\"builtin\") > -1) {\n return inValue;\n }\n return `@location(${index++}) ${inValue}`;\n }).join(\",\\n\");\n const mainStart = results.sort().map((inValue) => ` var ${stripVariable(inValue)};`).join(\"\\n\");\n const mainEnd = `return VSOutput(\n ${results.sort().map((inValue) => ` ${extractVariableName(inValue)}`).join(\",\\n\")});`;\n let compiledCode = template.replace(/@out\\s+[^;]+;\\s*/g, \"\");\n compiledCode = compiledCode.replace(\"{{struct}}\", `\n${mainStruct}\n`);\n compiledCode = compiledCode.replace(\"{{start}}\", `\n${mainStart}\n`);\n compiledCode = compiledCode.replace(\"{{return}}\", `\n${mainEnd}\n`);\n return compiledCode;\n}\n\nexport { compileOutputs };\n//# sourceMappingURL=compileOutputs.mjs.map\n","\"use strict\";\nfunction injectBits(templateSrc, fragmentParts) {\n let out = templateSrc;\n for (const i in fragmentParts) {\n const parts = fragmentParts[i];\n const toInject = parts.join(\"\\n\");\n if (toInject.length) {\n out = out.replace(`{{${i}}}`, `//-----${i} START-----//\n${parts.join(\"\\n\")}\n//----${i} FINISH----//`);\n } else {\n out = out.replace(`{{${i}}}`, \"\");\n }\n }\n return out;\n}\n\nexport { injectBits };\n//# sourceMappingURL=injectBits.mjs.map\n","import { addBits } from './utils/addBits.mjs';\nimport { compileHooks } from './utils/compileHooks.mjs';\nimport { compileInputs } from './utils/compileInputs.mjs';\nimport { compileOutputs } from './utils/compileOutputs.mjs';\nimport { injectBits } from './utils/injectBits.mjs';\n\n\"use strict\";\nconst cacheMap = /* @__PURE__ */ Object.create(null);\nconst bitCacheMap = /* @__PURE__ */ new Map();\nlet CACHE_UID = 0;\nfunction compileHighShader({\n template,\n bits\n}) {\n const cacheId = generateCacheId(template, bits);\n if (cacheMap[cacheId])\n return cacheMap[cacheId];\n const { vertex, fragment } = compileInputsAndOutputs(template, bits);\n cacheMap[cacheId] = compileBits(vertex, fragment, bits);\n return cacheMap[cacheId];\n}\nfunction compileHighShaderGl({\n template,\n bits\n}) {\n const cacheId = generateCacheId(template, bits);\n if (cacheMap[cacheId])\n return cacheMap[cacheId];\n cacheMap[cacheId] = compileBits(template.vertex, template.fragment, bits);\n return cacheMap[cacheId];\n}\nfunction compileInputsAndOutputs(template, bits) {\n const vertexFragments = bits.map((shaderBit) => shaderBit.vertex).filter((v) => !!v);\n const fragmentFragments = bits.map((shaderBit) => shaderBit.fragment).filter((v) => !!v);\n let compiledVertex = compileInputs(vertexFragments, template.vertex, true);\n compiledVertex = compileOutputs(vertexFragments, compiledVertex);\n const compiledFragment = compileInputs(fragmentFragments, template.fragment, true);\n return {\n vertex: compiledVertex,\n fragment: compiledFragment\n };\n}\nfunction generateCacheId(template, bits) {\n return bits.map((highFragment) => {\n if (!bitCacheMap.has(highFragment)) {\n bitCacheMap.set(highFragment, CACHE_UID++);\n }\n return bitCacheMap.get(highFragment);\n }).sort((a, b) => a - b).join(\"-\") + template.vertex + template.fragment;\n}\nfunction compileBits(vertex, fragment, bits) {\n const vertexParts = compileHooks(vertex);\n const fragmentParts = compileHooks(fragment);\n bits.forEach((shaderBit) => {\n addBits(shaderBit.vertex, vertexParts, shaderBit.name);\n addBits(shaderBit.fragment, fragmentParts, shaderBit.name);\n });\n return {\n vertex: injectBits(vertex, vertexParts),\n fragment: injectBits(fragment, fragmentParts)\n };\n}\n\nexport { compileHighShader, compileHighShaderGl };\n//# sourceMappingURL=compileHighShader.mjs.map\n","\"use strict\";\nconst vertexGPUTemplate = (\n /* wgsl */\n `\n @in aPosition: vec2<f32>;\n @in aUV: vec2<f32>;\n\n @out @builtin(position) vPosition: vec4<f32>;\n @out vUV : vec2<f32>;\n @out vColor : vec4<f32>;\n\n {{header}}\n\n struct VSOutput {\n {{struct}}\n };\n\n @vertex\n fn main( {{in}} ) -> VSOutput {\n\n var worldTransformMatrix = globalUniforms.uWorldTransformMatrix;\n var modelMatrix = mat3x3<f32>(\n 1.0, 0.0, 0.0,\n 0.0, 1.0, 0.0,\n 0.0, 0.0, 1.0\n );\n var position = aPosition;\n var uv = aUV;\n\n {{start}}\n \n vColor = vec4<f32>(1., 1., 1., 1.);\n\n {{main}}\n\n vUV = uv;\n\n var modelViewProjectionMatrix = globalUniforms.uProjectionMatrix * worldTransformMatrix * modelMatrix;\n\n vPosition = vec4<f32>((modelViewProjectionMatrix * vec3<f32>(position, 1.0)).xy, 0.0, 1.0);\n \n vColor *= globalUniforms.uWorldColorAlpha;\n\n {{end}}\n\n {{return}}\n };\n`\n);\nconst fragmentGPUTemplate = (\n /* wgsl */\n `\n @in vUV : vec2<f32>;\n @in vColor : vec4<f32>;\n \n {{header}}\n\n @fragment\n fn main(\n {{in}}\n ) -> @location(0) vec4<f32> {\n \n {{start}}\n\n var outColor:vec4<f32>;\n \n {{main}}\n \n return outColor * vColor;\n };\n`\n);\nconst vertexGlTemplate = (\n /* glsl */\n `\n in vec2 aPosition;\n in vec2 aUV;\n\n out vec4 vColor;\n out vec2 vUV;\n\n {{header}}\n\n void main(void){\n\n mat3 worldTransformMatrix = uWorldTransformMatrix;\n mat3 modelMatrix = mat3(\n 1.0, 0.0, 0.0,\n 0.0, 1.0, 0.0,\n 0.0, 0.0, 1.0\n );\n vec2 position = aPosition;\n vec2 uv = aUV;\n \n {{start}}\n \n vColor = vec4(1.);\n \n {{main}}\n \n vUV = uv;\n \n mat3 modelViewProjectionMatrix = uProjectionMatrix * worldTransformMatrix * modelMatrix;\n\n gl_Position = vec4((modelViewProjectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n\n vColor *= uWorldColorAlpha;\n\n {{end}}\n }\n`\n);\nconst fragmentGlTemplate = (\n /* glsl */\n `\n \n in vec4 vColor;\n in vec2 vUV;\n\n out vec4 finalColor;\n\n {{header}}\n\n void main(void) {\n \n {{start}}\n\n vec4 outColor;\n \n {{main}}\n \n finalColor = outColor * vColor;\n }\n`\n);\n\nexport { fragmentGPUTemplate, fragmentGlTemplate, vertexGPUTemplate, vertexGlTemplate };\n//# sourceMappingURL=defaultProgramTemplate.mjs.map\n","\"use strict\";\nconst globalUniformsBit = {\n name: \"global-uniforms-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n struct GlobalUniforms {\n uProjectionMatrix:mat3x3<f32>,\n uWorldTransformMatrix:mat3x3<f32>,\n uWorldColorAlpha: vec4<f32>,\n uResolution: vec2<f32>,\n }\n\n @group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;\n `\n )\n }\n};\nconst globalUniformsUBOBitGl = {\n name: \"global-uniforms-ubo-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n uniform globalUniforms {\n mat3 uProjectionMatrix;\n mat3 uWorldTransformMatrix;\n vec4 uWorldColorAlpha;\n vec2 uResolution;\n };\n `\n )\n }\n};\nconst globalUniformsBitGl = {\n name: \"global-uniforms-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n uniform mat3 uProjectionMatrix;\n uniform mat3 uWorldTransformMatrix;\n uniform vec4 uWorldColorAlpha;\n uniform vec2 uResolution;\n `\n )\n }\n};\n\nexport { globalUniformsBit, globalUniformsBitGl, globalUniformsUBOBitGl };\n//# sourceMappingURL=globalUniformsBit.mjs.map\n","import { GlProgram } from '../renderers/gl/shader/GlProgram.mjs';\nimport { GpuProgram } from '../renderers/gpu/shader/GpuProgram.mjs';\nimport { compileHighShader, compileHighShaderGl } from './compiler/compileHighShader.mjs';\nimport { fragmentGPUTemplate, vertexGPUTemplate, vertexGlTemplate, fragmentGlTemplate } from './defaultProgramTemplate.mjs';\nimport { globalUniformsBit, globalUniformsBitGl } from './shader-bits/globalUniformsBit.mjs';\n\n\"use strict\";\nfunction compileHighShaderGpuProgram({ bits, name }) {\n const source = compileHighShader({\n template: {\n fragment: fragmentGPUTemplate,\n vertex: vertexGPUTemplate\n },\n bits: [\n globalUniformsBit,\n ...bits\n ]\n });\n return GpuProgram.from({\n name,\n vertex: {\n source: source.vertex,\n entryPoint: \"main\"\n },\n fragment: {\n source: source.fragment,\n entryPoint: \"main\"\n }\n });\n}\nfunction compileHighShaderGlProgram({ bits, name }) {\n return new GlProgram({\n name,\n ...compileHighShaderGl({\n template: {\n vertex: vertexGlTemplate,\n fragment: fragmentGlTemplate\n },\n bits: [\n globalUniformsBitGl,\n ...bits\n ]\n })\n });\n}\n\nexport { compileHighShaderGlProgram, compileHighShaderGpuProgram };\n//# sourceMappingURL=compileHighShaderToProgram.mjs.map\n","\"use strict\";\nconst colorBit = {\n name: \"color-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n @in aColor: vec4<f32>;\n `\n ),\n main: (\n /* wgsl */\n `\n vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);\n `\n )\n }\n};\nconst colorBitGl = {\n name: \"color-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n in vec4 aColor;\n `\n ),\n main: (\n /* glsl */\n `\n vColor *= vec4(aColor.rgb * aColor.a, aColor.a);\n `\n )\n }\n};\n\nexport { colorBit, colorBitGl };\n//# sourceMappingURL=colorBit.mjs.map\n","\"use strict\";\nconst textureBatchBitGpuCache = {};\nfunction generateBindingSrc(maxTextures) {\n const src = [];\n if (maxTextures === 1) {\n src.push(\"@group(1) @binding(0) var textureSource1: texture_2d<f32>;\");\n src.push(\"@group(1) @binding(1) var textureSampler1: sampler;\");\n } else {\n let bindingIndex = 0;\n for (let i = 0; i < maxTextures; i++) {\n src.push(`@group(1) @binding(${bindingIndex++}) var textureSource${i + 1}: texture_2d<f32>;`);\n src.push(`@group(1) @binding(${bindingIndex++}) var textureSampler${i + 1}: sampler;`);\n }\n }\n return src.join(\"\\n\");\n}\nfunction generateSampleSrc(maxTextures) {\n const src = [];\n if (maxTextures === 1) {\n src.push(\"outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);\");\n } else {\n src.push(\"switch vTextureId {\");\n for (let i = 0; i < maxTextures; i++) {\n if (i === maxTextures - 1) {\n src.push(` default:{`);\n } else {\n src.push(` case ${i}:{`);\n }\n src.push(` outColor = textureSampleGrad(textureSource${i + 1}, textureSampler${i + 1}, vUV, uvDx, uvDy);`);\n src.push(` break;}`);\n }\n src.push(`}`);\n }\n return src.join(\"\\n\");\n}\nfunction generateTextureBatchBit(maxTextures) {\n if (!textureBatchBitGpuCache[maxTextures]) {\n textureBatchBitGpuCache[maxTextures] = {\n name: \"texture-batch-bit\",\n vertex: {\n header: `\n @in aTextureIdAndRound: vec2<u32>;\n @out @interpolate(flat) vTextureId : u32;\n `,\n main: `\n vTextureId = aTextureIdAndRound.y;\n `,\n end: `\n if(aTextureIdAndRound.x == 1)\n {\n vPosition = vec4<f32>(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n `\n },\n fragment: {\n header: `\n @in @interpolate(flat) vTextureId: u32;\n \n ${generateBindingSrc(16)}\n `,\n main: `\n var uvDx = dpdx(vUV);\n var uvDy = dpdy(vUV);\n \n ${generateSampleSrc(16)}\n `\n }\n };\n }\n return textureBatchBitGpuCache[maxTextures];\n}\nconst textureBatchBitGlCache = {};\nfunction generateSampleGlSrc(maxTextures) {\n const src = [];\n for (let i = 0; i < maxTextures; i++) {\n if (i > 0) {\n src.push(\"else\");\n }\n if (i < maxTextures - 1) {\n src.push(`if(vTextureId < ${i}.5)`);\n }\n src.push(\"{\");\n src.push(`\toutColor = texture(uTextures[${i}], vUV);`);\n src.push(\"}\");\n }\n return src.join(\"\\n\");\n}\nfunction generateTextureBatchBitGl(maxTextures) {\n if (!textureBatchBitGlCache[maxTextures]) {\n textureBatchBitGlCache[maxTextures] = {\n name: \"texture-batch-bit\",\n vertex: {\n header: `\n in vec2 aTextureIdAndRound;\n out float vTextureId;\n \n `,\n main: `\n vTextureId = aTextureIdAndRound.y;\n `,\n end: `\n if(aTextureIdAndRound.x == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n `\n },\n fragment: {\n header: `\n in float vTextureId;\n \n uniform sampler2D uTextures[${maxTextures}];\n \n `,\n main: `\n \n ${generateSampleGlSrc(16)}\n `\n }\n };\n }\n return textureBatchBitGlCache[maxTextures];\n}\n\nexport { generateTextureBatchBit, generateTextureBatchBitGl };\n//# sourceMappingURL=generateTextureBatchBit.mjs.map\n","\"use strict\";\nconst localUniformBit = {\n name: \"local-uniform-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n\n struct LocalUniforms {\n uTransformMatrix:mat3x3<f32>,\n uColor:vec4<f32>,\n uRound:f32,\n }\n\n @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;\n `\n ),\n main: (\n /* wgsl */\n `\n vColor *= localUniforms.uColor;\n modelMatrix *= localUniforms.uTransformMatrix;\n `\n ),\n end: (\n /* wgsl */\n `\n if(localUniforms.uRound == 1)\n {\n vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n `\n )\n }\n};\nconst localUniformBitGroup2 = {\n ...localUniformBit,\n vertex: {\n ...localUniformBit.vertex,\n // replace the group!\n header: localUniformBit.vertex.header.replace(\"group(1)\", \"group(2)\")\n }\n};\nconst localUniformBitGl = {\n name: \"local-uniform-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n\n uniform mat3 uTransformMatrix;\n uniform vec4 uColor;\n uniform float uRound;\n `\n ),\n main: (\n /* glsl */\n `\n vColor *= uColor;\n modelMatrix = uTransformMatrix;\n `\n ),\n end: (\n /* glsl */\n `\n if(uRound == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n `\n )\n }\n};\n\nexport { localUniformBit, localUniformBitGl, localUniformBitGroup2 };\n//# sourceMappingURL=localUniformBit.mjs.map\n","\"use strict\";\nconst roundPixelsBit = {\n name: \"round-pixels-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32> \n {\n return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;\n }\n `\n )\n }\n};\nconst roundPixelsBitGl = {\n name: \"round-pixels-bit\",\n vertex: {\n header: (\n /* glsl */\n ` \n vec2 roundPixels(vec2 position, vec2 targetSize)\n { \n return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;\n }\n `\n )\n }\n};\n\nexport { roundPixelsBit, roundPixelsBitGl };\n//# sourceMappingURL=roundPixelsBit.mjs.map\n","\"use strict\";\nfunction colorToUniform(rgb, alpha, out, offset) {\n out[offset++] = (rgb >> 16 & 255) / 255;\n out[offset++] = (rgb >> 8 & 255) / 255;\n out[offset++] = (rgb & 255) / 255;\n out[offset++] = alpha;\n}\nfunction color32BitToUniform(abgr, out, offset) {\n const alpha = (abgr >> 24 & 255) / 255;\n out[offset++] = (abgr & 255) / 255 * alpha;\n out[offset++] = (abgr >> 8 & 255) / 255 * alpha;\n out[offset++] = (abgr >> 16 & 255) / 255 * alpha;\n out[offset++] = alpha;\n}\n\nexport { color32BitToUniform, colorToUniform };\n//# sourceMappingURL=colorToUniform.mjs.map\n","\"use strict\";\nclass BatchableSprite {\n constructor() {\n // batch specific..\n this.vertexSize = 4;\n this.indexSize = 6;\n this.location = 0;\n // location in the buffer\n this.batcher = null;\n this.batch = null;\n this.roundPixels = 0;\n }\n get blendMode() {\n return this.renderable.groupBlendMode;\n }\n packAttributes(float32View, uint32View, index, textureId) {\n const sprite = this.renderable;\n const texture = this.texture;\n const wt = sprite.groupTransform;\n const a = wt.a;\n const b = wt.b;\n const c = wt.c;\n const d = wt.d;\n const tx = wt.tx;\n const ty = wt.ty;\n const bounds = this.bounds;\n const w0 = bounds.maxX;\n const w1 = bounds.minX;\n const h0 = bounds.maxY;\n const h1 = bounds.minY;\n const uvs = texture.uvs;\n const argb = sprite.groupColorAlpha;\n const textureIdAndRound = textureId << 16 | this.roundPixels & 65535;\n float32View[index + 0] = a * w1 + c * h1 + tx;\n float32View[index + 1] = d * h1 + b * w1 + ty;\n float32View[index + 2] = uvs.x0;\n float32View[index + 3] = uvs.y0;\n uint32View[index + 4] = argb;\n uint32View[index + 5] = textureIdAndRound;\n float32View[index + 6] = a * w0 + c * h1 + tx;\n float32View[index + 7] = d * h1 + b * w0 + ty;\n float32View[index + 8] = uvs.x1;\n float32View[index + 9] = uvs.y1;\n uint32View[index + 10] = argb;\n uint32View[index + 11] = textureIdAndRound;\n float32View[index + 12] = a * w0 + c * h0 + tx;\n float32View[index + 13] = d * h0 + b * w0 + ty;\n float32View[index + 14] = uvs.x2;\n float32View[index + 15] = uvs.y2;\n uint32View[index + 16] = argb;\n uint32View[index + 17] = textureIdAndRound;\n float32View[index + 18] = a * w1 + c * h0 + tx;\n float32View[index + 19] = d * h0 + b * w1 + ty;\n float32View[index + 20] = uvs.x3;\n float32View[index + 21] = uvs.y3;\n uint32View[index + 22] = argb;\n uint32View[index + 23] = textureIdAndRound;\n }\n packIndex(indexBuffer, index, indicesOffset) {\n indexBuffer[index] = indicesOffset + 0;\n indexBuffer[index + 1] = indicesOffset + 1;\n indexBuffer[index + 2] = indicesOffset + 2;\n indexBuffer[index + 3] = indicesOffset + 0;\n indexBuffer[index + 4] = indicesOffset + 2;\n indexBuffer[index + 5] = indicesOffset + 3;\n }\n reset() {\n this.renderable = null;\n this.texture = null;\n this.batcher = null;\n this.batch = null;\n this.bounds = null;\n }\n}\n\nexport { BatchableSprite };\n//# sourceMappingURL=BatchableSprite.mjs.map\n"],"names":["a","o","Object","Map","t","h"],"mappings":"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"}
1
+ {"version":3,"file":"static/js/async/199.30b3461a.js","sources":["../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/addBits.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileHooks.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileInputs.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileOutputs.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/injectBits.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/compileHighShader.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/defaultProgramTemplate.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/globalUniformsBit.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compileHighShaderToProgram.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/colorBit.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/generateTextureBatchBit.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/localUniformBit.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/roundPixelsBit.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/graphics/gpu/colorToUniform.mjs","../../../../../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/sprite/BatchableSprite.mjs"],"sourcesContent":["import { warn } from '../../../../utils/logging/warn.mjs';\n\n\"use strict\";\nfunction addBits(srcParts, parts, name) {\n if (srcParts) {\n for (const i in srcParts) {\n const id = i.toLocaleLowerCase();\n const part = parts[id];\n if (part) {\n let sanitisedPart = srcParts[i];\n if (i === \"header\") {\n sanitisedPart = sanitisedPart.replace(/@in\\s+[^;]+;\\s*/g, \"\").replace(/@out\\s+[^;]+;\\s*/g, \"\");\n }\n if (name) {\n part.push(`//----${name}----//`);\n }\n part.push(sanitisedPart);\n } else {\n warn(`${i} placement hook does not exist in shader`);\n }\n }\n }\n}\n\nexport { addBits };\n//# sourceMappingURL=addBits.mjs.map\n","\"use strict\";\nconst findHooksRx = /\\{\\{(.*?)\\}\\}/g;\nfunction compileHooks(programSrc) {\n const parts = {};\n const partMatches = programSrc.match(findHooksRx)?.map((hook) => hook.replace(/[{()}]/g, \"\")) ?? [];\n partMatches.forEach((hook) => {\n parts[hook] = [];\n });\n return parts;\n}\n\nexport { compileHooks, findHooksRx };\n//# sourceMappingURL=compileHooks.mjs.map\n","\"use strict\";\nfunction extractInputs(fragmentSource, out) {\n let match;\n const regex = /@in\\s+([^;]+);/g;\n while ((match = regex.exec(fragmentSource)) !== null) {\n out.push(match[1]);\n }\n}\nfunction compileInputs(fragments, template, sort = false) {\n const results = [];\n extractInputs(template, results);\n fragments.forEach((fragment) => {\n if (fragment.header) {\n extractInputs(fragment.header, results);\n }\n });\n const mainInput = results;\n if (sort) {\n mainInput.sort();\n }\n const finalString = mainInput.map((inValue, i) => ` @location(${i}) ${inValue},`).join(\"\\n\");\n let cleanedString = template.replace(/@in\\s+[^;]+;\\s*/g, \"\");\n cleanedString = cleanedString.replace(\"{{in}}\", `\n${finalString}\n`);\n return cleanedString;\n}\n\nexport { compileInputs };\n//# sourceMappingURL=compileInputs.mjs.map\n","\"use strict\";\nfunction extractOutputs(fragmentSource, out) {\n let match;\n const regex = /@out\\s+([^;]+);/g;\n while ((match = regex.exec(fragmentSource)) !== null) {\n out.push(match[1]);\n }\n}\nfunction extractVariableName(value) {\n const regex = /\\b(\\w+)\\s*:/g;\n const match = regex.exec(value);\n return match ? match[1] : \"\";\n}\nfunction stripVariable(value) {\n const regex = /@.*?\\s+/g;\n return value.replace(regex, \"\");\n}\nfunction compileOutputs(fragments, template) {\n const results = [];\n extractOutputs(template, results);\n fragments.forEach((fragment) => {\n if (fragment.header) {\n extractOutputs(fragment.header, results);\n }\n });\n let index = 0;\n const mainStruct = results.sort().map((inValue) => {\n if (inValue.indexOf(\"builtin\") > -1) {\n return inValue;\n }\n return `@location(${index++}) ${inValue}`;\n }).join(\",\\n\");\n const mainStart = results.sort().map((inValue) => ` var ${stripVariable(inValue)};`).join(\"\\n\");\n const mainEnd = `return VSOutput(\n ${results.sort().map((inValue) => ` ${extractVariableName(inValue)}`).join(\",\\n\")});`;\n let compiledCode = template.replace(/@out\\s+[^;]+;\\s*/g, \"\");\n compiledCode = compiledCode.replace(\"{{struct}}\", `\n${mainStruct}\n`);\n compiledCode = compiledCode.replace(\"{{start}}\", `\n${mainStart}\n`);\n compiledCode = compiledCode.replace(\"{{return}}\", `\n${mainEnd}\n`);\n return compiledCode;\n}\n\nexport { compileOutputs };\n//# sourceMappingURL=compileOutputs.mjs.map\n","\"use strict\";\nfunction injectBits(templateSrc, fragmentParts) {\n let out = templateSrc;\n for (const i in fragmentParts) {\n const parts = fragmentParts[i];\n const toInject = parts.join(\"\\n\");\n if (toInject.length) {\n out = out.replace(`{{${i}}}`, `//-----${i} START-----//\n${parts.join(\"\\n\")}\n//----${i} FINISH----//`);\n } else {\n out = out.replace(`{{${i}}}`, \"\");\n }\n }\n return out;\n}\n\nexport { injectBits };\n//# sourceMappingURL=injectBits.mjs.map\n","import { addBits } from './utils/addBits.mjs';\nimport { compileHooks } from './utils/compileHooks.mjs';\nimport { compileInputs } from './utils/compileInputs.mjs';\nimport { compileOutputs } from './utils/compileOutputs.mjs';\nimport { injectBits } from './utils/injectBits.mjs';\n\n\"use strict\";\nconst cacheMap = /* @__PURE__ */ Object.create(null);\nconst bitCacheMap = /* @__PURE__ */ new Map();\nlet CACHE_UID = 0;\nfunction compileHighShader({\n template,\n bits\n}) {\n const cacheId = generateCacheId(template, bits);\n if (cacheMap[cacheId])\n return cacheMap[cacheId];\n const { vertex, fragment } = compileInputsAndOutputs(template, bits);\n cacheMap[cacheId] = compileBits(vertex, fragment, bits);\n return cacheMap[cacheId];\n}\nfunction compileHighShaderGl({\n template,\n bits\n}) {\n const cacheId = generateCacheId(template, bits);\n if (cacheMap[cacheId])\n return cacheMap[cacheId];\n cacheMap[cacheId] = compileBits(template.vertex, template.fragment, bits);\n return cacheMap[cacheId];\n}\nfunction compileInputsAndOutputs(template, bits) {\n const vertexFragments = bits.map((shaderBit) => shaderBit.vertex).filter((v) => !!v);\n const fragmentFragments = bits.map((shaderBit) => shaderBit.fragment).filter((v) => !!v);\n let compiledVertex = compileInputs(vertexFragments, template.vertex, true);\n compiledVertex = compileOutputs(vertexFragments, compiledVertex);\n const compiledFragment = compileInputs(fragmentFragments, template.fragment, true);\n return {\n vertex: compiledVertex,\n fragment: compiledFragment\n };\n}\nfunction generateCacheId(template, bits) {\n return bits.map((highFragment) => {\n if (!bitCacheMap.has(highFragment)) {\n bitCacheMap.set(highFragment, CACHE_UID++);\n }\n return bitCacheMap.get(highFragment);\n }).sort((a, b) => a - b).join(\"-\") + template.vertex + template.fragment;\n}\nfunction compileBits(vertex, fragment, bits) {\n const vertexParts = compileHooks(vertex);\n const fragmentParts = compileHooks(fragment);\n bits.forEach((shaderBit) => {\n addBits(shaderBit.vertex, vertexParts, shaderBit.name);\n addBits(shaderBit.fragment, fragmentParts, shaderBit.name);\n });\n return {\n vertex: injectBits(vertex, vertexParts),\n fragment: injectBits(fragment, fragmentParts)\n };\n}\n\nexport { compileHighShader, compileHighShaderGl };\n//# sourceMappingURL=compileHighShader.mjs.map\n","\"use strict\";\nconst vertexGPUTemplate = (\n /* wgsl */\n `\n @in aPosition: vec2<f32>;\n @in aUV: vec2<f32>;\n\n @out @builtin(position) vPosition: vec4<f32>;\n @out vUV : vec2<f32>;\n @out vColor : vec4<f32>;\n\n {{header}}\n\n struct VSOutput {\n {{struct}}\n };\n\n @vertex\n fn main( {{in}} ) -> VSOutput {\n\n var worldTransformMatrix = globalUniforms.uWorldTransformMatrix;\n var modelMatrix = mat3x3<f32>(\n 1.0, 0.0, 0.0,\n 0.0, 1.0, 0.0,\n 0.0, 0.0, 1.0\n );\n var position = aPosition;\n var uv = aUV;\n\n {{start}}\n \n vColor = vec4<f32>(1., 1., 1., 1.);\n\n {{main}}\n\n vUV = uv;\n\n var modelViewProjectionMatrix = globalUniforms.uProjectionMatrix * worldTransformMatrix * modelMatrix;\n\n vPosition = vec4<f32>((modelViewProjectionMatrix * vec3<f32>(position, 1.0)).xy, 0.0, 1.0);\n \n vColor *= globalUniforms.uWorldColorAlpha;\n\n {{end}}\n\n {{return}}\n };\n`\n);\nconst fragmentGPUTemplate = (\n /* wgsl */\n `\n @in vUV : vec2<f32>;\n @in vColor : vec4<f32>;\n \n {{header}}\n\n @fragment\n fn main(\n {{in}}\n ) -> @location(0) vec4<f32> {\n \n {{start}}\n\n var outColor:vec4<f32>;\n \n {{main}}\n \n return outColor * vColor;\n };\n`\n);\nconst vertexGlTemplate = (\n /* glsl */\n `\n in vec2 aPosition;\n in vec2 aUV;\n\n out vec4 vColor;\n out vec2 vUV;\n\n {{header}}\n\n void main(void){\n\n mat3 worldTransformMatrix = uWorldTransformMatrix;\n mat3 modelMatrix = mat3(\n 1.0, 0.0, 0.0,\n 0.0, 1.0, 0.0,\n 0.0, 0.0, 1.0\n );\n vec2 position = aPosition;\n vec2 uv = aUV;\n \n {{start}}\n \n vColor = vec4(1.);\n \n {{main}}\n \n vUV = uv;\n \n mat3 modelViewProjectionMatrix = uProjectionMatrix * worldTransformMatrix * modelMatrix;\n\n gl_Position = vec4((modelViewProjectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n\n vColor *= uWorldColorAlpha;\n\n {{end}}\n }\n`\n);\nconst fragmentGlTemplate = (\n /* glsl */\n `\n \n in vec4 vColor;\n in vec2 vUV;\n\n out vec4 finalColor;\n\n {{header}}\n\n void main(void) {\n \n {{start}}\n\n vec4 outColor;\n \n {{main}}\n \n finalColor = outColor * vColor;\n }\n`\n);\n\nexport { fragmentGPUTemplate, fragmentGlTemplate, vertexGPUTemplate, vertexGlTemplate };\n//# sourceMappingURL=defaultProgramTemplate.mjs.map\n","\"use strict\";\nconst globalUniformsBit = {\n name: \"global-uniforms-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n struct GlobalUniforms {\n uProjectionMatrix:mat3x3<f32>,\n uWorldTransformMatrix:mat3x3<f32>,\n uWorldColorAlpha: vec4<f32>,\n uResolution: vec2<f32>,\n }\n\n @group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;\n `\n )\n }\n};\nconst globalUniformsUBOBitGl = {\n name: \"global-uniforms-ubo-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n uniform globalUniforms {\n mat3 uProjectionMatrix;\n mat3 uWorldTransformMatrix;\n vec4 uWorldColorAlpha;\n vec2 uResolution;\n };\n `\n )\n }\n};\nconst globalUniformsBitGl = {\n name: \"global-uniforms-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n uniform mat3 uProjectionMatrix;\n uniform mat3 uWorldTransformMatrix;\n uniform vec4 uWorldColorAlpha;\n uniform vec2 uResolution;\n `\n )\n }\n};\n\nexport { globalUniformsBit, globalUniformsBitGl, globalUniformsUBOBitGl };\n//# sourceMappingURL=globalUniformsBit.mjs.map\n","import { GlProgram } from '../renderers/gl/shader/GlProgram.mjs';\nimport { GpuProgram } from '../renderers/gpu/shader/GpuProgram.mjs';\nimport { compileHighShader, compileHighShaderGl } from './compiler/compileHighShader.mjs';\nimport { fragmentGPUTemplate, vertexGPUTemplate, vertexGlTemplate, fragmentGlTemplate } from './defaultProgramTemplate.mjs';\nimport { globalUniformsBit, globalUniformsBitGl } from './shader-bits/globalUniformsBit.mjs';\n\n\"use strict\";\nfunction compileHighShaderGpuProgram({ bits, name }) {\n const source = compileHighShader({\n template: {\n fragment: fragmentGPUTemplate,\n vertex: vertexGPUTemplate\n },\n bits: [\n globalUniformsBit,\n ...bits\n ]\n });\n return GpuProgram.from({\n name,\n vertex: {\n source: source.vertex,\n entryPoint: \"main\"\n },\n fragment: {\n source: source.fragment,\n entryPoint: \"main\"\n }\n });\n}\nfunction compileHighShaderGlProgram({ bits, name }) {\n return new GlProgram({\n name,\n ...compileHighShaderGl({\n template: {\n vertex: vertexGlTemplate,\n fragment: fragmentGlTemplate\n },\n bits: [\n globalUniformsBitGl,\n ...bits\n ]\n })\n });\n}\n\nexport { compileHighShaderGlProgram, compileHighShaderGpuProgram };\n//# sourceMappingURL=compileHighShaderToProgram.mjs.map\n","\"use strict\";\nconst colorBit = {\n name: \"color-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n @in aColor: vec4<f32>;\n `\n ),\n main: (\n /* wgsl */\n `\n vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);\n `\n )\n }\n};\nconst colorBitGl = {\n name: \"color-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n in vec4 aColor;\n `\n ),\n main: (\n /* glsl */\n `\n vColor *= vec4(aColor.rgb * aColor.a, aColor.a);\n `\n )\n }\n};\n\nexport { colorBit, colorBitGl };\n//# sourceMappingURL=colorBit.mjs.map\n","\"use strict\";\nconst textureBatchBitGpuCache = {};\nfunction generateBindingSrc(maxTextures) {\n const src = [];\n if (maxTextures === 1) {\n src.push(\"@group(1) @binding(0) var textureSource1: texture_2d<f32>;\");\n src.push(\"@group(1) @binding(1) var textureSampler1: sampler;\");\n } else {\n let bindingIndex = 0;\n for (let i = 0; i < maxTextures; i++) {\n src.push(`@group(1) @binding(${bindingIndex++}) var textureSource${i + 1}: texture_2d<f32>;`);\n src.push(`@group(1) @binding(${bindingIndex++}) var textureSampler${i + 1}: sampler;`);\n }\n }\n return src.join(\"\\n\");\n}\nfunction generateSampleSrc(maxTextures) {\n const src = [];\n if (maxTextures === 1) {\n src.push(\"outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);\");\n } else {\n src.push(\"switch vTextureId {\");\n for (let i = 0; i < maxTextures; i++) {\n if (i === maxTextures - 1) {\n src.push(` default:{`);\n } else {\n src.push(` case ${i}:{`);\n }\n src.push(` outColor = textureSampleGrad(textureSource${i + 1}, textureSampler${i + 1}, vUV, uvDx, uvDy);`);\n src.push(` break;}`);\n }\n src.push(`}`);\n }\n return src.join(\"\\n\");\n}\nfunction generateTextureBatchBit(maxTextures) {\n if (!textureBatchBitGpuCache[maxTextures]) {\n textureBatchBitGpuCache[maxTextures] = {\n name: \"texture-batch-bit\",\n vertex: {\n header: `\n @in aTextureIdAndRound: vec2<u32>;\n @out @interpolate(flat) vTextureId : u32;\n `,\n main: `\n vTextureId = aTextureIdAndRound.y;\n `,\n end: `\n if(aTextureIdAndRound.x == 1)\n {\n vPosition = vec4<f32>(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n `\n },\n fragment: {\n header: `\n @in @interpolate(flat) vTextureId: u32;\n \n ${generateBindingSrc(16)}\n `,\n main: `\n var uvDx = dpdx(vUV);\n var uvDy = dpdy(vUV);\n \n ${generateSampleSrc(16)}\n `\n }\n };\n }\n return textureBatchBitGpuCache[maxTextures];\n}\nconst textureBatchBitGlCache = {};\nfunction generateSampleGlSrc(maxTextures) {\n const src = [];\n for (let i = 0; i < maxTextures; i++) {\n if (i > 0) {\n src.push(\"else\");\n }\n if (i < maxTextures - 1) {\n src.push(`if(vTextureId < ${i}.5)`);\n }\n src.push(\"{\");\n src.push(`\toutColor = texture(uTextures[${i}], vUV);`);\n src.push(\"}\");\n }\n return src.join(\"\\n\");\n}\nfunction generateTextureBatchBitGl(maxTextures) {\n if (!textureBatchBitGlCache[maxTextures]) {\n textureBatchBitGlCache[maxTextures] = {\n name: \"texture-batch-bit\",\n vertex: {\n header: `\n in vec2 aTextureIdAndRound;\n out float vTextureId;\n \n `,\n main: `\n vTextureId = aTextureIdAndRound.y;\n `,\n end: `\n if(aTextureIdAndRound.x == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n `\n },\n fragment: {\n header: `\n in float vTextureId;\n \n uniform sampler2D uTextures[${maxTextures}];\n \n `,\n main: `\n \n ${generateSampleGlSrc(16)}\n `\n }\n };\n }\n return textureBatchBitGlCache[maxTextures];\n}\n\nexport { generateTextureBatchBit, generateTextureBatchBitGl };\n//# sourceMappingURL=generateTextureBatchBit.mjs.map\n","\"use strict\";\nconst localUniformBit = {\n name: \"local-uniform-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n\n struct LocalUniforms {\n uTransformMatrix:mat3x3<f32>,\n uColor:vec4<f32>,\n uRound:f32,\n }\n\n @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;\n `\n ),\n main: (\n /* wgsl */\n `\n vColor *= localUniforms.uColor;\n modelMatrix *= localUniforms.uTransformMatrix;\n `\n ),\n end: (\n /* wgsl */\n `\n if(localUniforms.uRound == 1)\n {\n vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n `\n )\n }\n};\nconst localUniformBitGroup2 = {\n ...localUniformBit,\n vertex: {\n ...localUniformBit.vertex,\n // replace the group!\n header: localUniformBit.vertex.header.replace(\"group(1)\", \"group(2)\")\n }\n};\nconst localUniformBitGl = {\n name: \"local-uniform-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n\n uniform mat3 uTransformMatrix;\n uniform vec4 uColor;\n uniform float uRound;\n `\n ),\n main: (\n /* glsl */\n `\n vColor *= uColor;\n modelMatrix = uTransformMatrix;\n `\n ),\n end: (\n /* glsl */\n `\n if(uRound == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n `\n )\n }\n};\n\nexport { localUniformBit, localUniformBitGl, localUniformBitGroup2 };\n//# sourceMappingURL=localUniformBit.mjs.map\n","\"use strict\";\nconst roundPixelsBit = {\n name: \"round-pixels-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32> \n {\n return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;\n }\n `\n )\n }\n};\nconst roundPixelsBitGl = {\n name: \"round-pixels-bit\",\n vertex: {\n header: (\n /* glsl */\n ` \n vec2 roundPixels(vec2 position, vec2 targetSize)\n { \n return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;\n }\n `\n )\n }\n};\n\nexport { roundPixelsBit, roundPixelsBitGl };\n//# sourceMappingURL=roundPixelsBit.mjs.map\n","\"use strict\";\nfunction colorToUniform(rgb, alpha, out, offset) {\n out[offset++] = (rgb >> 16 & 255) / 255;\n out[offset++] = (rgb >> 8 & 255) / 255;\n out[offset++] = (rgb & 255) / 255;\n out[offset++] = alpha;\n}\nfunction color32BitToUniform(abgr, out, offset) {\n const alpha = (abgr >> 24 & 255) / 255;\n out[offset++] = (abgr & 255) / 255 * alpha;\n out[offset++] = (abgr >> 8 & 255) / 255 * alpha;\n out[offset++] = (abgr >> 16 & 255) / 255 * alpha;\n out[offset++] = alpha;\n}\n\nexport { color32BitToUniform, colorToUniform };\n//# sourceMappingURL=colorToUniform.mjs.map\n","\"use strict\";\nclass BatchableSprite {\n constructor() {\n // batch specific..\n this.vertexSize = 4;\n this.indexSize = 6;\n this.location = 0;\n // location in the buffer\n this.batcher = null;\n this.batch = null;\n this.roundPixels = 0;\n }\n get blendMode() {\n return this.renderable.groupBlendMode;\n }\n packAttributes(float32View, uint32View, index, textureId) {\n const sprite = this.renderable;\n const texture = this.texture;\n const wt = sprite.groupTransform;\n const a = wt.a;\n const b = wt.b;\n const c = wt.c;\n const d = wt.d;\n const tx = wt.tx;\n const ty = wt.ty;\n const bounds = this.bounds;\n const w0 = bounds.maxX;\n const w1 = bounds.minX;\n const h0 = bounds.maxY;\n const h1 = bounds.minY;\n const uvs = texture.uvs;\n const argb = sprite.groupColorAlpha;\n const textureIdAndRound = textureId << 16 | this.roundPixels & 65535;\n float32View[index + 0] = a * w1 + c * h1 + tx;\n float32View[index + 1] = d * h1 + b * w1 + ty;\n float32View[index + 2] = uvs.x0;\n float32View[index + 3] = uvs.y0;\n uint32View[index + 4] = argb;\n uint32View[index + 5] = textureIdAndRound;\n float32View[index + 6] = a * w0 + c * h1 + tx;\n float32View[index + 7] = d * h1 + b * w0 + ty;\n float32View[index + 8] = uvs.x1;\n float32View[index + 9] = uvs.y1;\n uint32View[index + 10] = argb;\n uint32View[index + 11] = textureIdAndRound;\n float32View[index + 12] = a * w0 + c * h0 + tx;\n float32View[index + 13] = d * h0 + b * w0 + ty;\n float32View[index + 14] = uvs.x2;\n float32View[index + 15] = uvs.y2;\n uint32View[index + 16] = argb;\n uint32View[index + 17] = textureIdAndRound;\n float32View[index + 18] = a * w1 + c * h0 + tx;\n float32View[index + 19] = d * h0 + b * w1 + ty;\n float32View[index + 20] = uvs.x3;\n float32View[index + 21] = uvs.y3;\n uint32View[index + 22] = argb;\n uint32View[index + 23] = textureIdAndRound;\n }\n packIndex(indexBuffer, index, indicesOffset) {\n indexBuffer[index] = indicesOffset + 0;\n indexBuffer[index + 1] = indicesOffset + 1;\n indexBuffer[index + 2] = indicesOffset + 2;\n indexBuffer[index + 3] = indicesOffset + 0;\n indexBuffer[index + 4] = indicesOffset + 2;\n indexBuffer[index + 5] = indicesOffset + 3;\n }\n reset() {\n this.renderable = null;\n this.texture = null;\n this.batcher = null;\n this.batch = null;\n this.bounds = null;\n }\n}\n\nexport { BatchableSprite };\n//# sourceMappingURL=BatchableSprite.mjs.map\n"],"names":["a","o","Object","Map","t","h"],"mappings":"0KAGA,SAASA,EAAQ,CAAQ,CAAE,CAAK,CAAE,CAAI,EACpC,GAAI,EACF,IAAK,IAAM,KAAK,EAAU,CAExB,IAAM,EAAO,CAAK,CADP,EAAE,iBAAiB,GACR,CACtB,GAAI,EAAM,CACR,IAAI,EAAgB,CAAQ,CAAC,EAAE,AAC3B,AAAM,YAAN,GACF,GAAgB,EAAc,OAAO,CAAC,mBAAoB,IAAI,OAAO,CAAC,oBAAqB,GAAE,EAE3F,GACF,EAAK,IAAI,CAAC,CAAC,MAAM,EAAE,EAAK,MAAM,CAAC,EAEjC,EAAK,IAAI,CAAC,EACZ,KACE,QAAK,CAAC,EAAE,EAAE,wCAAwC,CAAC,CAEvD,CAEJ,CCrBA,IAAM,EAAc,iBACpB,SAAS,EAAa,CAAU,EAC9B,IAAM,EAAQ,CAAC,EAKf,MAHA,AADoB,GAAW,KAAK,CAAC,IAAc,IAAI,AAAC,GAAS,EAAK,OAAO,CAAC,UAAW,MAAQ,EAAE,AAAD,EACtF,OAAO,CAAC,AAAC,IACnB,CAAK,CAAC,EAAK,CAAG,EAAE,AAClB,GACO,CACT,CCRA,SAAS,EAAc,CAAc,CAAE,CAAG,EAExC,IADI,EACE,EAAQ,kBACd,KAAO,AAAyC,OAAxC,GAAQ,EAAM,IAAI,CAAC,EAAc,GACvC,EAAI,IAAI,CAAC,CAAK,CAAC,EAAE,CAErB,CACA,SAAS,EAAc,CAAS,CAAE,CAAQ,CAAE,EAAO,EAAK,EACtD,IAAM,EAAU,EAAE,CAClB,EAAc,EAAU,GACxB,EAAU,OAAO,CAAC,AAAC,IACb,EAAS,MAAM,EACjB,EAAc,EAAS,MAAM,CAAE,EAEnC,GAEI,GACF,AAFgB,EAEN,IAAI,GAEhB,IAAM,EAAc,AAJF,EAIY,GAAG,CAAC,CAAC,EAAS,IAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MACzF,EAAgB,EAAS,OAAO,CAAC,mBAAoB,IAIzD,OAHgB,EAAc,OAAO,CAAC,SAAU;AAClD,EAAE;AACF,CAAC,CAED,CCzBA,SAAS,EAAe,CAAc,CAAE,CAAG,EAEzC,IADI,EACE,EAAQ,mBACd,KAAO,AAAyC,OAAxC,GAAQ,EAAM,IAAI,CAAC,EAAc,GACvC,EAAI,IAAI,CAAC,CAAK,CAAC,EAAE,CAErB,CCNA,SAAS,EAAW,CAAW,CAAE,CAAa,EAC5C,IAAIC,EAAM,EACV,IAAK,IAAM,KAAK,EAAe,CAC7B,IAAM,EAAQ,CAAa,CAAC,EAAE,CAG5BA,EADE,AADa,EAAM,IAAI,CAAC,MACf,MAAM,CACXA,EAAI,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,OAAO,EAAE,EAAE;AAChD,EAAE,EAAM,IAAI,CAAC;AACb,MAAM,EAAE,EAAE,aAAa,CAAC,EAEZA,EAAI,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAE,GAElC,CACA,OAAOA,CACT,CCRA,IAAM,EAA2BC,OAAO,MAAM,CAAC,MACzC,EAA8B,IAAIC,IACpC,EAAY,EAiChB,SAAS,EAAgB,CAAQ,CAAE,CAAI,EACrC,OAAO,EAAK,GAAG,CAAC,AAAC,IACX,AAAC,EAAY,GAAG,CAAC,IACnB,EAAY,GAAG,CAAC,EAAc,KAEzB,EAAY,GAAG,CAAC,KACtB,IAAI,CAAC,CAAC,EAAG,IAAM,EAAI,GAAG,IAAI,CAAC,KAAO,EAAS,MAAM,CAAG,EAAS,QAAQ,AAC1E,CACA,SAAS,EAAY,CAAM,CAAE,CAAQ,CAAE,CAAI,EACzC,IAAM,EAAc,EAAa,GAC3B,EAAgB,EAAa,GAKnC,OAJA,EAAK,OAAO,CAAC,AAAC,IACZH,EAAQ,EAAU,MAAM,CAAE,EAAa,EAAU,IAAI,EACrDA,EAAQ,EAAU,QAAQ,CAAE,EAAe,EAAU,IAAI,CAC3D,GACO,CACL,OAAQ,EAAW,EAAQ,GAC3B,SAAU,EAAW,EAAU,EACjC,CACF,CC5DA,IAAM,EAEJ;AACF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC,CAEK,EAEJ;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAEK,EAEJ;AACF;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,CAAC,CAEK,EAEJ;AACF;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CCpIK,EAAoB,CACxB,KAAM,sBACN,OAAQ,CACN,OAEE;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,CAAC,AAEP,CACF,EAiBM,EAAsB,CAC1B,KAAM,sBACN,OAAQ,CACN,OAEE;AACN;AACA;AACA;AACA;AACA,QAAQ,CAAC,AAEP,CACF,ECzCA,SAAS,EAA4B,CAAE,MAAI,CAAE,MAAI,CAAE,EACjD,IAAM,EAAS,AHEjB,SAA2B,CACzB,UAAQ,CACR,MAAI,CACL,EACC,IAAM,EAAU,EAAgB,EAAU,GAC1C,GAAI,CAAQ,CAAC,EAAQ,CACnB,OAAO,CAAQ,CAAC,EAAQ,CAC1B,GAAM,CAAE,QAAM,CAAE,UAAQ,CAAE,CAAG,AAc/B,SAAiC,CAAQ,CAAE,CAAI,MFdZ,EEejC,IFdM,EAOF,EACE,EAMA,EACA,EEDA,EAAkB,EAAK,GAAG,CAAC,AAAC,GAAc,EAAU,MAAM,EAAE,MAAM,CAAC,AAAC,GAAM,CAAC,CAAC,GAC5E,EAAoB,EAAK,GAAG,CAAC,AAAC,GAAc,EAAU,QAAQ,EAAE,MAAM,CAAC,AAAC,GAAM,CAAC,CAAC,GAClF,EAAiB,EAAc,EAAiB,EAAS,MAAM,CAAE,IAGrE,OFnBM,EAAU,EAAE,CAClB,EAFiC,EEkBgB,EFhBxB,GACzB,AEegC,EFftB,OAAO,CAAC,AAAC,IACb,EAAS,MAAM,EACjB,EAAe,EAAS,MAAM,CAAE,EAEpC,GACI,EAAQ,EACN,EAAa,EAAQ,IAAI,GAAG,GAAG,CAAC,AAAC,GACrC,AAAI,EAAQ,OAAO,CAAC,WAAa,GACxB,EAEF,CAAC,UAAU,EAAE,IAAQ,EAAE,EAAE,EAAQ,CAAC,EACxC,IAAI,CAAC,OACF,EAAY,EAAQ,IAAI,GAAG,GAAG,CAAC,AAAC,GAAY,CAAC,WAAW,EAjBvD,AAiBuE,EAjBjE,OAAO,CADN,WACc,IAiB2D,CAAC,CAAC,EAAE,IAAI,CAAC,MAC1F,EAAU,CAAC;AACnB,gBAAgB,EAAE,EAAQ,IAAI,GAAG,GAAG,CAAC,AAAC,QAxB9B,QAwB0C,CAAC,CAAC,EAvB3C,CADD,EAAQ,AADA,eACM,IAAI,CAwBgD,IAvBzD,CAAK,CAAC,EAAE,CAAG,GAuBuD,CAAC,GAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CEG5F,CACL,OAHF,EFOe,AAHA,AAHA,AADI,EAAS,OAAO,CAAC,oBAAqB,IAC7B,OAAO,CAAC,aAAc;AACpD,EAAE;AACF,CAAC,EAC6B,OAAO,CAAC,YAAa;AACnD,EAAE;AACF,CAAC,EAC6B,OAAO,CAAC,aAAc;AACpD,EAAE;AACF,CAAC,EELG,SAHuB,EAAc,EAAmB,EAAS,QAAQ,CAAE,GAI7E,CACF,EAxBuD,EAAU,GAE/D,OADA,CAAQ,CAAC,EAAQ,CAAG,EAAY,EAAQ,EAAU,GAC3C,CAAQ,CAAC,EAAQ,AAC1B,EGZmC,CAC/B,SAAU,CACR,SAAU,EACV,OAAQ,CACV,EACA,KAAM,CACJ,KACG,EACJ,AACH,GACA,OAAO,QAAe,CAAC,CACrB,OACA,OAAQ,CACN,OAAQ,EAAO,MAAM,CACrB,WAAY,MACd,EACA,SAAU,CACR,OAAQ,EAAO,QAAQ,CACvB,WAAY,MACd,CACF,EACF,CACA,SAAS,EAA2B,CAAE,MAAI,CAAE,MAAI,CAAE,EAChD,OAAO,IAAI,GAAS,CAAC,CACnB,OACA,GAAG,AHZP,SAA6B,CAC3B,UAAQ,CACR,MAAI,CACL,EACC,IAAM,EAAU,EAAgB,EAAU,UACtC,CAAQ,CAAC,EAAQ,EAErB,EAAQ,CAAC,EAAQ,CAAG,EAAY,EAAS,MAAM,CAAE,EAAS,QAAQ,CAAE,EAAI,EAD/D,CAAQ,CAAC,EAAQ,AAG5B,EGG2B,CACrB,SAAU,CACR,OAAQ,EACR,SAAU,CACZ,EACA,KAAM,CACJ,KACG,EACJ,AACH,EAAE,AACJ,EACF,C,gDC3CA,IAAM,EAAW,CACf,KAAM,YACN,OAAQ,CACN,OAEE;AACN;AACA,QAAQ,CAAC,CAEL,KAEE;AACN;AACA,QAAQ,CAAC,AAEP,CACF,EACM,EAAa,CACjB,KAAM,YACN,OAAQ,CACN,OAEE;AACN;AACA,QAAQ,CAAC,CAEL,KAEE;AACN;AACA,QAAQ,CAAC,AAEP,CACF,C,gDCjCA,IAAMI,EAA0B,CAAC,EAkCjC,SAAS,EAAwB,CAAW,EAkC1C,OAjCI,AAACA,CAAuB,CAAC,EAAY,EACvCA,CAAAA,CAAuB,CAAC,EAAY,CAAG,CACrC,KAAM,oBACN,OAAQ,CACN,OAAQ;AAChB;AACA;AACA,YAAY,CAAC,CACL,KAAM;AACd;AACA,YAAY,CAAC,CACL,IAAK;AACb;AACA;AACA;AACA;AACA,YAAY,CAAC,AACP,EACA,SAAU,CACR,OAAQ;AAChB;AACA;AACA,gBAAgB,EAAE,AAxDlB,SAA4B,CAAW,EACrC,IAAM,EAAM,EAAE,AAIP,EACL,IAAI,EAAe,EACnB,IAAK,IAAI,EAAI,EAAG,EAiDiB,GAjDA,IAC/B,EAAI,IAAI,CAAC,CAAC,mBAAmB,EAAE,IAAe,mBAAmB,EAAE,EAAI,EAAE,kBAAkB,CAAC,EAC5F,EAAI,IAAI,CAAC,CAAC,mBAAmB,EAAE,IAAe,oBAAoB,EAAE,EAAI,EAAE,UAAU,CAAC,CAEzF,CACA,OAAO,EAAI,IAAI,CAAC,KAClB,EA2CqC;AACrC,YAAY,CAAC,CACL,KAAM;AACd;AACA;AACA;AACA,gBAAgB,EAAE,AAhDlB,SAA2B,CAAW,EACpC,IAAM,EAAM,EAAE,CAIZ,EAAI,IAAI,CAAC,uBACT,IAAK,IAAI,EAAI,EAAG,EA0CgB,GA1CC,IAC3B,AAAM,KAAN,EACF,EAAI,IAAI,CAAC,eAET,EAAI,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,EAE1B,EAAI,IAAI,CAAC,CAAC,gDAAgD,EAAE,EAAI,EAAE,gBAAgB,EAAE,EAAI,EAAE,mBAAmB,CAAC,EAC9G,EAAI,IAAI,CAAC,iBAIb,OAFE,EAAI,IAAI,CAAC,KAEJ,EAAI,IAAI,CAAC,KAClB,EA8BoC;AACpC,YAAY,CAAC,AACP,CACF,GAEKA,CAAuB,CAAC,EAAY,AAC7C,CACA,IAAM,EAAyB,CAAC,EAgBhC,SAAS,EAA0B,CAAW,EAkC5C,OAjCI,AAAC,CAAsB,CAAC,EAAY,EACtC,EAAsB,CAAC,EAAY,CAAG,CACpC,KAAM,oBACN,OAAQ,CACN,OAAQ;AAChB;AACA;AACA;AACA,YAAY,CAAC,CACL,KAAM;AACd;AACA,YAAY,CAAC,CACL,IAAK;AACb;AACA;AACA;AACA;AACA,YAAY,CAAC,AACP,EACA,SAAU,CACR,OAAQ;AAChB;AACA;AACA,4CAA4C,EAAE,EAAY;AAC1D;AACA,YAAY,CAAC,CACL,KAAM;AACd;AACA,gBAAgB,EAAE,AA5ClB,SAA6B,CAAW,EACtC,IAAM,EAAM,EAAE,CACd,IAAK,IAAI,EAAI,EAAG,EA0CoB,GA1CH,IAC3B,EAAI,GACN,EAAI,IAAI,CAAC,QAEP,EAAI,IACN,EAAI,IAAI,CAAC,CAAC,gBAAgB,EAAE,EAAE,GAAG,CAAC,EAEpC,EAAI,IAAI,CAAC,KACT,EAAI,IAAI,CAAC,CAAC,8BAA8B,EAAE,EAAE,QAAQ,CAAC,EACrD,EAAI,IAAI,CAAC,KAEX,OAAO,EAAI,IAAI,CAAC,KAClB,EA8BsC;AACtC,YAAY,CAAC,AACP,CACF,GAEK,CAAsB,CAAC,EAAY,AAC5C,C,2DCzHA,IAAM,EAAkB,CACtB,KAAM,oBACN,OAAQ,CACN,OAEE;;AAEN;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,CAAC,CAEL,KAEE;AACN;AACA;AACA,QAAQ,CAAC,CAEL,IAEE;AACN;AACA;AACA;AACA;AACA,QAAQ,CAAC,AAEP,CACF,EACM,EAAwB,CAC5B,GAAG,CAAe,CAClB,OAAQ,CACN,GAAG,EAAgB,MAAM,CAEzB,OAAQ,EAAgB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAY,WAC5D,CACF,EACM,EAAoB,CACxB,KAAM,oBACN,OAAQ,CACN,OAEE;;AAEN;AACA;AACA;AACA,QAAQ,CAAC,CAEL,KAEE;AACN;AACA;AACA,QAAQ,CAAC,CAEL,IAEE;AACN;AACA;AACA;AACA;AACA,QAAQ,CAAC,AAEP,CACF,C,gDCvEA,IAAM,EAAiB,CACrB,KAAM,mBACN,OAAQ,CACN,OAEE;AACN;AACA;AACA;AACA;AACA,QAAQ,CAAC,AAEP,CACF,EACM,EAAmB,CACvB,KAAM,mBACN,OAAQ,CACN,OAEE,CAAC;AACP;AACA;AACA;AACA;AACA,QAAQ,CAAC,AAEP,CACF,C,wCCrBA,SAAS,EAAoB,CAAI,CAAE,CAAG,CAAEH,CAAM,EAC5C,IAAM,EAAQ,AAAC,IAAQ,GAAK,GAAE,EAAK,GACnC,EAAG,CAACA,IAAS,CAAG,AAAC,CAAO,IAAP,CAAS,EAAK,IAAM,EACrC,CAAG,CAACA,IAAS,CAAG,AAAC,IAAQ,EAAI,GAAE,EAAK,IAAM,EAC1C,CAAG,CAACA,IAAS,CAAG,AAAC,IAAQ,GAAK,GAAE,EAAK,IAAM,EAC3C,CAAG,CAACA,IAAS,CAAG,CAClB,C,uCCZA,OAAM,EACJ,aAAc,CAEZ,IAAI,CAAC,UAAU,CAAG,EAClB,IAAI,CAAC,SAAS,CAAG,EACjB,IAAI,CAAC,QAAQ,CAAG,EAEhB,IAAI,CAAC,OAAO,CAAG,KACf,IAAI,CAAC,KAAK,CAAG,KACb,IAAI,CAAC,WAAW,CAAG,CACrB,CACA,IAAI,WAAY,CACd,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,AACvC,CACA,eAAe,CAAW,CAAE,CAAU,CAAE,CAAK,CAAEG,CAAS,CAAE,CACxD,IAAM,EAAS,IAAI,CAAC,UAAU,CACxB,EAAU,IAAI,CAAC,OAAO,CACtB,EAAK,EAAO,cAAc,CAC1B,EAAI,EAAG,CAAC,CACR,EAAI,EAAG,CAAC,CACR,EAAI,EAAG,CAAC,CACR,EAAI,EAAG,CAAC,CACR,EAAK,EAAG,EAAE,CACV,EAAK,EAAG,EAAE,CACV,EAAS,IAAI,CAAC,MAAM,CACpB,EAAK,EAAO,IAAI,CAChB,EAAK,EAAO,IAAI,CAChB,EAAK,EAAO,IAAI,CAChBC,EAAK,EAAO,IAAI,CAChB,EAAM,EAAQ,GAAG,CACjB,EAAO,EAAO,eAAe,CAC7B,EAAoBD,GAAa,GAAK,AAAmB,MAAnB,IAAI,CAAC,WAAW,AAC5D,EAAW,CAAC,EAAQ,EAAE,CAAG,EAAI,EAAK,EAAIC,EAAK,EAC3C,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAIA,EAAK,EAAI,EAAK,EAC3C,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAI,EAAE,CAC/B,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAI,EAAE,CAC/B,CAAU,CAAC,EAAQ,EAAE,CAAG,EACxB,CAAU,CAAC,EAAQ,EAAE,CAAG,EACxB,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAI,EAAK,EAAIA,EAAK,EAC3C,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAIA,EAAK,EAAI,EAAK,EAC3C,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAI,EAAE,CAC/B,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAI,EAAE,CAC/B,CAAU,CAAC,EAAQ,GAAG,CAAG,EACzB,CAAU,CAAC,EAAQ,GAAG,CAAG,EACzB,CAAW,CAAC,EAAQ,GAAG,CAAG,EAAI,EAAK,EAAI,EAAK,EAC5C,CAAW,CAAC,EAAQ,GAAG,CAAG,EAAI,EAAK,EAAI,EAAK,EAC5C,CAAW,CAAC,EAAQ,GAAG,CAAG,EAAI,EAAE,CAChC,CAAW,CAAC,EAAQ,GAAG,CAAG,EAAI,EAAE,CAChC,CAAU,CAAC,EAAQ,GAAG,CAAG,EACzB,CAAU,CAAC,EAAQ,GAAG,CAAG,EACzB,CAAW,CAAC,EAAQ,GAAG,CAAG,EAAI,EAAK,EAAI,EAAK,EAC5C,CAAW,CAAC,EAAQ,GAAG,CAAG,EAAI,EAAK,EAAI,EAAK,EAC5C,CAAW,CAAC,EAAQ,GAAG,CAAG,EAAI,EAAE,CAChC,CAAW,CAAC,EAAQ,GAAG,CAAG,EAAI,EAAE,CAChC,CAAU,CAAC,EAAQ,GAAG,CAAG,EACzB,CAAU,CAAC,EAAQ,GAAG,CAAG,CAC3B,CACA,UAAU,CAAW,CAAE,CAAK,CAAE,CAAa,CAAE,CAC3C,CAAW,CAAC,EAAM,CAAG,EAAgB,EACrC,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAgB,EACzC,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAgB,EACzC,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAgB,EACzC,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAgB,EACzC,CAAW,CAAC,EAAQ,EAAE,CAAG,EAAgB,CAC3C,CACA,OAAQ,CACN,IAAI,CAAC,UAAU,CAAG,KAClB,IAAI,CAAC,OAAO,CAAG,KACf,IAAI,CAAC,OAAO,CAAG,KACf,IAAI,CAAC,KAAK,CAAG,KACb,IAAI,CAAC,MAAM,CAAG,IAChB,CACF,C"}
@@ -0,0 +1,21 @@
1
+ "use strict";(self.webpackChunkplayground=self.webpackChunkplayground||[]).push([["221"],{2948:function(e,t,r){r.d(t,{WebGLRenderer:()=>eB});var s,i,n,a,o=r(3071),_=r(6253),l=r(6653),u=r(9911),h=r(2844),c=r(4447),d=r(7261),E=r(7728),g=r(8023),f=r(8625);class R{init(){let e=new f.k({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new _.u,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),t=(0,l.I)({name:"graphics",bits:[u.a,(0,h.P)(16),c.mA,d.m]});this.shader=new g.M({glProgram:t,resources:{localUniforms:e,batchSamplers:E.v}})}execute(e,t){let r=t.context,s=r.customShader||this.shader,i=e.renderer,{geometry:n,instructions:a}=i.graphicsContext.getContextRenderData(r);s.groups[0]=i.globalUniforms.bindGroup,i.state.set(e.state),i.shader.bind(s),i.geometry.bind(n,s.glProgram);let o=a.instructions;for(let e=0;e<a.instructionSize;e++){let t=o[e];if(t.size){for(let e=0;e<t.textures.textures.length;e++)i.texture.bind(t.textures.textures[e],e);i.geometry.draw("triangle-list",t.size,t.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}}R.extension={type:[o.Ag.WebGLPipesAdaptor],name:"graphics"};var m=r(1787),T=r(7633),b=r(6840);class S{init(){let e=(0,l.I)({name:"mesh",bits:[c.mA,m.m,d.m]});this._shader=new g.M({glProgram:e,resources:{uTexture:T.g.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new _.u}}}})}execute(e,t){let r=e.renderer,s=t._shader;if(s){if(!s.glProgram)return void(0,b.R)("Mesh shader has no glProgram",t.shader)}else{s=this._shader;let e=t.texture,r=e.source;s.resources.uTexture=r,s.resources.uSampler=r.style,s.resources.textureUniforms.uniforms.uTextureMatrix=e.textureMatrix.mapCoord}s.groups[100]=r.globalUniforms.bindGroup,s.groups[101]=e.localUniformsBindGroup,r.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}}S.extension={type:[o.Ag.WebGLPipesAdaptor],name:"mesh"};var x=r(1447);class p{constructor(){this._didUpload=!1,this._tempState=x.U.for2d()}init(e){let t=(0,l.I)({name:"batch",bits:[u.a,(0,h.P)(16),d.m]});this._shader=new g.M({glProgram:t,resources:{batchSamplers:E.v}}),e.renderer.runners.contextChange.add(this)}contextChange(){this._didUpload=!1}start(e,t){let r=e.renderer;r.shader.bind(this._shader,this._didUpload),r.shader.updateUniformGroup(r.globalUniforms.uniformGroup),r.geometry.bind(t,this._shader.glProgram)}execute(e,t){let r=e.renderer;this._didUpload=!0,this._tempState.blendMode=t.blendMode,r.state.set(this._tempState);let s=t.textures.textures;for(let e=0;e<s.length;e++)r.texture.bind(s[e],e);r.geometry.draw("triangle-list",t.size,t.start)}destroy(){this._shader.destroy(!0),this._shader=null}}p.extension={type:[o.Ag.WebGLPipesAdaptor],name:"batch"};var A=r(1075),B=r(1217),N=r(2031),G=r(1720),C=((s=C||{})[s.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",s[s.ARRAY_BUFFER=34962]="ARRAY_BUFFER",s[s.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",s);class I{constructor(e,t){this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=t}}class D{constructor(e){this._gpuBuffers=Object.create(null),this._boundBufferBases=Object.create(null),this._renderer=e}destroy(){this._renderer=null,this._gl=null,this._gpuBuffers=null,this._boundBufferBases=null}contextChange(){this._gpuBuffers=Object.create(null),this._gl=this._renderer.gl}getGlBuffer(e){return this._gpuBuffers[e.uid]||this.createGLBuffer(e)}bind(e){let{_gl:t}=this,r=this.getGlBuffer(e);t.bindBuffer(r.type,r.buffer)}bindBufferBase(e,t){let{_gl:r}=this;if(this._boundBufferBases[t]!==e){let s=this.getGlBuffer(e);this._boundBufferBases[t]=e,r.bindBufferBase(r.UNIFORM_BUFFER,t,s.buffer)}}bindBufferRange(e,t,r){let{_gl:s}=this;r=r||0;let i=this.getGlBuffer(e);s.bindBufferRange(s.UNIFORM_BUFFER,t||0,i.buffer,256*r,256)}updateBuffer(e){let{_gl:t}=this,r=this.getGlBuffer(e);if(e._updateID===r.updateID)return r;r.updateID=e._updateID,t.bindBuffer(r.type,r.buffer);let s=e.data;if(r.byteLength>=e.data.byteLength)t.bufferSubData(r.type,0,s,0,e._updateSize/s.BYTES_PER_ELEMENT);else{let i=e.descriptor.usage&G.S.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;r.byteLength=s.byteLength,t.bufferData(r.type,s,i)}return r}destroyAll(){let e=this._gl;for(let t in this._gpuBuffers)e.deleteBuffer(this._gpuBuffers[t].buffer);this._gpuBuffers=Object.create(null)}onBufferDestroy(e,t){let r=this._gpuBuffers[e.uid],s=this._gl;t||s.deleteBuffer(r.buffer),this._gpuBuffers[e.uid]=null}createGLBuffer(e){let{_gl:t}=this,r=C.ARRAY_BUFFER;e.descriptor.usage&G.S.INDEX?r=C.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&G.S.UNIFORM&&(r=C.UNIFORM_BUFFER);let s=new I(t.createBuffer(),r);return this._gpuBuffers[e.uid]=s,e.on("destroy",this.onBufferDestroy,this),s}}D.extension={type:[o.Ag.WebGLSystem],name:"buffer"};var O=r(8370);let U=class e{constructor(e){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=e,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(e){this.gl=e,this._renderer.gl=e}init(t){if((t={...e.defaultOptions,...t}).context)this.initFromContext(t.context);else{let e=this._renderer.background.alpha<1,r=t.premultipliedAlpha??!0,s=t.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(t.preferWebGLVersion,{alpha:e,premultipliedAlpha:r,antialias:s,stencil:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,powerPreference:t.powerPreference??"default"})}}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof O.e.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);let t=this._renderer.view.canvas;t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,t){let r,s=this._renderer.view.canvas;if(2===e&&(r=s.getContext("webgl2",t)),!r&&!(r=s.getContext("webgl",t)))throw Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=r,this.initFromContext(this.gl)}getExtensions(){let{gl:e}=this,t={anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc"),bptc:e.getExtension("EXT_texture_compression_bptc"),rgtc:e.getExtension("EXT_texture_compression_rgtc"),loseContext:e.getExtension("WEBGL_lose_context")};if(1===this.webGLVersion)this.extensions={...t,drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:e.getExtension("ANGLE_instanced_arrays"),srgb:e.getExtension("EXT_sRGB")};else{this.extensions={...t,colorBufferFloat:e.getExtension("EXT_color_buffer_float")};let r=e.getExtension("WEBGL_provoking_vertex");r&&r.provokingVertexWEBGL(r.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(e){e.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0))}handleContextRestored(){this._renderer.runners.contextChange.emit(this.gl)}destroy(){let e=this._renderer.view.canvas;this._renderer=null,e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(e){let t=e.getContextAttributes();t&&!t.stencil&&(0,b.R)("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let r=this.supports,s=2===this.webGLVersion,i=this.extensions;r.uint32Indices=s||!!i.uint32ElementIndex,r.uniformBufferObject=s,r.vertexArrayObject=s||!!i.vertexArrayObject,r.srgbTextures=s||!!i.srgb,r.nonPowOf2wrapping=s,r.nonPowOf2mipmaps=s,r.msaa=s,r.uint32Indices||(0,b.R)("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};U.extension={type:[o.Ag.WebGLSystem],name:"context"},U.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2};var P=r(6782),F=r(2896),L=((i=L||{})[i.RGBA=6408]="RGBA",i[i.RGB=6407]="RGB",i[i.RG=33319]="RG",i[i.RED=6403]="RED",i[i.RGBA_INTEGER=36249]="RGBA_INTEGER",i[i.RGB_INTEGER=36248]="RGB_INTEGER",i[i.RG_INTEGER=33320]="RG_INTEGER",i[i.RED_INTEGER=36244]="RED_INTEGER",i[i.ALPHA=6406]="ALPHA",i[i.LUMINANCE=6409]="LUMINANCE",i[i.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",i[i.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",i[i.DEPTH_STENCIL=34041]="DEPTH_STENCIL",i),M=((n=M||{})[n.TEXTURE_2D=3553]="TEXTURE_2D",n[n.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",n[n.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",n[n.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",n[n.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",n[n.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",n[n.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",n[n.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",n[n.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",n),y=((a=y||{})[a.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",a[a.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",a[a.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",a[a.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",a[a.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",a[a.UNSIGNED_INT=5125]="UNSIGNED_INT",a[a.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",a[a.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",a[a.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",a[a.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",a[a.BYTE=5120]="BYTE",a[a.SHORT=5122]="SHORT",a[a.INT=5124]="INT",a[a.FLOAT=5126]="FLOAT",a[a.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",a[a.HALF_FLOAT=36193]="HALF_FLOAT",a);let H={uint8x2:y.UNSIGNED_BYTE,uint8x4:y.UNSIGNED_BYTE,sint8x2:y.BYTE,sint8x4:y.BYTE,unorm8x2:y.UNSIGNED_BYTE,unorm8x4:y.UNSIGNED_BYTE,snorm8x2:y.BYTE,snorm8x4:y.BYTE,uint16x2:y.UNSIGNED_SHORT,uint16x4:y.UNSIGNED_SHORT,sint16x2:y.SHORT,sint16x4:y.SHORT,unorm16x2:y.UNSIGNED_SHORT,unorm16x4:y.UNSIGNED_SHORT,snorm16x2:y.SHORT,snorm16x4:y.SHORT,float16x2:y.HALF_FLOAT,float16x4:y.HALF_FLOAT,float32:y.FLOAT,float32x2:y.FLOAT,float32x3:y.FLOAT,float32x4:y.FLOAT,uint32:y.UNSIGNED_INT,uint32x2:y.UNSIGNED_INT,uint32x3:y.UNSIGNED_INT,uint32x4:y.UNSIGNED_INT,sint32:y.INT,sint32x2:y.INT,sint32x3:y.INT,sint32x4:y.INT},v={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5};class w{constructor(e){this._geometryVaoHash=Object.create(null),this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0}contextChange(){let e=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw Error("[PixiJS] Vertex Array Objects are not supported on this device");let t=this._renderer.context.extensions.vertexArrayObject;t&&(e.createVertexArray=()=>t.createVertexArrayOES(),e.bindVertexArray=e=>t.bindVertexArrayOES(e),e.deleteVertexArray=e=>t.deleteVertexArrayOES(e));let r=this._renderer.context.extensions.vertexAttribDivisorANGLE;r&&(e.drawArraysInstanced=(e,t,s,i)=>{r.drawArraysInstancedANGLE(e,t,s,i)},e.drawElementsInstanced=(e,t,s,i,n)=>{r.drawElementsInstancedANGLE(e,t,s,i,n)},e.vertexAttribDivisor=(e,t)=>r.vertexAttribDivisorANGLE(e,t)),this._activeGeometry=null,this._activeVao=null,this._geometryVaoHash=Object.create(null)}bind(e,t){let r=this.gl;this._activeGeometry=e;let s=this.getVao(e,t);this._activeVao!==s&&(this._activeVao=s,r.bindVertexArray(s)),this.updateBuffers()}reset(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this._renderer.buffer;for(let r=0;r<e.buffers.length;r++){let s=e.buffers[r];t.updateBuffer(s)}}checkCompatibility(e,t){let r=e.attributes,s=t._attributeData;for(let e in s)if(!r[e])throw Error(`shader and geometry incompatible, geometry missing the "${e}" attribute`)}getSignature(e,t){let r=e.attributes,s=t._attributeData,i=["g",e.uid];for(let e in r)s[e]&&i.push(e,s[e].location);return i.join("-")}getVao(e,t){return this._geometryVaoHash[e.uid]?.[t._key]||this.initGeometryVao(e,t)}initGeometryVao(e,t,r=!0){let s=this._renderer.gl,i=this._renderer.buffer;this._renderer.shader._getProgramData(t),this.checkCompatibility(e,t);let n=this.getSignature(e,t);this._geometryVaoHash[e.uid]||(this._geometryVaoHash[e.uid]=Object.create(null),e.on("destroy",this.onGeometryDestroy,this));let a=this._geometryVaoHash[e.uid],o=a[n];if(o)return a[t._key]=o,o;(0,F.q)(e,t._attributeData);let _=e.buffers;o=s.createVertexArray(),s.bindVertexArray(o);for(let e=0;e<_.length;e++){let t=_[e];i.bind(t)}return this.activateVao(e,t),a[t._key]=o,a[n]=o,s.bindVertexArray(null),o}onGeometryDestroy(e,t){let r=this._geometryVaoHash[e.uid],s=this.gl;if(r){if(t)for(let e in r)this._activeVao!==r[e]&&this.unbind(),s.deleteVertexArray(r[e]);this._geometryVaoHash[e.uid]=null}}destroyAll(e=!1){let t=this.gl;for(let r in this._geometryVaoHash){if(e)for(let e in this._geometryVaoHash[r]){let s=this._geometryVaoHash[r];this._activeVao!==s&&this.unbind(),t.deleteVertexArray(s[e])}this._geometryVaoHash[r]=null}}activateVao(e,t){let r=this._renderer.gl,s=this._renderer.buffer,i=e.attributes;e.indexBuffer&&s.bind(e.indexBuffer);let n=null;for(let e in i){let a=i[e],o=a.buffer,_=s.getGlBuffer(o),l=t._attributeData[e];if(l){n!==_&&(s.bind(o),n=_);let e=a.location;r.enableVertexAttribArray(e);let t=(0,P.m)(a.format),i=H[a.format]??H.float32;if(l.format?.substring(1,4)==="int"?r.vertexAttribIPointer(e,t.size,i,a.stride,a.offset):r.vertexAttribPointer(e,t.size,i,t.normalised,a.stride,a.offset),a.instance)if(this.hasInstance)r.vertexAttribDivisor(e,1);else throw Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,t,r,s){let{gl:i}=this._renderer,n=this._activeGeometry,a=v[n.topology||e];if(s||(s=n.instanceCount),n.indexBuffer){let e=n.indexBuffer.data.BYTES_PER_ELEMENT,o=2===e?i.UNSIGNED_SHORT:i.UNSIGNED_INT;s>1?i.drawElementsInstanced(a,t||n.indexBuffer.data.length,o,(r||0)*e,s):i.drawElements(a,t||n.indexBuffer.data.length,o,(r||0)*e)}else s>1?i.drawArraysInstanced(a,r||0,t||n.getSize(),s):i.drawArrays(a,r||0,t||n.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}}w.extension={type:[o.Ag.WebGLSystem],name:"geometry"};var X=r(9442),V=r(3257),k=r(2378);let W=new X.V({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),Y=class e{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(t={}){let{useBackBuffer:r,antialias:s}={...e.defaultOptions,...t};this.useBackBuffer=r,this._antialias=s,this._renderer.context.supports.msaa||((0,b.R)("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=x.U.for2d();let i=new k.M({vertex:`
2
+ attribute vec2 aPosition;
3
+ out vec2 vUv;
4
+
5
+ void main() {
6
+ gl_Position = vec4(aPosition, 0.0, 1.0);
7
+
8
+ vUv = (aPosition + 1.0) / 2.0;
9
+
10
+ // flip dem UVs
11
+ vUv.y = 1.0 - vUv.y;
12
+ }`,fragment:`
13
+ in vec2 vUv;
14
+ out vec4 finalColor;
15
+
16
+ uniform sampler2D uTexture;
17
+
18
+ void main() {
19
+ finalColor = texture(uTexture, vUv);
20
+ }`,name:"big-triangle"});this._bigTriangleShader=new g.M({glProgram:i,resources:{uTexture:T.g.WHITE.source}})}renderStart(e){let t=this._renderer.renderTarget.getRenderTarget(e.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!t.isRoot,this._useBackBufferThisRender){let t=this._renderer.renderTarget.getRenderTarget(e.target);this._targetTexture=t.colorTexture,e.target=this._getBackBufferTexture(t.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let e=this._renderer;e.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(e.renderTarget.bind(this._targetTexture,!1),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,e.encoder.draw({geometry:W,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(e){return this._backBufferTexture=this._backBufferTexture||new T.g({source:new V.v({width:e.width,height:e.height,resolution:e._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(e.width,e.height,e._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};Y.extension={type:[o.Ag.WebGLSystem],name:"backBuffer",priority:1},Y.defaultOptions={useBackBuffer:!1};class K{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.gl.colorMask(!!(8&e),!!(4&e),!!(2&e),!!(1&e)))}}K.extension={type:[o.Ag.WebGLSystem],name:"colorMask"};class j{constructor(e){this.commandFinished=Promise.resolve(),this._renderer=e}setGeometry(e,t){this._renderer.geometry.bind(e,t.glProgram)}finishRenderPass(){}draw(e){let t=this._renderer,{geometry:r,shader:s,state:i,skipSync:n,topology:a,size:o,start:_,instanceCount:l}=e;t.shader.bind(s,n),t.geometry.bind(r,t.shader._activeProgram),i&&t.state.set(i),t.geometry.draw(a,o,_,l??r.instanceCount)}destroy(){this._renderer=null}}j.extension={type:[o.Ag.WebGLSystem],name:"encoder"};var z=r(9392),q=r(673);class Z{constructor(e){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:q.K.NONE},this._renderTargetStencilState=Object.create(null),e.renderTarget.onRenderTargetChange.add(this)}contextChange(e){this._gl=e,this._comparisonFuncMapping={always:e.ALWAYS,never:e.NEVER,equal:e.EQUAL,"not-equal":e.NOTEQUAL,less:e.LESS,"less-equal":e.LEQUAL,greater:e.GREATER,"greater-equal":e.GEQUAL},this._stencilOpsMapping={keep:e.KEEP,zero:e.ZERO,replace:e.REPLACE,invert:e.INVERT,"increment-clamp":e.INCR,"decrement-clamp":e.DECR,"increment-wrap":e.INCR_WRAP,"decrement-wrap":e.DECR_WRAP},this._stencilCache.enabled=!1,this._stencilCache.stencilMode=q.K.NONE,this._stencilCache.stencilReference=0}onRenderTargetChange(e){if(this._activeRenderTarget===e)return;this._activeRenderTarget=e;let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:q.K.DISABLED,stencilReference:0}),this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){let r=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,i=z.g[e],n=this._stencilCache;if(r.stencilMode=e,r.stencilReference=t,e===q.K.DISABLED){this._stencilCache.enabled&&(this._stencilCache.enabled=!1,s.disable(s.STENCIL_TEST));return}this._stencilCache.enabled||(this._stencilCache.enabled=!0,s.enable(s.STENCIL_TEST)),(e!==n.stencilMode||n.stencilReference!==t)&&(n.stencilMode=e,n.stencilReference=t,s.stencilFunc(this._comparisonFuncMapping[i.stencilBack.compare],t,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[i.stencilBack.passOp]))}}Z.extension={type:[o.Ag.WebGLSystem],name:"stencil"};var Q=r(5448),J=r(6094),$=r(3203),ee=r(8181);class et{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this.msaaRenderBuffer=[]}}class er{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new $.M}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new $.M}copyToTexture(e,t,r,s,i){let n=this._renderTargetSystem,a=this._renderer,o=n.getGpuRenderTarget(e),_=a.gl;return this.finishRenderPass(e),_.bindFramebuffer(_.FRAMEBUFFER,o.resolveTargetFramebuffer),a.texture.bind(t,0),_.copyTexSubImage2D(_.TEXTURE_2D,0,i.x,i.y,r.x,r.y,s.width,s.height),t}startRenderPass(e,t=!0,r,s){let i=this._renderTargetSystem,n=e.colorTexture,a=i.getGpuRenderTarget(e),o=s.y;e.isRoot&&(o=n.pixelHeight-s.height),e.colorTextures.forEach(e=>{this._renderer.texture.unbind(e)});let _=this._renderer.gl;_.bindFramebuffer(_.FRAMEBUFFER,a.framebuffer);let l=this._viewPortCache;(l.x!==s.x||l.y!==o||l.width!==s.width||l.height!==s.height)&&(l.x=s.x,l.y=o,l.width=s.width,l.height=s.height,_.viewport(s.x,o,s.width,s.height)),!a.depthStencilRenderBuffer&&(e.stencil||e.depth)&&this._initStencil(a),this.clear(e,t,r)}finishRenderPass(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);if(!t.msaa)return;let r=this._renderer.gl;r.bindFramebuffer(r.FRAMEBUFFER,t.resolveTargetFramebuffer),r.bindFramebuffer(r.READ_FRAMEBUFFER,t.framebuffer),r.blitFramebuffer(0,0,t.width,t.height,0,0,t.width,t.height,r.COLOR_BUFFER_BIT,r.NEAREST),r.bindFramebuffer(r.FRAMEBUFFER,t.framebuffer)}initGpuRenderTarget(e){let t=this._renderer,r=t.gl,s=new et;return e.colorTexture.resource===t.gl.canvas?s.framebuffer=null:(this._initColor(e,s),r.bindFramebuffer(r.FRAMEBUFFER,null)),s}destroyGpuRenderTarget(e){let t=this._renderer.gl;e.framebuffer&&(t.deleteFramebuffer(e.framebuffer),e.framebuffer=null),e.resolveTargetFramebuffer&&(t.deleteFramebuffer(e.resolveTargetFramebuffer),e.resolveTargetFramebuffer=null),e.depthStencilRenderBuffer&&(t.deleteRenderbuffer(e.depthStencilRenderBuffer),e.depthStencilRenderBuffer=null),e.msaaRenderBuffer.forEach(e=>{t.deleteRenderbuffer(e)}),e.msaaRenderBuffer=null}clear(e,t,r){if(!t)return;let s=this._renderTargetSystem;"boolean"==typeof t&&(t=t?ee.u.ALL:ee.u.NONE);let i=this._renderer.gl;if(t&ee.u.COLOR){r??(r=s.defaultClearColor);let e=this._clearColorCache,t=r;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3])&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],i.clearColor(t[0],t[1],t[2],t[3]))}i.clear(t)}resizeGpuRenderTarget(e){if(e.isRoot)return;let t=this._renderTargetSystem.getGpuRenderTarget(e);this._resizeColor(e,t),e.stencil&&this._resizeStencil(t)}_initColor(e,t){let r=this._renderer,s=r.gl,i=s.createFramebuffer();if(t.resolveTargetFramebuffer=i,s.bindFramebuffer(s.FRAMEBUFFER,i),t.width=e.colorTexture.source.pixelWidth,t.height=e.colorTexture.source.pixelHeight,e.colorTextures.forEach((e,i)=>{let n=e.source;n.antialias&&(r.context.supports.msaa?t.msaa=!0:(0,b.R)("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(n,0);let a=r.texture.getGlSource(n).texture;s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+i,3553,a,0)}),t.msaa){let r=s.createFramebuffer();t.framebuffer=r,s.bindFramebuffer(s.FRAMEBUFFER,r),e.colorTextures.forEach((e,r)=>{let i=s.createRenderbuffer();t.msaaRenderBuffer[r]=i})}else t.framebuffer=i;this._resizeColor(e,t)}_resizeColor(e,t){let r=e.colorTexture.source;if(t.width=r.pixelWidth,t.height=r.pixelHeight,e.colorTextures.forEach((e,t)=>{0!==t&&e.source.resize(r.width,r.height,r._resolution)}),t.msaa){let r=this._renderer,s=r.gl,i=t.framebuffer;s.bindFramebuffer(s.FRAMEBUFFER,i),e.colorTextures.forEach((e,i)=>{let n=e.source;r.texture.bindSource(n,0);let a=r.texture.getGlSource(n).internalFormat,o=t.msaaRenderBuffer[i];s.bindRenderbuffer(s.RENDERBUFFER,o),s.renderbufferStorageMultisample(s.RENDERBUFFER,4,a,n.pixelWidth,n.pixelHeight),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+i,s.RENDERBUFFER,o)})}}_initStencil(e){if(null===e.framebuffer)return;let t=this._renderer.gl,r=t.createRenderbuffer();e.depthStencilRenderBuffer=r,t.bindRenderbuffer(t.RENDERBUFFER,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,r),this._resizeStencil(e)}_resizeStencil(e){let t=this._renderer.gl;t.bindRenderbuffer(t.RENDERBUFFER,e.depthStencilRenderBuffer),e.msaa?t.renderbufferStorageMultisample(t.RENDERBUFFER,4,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,2===this._renderer.context.webGLVersion?t.DEPTH24_STENCIL8:t.DEPTH_STENCIL,e.width,e.height)}}class es extends J.l{constructor(e){super(e),this.adaptor=new er,this.adaptor.init(e,this)}}es.extension={type:[o.Ag.WebGLSystem],name:"renderTarget"};var ei=r(145),en=r(127);let ea=class e{constructor(){this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[0]=this.setBlend,this.map[1]=this.setOffset,this.map[2]=this.setCullFace,this.map[3]=this.setDepthTest,this.map[4]=this.setFrontFace,this.map[5]=this.setDepthMask,this.checks=[],this.defaultState=x.U.for2d()}contextChange(e){let t;this.gl=e,this.blendModesMap=((t={}).normal=[e.ONE,e.ONE_MINUS_SRC_ALPHA],t.add=[e.ONE,e.ONE],t.multiply=[e.DST_COLOR,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA],t.screen=[e.ONE,e.ONE_MINUS_SRC_COLOR,e.ONE,e.ONE_MINUS_SRC_ALPHA],t.none=[0,0],t["normal-npm"]=[e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA],t["add-npm"]=[e.SRC_ALPHA,e.ONE,e.ONE,e.ONE],t["screen-npm"]=[e.SRC_ALPHA,e.ONE_MINUS_SRC_COLOR,e.ONE,e.ONE_MINUS_SRC_ALPHA],t.erase=[e.ZERO,e.ONE_MINUS_SRC_ALPHA],t),this.reset()}set(e){if(e=e||this.defaultState,this.stateId!==e.data){let t=this.stateId^e.data,r=0;for(;t;)1&t&&this.map[r].call(this,!!(e.data&1<<r)),t>>=1,r++;this.stateId=e.data}for(let t=0;t<this.checks.length;t++)this.checks[t](this,e)}forceState(e){e=e||this.defaultState;for(let t=0;t<this.map.length;t++)this.map[t].call(this,!!(e.data&1<<t));for(let t=0;t<this.checks.length;t++)this.checks[t](this,e);this.stateId=e.data}setBlend(t){this._updateCheck(e._checkBlendMode,t),this.gl[t?"enable":"disable"](this.gl.BLEND)}setOffset(t){this._updateCheck(e._checkPolygonOffset,t),this.gl[t?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(e){this.gl[e?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(e){this.gl.depthMask(e)}setCullFace(e){this.gl[e?"enable":"disable"](this.gl.CULL_FACE)}setFrontFace(e){this.gl.frontFace(this.gl[e?"CW":"CCW"])}setBlendMode(e){if(this.blendModesMap[e]||(e="normal"),e===this.blendMode)return;this.blendMode=e;let t=this.blendModesMap[e],r=this.gl;2===t.length?r.blendFunc(t[0],t[1]):r.blendFuncSeparate(t[0],t[1],t[2],t[3]),6===t.length?(this._blendEq=!0,r.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}reset(){this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(e,t){let r=this.checks.indexOf(e);t&&-1===r?this.checks.push(e):t||-1===r||this.checks.splice(r,1)}static _checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static _checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};ea.extension={type:[o.Ag.WebGLSystem],name:"state"};class eo{constructor(e){this.target=M.TEXTURE_2D,this.texture=e,this.width=-1,this.height=-1,this.type=y.UNSIGNED_BYTE,this.internalFormat=L.RGBA,this.format=L.RGBA,this.samplerType=0}}let e_={id:"image",upload(e,t,r){t.width===e.width||t.height===e.height?r.texSubImage2D(r.TEXTURE_2D,0,0,0,t.format,t.type,e.resource):r.texImage2D(t.target,0,t.internalFormat,e.width,e.height,0,t.format,t.type,e.resource),t.width=e.width,t.height=e.height}},el={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},eu={id:"compressed",upload(e,t,r){r.pixelStorei(r.UNPACK_ALIGNMENT,4);let s=e.pixelWidth,i=e.pixelHeight,n=!!el[e.format];for(let a=0;a<e.resource.length;a++){let o=e.resource[a];n?r.compressedTexImage2D(r.TEXTURE_2D,a,t.internalFormat,s,i,0,o):r.texImage2D(r.TEXTURE_2D,a,t.internalFormat,s,i,0,t.format,t.type,o),s=Math.max(s>>1,1),i=Math.max(i>>1,1)}}},eh={id:"image",upload(e,t,r,s){let i="premultiply-alpha-on-upload"===e.alphaMode;r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i);let n=t.width,a=t.height,o=e.pixelWidth,_=e.pixelHeight,l=e.resourceWidth,u=e.resourceHeight;l<o||u<_?((n!==o||a!==_)&&r.texImage2D(t.target,0,t.internalFormat,o,_,0,t.format,t.type,null),2===s?r.texSubImage2D(r.TEXTURE_2D,0,0,0,l,u,t.format,t.type,e.resource):r.texSubImage2D(r.TEXTURE_2D,0,0,0,t.format,t.type,e.resource)):n===o||a===_?r.texSubImage2D(r.TEXTURE_2D,0,0,0,t.format,t.type,e.resource):2===s?r.texImage2D(t.target,0,t.internalFormat,o,_,0,t.format,t.type,e.resource):r.texImage2D(t.target,0,t.internalFormat,t.format,t.type,e.resource),t.width=o,t.height=_}},ec={id:"video",upload(e,t,r,s){e.isValid?eh.upload(e,t,r,s):r.texImage2D(t.target,0,t.internalFormat,1,1,0,t.format,t.type,null)}},ed={linear:9729,nearest:9728},eE={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},eg={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},ef={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519};function eR(e,t,r,s,i,n,a,o){if(!o||"repeat"!==e.addressModeU||"repeat"!==e.addressModeV||"repeat"!==e.addressModeW){let r=eg[a?"clamp-to-edge":e.addressModeU],s=eg[a?"clamp-to-edge":e.addressModeV],o=eg[a?"clamp-to-edge":e.addressModeW];t[i](n,t.TEXTURE_WRAP_S,r),t[i](n,t.TEXTURE_WRAP_T,s),t.TEXTURE_WRAP_R&&t[i](n,t.TEXTURE_WRAP_R,o)}if(o&&"linear"===e.magFilter||t[i](n,t.TEXTURE_MAG_FILTER,ed[e.magFilter]),r){if(!o||"linear"!==e.mipmapFilter){let r=eE[e.minFilter][e.mipmapFilter];t[i](n,t.TEXTURE_MIN_FILTER,r)}}else t[i](n,t.TEXTURE_MIN_FILTER,ed[e.minFilter]);if(s&&e.maxAnisotropy>1){let r=Math.min(e.maxAnisotropy,t.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT));t[i](n,s.TEXTURE_MAX_ANISOTROPY_EXT,r)}e.compare&&t[i](n,t.TEXTURE_COMPARE_FUNC,ef[e.compare])}class em{constructor(e){this.managedTextures=[],this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._uploads={image:eh,buffer:e_,video:ec,compressed:eu},this._useSeparateSamplers=!1,this._renderer=e}contextChange(e){if(this._gl=e,!this._mapFormatToInternalFormat){var t;let r,s;this._mapFormatToInternalFormat=(t=this._renderer.context.extensions,r={},s=e.RGBA,e instanceof O.e.get().getWebGLRenderingContext()?t.srgb&&(r={"rgba8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT}):(r={"rgba8unorm-srgb":e.SRGB8_ALPHA8,"bgra8unorm-srgb":e.SRGB8_ALPHA8},s=e.RGBA8),{r8unorm:e.R8,r8snorm:e.R8_SNORM,r8uint:e.R8UI,r8sint:e.R8I,r16uint:e.R16UI,r16sint:e.R16I,r16float:e.R16F,rg8unorm:e.RG8,rg8snorm:e.RG8_SNORM,rg8uint:e.RG8UI,rg8sint:e.RG8I,r32uint:e.R32UI,r32sint:e.R32I,r32float:e.R32F,rg16uint:e.RG16UI,rg16sint:e.RG16I,rg16float:e.RG16F,rgba8unorm:e.RGBA,...r,rgba8snorm:e.RGBA8_SNORM,rgba8uint:e.RGBA8UI,rgba8sint:e.RGBA8I,bgra8unorm:s,rgb9e5ufloat:e.RGB9_E5,rgb10a2unorm:e.RGB10_A2,rg11b10ufloat:e.R11F_G11F_B10F,rg32uint:e.RG32UI,rg32sint:e.RG32I,rg32float:e.RG32F,rgba16uint:e.RGBA16UI,rgba16sint:e.RGBA16I,rgba16float:e.RGBA16F,rgba32uint:e.RGBA32UI,rgba32sint:e.RGBA32I,rgba32float:e.RGBA32F,stencil8:e.STENCIL_INDEX8,depth16unorm:e.DEPTH_COMPONENT16,depth24plus:e.DEPTH_COMPONENT24,"depth24plus-stencil8":e.DEPTH24_STENCIL8,depth32float:e.DEPTH_COMPONENT32F,"depth32float-stencil8":e.DEPTH32F_STENCIL8,...t.s3tc?{"bc1-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...t.s3tc_sRGB?{"bc1-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...t.rgtc?{"bc4-r-unorm":t.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":t.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":t.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":t.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...t.bptc?{"bc6h-rgb-float":t.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":t.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":t.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":t.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...t.etc?{"etc2-rgb8unorm":t.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":t.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":t.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":t.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":t.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":t.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":t.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":t.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...t.astc?{"astc-4x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}),this._mapFormatToType={r8unorm:e.UNSIGNED_BYTE,r8snorm:e.BYTE,r8uint:e.UNSIGNED_BYTE,r8sint:e.BYTE,r16uint:e.UNSIGNED_SHORT,r16sint:e.SHORT,r16float:e.HALF_FLOAT,rg8unorm:e.UNSIGNED_BYTE,rg8snorm:e.BYTE,rg8uint:e.UNSIGNED_BYTE,rg8sint:e.BYTE,r32uint:e.UNSIGNED_INT,r32sint:e.INT,r32float:e.FLOAT,rg16uint:e.UNSIGNED_SHORT,rg16sint:e.SHORT,rg16float:e.HALF_FLOAT,rgba8unorm:e.UNSIGNED_BYTE,"rgba8unorm-srgb":e.UNSIGNED_BYTE,rgba8snorm:e.BYTE,rgba8uint:e.UNSIGNED_BYTE,rgba8sint:e.BYTE,bgra8unorm:e.UNSIGNED_BYTE,"bgra8unorm-srgb":e.UNSIGNED_BYTE,rgb9e5ufloat:e.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:e.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:e.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:e.UNSIGNED_INT,rg32sint:e.INT,rg32float:e.FLOAT,rgba16uint:e.UNSIGNED_SHORT,rgba16sint:e.SHORT,rgba16float:e.HALF_FLOAT,rgba32uint:e.UNSIGNED_INT,rgba32sint:e.INT,rgba32float:e.FLOAT,stencil8:e.UNSIGNED_BYTE,depth16unorm:e.UNSIGNED_SHORT,depth24plus:e.UNSIGNED_INT,"depth24plus-stencil8":e.UNSIGNED_INT_24_8,depth32float:e.FLOAT,"depth32float-stencil8":e.FLOAT_32_UNSIGNED_INT_24_8_REV},this._mapFormatToFormat={r8unorm:e.RED,r8snorm:e.RED,r8uint:e.RED,r8sint:e.RED,r16uint:e.RED,r16sint:e.RED,r16float:e.RED,rg8unorm:e.RG,rg8snorm:e.RG,rg8uint:e.RG,rg8sint:e.RG,r32uint:e.RED,r32sint:e.RED,r32float:e.RED,rg16uint:e.RG,rg16sint:e.RG,rg16float:e.RG,rgba8unorm:e.RGBA,"rgba8unorm-srgb":e.RGBA,rgba8snorm:e.RGBA,rgba8uint:e.RGBA,rgba8sint:e.RGBA,bgra8unorm:e.RGBA,"bgra8unorm-srgb":e.RGBA,rgb9e5ufloat:e.RGB,rgb10a2unorm:e.RGBA,rg11b10ufloat:e.RGB,rg32uint:e.RG,rg32sint:e.RG,rg32float:e.RG,rgba16uint:e.RGBA,rgba16sint:e.RGBA,rgba16float:e.RGBA,rgba32uint:e.RGBA,rgba32sint:e.RGBA,rgba32float:e.RGBA,stencil8:e.STENCIL_INDEX8,depth16unorm:e.DEPTH_COMPONENT,depth24plus:e.DEPTH_COMPONENT,"depth24plus-stencil8":e.DEPTH_STENCIL,depth32float:e.DEPTH_COMPONENT,"depth32float-stencil8":e.DEPTH_STENCIL}}this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null);for(let e=0;e<16;e++)this.bind(T.g.EMPTY,e)}initSource(e){this.bind(e)}bind(e,t=0){let r=e.source;e?(this.bindSource(r,t),this._useSeparateSamplers&&this._bindSampler(r.style,t)):(this.bindSource(null,t),this._useSeparateSamplers&&this._bindSampler(null,t))}bindSource(e,t=0){let r=this._gl;if(e._touched=this._renderer.textureGC.count,this._boundTextures[t]!==e){this._boundTextures[t]=e,this._activateLocation(t),e=e||T.g.EMPTY.source;let s=this.getGlSource(e);r.bindTexture(s.target,s.texture)}}_bindSampler(e,t=0){let r=this._gl;if(!e){this._boundSamplers[t]=null,r.bindSampler(t,null);return}let s=this._getGlSampler(e);this._boundSamplers[t]!==s&&(this._boundSamplers[t]=s,r.bindSampler(t,s))}unbind(e){let t=e.source,r=this._boundTextures,s=this._gl;for(let e=0;e<r.length;e++)if(r[e]===t){this._activateLocation(e);let i=this.getGlSource(t);s.bindTexture(i.target,null),r[e]=null}}_activateLocation(e){this._activeTextureLocation!==e&&(this._activeTextureLocation=e,this._gl.activeTexture(this._gl.TEXTURE0+e))}_initSource(e){let t=new eo(this._gl.createTexture());if(t.type=this._mapFormatToType[e.format],t.internalFormat=this._mapFormatToInternalFormat[e.format],t.format=this._mapFormatToFormat[e.format],e.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||e.isPowerOfTwo)){let t=Math.max(e.width,e.height);e.mipLevelCount=Math.floor(Math.log2(t))+1}return this._glTextures[e.uid]=t,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceUpdate,this),e.on("styleChange",this.onStyleChange,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),this.updateStyle(e,!1),t}onStyleChange(e){this.updateStyle(e,!1)}updateStyle(e,t){let r=this._gl,s=this.getGlSource(e);r.bindTexture(r.TEXTURE_2D,s.texture),this._boundTextures[this._activeTextureLocation]=e,eR(e.style,r,e.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",r.TEXTURE_2D,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,t)}onSourceUnload(e){let t=this._glTextures[e.uid];t&&(this.unbind(e),this._glTextures[e.uid]=null,this._gl.deleteTexture(t.texture))}onSourceUpdate(e){let t=this._gl,r=this.getGlSource(e);t.bindTexture(t.TEXTURE_2D,r.texture),this._boundTextures[this._activeTextureLocation]=e,this._uploads[e.uploadMethodId]?this._uploads[e.uploadMethodId].upload(e,r,t,this._renderer.context.webGLVersion):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e.pixelWidth,e.pixelHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,t=!0){t&&this.bindSource(e,0);let r=this.getGlSource(e);this._gl.generateMipmap(r.target)}onSourceDestroy(e){e.off("destroy",this.onSourceDestroy,this),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}_initSampler(e){let t=this._gl,r=this._gl.createSampler();return this._glSamplers[e._resourceId]=r,eR(e,t,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",r,!1,!0),this._glSamplers[e._resourceId]}_getGlSampler(e){return this._glSamplers[e._resourceId]||this._initSampler(e)}getGlSource(e){return this._glTextures[e.uid]||this._initSource(e)}generateCanvas(e){let{pixels:t,width:r,height:s}=this.getPixels(e),i=O.e.get().createCanvas();i.width=r,i.height=s;let n=i.getContext("2d");if(n){let e=n.createImageData(r,s);e.data.set(t),n.putImageData(e,0,0)}return i}getPixels(e){let t=e.source.resolution,r=e.frame,s=Math.max(Math.round(r.width*t),1),i=Math.max(Math.round(r.height*t),1),n=new Uint8Array(4*s*i),a=this._renderer,o=a.renderTarget.getRenderTarget(e),_=a.renderTarget.getGpuRenderTarget(o),l=a.gl;return l.bindFramebuffer(l.FRAMEBUFFER,_.resolveTargetFramebuffer),l.readPixels(Math.round(r.x*t),Math.round(r.y*t),s,i,l.RGBA,l.UNSIGNED_BYTE,n),{pixels:new Uint8ClampedArray(n.buffer),width:s,height:i}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null,this._renderer=null}}em.extension={type:[o.Ag.WebGLSystem],name:"texture"};let eT=[...B.i,Q.z,Y,U,D,em,es,w,en.e,ei.S,j,ea,Z,K],eb=[...B.f],eS=[p,S,R],ex=[],ep=[],eA=[];o.XO.handleByNamedList(o.Ag.WebGLSystem,ex),o.XO.handleByNamedList(o.Ag.WebGLPipes,ep),o.XO.handleByNamedList(o.Ag.WebGLPipesAdaptor,eA),o.XO.add(...eT,...eb,...eS);class eB extends A.k{constructor(){super({name:"webgl",type:N.W.WEBGL,systems:ex,renderPipes:ep,renderPipeAdaptors:eA})}}},7728:function(e,t,r){r.d(t,{v:()=>n});var s=r(8625);let i=new Int32Array(16);for(let e=0;e<16;e++)i[e]=e;let n=new s.k({uTextures:{value:i,type:"i32",size:16}},{isStatic:!0})}}]);
21
+ //# sourceMappingURL=221.d7bad1ad.js.map