holostaff-widget 3.0.0-alpha.9 → 3.0.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 (32) hide show
  1. package/dist/{BufferResource-B55p1jpv.js → BufferResource-DeLlYxf8.js} +58 -56
  2. package/dist/{BufferResource-B55p1jpv.js.map → BufferResource-DeLlYxf8.js.map} +1 -1
  3. package/dist/CanvasRenderer-BgLtSh22.js +5933 -0
  4. package/dist/CanvasRenderer-BgLtSh22.js.map +1 -0
  5. package/dist/Geometry-Bdq2tsB3.js +1017 -0
  6. package/dist/Geometry-Bdq2tsB3.js.map +1 -0
  7. package/dist/{RenderTargetSystem-CgD3OnwB.js → RenderTargetSystem-BCBByEgg.js} +1543 -501
  8. package/dist/RenderTargetSystem-BCBByEgg.js.map +1 -0
  9. package/dist/{WebGLRenderer-BuYJ2PeA.js → WebGLRenderer-3x7mgYt9.js} +55 -54
  10. package/dist/{WebGLRenderer-BuYJ2PeA.js.map → WebGLRenderer-3x7mgYt9.js.map} +1 -1
  11. package/dist/{WebGPURenderer-Cggaw1fN.js → WebGPURenderer-CdbjQMqs.js} +242 -197
  12. package/dist/WebGPURenderer-CdbjQMqs.js.map +1 -0
  13. package/dist/{browserAll-Q-GPHxQW.js → browserAll-DejMU3y7.js} +3 -3
  14. package/dist/{browserAll-Q-GPHxQW.js.map → browserAll-DejMU3y7.js.map} +1 -1
  15. package/dist/getTextureBatchBindGroup-CHJWR-eE.js +23 -0
  16. package/dist/getTextureBatchBindGroup-CHJWR-eE.js.map +1 -0
  17. package/dist/hs-widget.es.js +2 -2
  18. package/dist/hs-widget.umd.js +210 -122
  19. package/dist/hs-widget.umd.js.map +1 -1
  20. package/dist/index-C1ZbqCjI.js +17937 -0
  21. package/dist/index-C1ZbqCjI.js.map +1 -0
  22. package/dist/{webworkerAll-B8GxyCwb.js → webworkerAll-D5g5Ds7S.js} +12 -12
  23. package/dist/{webworkerAll-B8GxyCwb.js.map → webworkerAll-D5g5Ds7S.js.map} +1 -1
  24. package/package.json +2 -1
  25. package/dist/CanvasRenderer-B-tXhUVj.js +0 -976
  26. package/dist/CanvasRenderer-B-tXhUVj.js.map +0 -1
  27. package/dist/Filter-CgpxtqZ1.js +0 -57
  28. package/dist/Filter-CgpxtqZ1.js.map +0 -1
  29. package/dist/RenderTargetSystem-CgD3OnwB.js.map +0 -1
  30. package/dist/WebGPURenderer-Cggaw1fN.js.map +0 -1
  31. package/dist/index-IH6ECrLJ.js +0 -25726
  32. package/dist/index-IH6ECrLJ.js.map +0 -1
