aoi-comp 1.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.
@@ -0,0 +1,1840 @@
1
+ import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
+ import { R as t, V as n, W as r, b as i, c as a, d as o, et as s, g as c, it as l, l as u, n as d, o as f, r as p, rt as m, s as h, u as g, y as _ } from "./Geometry-CN7W9DnD.js";
3
+ import { D as ee, O as v, T as te, d as y, g as ne, m as re, n as ie, r as ae, t as oe, v as se, w as b, x } from "./RenderTargetSystem-D_FiZPnb.js";
4
+ import { t as S } from "./getTextureBatchBindGroup-CLFTP_Vc.js";
5
+ import { t as C } from "./CanvasPool-C3aVgvEX.js";
6
+ import { c as w, d as ce, i as le, l as ue, o as de, p as fe, r as pe, s as me, t as he } from "./BufferResource-CVU-ZRRz.js";
7
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/batcher/gpu/GpuBatchAdaptor.mjs
8
+ var T = f.for2d(), E = class {
9
+ start(e, t, n) {
10
+ let r = e.renderer, i = r.encoder, a = n.gpuProgram;
11
+ this._shader = n, this._geometry = t, i.setGeometry(t, a), T.blendMode = "normal", r.pipeline.getPipeline(t, a, T, void 0, n._overrides);
12
+ let o = r.globalUniforms.bindGroup;
13
+ i.resetBindGroup(1), i.setBindGroup(0, o, a);
14
+ }
15
+ execute(e, t) {
16
+ let n = this._shader.gpuProgram, r = e.renderer, i = r.encoder;
17
+ if (!t.bindGroup) {
18
+ let e = t.textures;
19
+ t.bindGroup = S(e.textures, e.count, r.limits.maxBatchableTextures);
20
+ }
21
+ T.blendMode = t.blendMode;
22
+ let a = r.bindGroup.getBindGroup(t.bindGroup, n, 1), o = r.pipeline.getPipeline(this._geometry, n, T, t.topology, this._shader._overrides);
23
+ t.bindGroup._touch(r.gc.now, r.tick), i.setPipeline(o), i.renderPassEncoder.setBindGroup(1, a), i.renderPassEncoder.drawIndexed(t.size, 1, t.start);
24
+ }
25
+ };
26
+ E.extension = {
27
+ type: [m.WebGPUPipesAdaptor],
28
+ name: "batch"
29
+ };
30
+ //#endregion
31
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/BindGroupSystem.mjs
32
+ var D = class {
33
+ constructor(e) {
34
+ this._hash = /* @__PURE__ */ Object.create(null), this._renderer = e;
35
+ }
36
+ contextChange(e) {
37
+ this._gpu = e;
38
+ }
39
+ getBindGroup(e, t, n) {
40
+ let r = `${e._key}:${t._layoutKey << 4 | n}`;
41
+ return this._hash[r] || this._createBindGroup(r, e, t, n);
42
+ }
43
+ _createBindGroup(e, t, n, r) {
44
+ let i = this._gpu.device, a = n.layout[r], o = [], s = this._renderer;
45
+ for (let e in a) {
46
+ let n = t.resources[e] ?? t.resources[a[e]];
47
+ if (!n || n.destroyed) throw Error(`[BindGroup] the resource bound as '${e}' was destroyed while a shader still uses it. Remove it from the shader before destroying it.`);
48
+ let r;
49
+ if (n._resourceType === "uniformGroup") {
50
+ let e = n;
51
+ s.ubo.updateUniformGroup(e);
52
+ let t = e.buffer;
53
+ r = {
54
+ buffer: s.buffer.getGPUBuffer(t),
55
+ offset: 0,
56
+ size: t.descriptor.size
57
+ };
58
+ } else if (n._resourceType === "buffer") {
59
+ let e = n;
60
+ r = {
61
+ buffer: s.buffer.getGPUBuffer(e),
62
+ offset: 0,
63
+ size: e.descriptor.size
64
+ };
65
+ } else if (n._resourceType === "bufferResource") {
66
+ let e = n;
67
+ r = {
68
+ buffer: s.buffer.getGPUBuffer(e.buffer),
69
+ offset: e.offset,
70
+ size: e.size ?? e.buffer.descriptor.size
71
+ };
72
+ } else if (n._resourceType === "textureSampler") {
73
+ let e = n;
74
+ r = s.texture.getGpuSampler(e);
75
+ } else if (n._resourceType === "textureSource") {
76
+ let e = n;
77
+ r = s.texture.getTextureView(e);
78
+ } else if (n._resourceType === "textureView") {
79
+ let e = n;
80
+ r = s.texture.getTextureView(e.source, e.viewDescriptor);
81
+ }
82
+ o.push({
83
+ binding: a[e],
84
+ resource: r
85
+ });
86
+ }
87
+ let c = s.shader.getProgramData(n).bindGroups[r], l = i.createBindGroup({
88
+ layout: c,
89
+ entries: o
90
+ });
91
+ return this._hash[e] = l, l;
92
+ }
93
+ destroy() {
94
+ this._hash = null, this._renderer = null;
95
+ }
96
+ };
97
+ D.extension = {
98
+ type: [m.WebGPUSystem],
99
+ name: "bindGroup"
100
+ };
101
+ //#endregion
102
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/buffer/GpuBufferSystem.mjs
103
+ var ge = class {
104
+ constructor(e) {
105
+ this.gpuBuffer = e;
106
+ }
107
+ destroy() {
108
+ this.gpuBuffer.destroy(), this.gpuBuffer = null;
109
+ }
110
+ }, O = class {
111
+ constructor(e) {
112
+ this._renderer = e, this._managedBuffers = new y({
113
+ renderer: e,
114
+ type: "resource",
115
+ onUnload: this.onBufferUnload.bind(this),
116
+ name: "gpuBuffer"
117
+ });
118
+ }
119
+ contextChange(e) {
120
+ this._gpu = e;
121
+ }
122
+ getGPUBuffer(e) {
123
+ return e._gcLastUsed = this._renderer.gc.now, e._gpuData[this._renderer.uid]?.gpuBuffer || this.createGPUBuffer(e);
124
+ }
125
+ updateBuffer(e) {
126
+ let t = this.getGPUBuffer(e), n = e.data;
127
+ return e._updateID && n && (e._updateID = 0, this._gpu.device.queue.writeBuffer(t, e._updateOffset, n.buffer, n.byteOffset + e._updateOffset, (e._updateSize || n.byteLength) + 3 & -4)), t;
128
+ }
129
+ destroyAll() {
130
+ this._managedBuffers.removeAll();
131
+ }
132
+ onBufferUnload(e) {
133
+ e.off("update", this.updateBuffer, this), e.off("change", this.onBufferChange, this);
134
+ }
135
+ createGPUBuffer(e) {
136
+ let t = this._gpu.device.createBuffer(e.descriptor);
137
+ return e._updateID = 0, e.data && (te(e.data.buffer, t.getMappedRange(), e.data.byteOffset, e.data.byteLength), t.unmap()), e._gpuData[this._renderer.uid] = new ge(t), this._managedBuffers.add(e) && (e.on("update", this.updateBuffer, this), e.on("change", this.onBufferChange, this)), t;
138
+ }
139
+ onBufferChange(e) {
140
+ this._managedBuffers.remove(e), e._updateID = 0, this.createGPUBuffer(e);
141
+ }
142
+ destroy() {
143
+ this._managedBuffers.destroy(), this._renderer = null, this._gpu = null;
144
+ }
145
+ };
146
+ O.extension = {
147
+ type: [m.WebGPUSystem],
148
+ name: "buffer"
149
+ };
150
+ //#endregion
151
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/buffer/UboBatch.mjs
152
+ var _e = class {
153
+ constructor({ minUniformOffsetAlignment: e }) {
154
+ this._minUniformOffsetAlignment = 256, this.byteIndex = 0, this._minUniformOffsetAlignment = e, this.data = /* @__PURE__ */ new Float32Array(65535);
155
+ }
156
+ clear() {
157
+ this.byteIndex = 0;
158
+ }
159
+ addEmptyGroup(e) {
160
+ if (e > this._minUniformOffsetAlignment / 4) throw Error(`UniformBufferBatch: array is too large: ${e * 4}`);
161
+ let t = this.byteIndex, n = t + e * 4;
162
+ if (n = Math.ceil(n / this._minUniformOffsetAlignment) * this._minUniformOffsetAlignment, n > this.data.length * 4) throw Error("UniformBufferBatch: ubo batch got too big");
163
+ return this.byteIndex = n, t;
164
+ }
165
+ addGroup(e) {
166
+ let t = this.addEmptyGroup(e.length);
167
+ for (let n = 0; n < e.length; n++) this.data[t / 4 + n] = e[n];
168
+ return t;
169
+ }
170
+ destroy() {
171
+ this.data = null;
172
+ }
173
+ }, k = class {
174
+ constructor(e) {
175
+ this._colorMaskCache = 15, this._renderer = e;
176
+ }
177
+ setMask(e) {
178
+ this._colorMaskCache !== e && (this._colorMaskCache = e, this._renderer.pipeline.setColorMask(e));
179
+ }
180
+ destroy() {
181
+ this._renderer = null, this._colorMaskCache = null;
182
+ }
183
+ };
184
+ k.extension = {
185
+ type: [m.WebGPUSystem],
186
+ name: "colorMask"
187
+ };
188
+ //#endregion
189
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuDeviceSystem.mjs
190
+ var A = class {
191
+ constructor(e) {
192
+ this._renderer = e;
193
+ }
194
+ async init(e) {
195
+ return this._initPromise ||= (e.gpu ? Promise.resolve(e.gpu) : this._createDeviceAndAdaptor(e)).then((e) => {
196
+ this.gpu = e, this.extensions = { transientAttachment: typeof GPUTextureUsage.TRANSIENT_ATTACHMENT == "number" }, this._renderer.runners.contextChange.emit(this.gpu);
197
+ }), this._initPromise;
198
+ }
199
+ contextChange(e) {
200
+ this._renderer.gpu = e;
201
+ }
202
+ async _createDeviceAndAdaptor(e) {
203
+ let t = await i.get().getNavigator().gpu.requestAdapter({
204
+ powerPreference: e.powerPreference,
205
+ forceFallbackAdapter: e.forceFallbackAdapter
206
+ });
207
+ if (!t) throw Error("WebGPU not supported. No GPU adapter was returned by navigator.gpu.requestAdapter().");
208
+ let n = [
209
+ "texture-compression-bc",
210
+ "texture-compression-astc",
211
+ "texture-compression-etc2",
212
+ "indirect-first-instance"
213
+ ].filter((e) => t.features.has(e));
214
+ return {
215
+ adapter: t,
216
+ device: await t.requestDevice({
217
+ requiredFeatures: n,
218
+ requiredLimits: {
219
+ maxSampledTexturesPerShaderStage: t.limits.maxSampledTexturesPerShaderStage,
220
+ maxSamplersPerShaderStage: t.limits.maxSamplersPerShaderStage
221
+ }
222
+ })
223
+ };
224
+ }
225
+ destroy() {
226
+ this.gpu = null, this.extensions = null, this._renderer = null;
227
+ }
228
+ };
229
+ A.extension = {
230
+ type: [m.WebGPUSystem],
231
+ name: "device"
232
+ }, A.defaultOptions = {
233
+ powerPreference: void 0,
234
+ forceFallbackAdapter: !1
235
+ };
236
+ //#endregion
237
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuEncoderSystem.mjs
238
+ var j = class {
239
+ constructor(e) {
240
+ this._boundBindGroup = /* @__PURE__ */ Object.create(null), this._boundVertexBuffer = /* @__PURE__ */ Object.create(null), this._renderer = e;
241
+ for (let e = 0; e < 16; e++) this._boundBindGroup[e] = {
242
+ bindGroup: null,
243
+ program: null,
244
+ key: null
245
+ };
246
+ }
247
+ renderStart() {
248
+ this.commandFinished = new Promise((e) => {
249
+ this._resolveCommandFinished = e;
250
+ }), this.commandEncoder = this._renderer.gpu.device.createCommandEncoder();
251
+ }
252
+ beginRenderPass(e) {
253
+ this.endRenderPass(), this._clearCache(), this._passEncoder = this.commandEncoder.beginRenderPass(e.descriptor), this.renderPassEncoder = this._passEncoder;
254
+ }
255
+ endRenderPass() {
256
+ this._passEncoder && this._passEncoder.end(), this.renderPassEncoder = null, this._passEncoder = null;
257
+ }
258
+ beginBundle() {
259
+ if (this._passEncoder !== this.renderPassEncoder) throw Error("Cannot begin a new render bundle while one is already being recorded.");
260
+ this._clearCache();
261
+ let e = this._renderer.pipeline.getBundleDescriptor();
262
+ this.renderPassEncoder = this._gpu.device.createRenderBundleEncoder(e);
263
+ }
264
+ endBundle() {
265
+ let e = this.renderPassEncoder;
266
+ if (!e || !("finish" in e)) throw Error("endBundle called without an active render bundle.");
267
+ let t = e.finish();
268
+ return this.renderPassEncoder = this._passEncoder, this._clearCache(), t;
269
+ }
270
+ executeBundle(e) {
271
+ this._clearCache(), this._passEncoder.executeBundles([e]);
272
+ }
273
+ setViewport(e) {
274
+ this._passEncoder.setViewport(e.x, e.y, e.width, e.height, 0, 1);
275
+ }
276
+ setStencilReference(e) {
277
+ this._passEncoder.setStencilReference(e);
278
+ }
279
+ setPipelineFromGeometryProgramAndState(e, t, n, r, i) {
280
+ let a = this._renderer.pipeline.getPipeline(e, t, n, r, i);
281
+ this.setPipeline(a);
282
+ }
283
+ setPipeline(e) {
284
+ this._boundPipeline !== e && (this._boundPipeline = e, this.renderPassEncoder.setPipeline(e));
285
+ }
286
+ _setVertexBuffer(e, t) {
287
+ this._boundVertexBuffer[e] !== t && (this._boundVertexBuffer[e] = t, this.renderPassEncoder.setVertexBuffer(e, this._renderer.buffer.updateBuffer(t)));
288
+ }
289
+ _setIndexBuffer(e) {
290
+ if (this._boundIndexBuffer === e) return;
291
+ this._boundIndexBuffer = e;
292
+ let t = e.data.BYTES_PER_ELEMENT === 2 ? "uint16" : "uint32";
293
+ this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e), t);
294
+ }
295
+ resetBindGroup(e) {
296
+ let t = this._boundBindGroup[e];
297
+ t.bindGroup = null, t.program = null, t.key = null;
298
+ }
299
+ setBindGroup(e, t, n) {
300
+ let r = this._boundBindGroup[e];
301
+ if (r.bindGroup === t && r.program === n && r.key === t._key) return;
302
+ r.bindGroup = t, r.program = n, r.key = t._key, t._touch(this._renderer.gc.now, this._renderer.tick);
303
+ let i = this._renderer.bindGroup.getBindGroup(t, n, e);
304
+ this.renderPassEncoder.setBindGroup(e, i);
305
+ }
306
+ setGeometry(e, t) {
307
+ let n = this._renderer.pipeline.getBufferNamesToBind(e, t);
308
+ for (let t in n) this._setVertexBuffer(parseInt(t, 10), e.attributes[n[t]].buffer);
309
+ e.indexBuffer && this._setIndexBuffer(e.indexBuffer);
310
+ }
311
+ _setShaderBindGroups(e, t) {
312
+ let n = e.gpuProgram;
313
+ for (let r in e.groups) {
314
+ if (!n.layout[r]) continue;
315
+ let i = e.groups[r];
316
+ t || this._syncBindGroup(i), this.setBindGroup(r, i, n);
317
+ }
318
+ }
319
+ _syncBindGroup(e) {
320
+ for (let t in e.resources) {
321
+ let n = e.resources[t];
322
+ n && n.isUniformGroup && this._renderer.ubo.updateUniformGroup(n);
323
+ }
324
+ }
325
+ draw(e) {
326
+ let { geometry: t, shader: n, state: r, topology: i, size: a, start: o, baseVertex: s, instanceCount: c, skipSync: l, firstInstance: u } = e;
327
+ this.setPipelineFromGeometryProgramAndState(t, n.gpuProgram, r, i, n._overrides), this.setGeometry(t, n.gpuProgram), this._setShaderBindGroups(n, l), t.indexBuffer ? this.renderPassEncoder.drawIndexed(a || t.indexBuffer.data.length, c ?? t.instanceCount, o || 0, s || 0, u || 0) : this.renderPassEncoder.draw(a || t.vertexCount, c ?? t.instanceCount, o || 0, u || 0);
328
+ }
329
+ drawIndirect(e) {
330
+ let { geometry: t, shader: n, state: r, topology: i, skipSync: a, indirectBuffer: o, indirectOffset: s } = e;
331
+ this.setPipelineFromGeometryProgramAndState(t, n.gpuProgram, r, i, n._overrides), this.setGeometry(t, n.gpuProgram), this._setShaderBindGroups(n, a), t.indexBuffer ? this.renderPassEncoder.drawIndexedIndirect(o, s) : this.renderPassEncoder.drawIndirect(o, s);
332
+ }
333
+ finishRenderPass() {
334
+ this._passEncoder &&= (this._passEncoder.end(), this.renderPassEncoder = null, null);
335
+ }
336
+ postrender() {
337
+ this.finishRenderPass(), this._gpu.device.queue.submit([this.commandEncoder.finish()]), this._resolveCommandFinished(), this.commandEncoder = null;
338
+ }
339
+ _clearCache() {
340
+ for (let e = 0; e < 16; e++) {
341
+ let t = this._boundBindGroup[e];
342
+ t.bindGroup = null, t.program = null, t.key = null, this._boundVertexBuffer[e] = null;
343
+ }
344
+ this._boundIndexBuffer = null, this._boundPipeline = null;
345
+ }
346
+ destroy() {
347
+ this._renderer = null, this._gpu = null, this._boundBindGroup = null, this._boundVertexBuffer = null, this._boundIndexBuffer = null, this._boundPipeline = null, this.renderPassEncoder = null, this._passEncoder = null;
348
+ }
349
+ contextChange(e) {
350
+ this._gpu = e;
351
+ }
352
+ };
353
+ j.extension = {
354
+ type: [m.WebGPUSystem],
355
+ name: "encoder",
356
+ priority: 1
357
+ };
358
+ //#endregion
359
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuLimitsSystem.mjs
360
+ var M = class {
361
+ constructor(e) {
362
+ this.supportsOverrideConstants = !1, this._renderer = e;
363
+ }
364
+ contextChange() {
365
+ let e = this._renderer.device.gpu.device;
366
+ this.maxTextures = Math.min(e.limits.maxSampledTexturesPerShaderStage, e.limits.maxSamplersPerShaderStage), this.maxBatchableTextures = this.maxTextures, this._detectOverrideConstantsSupport(e);
367
+ }
368
+ _detectOverrideConstantsSupport(e) {
369
+ e.pushErrorScope("validation");
370
+ let t = e.createShaderModule({ code: "override TEST_VALUE: f32 = 0.0;\n@compute @workgroup_size(1) fn main() {}" });
371
+ e.createComputePipeline({
372
+ layout: "auto",
373
+ compute: {
374
+ module: t,
375
+ entryPoint: "main",
376
+ constants: { TEST_VALUE: 1 }
377
+ }
378
+ }), e.popErrorScope().then((e) => {
379
+ this.supportsOverrideConstants = !e;
380
+ });
381
+ }
382
+ destroy() {}
383
+ };
384
+ M.extension = {
385
+ type: [m.WebGPUSystem],
386
+ name: "limits"
387
+ };
388
+ //#endregion
389
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuStencilSystem.mjs
390
+ var N = class {
391
+ constructor(e) {
392
+ this._renderTargetStencilState = /* @__PURE__ */ Object.create(null), this._renderer = e, e.renderTarget.onRenderTargetChange.add(this);
393
+ }
394
+ onRenderTargetChange(e) {
395
+ let t = this._renderTargetStencilState[e.uid];
396
+ t ||= this._renderTargetStencilState[e.uid] = {
397
+ stencilMode: b.DISABLED,
398
+ stencilReference: 0
399
+ }, this._activeRenderTarget = e, this.setStencilMode(t.stencilMode, t.stencilReference);
400
+ }
401
+ setStencilMode(e, t) {
402
+ let n = this._renderTargetStencilState[this._activeRenderTarget.uid];
403
+ n.stencilMode = e, n.stencilReference = t;
404
+ let r = this._renderer;
405
+ r.pipeline.setStencilMode(e), r.encoder.setStencilReference(t);
406
+ }
407
+ destroy() {
408
+ this._renderer.renderTarget.onRenderTargetChange.remove(this), this._renderer = null, this._activeRenderTarget = null, this._renderTargetStencilState = null;
409
+ }
410
+ };
411
+ N.extension = {
412
+ type: [m.WebGPUSystem],
413
+ name: "stencil"
414
+ };
415
+ //#endregion
416
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/createUboElementsWGSL.mjs
417
+ var P = {
418
+ i32: {
419
+ align: 4,
420
+ size: 4
421
+ },
422
+ u32: {
423
+ align: 4,
424
+ size: 4
425
+ },
426
+ f32: {
427
+ align: 4,
428
+ size: 4
429
+ },
430
+ f16: {
431
+ align: 2,
432
+ size: 2
433
+ },
434
+ "vec2<i32>": {
435
+ align: 8,
436
+ size: 8
437
+ },
438
+ "vec2<u32>": {
439
+ align: 8,
440
+ size: 8
441
+ },
442
+ "vec2<f32>": {
443
+ align: 8,
444
+ size: 8
445
+ },
446
+ "vec2<f16>": {
447
+ align: 4,
448
+ size: 4
449
+ },
450
+ "vec3<i32>": {
451
+ align: 16,
452
+ size: 12
453
+ },
454
+ "vec3<u32>": {
455
+ align: 16,
456
+ size: 12
457
+ },
458
+ "vec3<f32>": {
459
+ align: 16,
460
+ size: 12
461
+ },
462
+ "vec3<f16>": {
463
+ align: 8,
464
+ size: 6
465
+ },
466
+ "vec4<i32>": {
467
+ align: 16,
468
+ size: 16
469
+ },
470
+ "vec4<u32>": {
471
+ align: 16,
472
+ size: 16
473
+ },
474
+ "vec4<f32>": {
475
+ align: 16,
476
+ size: 16
477
+ },
478
+ "vec4<f16>": {
479
+ align: 8,
480
+ size: 8
481
+ },
482
+ "mat2x2<f32>": {
483
+ align: 8,
484
+ size: 16
485
+ },
486
+ "mat2x2<f16>": {
487
+ align: 4,
488
+ size: 8
489
+ },
490
+ "mat3x2<f32>": {
491
+ align: 8,
492
+ size: 24
493
+ },
494
+ "mat3x2<f16>": {
495
+ align: 4,
496
+ size: 12
497
+ },
498
+ "mat4x2<f32>": {
499
+ align: 8,
500
+ size: 32
501
+ },
502
+ "mat4x2<f16>": {
503
+ align: 4,
504
+ size: 16
505
+ },
506
+ "mat2x3<f32>": {
507
+ align: 16,
508
+ size: 32
509
+ },
510
+ "mat2x3<f16>": {
511
+ align: 8,
512
+ size: 16
513
+ },
514
+ "mat3x3<f32>": {
515
+ align: 16,
516
+ size: 48
517
+ },
518
+ "mat3x3<f16>": {
519
+ align: 8,
520
+ size: 24
521
+ },
522
+ "mat4x3<f32>": {
523
+ align: 16,
524
+ size: 64
525
+ },
526
+ "mat4x3<f16>": {
527
+ align: 8,
528
+ size: 32
529
+ },
530
+ "mat2x4<f32>": {
531
+ align: 16,
532
+ size: 32
533
+ },
534
+ "mat2x4<f16>": {
535
+ align: 8,
536
+ size: 16
537
+ },
538
+ "mat3x4<f32>": {
539
+ align: 16,
540
+ size: 48
541
+ },
542
+ "mat3x4<f16>": {
543
+ align: 8,
544
+ size: 24
545
+ },
546
+ "mat4x4<f32>": {
547
+ align: 16,
548
+ size: 64
549
+ },
550
+ "mat4x4<f16>": {
551
+ align: 8,
552
+ size: 32
553
+ }
554
+ };
555
+ function ve(e) {
556
+ let t = e.map((e) => ({
557
+ data: e,
558
+ offset: 0,
559
+ size: 0
560
+ })), n = 0;
561
+ for (let e = 0; e < t.length; e++) {
562
+ let r = t[e], i = P[r.data.type].size, a = P[r.data.type].align;
563
+ if (!P[r.data.type]) throw Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${r.data.type}`);
564
+ r.data.size > 1 && (i = Math.max(i, a) * r.data.size), n = Math.ceil(n / a) * a, r.size = i, r.offset = n, n += i;
565
+ }
566
+ return n = Math.ceil(n / 16) * 16, {
567
+ uboElements: t,
568
+ size: n
569
+ };
570
+ }
571
+ //#endregion
572
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/generateArraySyncWGSL.mjs
573
+ function ye(e, t) {
574
+ let { size: n, align: r } = P[e.data.type], i = (r - n) / 4, a = e.data.type.indexOf("i32") >= 0 ? "dataInt32" : "data";
575
+ return `
576
+ v = uv.${e.data.name};
577
+ ${t === 0 ? "" : `offset += ${t};`}
578
+
579
+ arrayOffset = offset;
580
+
581
+ t = 0;
582
+
583
+ for(var i=0; i < ${e.data.size * (n / 4)}; i++)
584
+ {
585
+ for(var j = 0; j < ${n / 4}; j++)
586
+ {
587
+ ${a}[arrayOffset++] = v[t++];
588
+ }
589
+ ${i === 0 ? "" : `arrayOffset += ${i};`}
590
+ }
591
+ `;
592
+ }
593
+ //#endregion
594
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/createUboSyncFunctionWGSL.mjs
595
+ function be(e) {
596
+ return le(e, pe, ye);
597
+ }
598
+ //#endregion
599
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuUboSystem.mjs
600
+ var F = class extends de {
601
+ constructor() {
602
+ super({
603
+ createUboElements: ve,
604
+ generateUboSync: be
605
+ });
606
+ }
607
+ };
608
+ F.extension = {
609
+ type: [m.WebGPUSystem],
610
+ name: "ubo"
611
+ };
612
+ //#endregion
613
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuUniformBatchPipe.mjs
614
+ var I = 128, L = class {
615
+ constructor(e) {
616
+ this._bindGroupHash = /* @__PURE__ */ Object.create(null), this._buffers = [], this._bindGroups = [], this._bufferResources = [], this._renderer = e, this._batchBuffer = new _e({ minUniformOffsetAlignment: I });
617
+ let t = 256 / I;
618
+ for (let e = 0; e < t; e++) {
619
+ let t = p.UNIFORM | p.COPY_DST;
620
+ e === 0 && (t |= p.COPY_SRC), this._buffers.push(new d({
621
+ data: this._batchBuffer.data,
622
+ usage: t
623
+ }));
624
+ }
625
+ }
626
+ renderEnd() {
627
+ this._uploadBindGroups(), this._resetBindGroups();
628
+ }
629
+ _resetBindGroups() {
630
+ this._bindGroupHash = /* @__PURE__ */ Object.create(null), this._batchBuffer.clear();
631
+ }
632
+ getUniformBindGroup(e, t) {
633
+ if (!t && this._bindGroupHash[e.uid]) return this._bindGroupHash[e.uid];
634
+ this._renderer.ubo.ensureUniformGroup(e);
635
+ let n = e.buffer.data, r = this._batchBuffer.addEmptyGroup(n.length);
636
+ return this._renderer.ubo.syncUniformGroup(e, this._batchBuffer.data, r / 4), this._bindGroupHash[e.uid] = this._getBindGroup(r / I), this._bindGroupHash[e.uid];
637
+ }
638
+ getUboResource(e) {
639
+ this._renderer.ubo.updateUniformGroup(e);
640
+ let t = e.buffer.data, n = this._batchBuffer.addGroup(t);
641
+ return this._getBufferResource(n / I);
642
+ }
643
+ getArrayBindGroup(e) {
644
+ let t = this._batchBuffer.addGroup(e);
645
+ return this._getBindGroup(t / I);
646
+ }
647
+ getArrayBufferResource(e) {
648
+ let t = this._batchBuffer.addGroup(e) / I;
649
+ return this._getBufferResource(t);
650
+ }
651
+ _getBufferResource(e) {
652
+ if (!this._bufferResources[e]) {
653
+ let t = this._buffers[e % 2];
654
+ this._bufferResources[e] = new he({
655
+ buffer: t,
656
+ offset: (e / 2 | 0) * 256,
657
+ size: I
658
+ });
659
+ }
660
+ return this._bufferResources[e];
661
+ }
662
+ _getBindGroup(e) {
663
+ if (!this._bindGroups[e]) {
664
+ let t = new g({ 0: this._getBufferResource(e) });
665
+ this._bindGroups[e] = t;
666
+ }
667
+ return this._bindGroups[e];
668
+ }
669
+ _uploadBindGroups() {
670
+ let e = this._renderer.buffer, t = this._buffers[0];
671
+ t.update(this._batchBuffer.byteIndex), e.updateBuffer(t);
672
+ let n = this._renderer.gpu.device.createCommandEncoder();
673
+ for (let r = 1; r < this._buffers.length; r++) {
674
+ let i = this._buffers[r];
675
+ n.copyBufferToBuffer(e.getGPUBuffer(t), I, e.getGPUBuffer(i), 0, this._batchBuffer.byteIndex);
676
+ }
677
+ this._renderer.gpu.device.queue.submit([n.finish()]);
678
+ }
679
+ destroy() {
680
+ for (let e = 0; e < this._bindGroups.length; e++) this._bindGroups[e]?.destroy();
681
+ this._bindGroups = null, this._bindGroupHash = null;
682
+ for (let e = 0; e < this._buffers.length; e++) this._buffers[e].destroy();
683
+ this._buffers = null;
684
+ for (let e = 0; e < this._bufferResources.length; e++) this._bufferResources[e].destroy();
685
+ this._bufferResources = null, this._batchBuffer.destroy(), this._renderer = null;
686
+ }
687
+ };
688
+ L.extension = {
689
+ type: [m.WebGPUPipes],
690
+ name: "uniformBatch"
691
+ };
692
+ //#endregion
693
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/pipeline/PipelineSystem.mjs
694
+ var R = {
695
+ "point-list": 0,
696
+ "line-list": 1,
697
+ "line-strip": 2,
698
+ "triangle-list": 3,
699
+ "triangle-strip": 4
700
+ }, xe = new a({}), Se = {
701
+ "depth24plus-stencil8": {
702
+ depth: !0,
703
+ stencil: !0,
704
+ index: 1
705
+ },
706
+ depth24plus: {
707
+ depth: !0,
708
+ stencil: !1,
709
+ index: 2
710
+ },
711
+ depth32float: {
712
+ depth: !0,
713
+ stencil: !1,
714
+ index: 3
715
+ },
716
+ "depth32float-stencil8": {
717
+ depth: !0,
718
+ stencil: !0,
719
+ index: 4
720
+ },
721
+ depth16unorm: {
722
+ depth: !0,
723
+ stencil: !1,
724
+ index: 5
725
+ },
726
+ stencil8: {
727
+ depth: !1,
728
+ stencil: !0,
729
+ index: 6
730
+ }
731
+ }, z = {
732
+ depth: !1,
733
+ stencil: !1,
734
+ index: 0
735
+ };
736
+ function Ce(e, t) {
737
+ for (let [n, r] of Object.entries(t)) {
738
+ let t = RegExp(`override\\s+${n}\\s*:\\s*(\\w+)\\s*(?:=[^;]*)?;`);
739
+ e = e.replace(t, (e, t) => {
740
+ let i;
741
+ return i = t === "u32" ? `${Math.trunc(r)}u` : t === "i32" ? `${Math.trunc(r)}` : Number.isInteger(r) ? `${r}.0` : `${r}`, `const ${n}: ${t} = ${i};`;
742
+ });
743
+ }
744
+ return e;
745
+ }
746
+ function B(e, t, n, r, i, a) {
747
+ return e * 35184372088832 + t * 536870912 + a * 16384 + (n << 8) + (r << 3) + i;
748
+ }
749
+ var V = /* @__PURE__ */ Object.create(null), we = 0;
750
+ function H(e) {
751
+ let t = V[e];
752
+ return t === void 0 && (t = V[e] = we++), t;
753
+ }
754
+ function Te(e, t, n, r, i, a, o, s) {
755
+ return s << 20 | a << 16 | i << 13 | n << 9 | e << 6 | o << 5 | r << 1 | t;
756
+ }
757
+ var U = class {
758
+ constructor(e) {
759
+ this._moduleCache = /* @__PURE__ */ Object.create(null), this._bufferLayoutsCache = /* @__PURE__ */ Object.create(null), this._bindingNamesCache = /* @__PURE__ */ Object.create(null), this._pipeCache = /* @__PURE__ */ new Map(), this._pipeStateCaches = /* @__PURE__ */ Object.create(null), this._colorMask = 15, this._multisampleCount = 1, this._colorTargetCount = 1, this._colorFormat = "bgra8unorm", this._colorFormatId = H("bgra8unorm"), this._depthStencilFormat = "depth24plus-stencil8", this._depthStencilFormatData = z, this._depthReadOnly = !1, this._invertFrontFace = !1, this._renderer = e;
760
+ }
761
+ contextChange(e) {
762
+ this._gpu = e, this.setStencilMode(b.DISABLED), this._updatePipeHash();
763
+ }
764
+ setMultisampleCount(e) {
765
+ this._multisampleCount !== e && (this._multisampleCount = e, this._updatePipeHash());
766
+ }
767
+ setRenderTarget(e) {
768
+ let t = e.colorAttachments[0]?.texture;
769
+ this._multisampleCount = t?.source.antialias ? 4 : 1, this._colorTargetCount = e.colorAttachments.length, this._colorFormat = t?.format ?? "bgra8unorm", this._colorFormatId = H(this._colorFormat), this._depthStencilFormat = e.depthStencilAttachment?.texture.format, this._depthStencilFormatData = Se[this._depthStencilFormat] || z, this._depthReadOnly = e.depthStencilAttachment?.depthReadOnly ?? !1, this._invertFrontFace = !!e.flipY, this._updatePipeHash();
770
+ }
771
+ setColorMask(e) {
772
+ this._colorMask !== e && (this._colorMask = e, this._updatePipeHash());
773
+ }
774
+ setStencilMode(e) {
775
+ this._stencilMode !== e && (this._stencilMode = e, this._stencilState = me[e], this._updatePipeHash());
776
+ }
777
+ getBundleDescriptor() {
778
+ let e = [];
779
+ for (let t = 0; t < this._colorTargetCount; t++) e.push(this._colorFormat);
780
+ let t = {
781
+ colorFormats: e,
782
+ sampleCount: this._multisampleCount
783
+ };
784
+ return (this._depthStencilFormatData.depth || this._depthStencilFormatData.stencil) && (t.depthStencilFormat = this._depthStencilFormat), t;
785
+ }
786
+ setPipeline(e, t, n, r) {
787
+ let i = this.getPipeline(e, t, n);
788
+ r.setPipeline(i);
789
+ }
790
+ getPipelineKey(e, t, n, r, i) {
791
+ return e._layoutKey || (w(e, t.attributeData), this._generateBufferKey(e)), B(e._layoutKey, t._layoutKey, n.data, n._blendModeId, R[r], i.id);
792
+ }
793
+ getPipeline(e, t, n, r, i) {
794
+ e._layoutKey || (w(e, t.attributeData), this._generateBufferKey(e)), r ||= e.topology, i ||= xe;
795
+ let a = B(e._layoutKey, t._layoutKey, n.data, n._blendModeId, R[r], i.id), o = this._pipeCache.get(a);
796
+ return o || (o = this._createPipeline(e, t, n, r, i), this._pipeCache.set(a, o)), o;
797
+ }
798
+ _createPipeline(e, t, n, r, i) {
799
+ let a = this._gpu.device, o = this._createVertexBufferLayouts(e, t), s = this._renderer.state.getColorTargets(n, this._colorTargetCount, this._colorFormat), c = this._stencilMode === b.RENDERING_MASK_ADD ? 0 : this._colorMask;
800
+ for (let e = 0; e < s.length; e++) s[e].writeMask = c;
801
+ let l = this._renderer.shader.getProgramData(t).pipeline, u = Object.keys(i.data).length > 0, d = t.vertex.source, f = t.fragment.source, p;
802
+ u && (this._renderer.limits.supportsOverrideConstants ? p = i.data : (d = Ce(d, i.data), f = Ce(f, i.data)));
803
+ let m = {
804
+ vertex: {
805
+ module: this._getModule(d),
806
+ entryPoint: t.vertex.entryPoint,
807
+ constants: p,
808
+ buffers: o
809
+ },
810
+ fragment: {
811
+ module: this._getModule(f),
812
+ entryPoint: t.fragment.entryPoint,
813
+ targets: s,
814
+ constants: p
815
+ },
816
+ primitive: {
817
+ topology: r,
818
+ cullMode: n.culling ? "back" : "none",
819
+ frontFace: n.clockwiseFrontFace === this._invertFrontFace ? "ccw" : "cw"
820
+ },
821
+ layout: l,
822
+ multisample: { count: this._multisampleCount },
823
+ label: t.name ? `PIXI Pipeline (${t.name})` : "PIXI Pipeline"
824
+ };
825
+ if (this._depthStencilFormatData.depth || this._depthStencilFormatData.stencil) {
826
+ let e = this._depthStencilFormatData;
827
+ m.depthStencil = {
828
+ ...this._stencilState,
829
+ format: this._depthStencilFormat,
830
+ depthWriteEnabled: e.depth ? n.depthMask && !this._depthReadOnly : !1,
831
+ depthCompare: e.depth && n.depthTest ? "less" : "always"
832
+ };
833
+ }
834
+ return a.createRenderPipeline(m);
835
+ }
836
+ _getModule(e) {
837
+ return this._moduleCache[e] || this._createModule(e);
838
+ }
839
+ _createModule(e) {
840
+ let t = this._gpu.device;
841
+ return this._moduleCache[e] = t.createShaderModule({ code: e }), this._moduleCache[e];
842
+ }
843
+ _generateBufferKey(e) {
844
+ let t = [], n = 0, r = Object.keys(e.attributes).sort();
845
+ for (let i = 0; i < r.length; i++) {
846
+ let a = e.attributes[r[i]];
847
+ t[n++] = a.offset, t[n++] = a.format, t[n++] = a.stride, t[n++] = a.instance;
848
+ }
849
+ return e._layoutKey = c(t.join("|"), "geometry"), e._layoutKey;
850
+ }
851
+ _generateAttributeLocationsKey(e) {
852
+ let t = [], n = 0, r = Object.keys(e.attributeData).sort();
853
+ for (let i = 0; i < r.length; i++) {
854
+ let a = e.attributeData[r[i]];
855
+ t[n++] = a.location;
856
+ }
857
+ return e._attributeLocationsKey = c(t.join("|"), "programAttributes"), e._attributeLocationsKey;
858
+ }
859
+ getBufferNamesToBind(e, t) {
860
+ let n = e._layoutKey << 16 | t._attributeLocationsKey;
861
+ if (this._bindingNamesCache[n]) return this._bindingNamesCache[n];
862
+ let r = this._createVertexBufferLayouts(e, t), i = /* @__PURE__ */ Object.create(null), a = t.attributeData;
863
+ for (let e = 0; e < r.length; e++) {
864
+ let t = Object.values(r[e].attributes)[0].shaderLocation;
865
+ for (let n in a) if (a[n].location === t) {
866
+ i[e] = n;
867
+ break;
868
+ }
869
+ }
870
+ return this._bindingNamesCache[n] = i, i;
871
+ }
872
+ _createVertexBufferLayouts(e, n) {
873
+ n._attributeLocationsKey || this._generateAttributeLocationsKey(n);
874
+ let r = e._layoutKey << 16 | n._attributeLocationsKey;
875
+ if (this._bufferLayoutsCache[r]) return this._bufferLayoutsCache[r];
876
+ let i = [];
877
+ return e.buffers.forEach((r) => {
878
+ let a = {
879
+ arrayStride: 0,
880
+ stepMode: "vertex",
881
+ attributes: []
882
+ }, o = a.attributes;
883
+ for (let i in n.attributeData) {
884
+ let s = e.attributes[i];
885
+ (s.divisor ?? 1) !== 1 && t(`Attribute ${i} has an invalid divisor value of '${s.divisor}'. WebGPU only supports a divisor value of 1`), s.buffer === r && (a.arrayStride = s.stride, a.stepMode = s.instance ? "instance" : "vertex", o.push({
886
+ shaderLocation: n.attributeData[i].location,
887
+ offset: s.offset,
888
+ format: s.format
889
+ }));
890
+ }
891
+ o.length && i.push(a);
892
+ }), this._bufferLayoutsCache[r] = i, i;
893
+ }
894
+ _updatePipeHash() {
895
+ var e;
896
+ let t = Te(this._stencilMode, this._multisampleCount === 1 ? 0 : 1, this._colorMask, this._colorTargetCount, this._depthStencilFormatData.index, this._colorFormatId, +!!this._depthReadOnly, +!!this._invertFrontFace);
897
+ this._pipeCache = (e = this._pipeStateCaches)[t] ?? (e[t] = /* @__PURE__ */ new Map());
898
+ }
899
+ destroy() {
900
+ this._bufferLayoutsCache = null, this._pipeCache = null, this._gpu = null, this._renderer = null, this._bindingNamesCache = null, this._pipeStateCaches = null, this._moduleCache = null;
901
+ }
902
+ };
903
+ U.extension = {
904
+ type: [m.WebGPUSystem],
905
+ name: "pipeline"
906
+ };
907
+ //#endregion
908
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/renderTarget/GpuRenderTarget.mjs
909
+ var Ee = class {
910
+ constructor() {
911
+ this.contexts = [], this.msaaTextures = [], this.msaaSamples = 1;
912
+ }
913
+ }, De = {
914
+ bgra8unorm: !0,
915
+ rgba8unorm: !0,
916
+ rgba16float: !0
917
+ };
918
+ function Oe(e) {
919
+ if (De[e]) return e;
920
+ let n = navigator.gpu.getPreferredCanvasFormat();
921
+ return t(`[WebGPU] CanvasSource format '${e}' is not a valid GPUCanvasContext format. Falling back to '${n}'. Allowed formats are: bgra8unorm, rgba8unorm, rgba16float.`), n;
922
+ }
923
+ var ke = class {
924
+ constructor() {
925
+ this._activePass = null;
926
+ }
927
+ init(e, t) {
928
+ this._renderer = e, this._renderTargetSystem = t;
929
+ }
930
+ copyToTexture(e, t, n, r, i) {
931
+ let a = this._renderer;
932
+ this.finishRenderPass();
933
+ let o = this._getGpuColorTexture(e), s = a.texture.getGpuSource(t.source);
934
+ return a.encoder.commandEncoder.copyTextureToTexture({
935
+ texture: o,
936
+ origin: n
937
+ }, {
938
+ texture: s,
939
+ origin: i
940
+ }, r), t;
941
+ }
942
+ copyDepthTexture(e, t, n, r, i) {
943
+ let a = this._renderer;
944
+ this.finishRenderPass();
945
+ let o = e.depthStencilAttachment.texture, s = a.texture.getGpuSource(o), c = a.texture.getGpuSource(t.source), l = a.encoder.commandEncoder === null, u = l ? a.gpu.device.createCommandEncoder() : a.encoder.commandEncoder;
946
+ u.copyTextureToTexture({
947
+ texture: s,
948
+ origin: n
949
+ }, {
950
+ texture: c,
951
+ origin: i
952
+ }, {
953
+ width: r.width,
954
+ height: r.height
955
+ }), l && a.gpu.device.queue.submit([u.finish()]);
956
+ }
957
+ startRenderPass(e, t = !0, n, r, i = 0, a = 0) {
958
+ let o = this._renderTargetSystem.getGpuRenderTarget(e);
959
+ if (a !== 0 && o.msaaTextures?.length) throw Error("[RenderTargetSystem] Rendering to array layers is not supported with MSAA render targets.");
960
+ if (i > 0 && o.msaaTextures?.length) throw Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");
961
+ let s = t;
962
+ typeof s == "boolean" && (s = s ? v.ALL : v.NONE), (e.stencil || e.depth) && !e.depthStencilAttachment && e.ensureDepthStencilTexture();
963
+ let c = !!e.depthStencilAttachment, l = this._activePass;
964
+ if (l !== null && l.renderTarget === e && l.mipLevel === i && l.layer === a && l.depthStencil === c && this._renderer.encoder.renderPassEncoder !== null && s === v.NONE) {
965
+ this._renderer.encoder.setViewport(r);
966
+ return;
967
+ }
968
+ o.descriptor = this.getDescriptor(e, t, n, i, a), this._renderer.pipeline.setRenderTarget(e), this._renderer.encoder.beginRenderPass(o), this._renderer.encoder.setViewport(r), this._activePass = {
969
+ renderTarget: e,
970
+ mipLevel: i,
971
+ layer: a,
972
+ depthStencil: c
973
+ };
974
+ }
975
+ finishRenderPass() {
976
+ this._renderer.encoder.endRenderPass(), this._activePass = null;
977
+ }
978
+ _getGpuColorTexture(e) {
979
+ if (e.colorAttachments.length === 0) throw Error("[GpuRenderTargetAdaptor] cannot get gpu color texture from a depth-only render target");
980
+ let t = e.colorAttachments[0].texture;
981
+ return t instanceof _ && t._gpuContext ? t._gpuContext.getCurrentTexture() : this._renderer.texture.getGpuSource(t);
982
+ }
983
+ getDescriptor(e, t, n, r = 0, i = 0) {
984
+ typeof t == "boolean" && (t = t ? v.ALL : v.NONE);
985
+ let a = this._renderTargetSystem, o = a.getGpuRenderTarget(e), s = e.colorAttachments.map((e, s) => {
986
+ let c = e.texture, l = c instanceof _ ? c._gpuContext : null, u, d;
987
+ if (l) {
988
+ if (i !== 0) throw Error("[RenderTargetSystem] Rendering to array layers is not supported for canvas targets.");
989
+ u = l.getCurrentTexture().createView(e.viewDescriptor);
990
+ } else u = this._renderer.texture.getTextureRenderTargetView(e.texture, r, i, e.viewDescriptor);
991
+ let f = !1;
992
+ o.msaaTextures[s] && (d = u, u = this._renderer.texture.getTextureView(o.msaaTextures[s]), f = o.msaaTextures[s].transient);
993
+ let p = e.loadOp;
994
+ t !== void 0 && (p = t & v.COLOR ? "clear" : "load"), n ??= a.defaultClearColor;
995
+ let m = e.storeOp ?? "store", h = {
996
+ view: u,
997
+ resolveTarget: d,
998
+ storeOp: f ? "discard" : m,
999
+ loadOp: p
1000
+ };
1001
+ p === "clear" && (n ??= e.clearValue ?? a.defaultClearColor, h.clearValue = n);
1002
+ for (let t in e) t !== "texture" && t !== "viewDescriptor" && t !== "clearValue" && t !== "loadOp" && t !== "storeOp" && (h[t] = e[t]);
1003
+ return h;
1004
+ }), c;
1005
+ if (e.depthStencilAttachment) {
1006
+ o.msaa && (e.depthStencilAttachment.texture.sampleCount = 4), e.depthStencilAttachment.texture.transient = !!o.msaaTextures[0]?.transient;
1007
+ let n = e.depthStencilAttachment, a = n.texture.format.includes("stencil"), s = n.texture.format.includes("depth"), l = n.texture.transient ? "discard" : "store";
1008
+ c = { view: this._renderer.texture.getTextureRenderTargetView(n.texture, r, i, n.viewDescriptor) };
1009
+ let u = n.depthReadOnly ?? !1, d = n.stencilReadOnly ?? u;
1010
+ a && !d ? (c.stencilLoadOp = t & v.STENCIL ? "clear" : n.stencilLoadOp ?? "load", c.stencilStoreOp = n.stencilStoreOp ?? l, c.stencilLoadOp === "clear" && (c.stencilClearValue = n.stencilClearValue ?? 0)) : a && d && (c.stencilReadOnly = !0), s && !u ? (c.depthLoadOp = t & v.DEPTH ? "clear" : n.depthLoadOp ?? "load", c.depthStoreOp = n.depthStoreOp ?? l, c.depthLoadOp === "clear" && (c.depthClearValue = n.depthClearValue ?? 1)) : s && u && (c.depthReadOnly = !0);
1011
+ for (let e in n) e !== "texture" && e !== "viewDescriptor" && e !== "stencilLoadOp" && e !== "stencilStoreOp" && e !== "stencilClearValue" && e !== "stencilReadOnly" && e !== "depthLoadOp" && e !== "depthStoreOp" && e !== "depthClearValue" && e !== "depthReadOnly" && (c[e] = n[e]);
1012
+ }
1013
+ return {
1014
+ colorAttachments: s,
1015
+ depthStencilAttachment: c,
1016
+ label: e.label
1017
+ };
1018
+ }
1019
+ clear(e, t = !0, n, r, i = 0, a = 0) {
1020
+ if (!t) return;
1021
+ let { gpu: o, encoder: s } = this._renderer, c = o.device;
1022
+ if (s.commandEncoder === null) {
1023
+ let o = c.createCommandEncoder(), s = this.getDescriptor(e, t, n, i, a), l = o.beginRenderPass(s);
1024
+ l.setViewport(r.x, r.y, r.width, r.height, 0, 1), l.end();
1025
+ let u = o.finish();
1026
+ c.queue.submit([u]);
1027
+ } else this.startRenderPass(e, t, n, r, i, a);
1028
+ }
1029
+ initGpuRenderTarget(e) {
1030
+ e.isRoot = !0;
1031
+ let t = new Ee();
1032
+ return e.colorAttachments.forEach((e, n) => {
1033
+ let i = e.texture;
1034
+ if (i instanceof _) {
1035
+ if (!i._gpuContext) {
1036
+ let e = i.resource.getContext("webgpu"), t = i.transparent ? "premultiplied" : "opaque", n = Oe(i.format);
1037
+ try {
1038
+ e.configure({
1039
+ device: this._renderer.gpu.device,
1040
+ usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC,
1041
+ format: n,
1042
+ alphaMode: t,
1043
+ ...n === "rgba16float" ? { toneMapping: { mode: "extended" } } : {}
1044
+ });
1045
+ } catch (e) {
1046
+ console.error(e);
1047
+ }
1048
+ i._gpuContext = e;
1049
+ }
1050
+ t.contexts[n] = i._gpuContext;
1051
+ }
1052
+ if (t.msaa = i.source.antialias, i.antialias) {
1053
+ let e = new r({
1054
+ width: 0,
1055
+ height: 0,
1056
+ sampleCount: 4,
1057
+ transient: i.transient,
1058
+ arrayLayerCount: i.arrayLayerCount,
1059
+ format: i.format
1060
+ });
1061
+ t.msaaTextures[n] = e;
1062
+ }
1063
+ }), t.msaa && (t.msaaSamples = 4, e.depthStencilAttachment && (e.depthStencilAttachment.texture.sampleCount = 4, e.depthStencilAttachment.texture.transient = !!t.msaaTextures[0]?.transient)), t;
1064
+ }
1065
+ destroyGpuRenderTarget(e) {
1066
+ e.contexts.forEach((e) => {
1067
+ e.unconfigure();
1068
+ }), e.msaaTextures.forEach((e) => {
1069
+ e.destroy();
1070
+ }), e.msaaTextures.length = 0, e.contexts.length = 0;
1071
+ }
1072
+ ensureDepthStencilTexture(e) {
1073
+ let t = this._renderTargetSystem.getGpuRenderTarget(e);
1074
+ e.depthStencilAttachment && t.msaa && (e.depthStencilAttachment.texture.sampleCount = 4);
1075
+ }
1076
+ resizeGpuRenderTarget(e) {
1077
+ let t = this._renderTargetSystem.getGpuRenderTarget(e);
1078
+ t.width = e.width, t.height = e.height, t.msaa && e.colorAttachments.forEach((e, n) => {
1079
+ let r = e.texture;
1080
+ t.msaaTextures[n]?.resize(r.width, r.height, r._resolution);
1081
+ });
1082
+ }
1083
+ }, W = class extends oe {
1084
+ constructor(e) {
1085
+ super(e), this.adaptor = new ke(), this.adaptor.init(e, this);
1086
+ }
1087
+ };
1088
+ W.extension = {
1089
+ type: [m.WebGPUSystem],
1090
+ name: "renderTarget"
1091
+ };
1092
+ //#endregion
1093
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/GpuShaderSystem.mjs
1094
+ var G = class {
1095
+ constructor() {
1096
+ this._gpuProgramData = /* @__PURE__ */ Object.create(null);
1097
+ }
1098
+ contextChange(e) {
1099
+ this._gpu = e;
1100
+ }
1101
+ getProgramData(e) {
1102
+ return this._gpuProgramData[e._layoutKey] || this._createGPUProgramData(e);
1103
+ }
1104
+ _createGPUProgramData(e) {
1105
+ let t = this._gpu.device, n = e.gpuLayout.map((e) => t.createBindGroupLayout({ entries: e })), r = { bindGroupLayouts: n };
1106
+ return this._gpuProgramData[e._layoutKey] = {
1107
+ bindGroups: n,
1108
+ pipeline: t.createPipelineLayout(r)
1109
+ }, this._gpuProgramData[e._layoutKey];
1110
+ }
1111
+ destroy() {
1112
+ this._gpu = null, this._gpuProgramData = null;
1113
+ }
1114
+ };
1115
+ G.extension = {
1116
+ type: [m.WebGPUSystem],
1117
+ name: "shader"
1118
+ };
1119
+ //#endregion
1120
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/state/GpuBlendModesToPixi.mjs
1121
+ var K = {};
1122
+ K.normal = {
1123
+ alpha: {
1124
+ srcFactor: "one",
1125
+ dstFactor: "one-minus-src-alpha",
1126
+ operation: "add"
1127
+ },
1128
+ color: {
1129
+ srcFactor: "one",
1130
+ dstFactor: "one-minus-src-alpha",
1131
+ operation: "add"
1132
+ }
1133
+ }, K.add = {
1134
+ alpha: {
1135
+ srcFactor: "src-alpha",
1136
+ dstFactor: "one-minus-src-alpha",
1137
+ operation: "add"
1138
+ },
1139
+ color: {
1140
+ srcFactor: "one",
1141
+ dstFactor: "one",
1142
+ operation: "add"
1143
+ }
1144
+ }, K.multiply = {
1145
+ alpha: {
1146
+ srcFactor: "one",
1147
+ dstFactor: "one-minus-src-alpha",
1148
+ operation: "add"
1149
+ },
1150
+ color: {
1151
+ srcFactor: "dst",
1152
+ dstFactor: "one-minus-src-alpha",
1153
+ operation: "add"
1154
+ }
1155
+ }, K.screen = {
1156
+ alpha: {
1157
+ srcFactor: "one",
1158
+ dstFactor: "one-minus-src-alpha",
1159
+ operation: "add"
1160
+ },
1161
+ color: {
1162
+ srcFactor: "one",
1163
+ dstFactor: "one-minus-src",
1164
+ operation: "add"
1165
+ }
1166
+ }, K.overlay = {
1167
+ alpha: {
1168
+ srcFactor: "one",
1169
+ dstFactor: "one-minus-src-alpha",
1170
+ operation: "add"
1171
+ },
1172
+ color: {
1173
+ srcFactor: "one",
1174
+ dstFactor: "one-minus-src",
1175
+ operation: "add"
1176
+ }
1177
+ }, K.none = {
1178
+ alpha: {
1179
+ srcFactor: "one",
1180
+ dstFactor: "one-minus-src-alpha",
1181
+ operation: "add"
1182
+ },
1183
+ color: {
1184
+ srcFactor: "zero",
1185
+ dstFactor: "zero",
1186
+ operation: "add"
1187
+ }
1188
+ }, K["normal-npm"] = {
1189
+ alpha: {
1190
+ srcFactor: "one",
1191
+ dstFactor: "one-minus-src-alpha",
1192
+ operation: "add"
1193
+ },
1194
+ color: {
1195
+ srcFactor: "src-alpha",
1196
+ dstFactor: "one-minus-src-alpha",
1197
+ operation: "add"
1198
+ }
1199
+ }, K["add-npm"] = {
1200
+ alpha: {
1201
+ srcFactor: "one",
1202
+ dstFactor: "one",
1203
+ operation: "add"
1204
+ },
1205
+ color: {
1206
+ srcFactor: "src-alpha",
1207
+ dstFactor: "one",
1208
+ operation: "add"
1209
+ }
1210
+ }, K["screen-npm"] = {
1211
+ alpha: {
1212
+ srcFactor: "one",
1213
+ dstFactor: "one-minus-src-alpha",
1214
+ operation: "add"
1215
+ },
1216
+ color: {
1217
+ srcFactor: "src-alpha",
1218
+ dstFactor: "one-minus-src",
1219
+ operation: "add"
1220
+ }
1221
+ }, K.erase = {
1222
+ alpha: {
1223
+ srcFactor: "zero",
1224
+ dstFactor: "one-minus-src-alpha",
1225
+ operation: "add"
1226
+ },
1227
+ color: {
1228
+ srcFactor: "zero",
1229
+ dstFactor: "one-minus-src",
1230
+ operation: "add"
1231
+ }
1232
+ }, K.min = {
1233
+ alpha: {
1234
+ srcFactor: "one",
1235
+ dstFactor: "one",
1236
+ operation: "min"
1237
+ },
1238
+ color: {
1239
+ srcFactor: "one",
1240
+ dstFactor: "one",
1241
+ operation: "min"
1242
+ }
1243
+ }, K.max = {
1244
+ alpha: {
1245
+ srcFactor: "one",
1246
+ dstFactor: "one",
1247
+ operation: "max"
1248
+ },
1249
+ color: {
1250
+ srcFactor: "one",
1251
+ dstFactor: "one",
1252
+ operation: "max"
1253
+ }
1254
+ };
1255
+ //#endregion
1256
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/state/GpuStateSystem.mjs
1257
+ var q = class {
1258
+ constructor() {
1259
+ this.defaultState = new f(), this.defaultState.blend = !0;
1260
+ }
1261
+ contextChange(e) {
1262
+ this.gpu = e;
1263
+ }
1264
+ getColorTargets(e, t, n) {
1265
+ let r = e.blend ? K[e.blendMode] || K.normal : void 0, i = [];
1266
+ for (let e = 0; e < t; e++) i[e] = {
1267
+ format: n,
1268
+ writeMask: 0,
1269
+ blend: r
1270
+ };
1271
+ return i;
1272
+ }
1273
+ destroy() {
1274
+ this.gpu = null;
1275
+ }
1276
+ };
1277
+ q.extension = {
1278
+ type: [m.WebGPUSystem],
1279
+ name: "state"
1280
+ };
1281
+ //#endregion
1282
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/uploaders/gpuUploadBufferImageResource.mjs
1283
+ var Ae = {
1284
+ type: "image",
1285
+ upload(e, t, n, r = 0) {
1286
+ let i = e.resource, a = (e.pixelWidth | 0) * (e.pixelHeight | 0), o = i.byteLength / a;
1287
+ n.device.queue.writeTexture({
1288
+ texture: t,
1289
+ origin: {
1290
+ x: 0,
1291
+ y: 0,
1292
+ z: r
1293
+ }
1294
+ }, i, {
1295
+ offset: 0,
1296
+ rowsPerImage: e.pixelHeight,
1297
+ bytesPerRow: e.pixelWidth * o
1298
+ }, {
1299
+ width: e.pixelWidth,
1300
+ height: e.pixelHeight,
1301
+ depthOrArrayLayers: 1
1302
+ });
1303
+ }
1304
+ }, J = {
1305
+ "bc1-rgba-unorm": {
1306
+ blockBytes: 8,
1307
+ blockWidth: 4,
1308
+ blockHeight: 4
1309
+ },
1310
+ "bc2-rgba-unorm": {
1311
+ blockBytes: 16,
1312
+ blockWidth: 4,
1313
+ blockHeight: 4
1314
+ },
1315
+ "bc3-rgba-unorm": {
1316
+ blockBytes: 16,
1317
+ blockWidth: 4,
1318
+ blockHeight: 4
1319
+ },
1320
+ "bc7-rgba-unorm": {
1321
+ blockBytes: 16,
1322
+ blockWidth: 4,
1323
+ blockHeight: 4
1324
+ },
1325
+ "etc1-rgb-unorm": {
1326
+ blockBytes: 8,
1327
+ blockWidth: 4,
1328
+ blockHeight: 4
1329
+ },
1330
+ "etc2-rgba8unorm": {
1331
+ blockBytes: 16,
1332
+ blockWidth: 4,
1333
+ blockHeight: 4
1334
+ },
1335
+ "astc-4x4-unorm": {
1336
+ blockBytes: 16,
1337
+ blockWidth: 4,
1338
+ blockHeight: 4
1339
+ }
1340
+ }, je = {
1341
+ blockBytes: 4,
1342
+ blockWidth: 1,
1343
+ blockHeight: 1
1344
+ }, Me = {
1345
+ type: "compressed",
1346
+ upload(e, t, n, r = 0) {
1347
+ let i = e.pixelWidth, a = e.pixelHeight, o = J[e.format] || je;
1348
+ for (let s = 0; s < e.resource.length; s++) {
1349
+ let c = e.resource[s], l = Math.ceil(i / o.blockWidth) * o.blockBytes;
1350
+ n.device.queue.writeTexture({
1351
+ texture: t,
1352
+ mipLevel: s,
1353
+ origin: {
1354
+ x: 0,
1355
+ y: 0,
1356
+ z: r
1357
+ }
1358
+ }, c, {
1359
+ offset: 0,
1360
+ bytesPerRow: l
1361
+ }, {
1362
+ width: Math.ceil(i / o.blockWidth) * o.blockWidth,
1363
+ height: Math.ceil(a / o.blockHeight) * o.blockHeight,
1364
+ depthOrArrayLayers: 1
1365
+ }), i = Math.max(i >> 1, 1), a = Math.max(a >> 1, 1);
1366
+ }
1367
+ }
1368
+ }, Y = [
1369
+ "right",
1370
+ "left",
1371
+ "top",
1372
+ "bottom",
1373
+ "front",
1374
+ "back"
1375
+ ];
1376
+ function Ne(e) {
1377
+ return {
1378
+ type: "cube",
1379
+ upload(t, n, r) {
1380
+ let i = t.faces;
1381
+ for (let t = 0; t < Y.length; t++) {
1382
+ let a = i[Y[t]];
1383
+ (e[a.uploadMethodId] || e.image).upload(a, n, r, t);
1384
+ }
1385
+ }
1386
+ };
1387
+ }
1388
+ //#endregion
1389
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/uploaders/gpuUploadImageSource.mjs
1390
+ var X = {
1391
+ type: "image",
1392
+ upload(e, n, r, a = 0) {
1393
+ let o = e.resource;
1394
+ if (!o) return;
1395
+ if (globalThis.HTMLImageElement && o instanceof HTMLImageElement) {
1396
+ let n = i.get().createCanvas(o.width, o.height);
1397
+ n.getContext("2d").drawImage(o, 0, 0, o.width, o.height), e.resource = n, t("ImageSource: Image element passed, converting to canvas and replacing resource.");
1398
+ }
1399
+ let s = Math.min(n.width, e.resourceWidth || e.pixelWidth), c = Math.min(n.height, e.resourceHeight || e.pixelHeight), l = e.alphaMode === "premultiply-alpha-on-upload";
1400
+ r.device.queue.copyExternalImageToTexture({ source: o }, {
1401
+ texture: n,
1402
+ origin: {
1403
+ x: 0,
1404
+ y: 0,
1405
+ z: a
1406
+ },
1407
+ premultipliedAlpha: l
1408
+ }, {
1409
+ width: s,
1410
+ height: c
1411
+ });
1412
+ }
1413
+ }, Pe = {
1414
+ type: "video",
1415
+ upload(e, t, n, r) {
1416
+ X.upload(e, t, n, r);
1417
+ }
1418
+ }, Fe = class {
1419
+ constructor(e) {
1420
+ this.device = e, this.sampler = e.createSampler({ minFilter: "linear" }), this.pipelines = {};
1421
+ }
1422
+ _getMipmapPipeline(e) {
1423
+ let t = this.pipelines[e];
1424
+ return t || (this.mipmapShaderModule ||= this.device.createShaderModule({ code: "\n var<private> pos : array<vec2<f32>, 3> = array<vec2<f32>, 3>(\n vec2<f32>(-1.0, -1.0), vec2<f32>(-1.0, 3.0), vec2<f32>(3.0, -1.0));\n\n struct VertexOutput {\n @builtin(position) position : vec4<f32>,\n @location(0) texCoord : vec2<f32>,\n };\n\n @vertex\n fn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {\n var output : VertexOutput;\n output.texCoord = pos[vertexIndex] * vec2<f32>(0.5, -0.5) + vec2<f32>(0.5);\n output.position = vec4<f32>(pos[vertexIndex], 0.0, 1.0);\n return output;\n }\n\n @group(0) @binding(0) var imgSampler : sampler;\n @group(0) @binding(1) var img : texture_2d<f32>;\n\n @fragment\n fn fragmentMain(@location(0) texCoord : vec2<f32>) -> @location(0) vec4<f32> {\n return textureSample(img, imgSampler, texCoord);\n }\n " }), t = this.device.createRenderPipeline({
1425
+ layout: "auto",
1426
+ vertex: {
1427
+ module: this.mipmapShaderModule,
1428
+ entryPoint: "vertexMain"
1429
+ },
1430
+ fragment: {
1431
+ module: this.mipmapShaderModule,
1432
+ entryPoint: "fragmentMain",
1433
+ targets: [{ format: e }]
1434
+ }
1435
+ }), this.pipelines[e] = t), t;
1436
+ }
1437
+ generateMipmap(e) {
1438
+ let t = this._getMipmapPipeline(e.format);
1439
+ if (e.dimension === "3d" || e.dimension === "1d") throw Error("Generating mipmaps for non-2d textures is currently unsupported!");
1440
+ let n = e, r = e.depthOrArrayLayers || 1, i = e.usage & GPUTextureUsage.RENDER_ATTACHMENT;
1441
+ if (!i) {
1442
+ let t = {
1443
+ size: {
1444
+ width: Math.ceil(e.width / 2),
1445
+ height: Math.ceil(e.height / 2),
1446
+ depthOrArrayLayers: r
1447
+ },
1448
+ format: e.format,
1449
+ usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC | GPUTextureUsage.RENDER_ATTACHMENT,
1450
+ mipLevelCount: e.mipLevelCount - 1
1451
+ };
1452
+ n = this.device.createTexture(t);
1453
+ }
1454
+ let a = this.device.createCommandEncoder({}), o = t.getBindGroupLayout(0);
1455
+ for (let s = 0; s < r; ++s) {
1456
+ let r = e.createView({
1457
+ baseMipLevel: 0,
1458
+ mipLevelCount: 1,
1459
+ dimension: "2d",
1460
+ baseArrayLayer: s,
1461
+ arrayLayerCount: 1
1462
+ }), c = +!!i;
1463
+ for (let i = 1; i < e.mipLevelCount; ++i) {
1464
+ let e = n.createView({
1465
+ baseMipLevel: c++,
1466
+ mipLevelCount: 1,
1467
+ dimension: "2d",
1468
+ baseArrayLayer: s,
1469
+ arrayLayerCount: 1
1470
+ }), i = a.beginRenderPass({ colorAttachments: [{
1471
+ view: e,
1472
+ storeOp: "store",
1473
+ loadOp: "clear",
1474
+ clearValue: {
1475
+ r: 0,
1476
+ g: 0,
1477
+ b: 0,
1478
+ a: 0
1479
+ }
1480
+ }] }), l = this.device.createBindGroup({
1481
+ layout: o,
1482
+ entries: [{
1483
+ binding: 0,
1484
+ resource: this.sampler
1485
+ }, {
1486
+ binding: 1,
1487
+ resource: r
1488
+ }]
1489
+ });
1490
+ i.setPipeline(t), i.setBindGroup(0, l), i.draw(3, 1, 0, 0), i.end(), r = e;
1491
+ }
1492
+ }
1493
+ if (!i) {
1494
+ let t = {
1495
+ width: Math.ceil(e.width / 2),
1496
+ height: Math.ceil(e.height / 2),
1497
+ depthOrArrayLayers: r
1498
+ };
1499
+ for (let r = 1; r < e.mipLevelCount; ++r) a.copyTextureToTexture({
1500
+ texture: n,
1501
+ mipLevel: r - 1
1502
+ }, {
1503
+ texture: e,
1504
+ mipLevel: r
1505
+ }, t), t.width = Math.ceil(t.width / 2), t.height = Math.ceil(t.height / 2);
1506
+ }
1507
+ return this.device.queue.submit([a.finish()]), i || n.destroy(), e;
1508
+ }
1509
+ }, Ie = class {
1510
+ constructor(e) {
1511
+ this.textureView = null, this.textureViews = /* @__PURE__ */ Object.create(null), this.gpuTexture = e;
1512
+ }
1513
+ destroy() {
1514
+ this.gpuTexture.destroy(), this.textureView = null, this.textureViews = null, this.gpuTexture = null;
1515
+ }
1516
+ };
1517
+ function Z(e) {
1518
+ return `${e.format || ""}.${e.dimension || ""}.${e.aspect || ""}.${e.baseMipLevel || 0}.${e.mipLevelCount || ""}.${e.baseArrayLayer || 0}.${e.arrayLayerCount || ""}`;
1519
+ }
1520
+ var Q = class e {
1521
+ constructor(t) {
1522
+ this._gpuSamplers = /* @__PURE__ */ Object.create(null), this._bindGroupHash = /* @__PURE__ */ Object.create(null), this._renderer = t, t.gc.addCollection(this, "_bindGroupHash", "hash"), this._managedTextures = new y({
1523
+ renderer: t,
1524
+ type: "resource",
1525
+ onUnload: this.onSourceUnload.bind(this),
1526
+ name: "gpuTextureSource"
1527
+ });
1528
+ let n = {
1529
+ image: X,
1530
+ buffer: Ae,
1531
+ video: Pe,
1532
+ compressed: Me,
1533
+ ...e.uploadExtensions
1534
+ };
1535
+ this._uploads = {
1536
+ ...n,
1537
+ cube: Ne(n)
1538
+ };
1539
+ }
1540
+ get managedTextures() {
1541
+ return Object.values(this._managedTextures.items);
1542
+ }
1543
+ contextChange(e) {
1544
+ this._gpu = e;
1545
+ }
1546
+ initSource(e) {
1547
+ return e._gpuData[this._renderer.uid]?.gpuTexture || this._initSource(e);
1548
+ }
1549
+ _initSource(e) {
1550
+ if (e.autoGenerateMipmaps) {
1551
+ let t = Math.max(e.pixelWidth, e.pixelHeight);
1552
+ e.mipLevelCount = Math.floor(Math.log2(t)) + 1;
1553
+ }
1554
+ let t;
1555
+ e.sampleCount > 1 ? (t = GPUTextureUsage.RENDER_ATTACHMENT, e.transient && this._renderer.device.extensions.transientAttachment && (t |= GPUTextureUsage.TRANSIENT_ATTACHMENT)) : (t = GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST, e.uploadMethodId !== "compressed" && (t |= GPUTextureUsage.RENDER_ATTACHMENT, t |= GPUTextureUsage.COPY_SRC));
1556
+ let n = J[e.format] || {
1557
+ blockBytes: 4,
1558
+ blockWidth: 1,
1559
+ blockHeight: 1
1560
+ }, r = Math.ceil(e.pixelWidth / n.blockWidth) * n.blockWidth, i = Math.ceil(e.pixelHeight / n.blockHeight) * n.blockHeight, a = {
1561
+ label: e.label,
1562
+ size: {
1563
+ width: r,
1564
+ height: i,
1565
+ depthOrArrayLayers: e.arrayLayerCount
1566
+ },
1567
+ format: e.format,
1568
+ sampleCount: e.sampleCount,
1569
+ mipLevelCount: e.mipLevelCount,
1570
+ dimension: e.dimension,
1571
+ usage: t
1572
+ }, o = this._gpu.device.createTexture(a);
1573
+ return e._gpuData[this._renderer.uid] = new Ie(o), this._managedTextures.add(e) && (e.on("update", this.onSourceUpdate, this), e.on("resize", this.onSourceResize, this), e.on("updateMipmaps", this.onUpdateMipmaps, this)), this.onSourceUpdate(e), o;
1574
+ }
1575
+ onSourceUpdate(e) {
1576
+ let t = this.getGpuSource(e);
1577
+ t && (this._uploads[e.uploadMethodId] && this._uploads[e.uploadMethodId].upload(e, t, this._gpu), e.autoGenerateMipmaps && e.mipLevelCount > 1 && this.onUpdateMipmaps(e));
1578
+ }
1579
+ onUpdateMipmaps(e) {
1580
+ this._mipmapGenerator ||= new Fe(this._gpu.device);
1581
+ let t = this.getGpuSource(e);
1582
+ this._mipmapGenerator.generateMipmap(t);
1583
+ }
1584
+ onSourceUnload(e) {
1585
+ e.off("update", this.onSourceUpdate, this), e.off("resize", this.onSourceResize, this), e.off("updateMipmaps", this.onUpdateMipmaps, this);
1586
+ }
1587
+ onSourceResize(e) {
1588
+ e._gcLastUsed = this._renderer.gc.now;
1589
+ let t = e._gpuData[this._renderer.uid], n = t?.gpuTexture;
1590
+ n ? (n.width !== e.pixelWidth || n.height !== e.pixelHeight) && (t.destroy(), this._bindGroupHash[e.uid] = null, e._gpuData[this._renderer.uid] = null, this.initSource(e)) : this.initSource(e);
1591
+ }
1592
+ _initSampler(e) {
1593
+ return this._gpuSamplers[e._resourceId] = this._gpu.device.createSampler(e), this._gpuSamplers[e._resourceId];
1594
+ }
1595
+ getGpuSampler(e) {
1596
+ return this._gpuSamplers[e._resourceId] || this._initSampler(e);
1597
+ }
1598
+ getGpuSource(e) {
1599
+ return e._gcLastUsed = this._renderer.gc.now, e._gpuData[this._renderer.uid]?.gpuTexture || this.initSource(e);
1600
+ }
1601
+ getTextureBindGroup(e) {
1602
+ return this._bindGroupHash[e.uid] || this._createTextureBindGroup(e);
1603
+ }
1604
+ _createTextureBindGroup(e) {
1605
+ let t = e.source;
1606
+ return this._bindGroupHash[e.uid] = new g({
1607
+ 0: t,
1608
+ 1: t.style,
1609
+ 2: new o({ uTextureMatrix: {
1610
+ type: "mat3x3<f32>",
1611
+ value: e.textureMatrix.mapCoord
1612
+ } })
1613
+ }), this._bindGroupHash[e.uid];
1614
+ }
1615
+ getTextureView(e, t) {
1616
+ var n;
1617
+ let r = e.source;
1618
+ r._gcLastUsed = this._renderer.gc.now;
1619
+ let i = r._gpuData[this._renderer.uid];
1620
+ i ||= (this.initSource(r), r._gpuData[this._renderer.uid]);
1621
+ let a = t ? Z(t) : 0;
1622
+ return (n = i.textureViews)[a] || (n[a] = i.gpuTexture.createView({
1623
+ dimension: r.viewDimension,
1624
+ ...t
1625
+ })), i.textureViews[a];
1626
+ }
1627
+ getTextureRenderTargetView(e, t = 0, n = 0, r) {
1628
+ var i;
1629
+ let a = e.source;
1630
+ a._gcLastUsed = this._renderer.gc.now;
1631
+ let o = a._gpuData[this._renderer.uid];
1632
+ o ||= (this.initSource(a), a._gpuData[this._renderer.uid]);
1633
+ let s = n * (a.mipLevelCount || 1) + t + 1;
1634
+ return r && (s = `${s}.${Z(r)}`), (i = o.textureViews)[s] || (i[s] = o.gpuTexture.createView({
1635
+ dimension: "2d",
1636
+ baseMipLevel: t,
1637
+ mipLevelCount: 1,
1638
+ baseArrayLayer: n,
1639
+ arrayLayerCount: 1,
1640
+ ...r
1641
+ })), o.textureViews[s];
1642
+ }
1643
+ generateCanvas(e) {
1644
+ let t = this._renderer, n = t.gpu.device.createCommandEncoder(), r = i.get().createCanvas();
1645
+ r.width = e.source.pixelWidth, r.height = e.source.pixelHeight;
1646
+ let a = r.getContext("webgpu");
1647
+ return a.configure({
1648
+ device: t.gpu.device,
1649
+ usage: GPUTextureUsage.COPY_DST | GPUTextureUsage.COPY_SRC,
1650
+ format: i.get().getNavigator().gpu.getPreferredCanvasFormat(),
1651
+ alphaMode: "premultiplied"
1652
+ }), n.copyTextureToTexture({
1653
+ texture: t.texture.getGpuSource(e.source),
1654
+ origin: {
1655
+ x: 0,
1656
+ y: 0
1657
+ }
1658
+ }, { texture: a.getCurrentTexture() }, {
1659
+ width: r.width,
1660
+ height: r.height
1661
+ }), t.gpu.device.queue.submit([n.finish()]), r;
1662
+ }
1663
+ getPixels(e) {
1664
+ let t = this.generateCanvas(e), n = C.getOptimalCanvasAndContext(t.width, t.height), r = n.context;
1665
+ r.drawImage(t, 0, 0);
1666
+ let { width: i, height: a } = t, o = r.getImageData(0, 0, i, a), s = new Uint8ClampedArray(o.data.buffer);
1667
+ return C.returnCanvasAndContext(n), {
1668
+ pixels: s,
1669
+ width: i,
1670
+ height: a
1671
+ };
1672
+ }
1673
+ destroy() {
1674
+ this._managedTextures.destroy();
1675
+ for (let e of Object.keys(this._bindGroupHash)) {
1676
+ let t = Number(e);
1677
+ this._bindGroupHash[t]?.destroy();
1678
+ }
1679
+ this._renderer = null, this._gpu = null, this._mipmapGenerator = null, this._gpuSamplers = null, this._bindGroupHash = null;
1680
+ }
1681
+ };
1682
+ Q.extension = {
1683
+ type: [m.WebGPUSystem],
1684
+ name: "texture"
1685
+ }, Q.uploadExtensions = /* @__PURE__ */ Object.create(null);
1686
+ var Le = Q;
1687
+ l.handleByMap(m.TextureUploaderWebGPU, Le.uploadExtensions);
1688
+ //#endregion
1689
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/scene/graphics/gpu/GpuGraphicsAdaptor.mjs
1690
+ var Re = class {
1691
+ constructor() {
1692
+ this._maxTextures = 0;
1693
+ }
1694
+ contextChange(e) {
1695
+ let t = new o({
1696
+ uTransformMatrix: {
1697
+ value: new s(),
1698
+ type: "mat3x3<f32>"
1699
+ },
1700
+ uColor: {
1701
+ value: new Float32Array([
1702
+ 1,
1703
+ 1,
1704
+ 1,
1705
+ 1
1706
+ ]),
1707
+ type: "vec4<f32>"
1708
+ },
1709
+ uRound: {
1710
+ value: 0,
1711
+ type: "f32"
1712
+ }
1713
+ });
1714
+ this._maxTextures = e.limits.maxBatchableTextures;
1715
+ let n = x({
1716
+ name: "graphics",
1717
+ bits: [
1718
+ se,
1719
+ ne(this._maxTextures),
1720
+ fe,
1721
+ re
1722
+ ]
1723
+ });
1724
+ this.shader = new h({
1725
+ gpuProgram: n,
1726
+ resources: { localUniforms: t }
1727
+ });
1728
+ }
1729
+ execute(e, t) {
1730
+ let n = t.context, r = n.customShader || this.shader, i = e.renderer, { batcher: a, instructions: o } = i.graphicsContext.getContextRenderData(n), s = i.encoder;
1731
+ s.setGeometry(a.geometry, r.gpuProgram);
1732
+ let c = i.globalUniforms.bindGroup;
1733
+ s.setBindGroup(0, c, r.gpuProgram);
1734
+ let l = i.renderPipes.uniformBatch.getUniformBindGroup(r.resources.localUniforms, !0);
1735
+ s.setBindGroup(2, l, r.gpuProgram);
1736
+ let u = o.instructions, d = null;
1737
+ for (let t = 0; t < o.instructionSize; t++) {
1738
+ let n = u[t];
1739
+ if (n.topology !== d && (d = n.topology, s.setPipelineFromGeometryProgramAndState(a.geometry, r.gpuProgram, e.state, n.topology, r._overrides)), r.groups[1] = n.bindGroup, !n.gpuBindGroup) {
1740
+ let e = n.textures;
1741
+ n.bindGroup = S(e.textures, e.count, this._maxTextures), n.gpuBindGroup = i.bindGroup.getBindGroup(n.bindGroup, r.gpuProgram, 1);
1742
+ }
1743
+ s.setBindGroup(1, n.bindGroup, r.gpuProgram), s.renderPassEncoder.drawIndexed(n.size, 1, n.start);
1744
+ }
1745
+ }
1746
+ destroy() {
1747
+ this.shader.destroy(!0), this.shader = null;
1748
+ }
1749
+ };
1750
+ Re.extension = {
1751
+ type: [m.WebGPUPipesAdaptor],
1752
+ name: "graphics"
1753
+ };
1754
+ //#endregion
1755
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/scene/mesh/gpu/GpuMeshAdapter.mjs
1756
+ var ze = class {
1757
+ init() {
1758
+ let e = x({
1759
+ name: "mesh",
1760
+ bits: [
1761
+ ce,
1762
+ ue,
1763
+ re
1764
+ ]
1765
+ });
1766
+ this._shader = new h({
1767
+ gpuProgram: e,
1768
+ resources: {
1769
+ uTexture: n.EMPTY._source,
1770
+ uSampler: n.EMPTY._source.style,
1771
+ textureUniforms: { uTextureMatrix: {
1772
+ type: "mat3x3<f32>",
1773
+ value: new s()
1774
+ } }
1775
+ }
1776
+ });
1777
+ }
1778
+ execute(e, n) {
1779
+ let r = e.renderer, i = n._shader;
1780
+ if (!i) i = this._shader, i.groups[2] = r.texture.getTextureBindGroup(n.texture);
1781
+ else if (!i.gpuProgram) {
1782
+ t("Mesh shader has no gpuProgram", n.shader);
1783
+ return;
1784
+ }
1785
+ let a = i.gpuProgram;
1786
+ if (a.autoAssignGlobalUniforms && (i.groups[0] = r.globalUniforms.bindGroup), a.autoAssignLocalUniforms) {
1787
+ let t = e.localUniforms;
1788
+ i.groups[1] = r.renderPipes.uniformBatch.getUniformBindGroup(t, !0);
1789
+ }
1790
+ r.encoder.draw({
1791
+ geometry: n._geometry,
1792
+ shader: i,
1793
+ state: n.state
1794
+ });
1795
+ }
1796
+ destroy() {
1797
+ this._shader.destroy(!0), this._shader = null;
1798
+ }
1799
+ };
1800
+ ze.extension = {
1801
+ type: [m.WebGPUPipesAdaptor],
1802
+ name: "mesh"
1803
+ };
1804
+ //#endregion
1805
+ //#region node_modules/.pnpm/pixi.js@8.20.1/node_modules/pixi.js/lib/rendering/renderers/gpu/WebGPURenderer.mjs
1806
+ var Be = /* @__PURE__ */ e({ WebGPURenderer: () => Ke }), Ve = [
1807
+ ...ae,
1808
+ F,
1809
+ j,
1810
+ A,
1811
+ M,
1812
+ O,
1813
+ Le,
1814
+ W,
1815
+ G,
1816
+ q,
1817
+ U,
1818
+ k,
1819
+ N,
1820
+ D
1821
+ ], He = [...ie, L], Ue = [
1822
+ E,
1823
+ ze,
1824
+ Re
1825
+ ], We = [], Ge = [], $ = [];
1826
+ l.handleByNamedList(m.WebGPUSystem, We), l.handleByNamedList(m.WebGPUPipes, Ge), l.handleByNamedList(m.WebGPUPipesAdaptor, $), l.add(...Ve, ...He, ...Ue);
1827
+ var Ke = class extends ee {
1828
+ constructor() {
1829
+ let e = {
1830
+ name: "webgpu",
1831
+ type: u.WEBGPU,
1832
+ systems: We,
1833
+ renderPipes: Ge,
1834
+ renderPipeAdaptors: $
1835
+ };
1836
+ super(e);
1837
+ }
1838
+ };
1839
+ //#endregion
1840
+ export { Be as t };