@@ -1,4 +1,6 @@
1
- import { w as U, g, c, u as S, B as _, d as m, E as I, e as p } from "./index-IH6ECrLJ.js";
1
+ import { w as U, u as S, E as I, a as h } from "./index-C1ZbqCjI.js";
2
+ import { g, a as _, b as m } from "./Geometry-Bdq2tsB3.js";
3
+ import { S as c } from "./RenderTargetSystem-BCBByEgg.js";
2
4
  const x = {
3
5
  name: "local-uniform-bit",
4
6
  vertex: {
@@ -32,14 +34,14 @@ const x = {
32
34
  `
33
35
  )
34
36
  }
35
- }, C = {
37
+ }, O = {
36
38
  ...x,
37
39
  vertex: {
38
40
  ...x.vertex,
39
41
  // replace the group!
40
42
  header: x.vertex.header.replace("group(1)", "group(2)")
41
43
  }
42
- }, D = {
44
+ }, R = {
43
45
  name: "local-uniform-bit",
44
46
  vertex: {
45
47
  header: (
@@ -68,7 +70,7 @@ const x = {
68
70
  `
69
71
  )
70
72
  }
71
- }, O = {
73
+ }, A = {
72
74
  name: "texture-bit",
73
75
  vertex: {
74
76
  header: (
@@ -106,7 +108,7 @@ const x = {
106
108
  `
107
109
  )
108
110
  }
109
- }, R = {
111
+ }, k = {
110
112
  name: "texture-bit",
111
113
  vertex: {
112
114
  header: (
@@ -139,35 +141,35 @@ const x = {
139
141
  )
140
142
  }
141
143
  };
142
- function A(e, t) {
144
+ function w(e, t) {
143
145
  for (const a in e.attributes) {
144
- const s = e.attributes[a], r = t[a];
145
- r ? (s.format ?? (s.format = r.format), s.offset ?? (s.offset = r.offset), s.instance ?? (s.instance = r.instance)) : U(`Attribute ${a} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`);
146
+ const r = e.attributes[a], s = t[a];
147
+ s ? (r.format ?? (r.format = s.format), r.offset ?? (r.offset = s.offset), r.instance ?? (r.instance = s.instance)) : U(`Attribute ${a} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`);
146
148
  }
147
149
  M(e);
148
150
  }
149
151
  function M(e) {
150
- const { buffers: t, attributes: a } = e, s = {}, r = {};
152
+ const { buffers: t, attributes: a } = e, r = {}, s = {};
151
153
  for (const n in t) {
152
154
  const o = t[n];
153
- s[o.uid] = 0, r[o.uid] = 0;
155
+ r[o.uid] = 0, s[o.uid] = 0;
154
156
  }
155
157
  for (const n in a) {
156
158
  const o = a[n];
157
- s[o.buffer.uid] += g(o.format).stride;
159
+ r[o.buffer.uid] += g(o.format).stride;
158
160
  }
159
161
  for (const n in a) {
160
162
  const o = a[n];
161
- o.stride ?? (o.stride = s[o.buffer.uid]), o.start ?? (o.start = r[o.buffer.uid]), r[o.buffer.uid] += g(o.format).stride;
163
+ o.stride ?? (o.stride = r[o.buffer.uid]), o.start ?? (o.start = s[o.buffer.uid]), s[o.buffer.uid] += g(o.format).stride;
162
164
  }
163
165
  }
164
- const d = [];
165
- d[c.NONE] = void 0;
166
- d[c.DISABLED] = {
166
+ const l = [];
167
+ l[c.NONE] = void 0;
168
+ l[c.DISABLED] = {
167
169
  stencilWriteMask: 0,
168
170
  stencilReadMask: 0
169
171
  };
170
- d[c.RENDERING_MASK_ADD] = {
172
+ l[c.RENDERING_MASK_ADD] = {
171
173
  stencilFront: {
172
174
  compare: "equal",
173
175
  passOp: "increment-clamp"
@@ -177,7 +179,7 @@ d[c.RENDERING_MASK_ADD] = {
177
179
  passOp: "increment-clamp"
178
180
  }
179
181
  };
180
- d[c.RENDERING_MASK_REMOVE] = {
182
+ l[c.RENDERING_MASK_REMOVE] = {
181
183
  stencilFront: {
182
184
  compare: "equal",
183
185
  passOp: "decrement-clamp"
@@ -187,7 +189,7 @@ d[c.RENDERING_MASK_REMOVE] = {
187
189
  passOp: "decrement-clamp"
188
190
  }
189
191
  };
190
- d[c.MASK_ACTIVE] = {
192
+ l[c.MASK_ACTIVE] = {
191
193
  stencilWriteMask: 0,
192
194
  stencilFront: {
193
195
  compare: "equal",
@@ -198,7 +200,7 @@ d[c.MASK_ACTIVE] = {
198
200
  passOp: "keep"
199
201
  }
200
202
  };
201
- d[c.INVERSE_MASK_ACTIVE] = {
203
+ l[c.INVERSE_MASK_ACTIVE] = {
202
204
  stencilWriteMask: 0,
203
205
  stencilFront: {
204
206
  compare: "not-equal",
@@ -234,10 +236,10 @@ class B {
234
236
  }
235
237
  _initUniformGroup(t) {
236
238
  const a = t._signature;
237
- let s = this._syncFunctionHash[a];
238
- if (!s) {
239
- const r = Object.keys(t.uniformStructures).map((l) => t.uniformStructures[l]), n = this._adaptor.createUboElements(r), o = this._generateUboSync(n.uboElements);
240
- s = this._syncFunctionHash[a] = {
239
+ let r = this._syncFunctionHash[a];
240
+ if (!r) {
241
+ const s = Object.keys(t.uniformStructures).map((d) => t.uniformStructures[d]), n = this._adaptor.createUboElements(s), o = this._generateUboSync(n.uboElements);
242
+ r = this._syncFunctionHash[a] = {
241
243
  layout: n,
242
244
  syncFunction: o
243
245
  };
@@ -247,14 +249,14 @@ class B {
247
249
  _generateUboSync(t) {
248
250
  return this._adaptor.generateUboSync(t);
249
251
  }
250
- syncUniformGroup(t, a, s) {
251
- const r = this.getUniformGroupData(t);
252
+ syncUniformGroup(t, a, r) {
253
+ const s = this.getUniformGroupData(t);
252
254
  t.buffer || (t.buffer = new _({
253
- data: new Float32Array(r.layout.size / 4),
255
+ data: new Float32Array(s.layout.size / 4),
254
256
  usage: m.UNIFORM | m.COPY_DST
255
257
  }));
256
258
  let n = null;
257
- return a || (a = t.buffer.data, n = t.buffer.dataInt32), s || (s = 0), r.syncFunction(t.uniforms, a, n, s), !0;
259
+ return a || (a = t.buffer.data, n = t.buffer.dataInt32), r || (r = 0), s.syncFunction(t.uniforms, a, n, r), !0;
258
260
  }
259
261
  updateUniformGroup(t) {
260
262
  if (t.isStatic && !t._dirtyId) return !1;
@@ -266,7 +268,7 @@ class B {
266
268
  this._syncFunctionHash = null;
267
269
  }
268
270
  }
269
- const h = [
271
+ const p = [
270
272
  // uploading pixi matrix object to mat3
271
273
  {
272
274
  type: "mat3x3<f32>",
@@ -374,8 +376,8 @@ const h = [
374
376
  `
375
377
  }
376
378
  ];
377
- function k(e, t, a, s) {
378
- const r = [`
379
+ function P(e, t, a, r) {
380
+ const s = [`
379
381
  var v = null;
380
382
  var v2 = null;
381
383
  var t = 0;
@@ -384,24 +386,24 @@ function k(e, t, a, s) {
384
386
  var arrayOffset = null;
385
387
  `];
386
388
  let n = 0;
387
- for (let l = 0; l < e.length; l++) {
388
- const f = e[l], b = f.data.name;
389
+ for (let d = 0; d < e.length; d++) {
390
+ const f = e[d], b = f.data.name;
389
391
  let y = !1, i = 0;
390
- for (let u = 0; u < h.length; u++)
391
- if (h[u].test(f.data)) {
392
- i = f.offset / 4, r.push(
392
+ for (let u = 0; u < p.length; u++)
393
+ if (p[u].test(f.data)) {
394
+ i = f.offset / 4, s.push(
393
395
  `name = "${b}";`,
394
396
  `offset += ${i - n};`,
395
- h[u][t] || h[u].ubo
397
+ p[u][t] || p[u].ubo
396
398
  ), y = !0;
397
399
  break;
398
400
  }
399
401
  if (!y)
400
402
  if (f.data.size > 1)
401
- i = f.offset / 4, r.push(a(f, i - n));
403
+ i = f.offset / 4, s.push(a(f, i - n));
402
404
  else {
403
- const u = s[f.data.type];
404
- i = f.offset / 4, r.push(
405
+ const u = r[f.data.type];
406
+ i = f.offset / 4, s.push(
405
407
  /* wgsl */
406
408
  `
407
409
  v = uv.${b};
@@ -412,7 +414,7 @@ function k(e, t, a, s) {
412
414
  }
413
415
  n = i;
414
416
  }
415
- const o = r.join(`
417
+ const o = s.join(`
416
418
  `);
417
419
  return new Function(
418
420
  "uv",
@@ -483,7 +485,7 @@ const F = {
483
485
  "mat4x3<f32>": v(4, 3),
484
486
  "mat2x4<f32>": v(2, 4),
485
487
  "mat3x4<f32>": v(3, 4)
486
- }, w = {
488
+ }, N = {
487
489
  ...F,
488
490
  "mat2x2<f32>": `
489
491
  data[offset] = v[0];
@@ -492,7 +494,7 @@ const F = {
492
494
  data[offset + 3] = v[3];
493
495
  `
494
496
  };
495
- class P extends I {
497
+ class z extends I {
496
498
  /**
497
499
  * Create a new Buffer Resource.
498
500
  * @param options - The options for the buffer resource
@@ -502,11 +504,11 @@ class P extends I {
502
504
  * @param options.size - The size of the buffer this resource is using.
503
505
  * If not provided, then it will use the size of the buffer.
504
506
  */
505
- constructor({ buffer: t, offset: a, size: s }) {
506
- super(), this.uid = p("buffer"), this._resourceType = "bufferResource", this._touched = 0, this._resourceId = p("resource"), this._bufferResource = !0, this.destroyed = !1, this.buffer = t, this.offset = a | 0, this.size = s, this.buffer.on("change", this.onBufferChange, this);
507
+ constructor({ buffer: t, offset: a, size: r }) {
508
+ super(), this.uid = h("buffer"), this._resourceType = "bufferResource", this._touched = 0, this._resourceId = h("resource"), this._bufferResource = !0, this.destroyed = !1, this.buffer = t, this.offset = a | 0, this.size = r, this.buffer.on("change", this.onBufferChange, this);
507
509
  }
508
510
  onBufferChange() {
509
- this._resourceId = p("resource"), this.emit("change", this);
511
+ this._resourceId = h("resource"), this.emit("change", this);
510
512
  }
511
513
  /**
512
514
  * Destroys this resource. Make sure the underlying buffer is not used anywhere else
@@ -518,18 +520,18 @@ class P extends I {
518
520
  }
519
521
  }
520
522
  export {
521
- P as B,
522
- d as G,
523
+ z as B,
524
+ l as G,
523
525
  B as U,
524
526
  x as a,
525
527
  F as b,
526
- k as c,
527
- h as d,
528
- A as e,
529
- D as f,
530
- R as g,
531
- C as l,
532
- O as t,
533
- w as u
528
+ P as c,
529
+ p as d,
530
+ w as e,
531
+ R as f,
532
+ k as g,
533
+ O as l,
534
+ A as t,
535
+ N as u
534
536
  };
535
- //# sourceMappingURL=BufferResource-B55p1jpv.js.map
537
+ //# sourceMappingURL=BufferResource-DeLlYxf8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BufferResource-B55p1jpv.js","sources":["../node_modules/pixi.js/lib/rendering/high-shader/shader-bits/localUniformBit.mjs","../node_modules/pixi.js/lib/rendering/high-shader/shader-bits/textureBit.mjs","../node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/ensureAttributes.mjs","../node_modules/pixi.js/lib/rendering/renderers/gpu/state/GpuStencilModesToPixi.mjs","../node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.mjs","../node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.mjs","../node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.mjs","../node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.mjs","../node_modules/pixi.js/lib/rendering/renderers/shared/buffer/BufferResource.mjs"],"sourcesContent":["\"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 textureBit = {\n name: \"texture-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n\n struct TextureUniforms {\n uTextureMatrix:mat3x3<f32>,\n }\n\n @group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;\n `\n ),\n main: (\n /* wgsl */\n `\n uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;\n `\n )\n },\n fragment: {\n header: (\n /* wgsl */\n `\n @group(2) @binding(0) var uTexture: texture_2d<f32>;\n @group(2) @binding(1) var uSampler: sampler;\n\n\n `\n ),\n main: (\n /* wgsl */\n `\n outColor = textureSample(uTexture, uSampler, vUV);\n `\n )\n }\n};\nconst textureBitGl = {\n name: \"texture-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n uniform mat3 uTextureMatrix;\n `\n ),\n main: (\n /* glsl */\n `\n uv = (uTextureMatrix * vec3(uv, 1.0)).xy;\n `\n )\n },\n fragment: {\n header: (\n /* glsl */\n `\n uniform sampler2D uTexture;\n\n\n `\n ),\n main: (\n /* glsl */\n `\n outColor = texture(uTexture, vUV);\n `\n )\n }\n};\n\nexport { textureBit, textureBitGl };\n//# sourceMappingURL=textureBit.mjs.map\n","import { warn } from '../../../../../utils/logging/warn.mjs';\nimport { getAttributeInfoFromFormat } from '../../../shared/geometry/utils/getAttributeInfoFromFormat.mjs';\n\n\"use strict\";\nfunction ensureAttributes(geometry, extractedData) {\n for (const i in geometry.attributes) {\n const attribute = geometry.attributes[i];\n const attributeData = extractedData[i];\n if (attributeData) {\n attribute.format ?? (attribute.format = attributeData.format);\n attribute.offset ?? (attribute.offset = attributeData.offset);\n attribute.instance ?? (attribute.instance = attributeData.instance);\n } else {\n warn(`Attribute ${i} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`);\n }\n }\n ensureStartAndStride(geometry);\n}\nfunction ensureStartAndStride(geometry) {\n const { buffers, attributes } = geometry;\n const tempStride = {};\n const tempStart = {};\n for (const j in buffers) {\n const buffer = buffers[j];\n tempStride[buffer.uid] = 0;\n tempStart[buffer.uid] = 0;\n }\n for (const j in attributes) {\n const attribute = attributes[j];\n tempStride[attribute.buffer.uid] += getAttributeInfoFromFormat(attribute.format).stride;\n }\n for (const j in attributes) {\n const attribute = attributes[j];\n attribute.stride ?? (attribute.stride = tempStride[attribute.buffer.uid]);\n attribute.start ?? (attribute.start = tempStart[attribute.buffer.uid]);\n tempStart[attribute.buffer.uid] += getAttributeInfoFromFormat(attribute.format).stride;\n }\n}\n\nexport { ensureAttributes };\n//# sourceMappingURL=ensureAttributes.mjs.map\n","import { STENCIL_MODES } from '../../shared/state/const.mjs';\n\n\"use strict\";\nconst GpuStencilModesToPixi = [];\nGpuStencilModesToPixi[STENCIL_MODES.NONE] = void 0;\nGpuStencilModesToPixi[STENCIL_MODES.DISABLED] = {\n stencilWriteMask: 0,\n stencilReadMask: 0\n};\nGpuStencilModesToPixi[STENCIL_MODES.RENDERING_MASK_ADD] = {\n stencilFront: {\n compare: \"equal\",\n passOp: \"increment-clamp\"\n },\n stencilBack: {\n compare: \"equal\",\n passOp: \"increment-clamp\"\n }\n};\nGpuStencilModesToPixi[STENCIL_MODES.RENDERING_MASK_REMOVE] = {\n stencilFront: {\n compare: \"equal\",\n passOp: \"decrement-clamp\"\n },\n stencilBack: {\n compare: \"equal\",\n passOp: \"decrement-clamp\"\n }\n};\nGpuStencilModesToPixi[STENCIL_MODES.MASK_ACTIVE] = {\n stencilWriteMask: 0,\n stencilFront: {\n compare: \"equal\",\n passOp: \"keep\"\n },\n stencilBack: {\n compare: \"equal\",\n passOp: \"keep\"\n }\n};\nGpuStencilModesToPixi[STENCIL_MODES.INVERSE_MASK_ACTIVE] = {\n stencilWriteMask: 0,\n stencilFront: {\n compare: \"not-equal\",\n passOp: \"keep\"\n },\n stencilBack: {\n compare: \"not-equal\",\n passOp: \"keep\"\n }\n};\n\nexport { GpuStencilModesToPixi };\n//# sourceMappingURL=GpuStencilModesToPixi.mjs.map\n","import { unsafeEvalSupported } from '../../../../utils/browser/unsafeEvalSupported.mjs';\nimport { Buffer } from '../buffer/Buffer.mjs';\nimport { BufferUsage } from '../buffer/const.mjs';\n\n\"use strict\";\nclass UboSystem {\n constructor(adaptor) {\n /** Cache of uniform buffer layouts and sync functions, so we don't have to re-create them */\n this._syncFunctionHash = /* @__PURE__ */ Object.create(null);\n this._adaptor = adaptor;\n this._systemCheck();\n }\n /**\n * Overridable function by `pixi.js/unsafe-eval` to silence\n * throwing an error if platform doesn't support unsafe-evals.\n * @private\n */\n _systemCheck() {\n if (!unsafeEvalSupported()) {\n throw new Error(\"Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.\");\n }\n }\n ensureUniformGroup(uniformGroup) {\n const uniformData = this.getUniformGroupData(uniformGroup);\n uniformGroup.buffer || (uniformGroup.buffer = new Buffer({\n data: new Float32Array(uniformData.layout.size / 4),\n usage: BufferUsage.UNIFORM | BufferUsage.COPY_DST\n }));\n }\n getUniformGroupData(uniformGroup) {\n return this._syncFunctionHash[uniformGroup._signature] || this._initUniformGroup(uniformGroup);\n }\n _initUniformGroup(uniformGroup) {\n const uniformGroupSignature = uniformGroup._signature;\n let uniformData = this._syncFunctionHash[uniformGroupSignature];\n if (!uniformData) {\n const elements = Object.keys(uniformGroup.uniformStructures).map((i) => uniformGroup.uniformStructures[i]);\n const layout = this._adaptor.createUboElements(elements);\n const syncFunction = this._generateUboSync(layout.uboElements);\n uniformData = this._syncFunctionHash[uniformGroupSignature] = {\n layout,\n syncFunction\n };\n }\n return this._syncFunctionHash[uniformGroupSignature];\n }\n _generateUboSync(uboElements) {\n return this._adaptor.generateUboSync(uboElements);\n }\n syncUniformGroup(uniformGroup, data, offset) {\n const uniformGroupData = this.getUniformGroupData(uniformGroup);\n uniformGroup.buffer || (uniformGroup.buffer = new Buffer({\n data: new Float32Array(uniformGroupData.layout.size / 4),\n usage: BufferUsage.UNIFORM | BufferUsage.COPY_DST\n }));\n let dataInt32 = null;\n if (!data) {\n data = uniformGroup.buffer.data;\n dataInt32 = uniformGroup.buffer.dataInt32;\n }\n offset || (offset = 0);\n uniformGroupData.syncFunction(uniformGroup.uniforms, data, dataInt32, offset);\n return true;\n }\n updateUniformGroup(uniformGroup) {\n if (uniformGroup.isStatic && !uniformGroup._dirtyId) return false;\n uniformGroup._dirtyId = 0;\n const synced = this.syncUniformGroup(uniformGroup);\n uniformGroup.buffer.update();\n return synced;\n }\n destroy() {\n this._syncFunctionHash = null;\n }\n}\n\nexport { UboSystem };\n//# sourceMappingURL=UboSystem.mjs.map\n","\"use strict\";\nconst uniformParsers = [\n // uploading pixi matrix object to mat3\n {\n type: \"mat3x3<f32>\",\n test: (data) => {\n const value = data.value;\n return value.a !== void 0;\n },\n ubo: `\n var matrix = uv[name].toArray(true);\n data[offset] = matrix[0];\n data[offset + 1] = matrix[1];\n data[offset + 2] = matrix[2];\n data[offset + 4] = matrix[3];\n data[offset + 5] = matrix[4];\n data[offset + 6] = matrix[5];\n data[offset + 8] = matrix[6];\n data[offset + 9] = matrix[7];\n data[offset + 10] = matrix[8];\n `,\n uniform: `\n gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));\n `\n },\n // uploading a pixi rectangle as a vec4\n {\n type: \"vec4<f32>\",\n test: (data) => data.type === \"vec4<f32>\" && data.size === 1 && data.value.width !== void 0,\n ubo: `\n v = uv[name];\n data[offset] = v.x;\n data[offset + 1] = v.y;\n data[offset + 2] = v.width;\n data[offset + 3] = v.height;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {\n cv[0] = v.x;\n cv[1] = v.y;\n cv[2] = v.width;\n cv[3] = v.height;\n gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);\n }\n `\n },\n // uploading a pixi point as a vec2\n {\n type: \"vec2<f32>\",\n test: (data) => data.type === \"vec2<f32>\" && data.size === 1 && data.value.x !== void 0,\n ubo: `\n v = uv[name];\n data[offset] = v.x;\n data[offset + 1] = v.y;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.x || cv[1] !== v.y) {\n cv[0] = v.x;\n cv[1] = v.y;\n gl.uniform2f(ud[name].location, v.x, v.y);\n }\n `\n },\n // uploading a pixi color as a vec4\n {\n type: \"vec4<f32>\",\n test: (data) => data.type === \"vec4<f32>\" && data.size === 1 && data.value.red !== void 0,\n ubo: `\n v = uv[name];\n data[offset] = v.red;\n data[offset + 1] = v.green;\n data[offset + 2] = v.blue;\n data[offset + 3] = v.alpha;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n cv[3] = v.alpha;\n gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);\n }\n `\n },\n // uploading a pixi color as a vec3\n {\n type: \"vec3<f32>\",\n test: (data) => data.type === \"vec3<f32>\" && data.size === 1 && data.value.red !== void 0,\n ubo: `\n v = uv[name];\n data[offset] = v.red;\n data[offset + 1] = v.green;\n data[offset + 2] = v.blue;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n gl.uniform3f(ud[name].location, v.red, v.green, v.blue);\n }\n `\n }\n];\n\nexport { uniformParsers };\n//# sourceMappingURL=uniformParsers.mjs.map\n","import { uniformParsers } from './uniformParsers.mjs';\n\n\"use strict\";\nfunction createUboSyncFunction(uboElements, parserCode, arrayGenerationFunction, singleSettersMap) {\n const funcFragments = [`\n var v = null;\n var v2 = null;\n var t = 0;\n var index = 0;\n var name = null;\n var arrayOffset = null;\n `];\n let prev = 0;\n for (let i = 0; i < uboElements.length; i++) {\n const uboElement = uboElements[i];\n const name = uboElement.data.name;\n let parsed = false;\n let offset = 0;\n for (let j = 0; j < uniformParsers.length; j++) {\n const uniformParser = uniformParsers[j];\n if (uniformParser.test(uboElement.data)) {\n offset = uboElement.offset / 4;\n funcFragments.push(\n `name = \"${name}\";`,\n `offset += ${offset - prev};`,\n uniformParsers[j][parserCode] || uniformParsers[j].ubo\n );\n parsed = true;\n break;\n }\n }\n if (!parsed) {\n if (uboElement.data.size > 1) {\n offset = uboElement.offset / 4;\n funcFragments.push(arrayGenerationFunction(uboElement, offset - prev));\n } else {\n const template = singleSettersMap[uboElement.data.type];\n offset = uboElement.offset / 4;\n funcFragments.push(\n /* wgsl */\n `\n v = uv.${name};\n offset += ${offset - prev};\n ${template};\n `\n );\n }\n }\n prev = offset;\n }\n const fragmentSrc = funcFragments.join(\"\\n\");\n return new Function(\n \"uv\",\n \"data\",\n \"dataInt32\",\n \"offset\",\n fragmentSrc\n );\n}\n\nexport { createUboSyncFunction };\n//# sourceMappingURL=createUboSyncFunction.mjs.map\n","\"use strict\";\nfunction loopMatrix(col, row) {\n const total = col * row;\n return `\n for (let i = 0; i < ${total}; i++) {\n data[offset + (((i / ${col})|0) * 4) + (i % ${col})] = v[i];\n }\n `;\n}\nconst uboSyncFunctionsSTD40 = {\n f32: `\n data[offset] = v;`,\n i32: `\n dataInt32[offset] = v;`,\n \"vec2<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];`,\n \"vec3<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];`,\n \"vec4<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];`,\n \"vec2<i32>\": `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];`,\n \"vec3<i32>\": `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];\n dataInt32[offset + 2] = v[2];`,\n \"vec4<i32>\": `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];\n dataInt32[offset + 2] = v[2];\n dataInt32[offset + 3] = v[3];`,\n \"mat2x2<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 4] = v[2];\n data[offset + 5] = v[3];`,\n \"mat3x3<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 4] = v[3];\n data[offset + 5] = v[4];\n data[offset + 6] = v[5];\n data[offset + 8] = v[6];\n data[offset + 9] = v[7];\n data[offset + 10] = v[8];`,\n \"mat4x4<f32>\": `\n for (let i = 0; i < 16; i++) {\n data[offset + i] = v[i];\n }`,\n \"mat3x2<f32>\": loopMatrix(3, 2),\n \"mat4x2<f32>\": loopMatrix(4, 2),\n \"mat2x3<f32>\": loopMatrix(2, 3),\n \"mat4x3<f32>\": loopMatrix(4, 3),\n \"mat2x4<f32>\": loopMatrix(2, 4),\n \"mat3x4<f32>\": loopMatrix(3, 4)\n};\nconst uboSyncFunctionsWGSL = {\n ...uboSyncFunctionsSTD40,\n \"mat2x2<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];\n `\n};\n\nexport { uboSyncFunctionsSTD40, uboSyncFunctionsWGSL };\n//# sourceMappingURL=uboSyncFunctions.mjs.map\n","import EventEmitter from 'eventemitter3';\nimport { uid } from '../../../../utils/data/uid.mjs';\n\n\"use strict\";\nclass BufferResource extends EventEmitter {\n /**\n * Create a new Buffer Resource.\n * @param options - The options for the buffer resource\n * @param options.buffer - The underlying buffer that this resource is using\n * @param options.offset - The offset of the buffer this resource is using.\n * If not provided, then it will use the offset of the buffer.\n * @param options.size - The size of the buffer this resource is using.\n * If not provided, then it will use the size of the buffer.\n */\n constructor({ buffer, offset, size }) {\n super();\n /**\n * emits when the underlying buffer has changed shape (i.e. resized)\n * letting the renderer know that it needs to discard the old buffer on the GPU and create a new one\n * @event change\n */\n /** a unique id for this uniform group used through the renderer */\n this.uid = uid(\"buffer\");\n /**\n * a resource type, used to identify how to handle it when its in a bind group / shader resource\n * @internal\n */\n this._resourceType = \"bufferResource\";\n /**\n * used internally to know if a uniform group was used in the last render pass\n * @internal\n */\n this._touched = 0;\n /**\n * the resource id used internally by the renderer to build bind group keys\n * @internal\n */\n this._resourceId = uid(\"resource\");\n /**\n * A cheeky hint to the GL renderer to let it know this is a BufferResource\n * @internal\n */\n this._bufferResource = true;\n /**\n * Has the Buffer resource been destroyed?\n * @readonly\n */\n this.destroyed = false;\n this.buffer = buffer;\n this.offset = offset | 0;\n this.size = size;\n this.buffer.on(\"change\", this.onBufferChange, this);\n }\n onBufferChange() {\n this._resourceId = uid(\"resource\");\n this.emit(\"change\", this);\n }\n /**\n * Destroys this resource. Make sure the underlying buffer is not used anywhere else\n * if you want to destroy it as well, or code will explode\n * @param destroyBuffer - Should the underlying buffer be destroyed as well?\n */\n destroy(destroyBuffer = false) {\n this.destroyed = true;\n if (destroyBuffer) {\n this.buffer.destroy();\n }\n this.emit(\"change\", this);\n this.buffer = null;\n this.removeAllListeners();\n }\n}\n\nexport { BufferResource };\n//# sourceMappingURL=BufferResource.mjs.map\n"],"names":["localUniformBit","localUniformBitGroup2","localUniformBitGl","textureBit","textureBitGl","ensureAttributes","geometry","extractedData","i","attribute","attributeData","warn","ensureStartAndStride","buffers","attributes","tempStride","tempStart","j","buffer","getAttributeInfoFromFormat","GpuStencilModesToPixi","STENCIL_MODES","UboSystem","adaptor","unsafeEvalSupported","uniformGroup","uniformData","Buffer","BufferUsage","uniformGroupSignature","elements","layout","syncFunction","uboElements","data","offset","uniformGroupData","dataInt32","synced","uniformParsers","createUboSyncFunction","parserCode","arrayGenerationFunction","singleSettersMap","funcFragments","prev","uboElement","name","parsed","template","fragmentSrc","loopMatrix","col","row","uboSyncFunctionsSTD40","uboSyncFunctionsWGSL","BufferResource","EventEmitter","size","uid","destroyBuffer"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}
1
+ {"version":3,"file":"BufferResource-DeLlYxf8.js","sources":["../node_modules/pixi.js/lib/rendering/high-shader/shader-bits/localUniformBit.mjs","../node_modules/pixi.js/lib/rendering/high-shader/shader-bits/textureBit.mjs","../node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/ensureAttributes.mjs","../node_modules/pixi.js/lib/rendering/renderers/gpu/state/GpuStencilModesToPixi.mjs","../node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.mjs","../node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.mjs","../node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.mjs","../node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.mjs","../node_modules/pixi.js/lib/rendering/renderers/shared/buffer/BufferResource.mjs"],"sourcesContent":["\"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 textureBit = {\n name: \"texture-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n\n struct TextureUniforms {\n uTextureMatrix:mat3x3<f32>,\n }\n\n @group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;\n `\n ),\n main: (\n /* wgsl */\n `\n uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;\n `\n )\n },\n fragment: {\n header: (\n /* wgsl */\n `\n @group(2) @binding(0) var uTexture: texture_2d<f32>;\n @group(2) @binding(1) var uSampler: sampler;\n\n\n `\n ),\n main: (\n /* wgsl */\n `\n outColor = textureSample(uTexture, uSampler, vUV);\n `\n )\n }\n};\nconst textureBitGl = {\n name: \"texture-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n uniform mat3 uTextureMatrix;\n `\n ),\n main: (\n /* glsl */\n `\n uv = (uTextureMatrix * vec3(uv, 1.0)).xy;\n `\n )\n },\n fragment: {\n header: (\n /* glsl */\n `\n uniform sampler2D uTexture;\n\n\n `\n ),\n main: (\n /* glsl */\n `\n outColor = texture(uTexture, vUV);\n `\n )\n }\n};\n\nexport { textureBit, textureBitGl };\n//# sourceMappingURL=textureBit.mjs.map\n","import { warn } from '../../../../../utils/logging/warn.mjs';\nimport { getAttributeInfoFromFormat } from '../../../shared/geometry/utils/getAttributeInfoFromFormat.mjs';\n\n\"use strict\";\nfunction ensureAttributes(geometry, extractedData) {\n for (const i in geometry.attributes) {\n const attribute = geometry.attributes[i];\n const attributeData = extractedData[i];\n if (attributeData) {\n attribute.format ?? (attribute.format = attributeData.format);\n attribute.offset ?? (attribute.offset = attributeData.offset);\n attribute.instance ?? (attribute.instance = attributeData.instance);\n } else {\n warn(`Attribute ${i} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`);\n }\n }\n ensureStartAndStride(geometry);\n}\nfunction ensureStartAndStride(geometry) {\n const { buffers, attributes } = geometry;\n const tempStride = {};\n const tempStart = {};\n for (const j in buffers) {\n const buffer = buffers[j];\n tempStride[buffer.uid] = 0;\n tempStart[buffer.uid] = 0;\n }\n for (const j in attributes) {\n const attribute = attributes[j];\n tempStride[attribute.buffer.uid] += getAttributeInfoFromFormat(attribute.format).stride;\n }\n for (const j in attributes) {\n const attribute = attributes[j];\n attribute.stride ?? (attribute.stride = tempStride[attribute.buffer.uid]);\n attribute.start ?? (attribute.start = tempStart[attribute.buffer.uid]);\n tempStart[attribute.buffer.uid] += getAttributeInfoFromFormat(attribute.format).stride;\n }\n}\n\nexport { ensureAttributes };\n//# sourceMappingURL=ensureAttributes.mjs.map\n","import { STENCIL_MODES } from '../../shared/state/const.mjs';\n\n\"use strict\";\nconst GpuStencilModesToPixi = [];\nGpuStencilModesToPixi[STENCIL_MODES.NONE] = void 0;\nGpuStencilModesToPixi[STENCIL_MODES.DISABLED] = {\n stencilWriteMask: 0,\n stencilReadMask: 0\n};\nGpuStencilModesToPixi[STENCIL_MODES.RENDERING_MASK_ADD] = {\n stencilFront: {\n compare: \"equal\",\n passOp: \"increment-clamp\"\n },\n stencilBack: {\n compare: \"equal\",\n passOp: \"increment-clamp\"\n }\n};\nGpuStencilModesToPixi[STENCIL_MODES.RENDERING_MASK_REMOVE] = {\n stencilFront: {\n compare: \"equal\",\n passOp: \"decrement-clamp\"\n },\n stencilBack: {\n compare: \"equal\",\n passOp: \"decrement-clamp\"\n }\n};\nGpuStencilModesToPixi[STENCIL_MODES.MASK_ACTIVE] = {\n stencilWriteMask: 0,\n stencilFront: {\n compare: \"equal\",\n passOp: \"keep\"\n },\n stencilBack: {\n compare: \"equal\",\n passOp: \"keep\"\n }\n};\nGpuStencilModesToPixi[STENCIL_MODES.INVERSE_MASK_ACTIVE] = {\n stencilWriteMask: 0,\n stencilFront: {\n compare: \"not-equal\",\n passOp: \"keep\"\n },\n stencilBack: {\n compare: \"not-equal\",\n passOp: \"keep\"\n }\n};\n\nexport { GpuStencilModesToPixi };\n//# sourceMappingURL=GpuStencilModesToPixi.mjs.map\n","import { unsafeEvalSupported } from '../../../../utils/browser/unsafeEvalSupported.mjs';\nimport { Buffer } from '../buffer/Buffer.mjs';\nimport { BufferUsage } from '../buffer/const.mjs';\n\n\"use strict\";\nclass UboSystem {\n constructor(adaptor) {\n /** Cache of uniform buffer layouts and sync functions, so we don't have to re-create them */\n this._syncFunctionHash = /* @__PURE__ */ Object.create(null);\n this._adaptor = adaptor;\n this._systemCheck();\n }\n /**\n * Overridable function by `pixi.js/unsafe-eval` to silence\n * throwing an error if platform doesn't support unsafe-evals.\n * @private\n */\n _systemCheck() {\n if (!unsafeEvalSupported()) {\n throw new Error(\"Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.\");\n }\n }\n ensureUniformGroup(uniformGroup) {\n const uniformData = this.getUniformGroupData(uniformGroup);\n uniformGroup.buffer || (uniformGroup.buffer = new Buffer({\n data: new Float32Array(uniformData.layout.size / 4),\n usage: BufferUsage.UNIFORM | BufferUsage.COPY_DST\n }));\n }\n getUniformGroupData(uniformGroup) {\n return this._syncFunctionHash[uniformGroup._signature] || this._initUniformGroup(uniformGroup);\n }\n _initUniformGroup(uniformGroup) {\n const uniformGroupSignature = uniformGroup._signature;\n let uniformData = this._syncFunctionHash[uniformGroupSignature];\n if (!uniformData) {\n const elements = Object.keys(uniformGroup.uniformStructures).map((i) => uniformGroup.uniformStructures[i]);\n const layout = this._adaptor.createUboElements(elements);\n const syncFunction = this._generateUboSync(layout.uboElements);\n uniformData = this._syncFunctionHash[uniformGroupSignature] = {\n layout,\n syncFunction\n };\n }\n return this._syncFunctionHash[uniformGroupSignature];\n }\n _generateUboSync(uboElements) {\n return this._adaptor.generateUboSync(uboElements);\n }\n syncUniformGroup(uniformGroup, data, offset) {\n const uniformGroupData = this.getUniformGroupData(uniformGroup);\n uniformGroup.buffer || (uniformGroup.buffer = new Buffer({\n data: new Float32Array(uniformGroupData.layout.size / 4),\n usage: BufferUsage.UNIFORM | BufferUsage.COPY_DST\n }));\n let dataInt32 = null;\n if (!data) {\n data = uniformGroup.buffer.data;\n dataInt32 = uniformGroup.buffer.dataInt32;\n }\n offset || (offset = 0);\n uniformGroupData.syncFunction(uniformGroup.uniforms, data, dataInt32, offset);\n return true;\n }\n updateUniformGroup(uniformGroup) {\n if (uniformGroup.isStatic && !uniformGroup._dirtyId) return false;\n uniformGroup._dirtyId = 0;\n const synced = this.syncUniformGroup(uniformGroup);\n uniformGroup.buffer.update();\n return synced;\n }\n destroy() {\n this._syncFunctionHash = null;\n }\n}\n\nexport { UboSystem };\n//# sourceMappingURL=UboSystem.mjs.map\n","\"use strict\";\nconst uniformParsers = [\n // uploading pixi matrix object to mat3\n {\n type: \"mat3x3<f32>\",\n test: (data) => {\n const value = data.value;\n return value.a !== void 0;\n },\n ubo: `\n var matrix = uv[name].toArray(true);\n data[offset] = matrix[0];\n data[offset + 1] = matrix[1];\n data[offset + 2] = matrix[2];\n data[offset + 4] = matrix[3];\n data[offset + 5] = matrix[4];\n data[offset + 6] = matrix[5];\n data[offset + 8] = matrix[6];\n data[offset + 9] = matrix[7];\n data[offset + 10] = matrix[8];\n `,\n uniform: `\n gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));\n `\n },\n // uploading a pixi rectangle as a vec4\n {\n type: \"vec4<f32>\",\n test: (data) => data.type === \"vec4<f32>\" && data.size === 1 && data.value.width !== void 0,\n ubo: `\n v = uv[name];\n data[offset] = v.x;\n data[offset + 1] = v.y;\n data[offset + 2] = v.width;\n data[offset + 3] = v.height;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {\n cv[0] = v.x;\n cv[1] = v.y;\n cv[2] = v.width;\n cv[3] = v.height;\n gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);\n }\n `\n },\n // uploading a pixi point as a vec2\n {\n type: \"vec2<f32>\",\n test: (data) => data.type === \"vec2<f32>\" && data.size === 1 && data.value.x !== void 0,\n ubo: `\n v = uv[name];\n data[offset] = v.x;\n data[offset + 1] = v.y;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.x || cv[1] !== v.y) {\n cv[0] = v.x;\n cv[1] = v.y;\n gl.uniform2f(ud[name].location, v.x, v.y);\n }\n `\n },\n // uploading a pixi color as a vec4\n {\n type: \"vec4<f32>\",\n test: (data) => data.type === \"vec4<f32>\" && data.size === 1 && data.value.red !== void 0,\n ubo: `\n v = uv[name];\n data[offset] = v.red;\n data[offset + 1] = v.green;\n data[offset + 2] = v.blue;\n data[offset + 3] = v.alpha;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n cv[3] = v.alpha;\n gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);\n }\n `\n },\n // uploading a pixi color as a vec3\n {\n type: \"vec3<f32>\",\n test: (data) => data.type === \"vec3<f32>\" && data.size === 1 && data.value.red !== void 0,\n ubo: `\n v = uv[name];\n data[offset] = v.red;\n data[offset + 1] = v.green;\n data[offset + 2] = v.blue;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n gl.uniform3f(ud[name].location, v.red, v.green, v.blue);\n }\n `\n }\n];\n\nexport { uniformParsers };\n//# sourceMappingURL=uniformParsers.mjs.map\n","import { uniformParsers } from './uniformParsers.mjs';\n\n\"use strict\";\nfunction createUboSyncFunction(uboElements, parserCode, arrayGenerationFunction, singleSettersMap) {\n const funcFragments = [`\n var v = null;\n var v2 = null;\n var t = 0;\n var index = 0;\n var name = null;\n var arrayOffset = null;\n `];\n let prev = 0;\n for (let i = 0; i < uboElements.length; i++) {\n const uboElement = uboElements[i];\n const name = uboElement.data.name;\n let parsed = false;\n let offset = 0;\n for (let j = 0; j < uniformParsers.length; j++) {\n const uniformParser = uniformParsers[j];\n if (uniformParser.test(uboElement.data)) {\n offset = uboElement.offset / 4;\n funcFragments.push(\n `name = \"${name}\";`,\n `offset += ${offset - prev};`,\n uniformParsers[j][parserCode] || uniformParsers[j].ubo\n );\n parsed = true;\n break;\n }\n }\n if (!parsed) {\n if (uboElement.data.size > 1) {\n offset = uboElement.offset / 4;\n funcFragments.push(arrayGenerationFunction(uboElement, offset - prev));\n } else {\n const template = singleSettersMap[uboElement.data.type];\n offset = uboElement.offset / 4;\n funcFragments.push(\n /* wgsl */\n `\n v = uv.${name};\n offset += ${offset - prev};\n ${template};\n `\n );\n }\n }\n prev = offset;\n }\n const fragmentSrc = funcFragments.join(\"\\n\");\n return new Function(\n \"uv\",\n \"data\",\n \"dataInt32\",\n \"offset\",\n fragmentSrc\n );\n}\n\nexport { createUboSyncFunction };\n//# sourceMappingURL=createUboSyncFunction.mjs.map\n","\"use strict\";\nfunction loopMatrix(col, row) {\n const total = col * row;\n return `\n for (let i = 0; i < ${total}; i++) {\n data[offset + (((i / ${col})|0) * 4) + (i % ${col})] = v[i];\n }\n `;\n}\nconst uboSyncFunctionsSTD40 = {\n f32: `\n data[offset] = v;`,\n i32: `\n dataInt32[offset] = v;`,\n \"vec2<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];`,\n \"vec3<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];`,\n \"vec4<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];`,\n \"vec2<i32>\": `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];`,\n \"vec3<i32>\": `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];\n dataInt32[offset + 2] = v[2];`,\n \"vec4<i32>\": `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];\n dataInt32[offset + 2] = v[2];\n dataInt32[offset + 3] = v[3];`,\n \"mat2x2<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 4] = v[2];\n data[offset + 5] = v[3];`,\n \"mat3x3<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 4] = v[3];\n data[offset + 5] = v[4];\n data[offset + 6] = v[5];\n data[offset + 8] = v[6];\n data[offset + 9] = v[7];\n data[offset + 10] = v[8];`,\n \"mat4x4<f32>\": `\n for (let i = 0; i < 16; i++) {\n data[offset + i] = v[i];\n }`,\n \"mat3x2<f32>\": loopMatrix(3, 2),\n \"mat4x2<f32>\": loopMatrix(4, 2),\n \"mat2x3<f32>\": loopMatrix(2, 3),\n \"mat4x3<f32>\": loopMatrix(4, 3),\n \"mat2x4<f32>\": loopMatrix(2, 4),\n \"mat3x4<f32>\": loopMatrix(3, 4)\n};\nconst uboSyncFunctionsWGSL = {\n ...uboSyncFunctionsSTD40,\n \"mat2x2<f32>\": `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];\n `\n};\n\nexport { uboSyncFunctionsSTD40, uboSyncFunctionsWGSL };\n//# sourceMappingURL=uboSyncFunctions.mjs.map\n","import EventEmitter from 'eventemitter3';\nimport { uid } from '../../../../utils/data/uid.mjs';\n\n\"use strict\";\nclass BufferResource extends EventEmitter {\n /**\n * Create a new Buffer Resource.\n * @param options - The options for the buffer resource\n * @param options.buffer - The underlying buffer that this resource is using\n * @param options.offset - The offset of the buffer this resource is using.\n * If not provided, then it will use the offset of the buffer.\n * @param options.size - The size of the buffer this resource is using.\n * If not provided, then it will use the size of the buffer.\n */\n constructor({ buffer, offset, size }) {\n super();\n /**\n * emits when the underlying buffer has changed shape (i.e. resized)\n * letting the renderer know that it needs to discard the old buffer on the GPU and create a new one\n * @event change\n */\n /** a unique id for this uniform group used through the renderer */\n this.uid = uid(\"buffer\");\n /**\n * a resource type, used to identify how to handle it when its in a bind group / shader resource\n * @internal\n */\n this._resourceType = \"bufferResource\";\n /**\n * used internally to know if a uniform group was used in the last render pass\n * @internal\n */\n this._touched = 0;\n /**\n * the resource id used internally by the renderer to build bind group keys\n * @internal\n */\n this._resourceId = uid(\"resource\");\n /**\n * A cheeky hint to the GL renderer to let it know this is a BufferResource\n * @internal\n */\n this._bufferResource = true;\n /**\n * Has the Buffer resource been destroyed?\n * @readonly\n */\n this.destroyed = false;\n this.buffer = buffer;\n this.offset = offset | 0;\n this.size = size;\n this.buffer.on(\"change\", this.onBufferChange, this);\n }\n onBufferChange() {\n this._resourceId = uid(\"resource\");\n this.emit(\"change\", this);\n }\n /**\n * Destroys this resource. Make sure the underlying buffer is not used anywhere else\n * if you want to destroy it as well, or code will explode\n * @param destroyBuffer - Should the underlying buffer be destroyed as well?\n */\n destroy(destroyBuffer = false) {\n this.destroyed = true;\n if (destroyBuffer) {\n this.buffer.destroy();\n }\n this.emit(\"change\", this);\n this.buffer = null;\n this.removeAllListeners();\n }\n}\n\nexport { BufferResource };\n//# sourceMappingURL=BufferResource.mjs.map\n"],"names":["localUniformBit","localUniformBitGroup2","localUniformBitGl","textureBit","textureBitGl","ensureAttributes","geometry","extractedData","i","attribute","attributeData","warn","ensureStartAndStride","buffers","attributes","tempStride","tempStart","j","buffer","getAttributeInfoFromFormat","GpuStencilModesToPixi","STENCIL_MODES","UboSystem","adaptor","unsafeEvalSupported","uniformGroup","uniformData","Buffer","BufferUsage","uniformGroupSignature","elements","layout","syncFunction","uboElements","data","offset","uniformGroupData","dataInt32","synced","uniformParsers","createUboSyncFunction","parserCode","arrayGenerationFunction","singleSettersMap","funcFragments","prev","uboElement","name","parsed","template","fragmentSrc","loopMatrix","col","row","uboSyncFunctionsSTD40","uboSyncFunctionsWGSL","BufferResource","EventEmitter","size","uid","destroyBuffer"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}