@genome-spy/app 0.83.0 → 0.84.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,1993 @@
1
+ import { _ as e, a as t, n, o as r, u as i } from "./clipOptions-Dqco1p8b.js";
2
+ import { t as a } from "./viewRenderingContext-HtpqwS_x.js";
3
+ //#region ../../node_modules/d3-array/src/identity.js
4
+ function o(e) {
5
+ return e;
6
+ }
7
+ //#endregion
8
+ //#region ../../node_modules/d3-array/src/group.js
9
+ function s(e, ...t) {
10
+ return l(e, o, o, t);
11
+ }
12
+ function c(e, ...t) {
13
+ return l(e, Array.from, o, t);
14
+ }
15
+ function l(t, n, r, i) {
16
+ return (function t(a, o) {
17
+ if (o >= i.length) return r(a);
18
+ let s = new e(), c = i[o++], l = -1;
19
+ for (let e of a) {
20
+ let t = c(e, ++l, a), n = s.get(t);
21
+ n ? n.push(e) : s.set(t, [e]);
22
+ }
23
+ for (let [e, n] of s) s.set(e, t(n, o));
24
+ return n(s);
25
+ })(t, 0);
26
+ }
27
+ //#endregion
28
+ //#region ../../node_modules/twgl.js/dist/4.x/twgl-full.module.js
29
+ var u = 5120, d = 5121, f = 5122, p = 5123, m = 5124, h = 5125, g = 5126, ee = 32819, _ = 32820, te = 33635, ne = 5131, re = 33640, ie = 35899, ae = 35902, oe = 36269, se = 34042, ce = {};
30
+ {
31
+ let e = ce;
32
+ e[u] = Int8Array, e[d] = Uint8Array, e[f] = Int16Array, e[p] = Uint16Array, e[m] = Int32Array, e[h] = Uint32Array, e[g] = Float32Array, e[ee] = Uint16Array, e[_] = Uint16Array, e[te] = Uint16Array, e[ne] = Uint16Array, e[re] = Uint32Array, e[ie] = Uint32Array, e[ae] = Uint32Array, e[oe] = Uint32Array, e[se] = Uint32Array;
33
+ }
34
+ function le(e) {
35
+ if (e instanceof Int8Array) return u;
36
+ if (e instanceof Uint8Array || e instanceof Uint8ClampedArray) return d;
37
+ if (e instanceof Int16Array) return f;
38
+ if (e instanceof Uint16Array) return p;
39
+ if (e instanceof Int32Array) return m;
40
+ if (e instanceof Uint32Array) return h;
41
+ if (e instanceof Float32Array) return g;
42
+ throw Error("unsupported typed array type");
43
+ }
44
+ function ue(e) {
45
+ if (e === Int8Array) return u;
46
+ if (e === Uint8Array || e === Uint8ClampedArray) return d;
47
+ if (e === Int16Array) return f;
48
+ if (e === Uint16Array) return p;
49
+ if (e === Int32Array) return m;
50
+ if (e === Uint32Array) return h;
51
+ if (e === Float32Array) return g;
52
+ throw Error("unsupported typed array type");
53
+ }
54
+ function de(e) {
55
+ let t = ce[e];
56
+ if (!t) throw Error("unknown gl type");
57
+ return t;
58
+ }
59
+ var fe = typeof SharedArrayBuffer < "u" ? function(e) {
60
+ return e && e.buffer && (e.buffer instanceof ArrayBuffer || e.buffer instanceof SharedArrayBuffer);
61
+ } : function(e) {
62
+ return e && e.buffer && e.buffer instanceof ArrayBuffer;
63
+ };
64
+ function pe(...e) {
65
+ console.error(...e);
66
+ }
67
+ function me(...e) {
68
+ console.warn(...e);
69
+ }
70
+ function he(e, t) {
71
+ return typeof WebGLBuffer < "u" && t instanceof WebGLBuffer;
72
+ }
73
+ function ge(e, t) {
74
+ return typeof WebGLRenderbuffer < "u" && t instanceof WebGLRenderbuffer;
75
+ }
76
+ function _e(e, t) {
77
+ return typeof WebGLTexture < "u" && t instanceof WebGLTexture;
78
+ }
79
+ function ve(e, t) {
80
+ return typeof WebGLSampler < "u" && t instanceof WebGLSampler;
81
+ }
82
+ var ye = 35044, v = 34962, be = 34963, xe = 34660, Se = 5120, Ce = 5121, we = 5122, Te = 5123, Ee = 5124, De = 5125, Oe = 5126, ke = { attribPrefix: "" };
83
+ function Ae(e, t, n, r, i) {
84
+ e.bindBuffer(t, n), e.bufferData(t, r, i || ye);
85
+ }
86
+ function je(e, t, n, r) {
87
+ if (he(e, t)) return t;
88
+ n ||= v;
89
+ let i = e.createBuffer();
90
+ return Ae(e, n, i, t, r), i;
91
+ }
92
+ function Me(e) {
93
+ return e === "indices";
94
+ }
95
+ function Ne(e) {
96
+ return e instanceof Int8Array || e instanceof Uint8Array;
97
+ }
98
+ function Pe(e) {
99
+ return e === Int8Array || e === Uint8Array;
100
+ }
101
+ function Fe(e) {
102
+ return e.length ? e : e.data;
103
+ }
104
+ var Ie = /coord|texture/i, Le = /color|colour/i;
105
+ function Re(e, t) {
106
+ let n;
107
+ if (n = Ie.test(e) ? 2 : Le.test(e) ? 4 : 3, t % n > 0) throw Error(`Can not guess numComponents for attribute '${e}'. Tried ${n} but ${t} values is not evenly divisible by ${n}. You should specify it.`);
108
+ return n;
109
+ }
110
+ function ze(e, t) {
111
+ return e.numComponents || e.size || Re(t, Fe(e).length);
112
+ }
113
+ function Be(e, t) {
114
+ if (fe(e)) return e;
115
+ if (fe(e.data)) return e.data;
116
+ Array.isArray(e) && (e = { data: e });
117
+ let n = e.type;
118
+ return n ||= Me(t) ? Uint16Array : Float32Array, new n(e.data);
119
+ }
120
+ function Ve(e, t) {
121
+ let n = {};
122
+ return Object.keys(t).forEach(function(r) {
123
+ if (!Me(r)) {
124
+ let i = t[r], a = i.attrib || i.name || i.attribName || ke.attribPrefix + r;
125
+ if (i.value) {
126
+ if (!Array.isArray(i.value) && !fe(i.value)) throw Error("array.value is not array or typedarray");
127
+ n[a] = { value: i.value };
128
+ } else {
129
+ let t, o, s, c;
130
+ if (i.buffer && i.buffer instanceof WebGLBuffer) t = i.buffer, c = i.numComponents || i.size, o = i.type, s = i.normalize;
131
+ else if (typeof i == "number" || typeof i.data == "number") {
132
+ let n = i.data || i, a = i.type || Float32Array, l = n * a.BYTES_PER_ELEMENT;
133
+ o = ue(a), s = i.normalize === void 0 ? Pe(a) : i.normalize, c = i.numComponents || i.size || Re(r, n), t = e.createBuffer(), e.bindBuffer(v, t), e.bufferData(v, l, i.drawType || ye);
134
+ } else {
135
+ let n = Be(i, r);
136
+ t = je(e, n, void 0, i.drawType), o = le(n), s = i.normalize === void 0 ? Ne(n) : i.normalize, c = ze(i, r);
137
+ }
138
+ n[a] = {
139
+ buffer: t,
140
+ numComponents: c,
141
+ type: o,
142
+ normalize: s,
143
+ stride: i.stride || 0,
144
+ offset: i.offset || 0,
145
+ divisor: i.divisor === void 0 ? void 0 : i.divisor,
146
+ drawType: i.drawType
147
+ };
148
+ }
149
+ }
150
+ }), e.bindBuffer(v, null), n;
151
+ }
152
+ function He(e, t, n, r) {
153
+ n = Be(n), r === void 0 ? Ae(e, v, t.buffer, n, t.drawType) : (e.bindBuffer(v, t.buffer), e.bufferSubData(v, r, n));
154
+ }
155
+ function Ue(e, t) {
156
+ return t === Se || t === Ce ? 1 : t === we || t === Te ? 2 : t === Ee || t === De || t === Oe ? 4 : 0;
157
+ }
158
+ var We = [
159
+ "position",
160
+ "positions",
161
+ "a_position"
162
+ ];
163
+ function Ge(e, t) {
164
+ let n, r;
165
+ for (r = 0; r < We.length && (n = We[r], !(n in t || (n = ke.attribPrefix + n, n in t))); ++r);
166
+ r === We.length && (n = Object.keys(t)[0]);
167
+ let i = t[n];
168
+ if (!i.buffer) return 1;
169
+ e.bindBuffer(v, i.buffer);
170
+ let a = e.getBufferParameter(v, xe);
171
+ e.bindBuffer(v, null);
172
+ let o = a / Ue(e, i.type), s = i.numComponents || i.size, c = o / s;
173
+ if (c % 1 != 0) throw Error(`numComponents ${s} not correct for length ${length}`);
174
+ return c;
175
+ }
176
+ function Ke(e, t, n) {
177
+ let r = Ve(e, t), i = Object.assign({}, n || {});
178
+ i.attribs = Object.assign({}, n ? n.attribs : {}, r);
179
+ let a = t.indices;
180
+ if (a) {
181
+ let t = Be(a, "indices");
182
+ i.indices = je(e, t, be), i.numElements = t.length, i.elementType = le(t);
183
+ } else i.numElements ||= Ge(e, i.attribs);
184
+ return i;
185
+ }
186
+ function y(e) {
187
+ return !!e.texStorage2D;
188
+ }
189
+ var qe = function() {
190
+ let e = {}, t = {};
191
+ function n(n) {
192
+ let r = n.constructor.name;
193
+ if (!e[r]) {
194
+ for (let e in n) if (typeof n[e] == "number") {
195
+ let r = t[n[e]];
196
+ t[n[e]] = r ? `${r} | ${e}` : e;
197
+ }
198
+ e[r] = !0;
199
+ }
200
+ }
201
+ return function(e, r) {
202
+ return n(e), t[r] || (typeof r == "number" ? `0x${r.toString(16)}` : r);
203
+ };
204
+ }(), b = {
205
+ textureColor: new Uint8Array([
206
+ 128,
207
+ 192,
208
+ 255,
209
+ 255
210
+ ]),
211
+ textureOptions: {},
212
+ crossOrigin: void 0
213
+ }, x = fe, Je = function() {
214
+ let e;
215
+ return function() {
216
+ return e ||= typeof document < "u" && document.createElement ? document.createElement("canvas").getContext("2d") : null, e;
217
+ };
218
+ }(), Ye = 6406, S = 6407, C = 6408, Xe = 6409, Ze = 6410, w = 6402, Qe = 34041, $e = 33071, et = 9728, tt = 9729, T = 3553, E = 34067, D = 32879, O = 35866, nt = 34069, rt = 34070, it = 34071, at = 34072, ot = 34073, st = 34074, ct = 10241, lt = 10240, ut = 10242, dt = 10243, ft = 32882, pt = 33082, mt = 33083, ht = 33084, gt = 33085, _t = 3317, vt = 3314, yt = 32878, bt = 3316, xt = 3315, St = 32877, Ct = 37443, wt = 37441, Tt = 37440, Et = 33321, Dt = 36756, Ot = 33325, kt = 33326, At = 33330, jt = 33329, Mt = 33338, Nt = 33337, Pt = 33340, Ft = 33339, It = 33323, Lt = 36757, Rt = 33327, zt = 33328, Bt = 33336, Vt = 33335, Ht = 33332, Ut = 33331, Wt = 33334, Gt = 33333, Kt = 32849, qt = 35905, Jt = 36194, Yt = 36758, Xt = 35898, Zt = 35901, Qt = 34843, $t = 34837, en = 36221, tn = 36239, nn = 36215, rn = 36233, an = 36209, on = 36227, sn = 32856, cn = 35907, ln = 36759, un = 32855, dn = 32854, fn = 32857, pn = 34842, mn = 34836, hn = 36220, gn = 36238, _n = 36975, vn = 36214, yn = 36232, bn = 36226, xn = 36208, Sn = 33189, Cn = 33190, wn = 36012, Tn = 36013, En = 35056, k = 5120, A = 5121, Dn = 5122, j = 5123, On = 5124, M = 5125, N = 5126, kn = 32819, An = 32820, jn = 33635, P = 5131, F = 36193, Mn = 33640, Nn = 35899, Pn = 35902, Fn = 36269, In = 34042, I = 33319, L = 33320, R = 6403, z = 36244, B = 36248, V = 36249, Ln = {};
219
+ {
220
+ let e = Ln;
221
+ e[Ye] = { numColorComponents: 1 }, e[Xe] = { numColorComponents: 1 }, e[Ze] = { numColorComponents: 2 }, e[S] = { numColorComponents: 3 }, e[C] = { numColorComponents: 4 }, e[R] = { numColorComponents: 1 }, e[z] = { numColorComponents: 1 }, e[I] = { numColorComponents: 2 }, e[L] = { numColorComponents: 2 }, e[S] = { numColorComponents: 3 }, e[B] = { numColorComponents: 3 }, e[C] = { numColorComponents: 4 }, e[V] = { numColorComponents: 4 }, e[w] = { numColorComponents: 1 }, e[Qe] = { numColorComponents: 2 };
222
+ }
223
+ var Rn;
224
+ function zn(e) {
225
+ if (!Rn) {
226
+ let e = {};
227
+ e[Ye] = {
228
+ textureFormat: Ye,
229
+ colorRenderable: !0,
230
+ textureFilterable: !0,
231
+ bytesPerElement: [
232
+ 1,
233
+ 2,
234
+ 2,
235
+ 4
236
+ ],
237
+ type: [
238
+ A,
239
+ P,
240
+ F,
241
+ N
242
+ ]
243
+ }, e[Xe] = {
244
+ textureFormat: Xe,
245
+ colorRenderable: !0,
246
+ textureFilterable: !0,
247
+ bytesPerElement: [
248
+ 1,
249
+ 2,
250
+ 2,
251
+ 4
252
+ ],
253
+ type: [
254
+ A,
255
+ P,
256
+ F,
257
+ N
258
+ ]
259
+ }, e[Ze] = {
260
+ textureFormat: Ze,
261
+ colorRenderable: !0,
262
+ textureFilterable: !0,
263
+ bytesPerElement: [
264
+ 2,
265
+ 4,
266
+ 4,
267
+ 8
268
+ ],
269
+ type: [
270
+ A,
271
+ P,
272
+ F,
273
+ N
274
+ ]
275
+ }, e[S] = {
276
+ textureFormat: S,
277
+ colorRenderable: !0,
278
+ textureFilterable: !0,
279
+ bytesPerElement: [
280
+ 3,
281
+ 6,
282
+ 6,
283
+ 12,
284
+ 2
285
+ ],
286
+ type: [
287
+ A,
288
+ P,
289
+ F,
290
+ N,
291
+ jn
292
+ ]
293
+ }, e[C] = {
294
+ textureFormat: C,
295
+ colorRenderable: !0,
296
+ textureFilterable: !0,
297
+ bytesPerElement: [
298
+ 4,
299
+ 8,
300
+ 8,
301
+ 16,
302
+ 2,
303
+ 2
304
+ ],
305
+ type: [
306
+ A,
307
+ P,
308
+ F,
309
+ N,
310
+ kn,
311
+ An
312
+ ]
313
+ }, e[w] = {
314
+ textureFormat: w,
315
+ colorRenderable: !0,
316
+ textureFilterable: !1,
317
+ bytesPerElement: [2, 4],
318
+ type: [M, j]
319
+ }, e[Et] = {
320
+ textureFormat: R,
321
+ colorRenderable: !0,
322
+ textureFilterable: !0,
323
+ bytesPerElement: [1],
324
+ type: [A]
325
+ }, e[Dt] = {
326
+ textureFormat: R,
327
+ colorRenderable: !1,
328
+ textureFilterable: !0,
329
+ bytesPerElement: [1],
330
+ type: [k]
331
+ }, e[Ot] = {
332
+ textureFormat: R,
333
+ colorRenderable: !1,
334
+ textureFilterable: !0,
335
+ bytesPerElement: [4, 2],
336
+ type: [N, P]
337
+ }, e[kt] = {
338
+ textureFormat: R,
339
+ colorRenderable: !1,
340
+ textureFilterable: !1,
341
+ bytesPerElement: [4],
342
+ type: [N]
343
+ }, e[At] = {
344
+ textureFormat: z,
345
+ colorRenderable: !0,
346
+ textureFilterable: !1,
347
+ bytesPerElement: [1],
348
+ type: [A]
349
+ }, e[jt] = {
350
+ textureFormat: z,
351
+ colorRenderable: !0,
352
+ textureFilterable: !1,
353
+ bytesPerElement: [1],
354
+ type: [k]
355
+ }, e[Ht] = {
356
+ textureFormat: z,
357
+ colorRenderable: !0,
358
+ textureFilterable: !1,
359
+ bytesPerElement: [2],
360
+ type: [j]
361
+ }, e[Ut] = {
362
+ textureFormat: z,
363
+ colorRenderable: !0,
364
+ textureFilterable: !1,
365
+ bytesPerElement: [2],
366
+ type: [Dn]
367
+ }, e[Wt] = {
368
+ textureFormat: z,
369
+ colorRenderable: !0,
370
+ textureFilterable: !1,
371
+ bytesPerElement: [4],
372
+ type: [M]
373
+ }, e[Gt] = {
374
+ textureFormat: z,
375
+ colorRenderable: !0,
376
+ textureFilterable: !1,
377
+ bytesPerElement: [4],
378
+ type: [On]
379
+ }, e[It] = {
380
+ textureFormat: I,
381
+ colorRenderable: !0,
382
+ textureFilterable: !0,
383
+ bytesPerElement: [2],
384
+ type: [A]
385
+ }, e[Lt] = {
386
+ textureFormat: I,
387
+ colorRenderable: !1,
388
+ textureFilterable: !0,
389
+ bytesPerElement: [2],
390
+ type: [k]
391
+ }, e[Rt] = {
392
+ textureFormat: I,
393
+ colorRenderable: !1,
394
+ textureFilterable: !0,
395
+ bytesPerElement: [8, 4],
396
+ type: [N, P]
397
+ }, e[zt] = {
398
+ textureFormat: I,
399
+ colorRenderable: !1,
400
+ textureFilterable: !1,
401
+ bytesPerElement: [8],
402
+ type: [N]
403
+ }, e[Bt] = {
404
+ textureFormat: L,
405
+ colorRenderable: !0,
406
+ textureFilterable: !1,
407
+ bytesPerElement: [2],
408
+ type: [A]
409
+ }, e[Vt] = {
410
+ textureFormat: L,
411
+ colorRenderable: !0,
412
+ textureFilterable: !1,
413
+ bytesPerElement: [2],
414
+ type: [k]
415
+ }, e[Mt] = {
416
+ textureFormat: L,
417
+ colorRenderable: !0,
418
+ textureFilterable: !1,
419
+ bytesPerElement: [4],
420
+ type: [j]
421
+ }, e[Nt] = {
422
+ textureFormat: L,
423
+ colorRenderable: !0,
424
+ textureFilterable: !1,
425
+ bytesPerElement: [4],
426
+ type: [Dn]
427
+ }, e[Pt] = {
428
+ textureFormat: L,
429
+ colorRenderable: !0,
430
+ textureFilterable: !1,
431
+ bytesPerElement: [8],
432
+ type: [M]
433
+ }, e[Ft] = {
434
+ textureFormat: L,
435
+ colorRenderable: !0,
436
+ textureFilterable: !1,
437
+ bytesPerElement: [8],
438
+ type: [On]
439
+ }, e[Kt] = {
440
+ textureFormat: S,
441
+ colorRenderable: !0,
442
+ textureFilterable: !0,
443
+ bytesPerElement: [3],
444
+ type: [A]
445
+ }, e[qt] = {
446
+ textureFormat: S,
447
+ colorRenderable: !1,
448
+ textureFilterable: !0,
449
+ bytesPerElement: [3],
450
+ type: [A]
451
+ }, e[Jt] = {
452
+ textureFormat: S,
453
+ colorRenderable: !0,
454
+ textureFilterable: !0,
455
+ bytesPerElement: [3, 2],
456
+ type: [A, jn]
457
+ }, e[Yt] = {
458
+ textureFormat: S,
459
+ colorRenderable: !1,
460
+ textureFilterable: !0,
461
+ bytesPerElement: [3],
462
+ type: [k]
463
+ }, e[Xt] = {
464
+ textureFormat: S,
465
+ colorRenderable: !1,
466
+ textureFilterable: !0,
467
+ bytesPerElement: [
468
+ 12,
469
+ 6,
470
+ 4
471
+ ],
472
+ type: [
473
+ N,
474
+ P,
475
+ Nn
476
+ ]
477
+ }, e[Zt] = {
478
+ textureFormat: S,
479
+ colorRenderable: !1,
480
+ textureFilterable: !0,
481
+ bytesPerElement: [
482
+ 12,
483
+ 6,
484
+ 4
485
+ ],
486
+ type: [
487
+ N,
488
+ P,
489
+ Pn
490
+ ]
491
+ }, e[Qt] = {
492
+ textureFormat: S,
493
+ colorRenderable: !1,
494
+ textureFilterable: !0,
495
+ bytesPerElement: [12, 6],
496
+ type: [N, P]
497
+ }, e[$t] = {
498
+ textureFormat: S,
499
+ colorRenderable: !1,
500
+ textureFilterable: !1,
501
+ bytesPerElement: [12],
502
+ type: [N]
503
+ }, e[en] = {
504
+ textureFormat: B,
505
+ colorRenderable: !1,
506
+ textureFilterable: !1,
507
+ bytesPerElement: [3],
508
+ type: [A]
509
+ }, e[tn] = {
510
+ textureFormat: B,
511
+ colorRenderable: !1,
512
+ textureFilterable: !1,
513
+ bytesPerElement: [3],
514
+ type: [k]
515
+ }, e[nn] = {
516
+ textureFormat: B,
517
+ colorRenderable: !1,
518
+ textureFilterable: !1,
519
+ bytesPerElement: [6],
520
+ type: [j]
521
+ }, e[rn] = {
522
+ textureFormat: B,
523
+ colorRenderable: !1,
524
+ textureFilterable: !1,
525
+ bytesPerElement: [6],
526
+ type: [Dn]
527
+ }, e[an] = {
528
+ textureFormat: B,
529
+ colorRenderable: !1,
530
+ textureFilterable: !1,
531
+ bytesPerElement: [12],
532
+ type: [M]
533
+ }, e[on] = {
534
+ textureFormat: B,
535
+ colorRenderable: !1,
536
+ textureFilterable: !1,
537
+ bytesPerElement: [12],
538
+ type: [On]
539
+ }, e[sn] = {
540
+ textureFormat: C,
541
+ colorRenderable: !0,
542
+ textureFilterable: !0,
543
+ bytesPerElement: [4],
544
+ type: [A]
545
+ }, e[cn] = {
546
+ textureFormat: C,
547
+ colorRenderable: !0,
548
+ textureFilterable: !0,
549
+ bytesPerElement: [4],
550
+ type: [A]
551
+ }, e[ln] = {
552
+ textureFormat: C,
553
+ colorRenderable: !1,
554
+ textureFilterable: !0,
555
+ bytesPerElement: [4],
556
+ type: [k]
557
+ }, e[un] = {
558
+ textureFormat: C,
559
+ colorRenderable: !0,
560
+ textureFilterable: !0,
561
+ bytesPerElement: [
562
+ 4,
563
+ 2,
564
+ 4
565
+ ],
566
+ type: [
567
+ A,
568
+ An,
569
+ Mn
570
+ ]
571
+ }, e[dn] = {
572
+ textureFormat: C,
573
+ colorRenderable: !0,
574
+ textureFilterable: !0,
575
+ bytesPerElement: [4, 2],
576
+ type: [A, kn]
577
+ }, e[fn] = {
578
+ textureFormat: C,
579
+ colorRenderable: !0,
580
+ textureFilterable: !0,
581
+ bytesPerElement: [4],
582
+ type: [Mn]
583
+ }, e[pn] = {
584
+ textureFormat: C,
585
+ colorRenderable: !1,
586
+ textureFilterable: !0,
587
+ bytesPerElement: [16, 8],
588
+ type: [N, P]
589
+ }, e[mn] = {
590
+ textureFormat: C,
591
+ colorRenderable: !1,
592
+ textureFilterable: !1,
593
+ bytesPerElement: [16],
594
+ type: [N]
595
+ }, e[hn] = {
596
+ textureFormat: V,
597
+ colorRenderable: !0,
598
+ textureFilterable: !1,
599
+ bytesPerElement: [4],
600
+ type: [A]
601
+ }, e[gn] = {
602
+ textureFormat: V,
603
+ colorRenderable: !0,
604
+ textureFilterable: !1,
605
+ bytesPerElement: [4],
606
+ type: [k]
607
+ }, e[_n] = {
608
+ textureFormat: V,
609
+ colorRenderable: !0,
610
+ textureFilterable: !1,
611
+ bytesPerElement: [4],
612
+ type: [Mn]
613
+ }, e[vn] = {
614
+ textureFormat: V,
615
+ colorRenderable: !0,
616
+ textureFilterable: !1,
617
+ bytesPerElement: [8],
618
+ type: [j]
619
+ }, e[yn] = {
620
+ textureFormat: V,
621
+ colorRenderable: !0,
622
+ textureFilterable: !1,
623
+ bytesPerElement: [8],
624
+ type: [Dn]
625
+ }, e[bn] = {
626
+ textureFormat: V,
627
+ colorRenderable: !0,
628
+ textureFilterable: !1,
629
+ bytesPerElement: [16],
630
+ type: [On]
631
+ }, e[xn] = {
632
+ textureFormat: V,
633
+ colorRenderable: !0,
634
+ textureFilterable: !1,
635
+ bytesPerElement: [16],
636
+ type: [M]
637
+ }, e[Sn] = {
638
+ textureFormat: w,
639
+ colorRenderable: !0,
640
+ textureFilterable: !1,
641
+ bytesPerElement: [2, 4],
642
+ type: [j, M]
643
+ }, e[Cn] = {
644
+ textureFormat: w,
645
+ colorRenderable: !0,
646
+ textureFilterable: !1,
647
+ bytesPerElement: [4],
648
+ type: [M]
649
+ }, e[wn] = {
650
+ textureFormat: w,
651
+ colorRenderable: !0,
652
+ textureFilterable: !1,
653
+ bytesPerElement: [4],
654
+ type: [N]
655
+ }, e[En] = {
656
+ textureFormat: Qe,
657
+ colorRenderable: !0,
658
+ textureFilterable: !1,
659
+ bytesPerElement: [4],
660
+ type: [In]
661
+ }, e[Tn] = {
662
+ textureFormat: Qe,
663
+ colorRenderable: !0,
664
+ textureFilterable: !1,
665
+ bytesPerElement: [4],
666
+ type: [Fn]
667
+ }, Object.keys(e).forEach(function(t) {
668
+ let n = e[t];
669
+ n.bytesPerElementMap = {}, n.bytesPerElement.forEach(function(e, t) {
670
+ let r = n.type[t];
671
+ n.bytesPerElementMap[r] = e;
672
+ });
673
+ }), Rn = e;
674
+ }
675
+ return Rn[e];
676
+ }
677
+ function Bn(e, t) {
678
+ let n = zn(e);
679
+ if (!n) throw "unknown internal format";
680
+ let r = n.bytesPerElementMap[t];
681
+ if (r === void 0) throw "unknown internal format";
682
+ return r;
683
+ }
684
+ function H(e) {
685
+ let t = zn(e);
686
+ if (!t) throw "unknown internal format";
687
+ return {
688
+ format: t.textureFormat,
689
+ type: t.type[0]
690
+ };
691
+ }
692
+ function Vn(e) {
693
+ return (e & e - 1) == 0;
694
+ }
695
+ function Hn(e, t, n, r) {
696
+ if (!y(e)) return Vn(t) && Vn(n);
697
+ let i = zn(r);
698
+ if (!i) throw "unknown internal format";
699
+ return i.colorRenderable && i.textureFilterable;
700
+ }
701
+ function Un(e) {
702
+ let t = zn(e);
703
+ if (!t) throw "unknown internal format";
704
+ return t.textureFilterable;
705
+ }
706
+ function Wn(e, t, n) {
707
+ return x(t) ? le(t) : n || A;
708
+ }
709
+ function Gn(e, t, n, r, i) {
710
+ if (i % 1 != 0) throw "can't guess dimensions";
711
+ if (!n && !r) {
712
+ let e = Math.sqrt(i / (t === E ? 6 : 1));
713
+ e % 1 == 0 ? (n = e, r = e) : (n = i, r = 1);
714
+ } else if (!r) {
715
+ if (r = i / n, r % 1) throw "can't guess dimensions";
716
+ } else if (!n && (n = i / r, n % 1)) throw "can't guess dimensions";
717
+ return {
718
+ width: n,
719
+ height: r
720
+ };
721
+ }
722
+ function U(e, t) {
723
+ t.colorspaceConversion !== void 0 && e.pixelStorei(Ct, t.colorspaceConversion), t.premultiplyAlpha !== void 0 && e.pixelStorei(wt, t.premultiplyAlpha), t.flipY !== void 0 && e.pixelStorei(Tt, t.flipY);
724
+ }
725
+ function Kn(e) {
726
+ e.pixelStorei(_t, 4), y(e) && (e.pixelStorei(vt, 0), e.pixelStorei(yt, 0), e.pixelStorei(bt, 0), e.pixelStorei(xt, 0), e.pixelStorei(St, 0));
727
+ }
728
+ function qn(e, t, n, r) {
729
+ r.minMag && (n.call(e, t, ct, r.minMag), n.call(e, t, lt, r.minMag)), r.min && n.call(e, t, ct, r.min), r.mag && n.call(e, t, lt, r.mag), r.wrap && (n.call(e, t, ut, r.wrap), n.call(e, t, dt, r.wrap), (t === D || ve(e, t)) && n.call(e, t, ft, r.wrap)), r.wrapR && n.call(e, t, ft, r.wrapR), r.wrapS && n.call(e, t, ut, r.wrapS), r.wrapT && n.call(e, t, dt, r.wrapT), r.minLod && n.call(e, t, pt, r.minLod), r.maxLod && n.call(e, t, mt, r.maxLod), r.baseLevel && n.call(e, t, ht, r.baseLevel), r.maxLevel && n.call(e, t, gt, r.maxLevel);
730
+ }
731
+ function Jn(e, t, n) {
732
+ let r = n.target || T;
733
+ e.bindTexture(r, t), qn(e, r, e.texParameteri, n);
734
+ }
735
+ function Yn(e) {
736
+ return e ||= b.textureColor, x(e) ? e : new Uint8Array([
737
+ e[0] * 255,
738
+ e[1] * 255,
739
+ e[2] * 255,
740
+ e[3] * 255
741
+ ]);
742
+ }
743
+ function Xn(e, t, n, r, i, a) {
744
+ n ||= b.textureOptions, a ||= C;
745
+ let o = n.target || T;
746
+ if (r ||= n.width, i ||= n.height, e.bindTexture(o, t), Hn(e, r, i, a)) e.generateMipmap(o);
747
+ else {
748
+ let t = Un(a) ? tt : et;
749
+ e.texParameteri(o, ct, t), e.texParameteri(o, lt, t), e.texParameteri(o, ut, $e), e.texParameteri(o, dt, $e);
750
+ }
751
+ }
752
+ function W(e) {
753
+ return e.auto === !0 || e.auto === void 0 && e.level === void 0;
754
+ }
755
+ function Zn(e, t) {
756
+ return t ||= {}, t.cubeFaceOrder || [
757
+ nt,
758
+ rt,
759
+ it,
760
+ at,
761
+ ot,
762
+ st
763
+ ];
764
+ }
765
+ function Qn(e, t) {
766
+ let n = Zn(e, t).map(function(e, t) {
767
+ return {
768
+ face: e,
769
+ ndx: t
770
+ };
771
+ });
772
+ return n.sort(function(e, t) {
773
+ return e.face - t.face;
774
+ }), n;
775
+ }
776
+ function $n(e, t, n, r) {
777
+ r ||= b.textureOptions;
778
+ let i = r.target || T, a = r.level || 0, o = n.width, s = n.height, c = r.internalFormat || r.format || C, l = H(c), u = r.format || l.format, d = r.type || l.type;
779
+ if (U(e, r), e.bindTexture(i, t), i === E) {
780
+ let l = n.width, f = n.height, p, m;
781
+ if (l / 6 === f) p = f, m = [
782
+ 0,
783
+ 0,
784
+ 1,
785
+ 0,
786
+ 2,
787
+ 0,
788
+ 3,
789
+ 0,
790
+ 4,
791
+ 0,
792
+ 5,
793
+ 0
794
+ ];
795
+ else if (f / 6 === l) p = l, m = [
796
+ 0,
797
+ 0,
798
+ 0,
799
+ 1,
800
+ 0,
801
+ 2,
802
+ 0,
803
+ 3,
804
+ 0,
805
+ 4,
806
+ 0,
807
+ 5
808
+ ];
809
+ else if (l / 3 == f / 2) p = l / 3, m = [
810
+ 0,
811
+ 0,
812
+ 1,
813
+ 0,
814
+ 2,
815
+ 0,
816
+ 0,
817
+ 1,
818
+ 1,
819
+ 1,
820
+ 2,
821
+ 1
822
+ ];
823
+ else if (l / 2 == f / 3) p = l / 2, m = [
824
+ 0,
825
+ 0,
826
+ 1,
827
+ 0,
828
+ 0,
829
+ 1,
830
+ 1,
831
+ 1,
832
+ 0,
833
+ 2,
834
+ 1,
835
+ 2
836
+ ];
837
+ else throw "can't figure out cube map from element: " + (n.src ? n.src : n.nodeName);
838
+ let h = Je();
839
+ h ? (h.canvas.width = p, h.canvas.height = p, o = p, s = p, Qn(e, r).forEach(function(t) {
840
+ let r = m[t.ndx * 2 + 0] * p, i = m[t.ndx * 2 + 1] * p;
841
+ h.drawImage(n, r, i, p, p, 0, 0, p, p), e.texImage2D(t.face, a, c, u, d, h.canvas);
842
+ }), h.canvas.width = 1, h.canvas.height = 1) : typeof createImageBitmap < "u" && (o = p, s = p, Qn(e, r).forEach(function(l) {
843
+ let f = m[l.ndx * 2 + 0] * p, h = m[l.ndx * 2 + 1] * p;
844
+ e.texImage2D(l.face, a, c, p, p, 0, u, d, null), createImageBitmap(n, f, h, p, p, {
845
+ premultiplyAlpha: "none",
846
+ colorSpaceConversion: "none"
847
+ }).then(function(n) {
848
+ U(e, r), e.bindTexture(i, t), e.texImage2D(l.face, a, c, u, d, n), W(r) && Xn(e, t, r, o, s, c);
849
+ });
850
+ }));
851
+ } else if (i === D || i === O) {
852
+ let t = Math.min(n.width, n.height), r = Math.max(n.width, n.height), o = r / t;
853
+ if (o % 1 != 0) throw "can not compute 3D dimensions of element";
854
+ let s = +(n.width === r), l = +(n.height === r);
855
+ e.pixelStorei(_t, 1), e.pixelStorei(vt, n.width), e.pixelStorei(yt, 0), e.pixelStorei(St, 0), e.texImage3D(i, a, c, t, t, t, 0, u, d, null);
856
+ for (let r = 0; r < o; ++r) {
857
+ let o = r * t * s, c = r * t * l;
858
+ e.pixelStorei(bt, o), e.pixelStorei(xt, c), e.texSubImage3D(i, a, 0, 0, r, t, t, 1, u, d, n);
859
+ }
860
+ Kn(e);
861
+ } else e.texImage2D(i, a, c, u, d, n);
862
+ W(r) && Xn(e, t, r, o, s, c), Jn(e, t, r);
863
+ }
864
+ function G() {}
865
+ function er(e) {
866
+ if (typeof document < "u") {
867
+ let t = document.createElement("a");
868
+ return t.href = e, t.hostname === location.hostname && t.port === location.port && t.protocol === location.protocol;
869
+ } else {
870
+ let t = new URL(location.href).origin;
871
+ return new URL(e, location.href).origin === t;
872
+ }
873
+ }
874
+ function tr(e, t) {
875
+ return t === void 0 && !er(e) ? "anonymous" : t;
876
+ }
877
+ function nr(e, t, n) {
878
+ n ||= G;
879
+ let r;
880
+ if (t = t === void 0 ? b.crossOrigin : t, t = tr(e, t), typeof Image < "u") {
881
+ r = new Image(), t !== void 0 && (r.crossOrigin = t);
882
+ let i = function() {
883
+ r.removeEventListener("error", a), r.removeEventListener("load", o), r = null;
884
+ }, a = function() {
885
+ let t = "couldn't load image: " + e;
886
+ pe(t), n(t, r), i();
887
+ }, o = function() {
888
+ n(null, r), i();
889
+ };
890
+ return r.addEventListener("error", a), r.addEventListener("load", o), r.src = e, r;
891
+ } else if (typeof ImageBitmap < "u") {
892
+ let i, a, o = function() {
893
+ n(i, a);
894
+ }, s = {};
895
+ t && (s.mode = "cors"), fetch(e, s).then(function(e) {
896
+ if (!e.ok) throw e;
897
+ return e.blob();
898
+ }).then(function(e) {
899
+ return createImageBitmap(e, {
900
+ premultiplyAlpha: "none",
901
+ colorSpaceConversion: "none"
902
+ });
903
+ }).then(function(e) {
904
+ a = e, setTimeout(o);
905
+ }).catch(function(e) {
906
+ i = e, setTimeout(o);
907
+ }), r = null;
908
+ }
909
+ return r;
910
+ }
911
+ function rr(e) {
912
+ return typeof ImageBitmap < "u" && e instanceof ImageBitmap || typeof ImageData < "u" && e instanceof ImageData || typeof HTMLElement < "u" && e instanceof HTMLElement;
913
+ }
914
+ function ir(e, t, n) {
915
+ return rr(e) ? (setTimeout(function() {
916
+ n(null, e);
917
+ }), e) : nr(e, t, n);
918
+ }
919
+ function ar(e, t, n) {
920
+ n ||= b.textureOptions;
921
+ let r = n.target || T;
922
+ if (e.bindTexture(r, t), n.color === !1) return;
923
+ let i = Yn(n.color);
924
+ if (r === E) for (let t = 0; t < 6; ++t) e.texImage2D(nt + t, 0, C, 1, 1, 0, C, A, i);
925
+ else r === D || r === O ? e.texImage3D(r, 0, C, 1, 1, 1, 0, C, A, i) : e.texImage2D(r, 0, C, 1, 1, 0, C, A, i);
926
+ }
927
+ function or(e, t, n, r) {
928
+ return r ||= G, n ||= b.textureOptions, ar(e, t, n), n = Object.assign({}, n), ir(n.src, n.crossOrigin, function(i, a) {
929
+ i ? r(i, t, a) : ($n(e, t, a, n), r(null, t, a));
930
+ });
931
+ }
932
+ function sr(e, t, n, r) {
933
+ r ||= G;
934
+ let i = n.src;
935
+ if (i.length !== 6) throw "there must be 6 urls for a cubemap";
936
+ let a = n.level || 0, o = n.internalFormat || n.format || C, s = H(o), c = n.format || s.format, l = n.type || A, u = n.target || T;
937
+ if (u !== E) throw "target must be TEXTURE_CUBE_MAP";
938
+ ar(e, t, n), n = Object.assign({}, n);
939
+ let d = 6, f = [], p = Zn(e, n), m;
940
+ function h(i) {
941
+ return function(s, p) {
942
+ --d, s ? f.push(s) : p.width === p.height ? (U(e, n), e.bindTexture(u, t), d === 5 ? Zn().forEach(function(t) {
943
+ e.texImage2D(t, a, o, c, l, p);
944
+ }) : e.texImage2D(i, a, o, c, l, p), W(n) && e.generateMipmap(u)) : f.push("cubemap face img is not a square: " + p.src), d === 0 && r(f.length ? f : void 0, t, m);
945
+ };
946
+ }
947
+ m = i.map(function(e, t) {
948
+ return ir(e, n.crossOrigin, h(p[t]));
949
+ });
950
+ }
951
+ function cr(e, t, n, r) {
952
+ r ||= G;
953
+ let i = n.src, a = n.internalFormat || n.format || C, o = H(a), s = n.format || o.format, c = n.type || A, l = n.target || O;
954
+ if (l !== D && l !== O) throw "target must be TEXTURE_3D or TEXTURE_2D_ARRAY";
955
+ ar(e, t, n), n = Object.assign({}, n);
956
+ let u = i.length, d = [], f, p = n.level || 0, m = n.width, h = n.height, g = i.length, ee = !0;
957
+ function _(i) {
958
+ return function(o, _) {
959
+ if (--u, o) d.push(o);
960
+ else {
961
+ if (U(e, n), e.bindTexture(l, t), ee) {
962
+ ee = !1, m = n.width || _.width, h = n.height || _.height, e.texImage3D(l, p, a, m, h, g, 0, s, c, null);
963
+ for (let t = 0; t < g; ++t) e.texSubImage3D(l, p, 0, 0, t, m, h, 1, s, c, _);
964
+ } else {
965
+ let t = _, n;
966
+ (_.width !== m || _.height !== h) && (n = Je(), t = n.canvas, n.canvas.width = m, n.canvas.height = h, n.drawImage(_, 0, 0, m, h)), e.texSubImage3D(l, p, 0, 0, i, m, h, 1, s, c, t), n && t === n.canvas && (n.canvas.width = 0, n.canvas.height = 0);
967
+ }
968
+ W(n) && e.generateMipmap(l);
969
+ }
970
+ u === 0 && r(d.length ? d : void 0, t, f);
971
+ };
972
+ }
973
+ f = i.map(function(e, t) {
974
+ return ir(e, n.crossOrigin, _(t));
975
+ });
976
+ }
977
+ function lr(e, t, n, r) {
978
+ r ||= b.textureOptions;
979
+ let i = r.target || T;
980
+ e.bindTexture(i, t);
981
+ let a = r.width, o = r.height, s = r.depth, c = r.level || 0, l = r.internalFormat || r.format || C, u = H(l), d = r.format || u.format, f = r.type || Wn(e, n, u.type);
982
+ x(n) ? n instanceof Uint8ClampedArray && (n = new Uint8Array(n.buffer)) : n = new (de(f))(n);
983
+ let p = Bn(l, f), m = n.byteLength / p;
984
+ if (m % 1) throw "length wrong size for format: " + qe(e, d);
985
+ let h;
986
+ if (i === D || i === O) if (!a && !o && !s) {
987
+ let e = Math.cbrt(m);
988
+ if (e % 1 != 0) throw "can't guess cube size of array of numElements: " + m;
989
+ a = e, o = e, s = e;
990
+ } else a && (!o || !s) ? (h = Gn(e, i, o, s, m / a), o = h.width, s = h.height) : o && (!a || !s) ? (h = Gn(e, i, a, s, m / o), a = h.width, s = h.height) : (h = Gn(e, i, a, o, m / s), a = h.width, o = h.height);
991
+ else h = Gn(e, i, a, o, m), a = h.width, o = h.height;
992
+ if (Kn(e), e.pixelStorei(_t, r.unpackAlignment || 1), U(e, r), i === E) {
993
+ let t = p / n.BYTES_PER_ELEMENT, i = m / 6 * t;
994
+ Qn(e, r).forEach((t) => {
995
+ let r = i * t.ndx, s = n.subarray(r, r + i);
996
+ e.texImage2D(t.face, c, l, a, o, 0, d, f, s);
997
+ });
998
+ } else i === D || i === O ? e.texImage3D(i, c, l, a, o, s, 0, d, f, n) : e.texImage2D(i, c, l, a, o, 0, d, f, n);
999
+ return {
1000
+ width: a,
1001
+ height: o,
1002
+ depth: s,
1003
+ type: f
1004
+ };
1005
+ }
1006
+ function ur(e, t, n) {
1007
+ let r = n.target || T;
1008
+ e.bindTexture(r, t);
1009
+ let i = n.level || 0, a = n.internalFormat || n.format || C, o = H(a), s = n.format || o.format, c = n.type || o.type;
1010
+ if (U(e, n), r === E) for (let t = 0; t < 6; ++t) e.texImage2D(nt + t, i, a, n.width, n.height, 0, s, c, null);
1011
+ else r === D || r === O ? e.texImage3D(r, i, a, n.width, n.height, n.depth, 0, s, c, null) : e.texImage2D(r, i, a, n.width, n.height, 0, s, c, null);
1012
+ }
1013
+ function dr(e, t, n) {
1014
+ n ||= G, t ||= b.textureOptions;
1015
+ let r = e.createTexture(), i = t.target || T, a = t.width || 1, o = t.height || 1, s = t.internalFormat || C;
1016
+ e.bindTexture(i, r), i === E && (e.texParameteri(i, ut, $e), e.texParameteri(i, dt, $e));
1017
+ let c = t.src;
1018
+ if (c) if (typeof c == "function" && (c = c(e, t)), typeof c == "string") or(e, r, t, n);
1019
+ else if (x(c) || Array.isArray(c) && (typeof c[0] == "number" || Array.isArray(c[0]) || x(c[0]))) {
1020
+ let n = lr(e, r, c, t);
1021
+ a = n.width, o = n.height;
1022
+ } else Array.isArray(c) && (typeof c[0] == "string" || rr(c[0])) ? i === E ? sr(e, r, t, n) : cr(e, r, t, n) : ($n(e, r, c, t), a = c.width, o = c.height);
1023
+ else ur(e, r, t);
1024
+ return W(t) && Xn(e, r, t, a, o, s), Jn(e, r, t), r;
1025
+ }
1026
+ function fr(e, t, n, r, i, a) {
1027
+ r ||= n.width, i ||= n.height, a ||= n.depth;
1028
+ let o = n.target || T;
1029
+ e.bindTexture(o, t);
1030
+ let s = n.level || 0, c = n.internalFormat || n.format || C, l = H(c), u = n.format || l.format, d, f = n.src;
1031
+ if (d = f && (x(f) || Array.isArray(f) && typeof f[0] == "number") ? n.type || Wn(e, f, l.type) : n.type || l.type, o === E) for (let t = 0; t < 6; ++t) e.texImage2D(nt + t, s, c, r, i, 0, u, d, null);
1032
+ else o === D || o === O ? e.texImage3D(o, s, c, r, i, a, 0, u, d, null) : e.texImage2D(o, s, c, r, i, 0, u, d, null);
1033
+ }
1034
+ var pr = me, mr = 33984, hr = 35048, gr = 34962, _r = 34963, vr = 35345, yr = 35718, br = 35721, xr = 35971, Sr = 35382, Cr = 35396, wr = 35398, Tr = 35392, Er = 35395, Dr = 5126, Or = 35664, kr = 35665, Ar = 35666, jr = 5124, Mr = 35667, Nr = 35668, Pr = 35669, Fr = 35670, Ir = 35671, Lr = 35672, Rr = 35673, zr = 35674, Br = 35675, Vr = 35676, Hr = 35678, Ur = 35680, Wr = 35679, Gr = 35682, Kr = 35685, qr = 35686, Jr = 35687, Yr = 35688, Xr = 35689, Zr = 35690, Qr = 36289, $r = 36292, ei = 36293, ti = 5125, ni = 36294, ri = 36295, ii = 36296, ai = 36298, oi = 36299, si = 36300, ci = 36303, li = 36306, ui = 36307, di = 36308, fi = 36311, pi = 3553, mi = 34067, hi = 32879, gi = 35866, K = {};
1035
+ function _i(e, t) {
1036
+ return K[t].bindPoint;
1037
+ }
1038
+ function vi(e, t) {
1039
+ return function(n) {
1040
+ e.uniform1f(t, n);
1041
+ };
1042
+ }
1043
+ function yi(e, t) {
1044
+ return function(n) {
1045
+ e.uniform1fv(t, n);
1046
+ };
1047
+ }
1048
+ function bi(e, t) {
1049
+ return function(n) {
1050
+ e.uniform2fv(t, n);
1051
+ };
1052
+ }
1053
+ function xi(e, t) {
1054
+ return function(n) {
1055
+ e.uniform3fv(t, n);
1056
+ };
1057
+ }
1058
+ function Si(e, t) {
1059
+ return function(n) {
1060
+ e.uniform4fv(t, n);
1061
+ };
1062
+ }
1063
+ function Ci(e, t) {
1064
+ return function(n) {
1065
+ e.uniform1i(t, n);
1066
+ };
1067
+ }
1068
+ function wi(e, t) {
1069
+ return function(n) {
1070
+ e.uniform1iv(t, n);
1071
+ };
1072
+ }
1073
+ function Ti(e, t) {
1074
+ return function(n) {
1075
+ e.uniform2iv(t, n);
1076
+ };
1077
+ }
1078
+ function Ei(e, t) {
1079
+ return function(n) {
1080
+ e.uniform3iv(t, n);
1081
+ };
1082
+ }
1083
+ function Di(e, t) {
1084
+ return function(n) {
1085
+ e.uniform4iv(t, n);
1086
+ };
1087
+ }
1088
+ function Oi(e, t) {
1089
+ return function(n) {
1090
+ e.uniform1ui(t, n);
1091
+ };
1092
+ }
1093
+ function ki(e, t) {
1094
+ return function(n) {
1095
+ e.uniform1uiv(t, n);
1096
+ };
1097
+ }
1098
+ function Ai(e, t) {
1099
+ return function(n) {
1100
+ e.uniform2uiv(t, n);
1101
+ };
1102
+ }
1103
+ function ji(e, t) {
1104
+ return function(n) {
1105
+ e.uniform3uiv(t, n);
1106
+ };
1107
+ }
1108
+ function Mi(e, t) {
1109
+ return function(n) {
1110
+ e.uniform4uiv(t, n);
1111
+ };
1112
+ }
1113
+ function Ni(e, t) {
1114
+ return function(n) {
1115
+ e.uniformMatrix2fv(t, !1, n);
1116
+ };
1117
+ }
1118
+ function Pi(e, t) {
1119
+ return function(n) {
1120
+ e.uniformMatrix3fv(t, !1, n);
1121
+ };
1122
+ }
1123
+ function Fi(e, t) {
1124
+ return function(n) {
1125
+ e.uniformMatrix4fv(t, !1, n);
1126
+ };
1127
+ }
1128
+ function Ii(e, t) {
1129
+ return function(n) {
1130
+ e.uniformMatrix2x3fv(t, !1, n);
1131
+ };
1132
+ }
1133
+ function Li(e, t) {
1134
+ return function(n) {
1135
+ e.uniformMatrix3x2fv(t, !1, n);
1136
+ };
1137
+ }
1138
+ function Ri(e, t) {
1139
+ return function(n) {
1140
+ e.uniformMatrix2x4fv(t, !1, n);
1141
+ };
1142
+ }
1143
+ function zi(e, t) {
1144
+ return function(n) {
1145
+ e.uniformMatrix4x2fv(t, !1, n);
1146
+ };
1147
+ }
1148
+ function Bi(e, t) {
1149
+ return function(n) {
1150
+ e.uniformMatrix3x4fv(t, !1, n);
1151
+ };
1152
+ }
1153
+ function Vi(e, t) {
1154
+ return function(n) {
1155
+ e.uniformMatrix4x3fv(t, !1, n);
1156
+ };
1157
+ }
1158
+ function q(e, t, n, r) {
1159
+ let i = _i(e, t);
1160
+ return y(e) ? function(t) {
1161
+ let a, o;
1162
+ _e(e, t) ? (a = t, o = null) : (a = t.texture, o = t.sampler), e.uniform1i(r, n), e.activeTexture(mr + n), e.bindTexture(i, a), e.bindSampler(n, o);
1163
+ } : function(t) {
1164
+ e.uniform1i(r, n), e.activeTexture(mr + n), e.bindTexture(i, t);
1165
+ };
1166
+ }
1167
+ function J(e, t, n, r, i) {
1168
+ let a = _i(e, t), o = new Int32Array(i);
1169
+ for (let e = 0; e < i; ++e) o[e] = n + e;
1170
+ return y(e) ? function(t) {
1171
+ e.uniform1iv(r, o), t.forEach(function(t, r) {
1172
+ e.activeTexture(mr + o[r]);
1173
+ let i, s;
1174
+ _e(e, t) ? (i = t, s = null) : (i = t.texture, s = t.sampler), e.bindSampler(n, s), e.bindTexture(a, i);
1175
+ });
1176
+ } : function(t) {
1177
+ e.uniform1iv(r, o), t.forEach(function(t, n) {
1178
+ e.activeTexture(mr + o[n]), e.bindTexture(a, t);
1179
+ });
1180
+ };
1181
+ }
1182
+ K[Dr] = {
1183
+ Type: Float32Array,
1184
+ size: 4,
1185
+ setter: vi,
1186
+ arraySetter: yi
1187
+ }, K[Or] = {
1188
+ Type: Float32Array,
1189
+ size: 8,
1190
+ setter: bi,
1191
+ cols: 2
1192
+ }, K[kr] = {
1193
+ Type: Float32Array,
1194
+ size: 12,
1195
+ setter: xi,
1196
+ cols: 3
1197
+ }, K[Ar] = {
1198
+ Type: Float32Array,
1199
+ size: 16,
1200
+ setter: Si,
1201
+ cols: 4
1202
+ }, K[jr] = {
1203
+ Type: Int32Array,
1204
+ size: 4,
1205
+ setter: Ci,
1206
+ arraySetter: wi
1207
+ }, K[Mr] = {
1208
+ Type: Int32Array,
1209
+ size: 8,
1210
+ setter: Ti,
1211
+ cols: 2
1212
+ }, K[Nr] = {
1213
+ Type: Int32Array,
1214
+ size: 12,
1215
+ setter: Ei,
1216
+ cols: 3
1217
+ }, K[Pr] = {
1218
+ Type: Int32Array,
1219
+ size: 16,
1220
+ setter: Di,
1221
+ cols: 4
1222
+ }, K[ti] = {
1223
+ Type: Uint32Array,
1224
+ size: 4,
1225
+ setter: Oi,
1226
+ arraySetter: ki
1227
+ }, K[ni] = {
1228
+ Type: Uint32Array,
1229
+ size: 8,
1230
+ setter: Ai,
1231
+ cols: 2
1232
+ }, K[ri] = {
1233
+ Type: Uint32Array,
1234
+ size: 12,
1235
+ setter: ji,
1236
+ cols: 3
1237
+ }, K[ii] = {
1238
+ Type: Uint32Array,
1239
+ size: 16,
1240
+ setter: Mi,
1241
+ cols: 4
1242
+ }, K[Fr] = {
1243
+ Type: Uint32Array,
1244
+ size: 4,
1245
+ setter: Ci,
1246
+ arraySetter: wi
1247
+ }, K[Ir] = {
1248
+ Type: Uint32Array,
1249
+ size: 8,
1250
+ setter: Ti,
1251
+ cols: 2
1252
+ }, K[Lr] = {
1253
+ Type: Uint32Array,
1254
+ size: 12,
1255
+ setter: Ei,
1256
+ cols: 3
1257
+ }, K[Rr] = {
1258
+ Type: Uint32Array,
1259
+ size: 16,
1260
+ setter: Di,
1261
+ cols: 4
1262
+ }, K[zr] = {
1263
+ Type: Float32Array,
1264
+ size: 32,
1265
+ setter: Ni,
1266
+ rows: 2,
1267
+ cols: 2
1268
+ }, K[Br] = {
1269
+ Type: Float32Array,
1270
+ size: 48,
1271
+ setter: Pi,
1272
+ rows: 3,
1273
+ cols: 3
1274
+ }, K[Vr] = {
1275
+ Type: Float32Array,
1276
+ size: 64,
1277
+ setter: Fi,
1278
+ rows: 4,
1279
+ cols: 4
1280
+ }, K[Kr] = {
1281
+ Type: Float32Array,
1282
+ size: 32,
1283
+ setter: Ii,
1284
+ rows: 2,
1285
+ cols: 3
1286
+ }, K[qr] = {
1287
+ Type: Float32Array,
1288
+ size: 32,
1289
+ setter: Ri,
1290
+ rows: 2,
1291
+ cols: 4
1292
+ }, K[Jr] = {
1293
+ Type: Float32Array,
1294
+ size: 48,
1295
+ setter: Li,
1296
+ rows: 3,
1297
+ cols: 2
1298
+ }, K[Yr] = {
1299
+ Type: Float32Array,
1300
+ size: 48,
1301
+ setter: Bi,
1302
+ rows: 3,
1303
+ cols: 4
1304
+ }, K[Xr] = {
1305
+ Type: Float32Array,
1306
+ size: 64,
1307
+ setter: zi,
1308
+ rows: 4,
1309
+ cols: 2
1310
+ }, K[Zr] = {
1311
+ Type: Float32Array,
1312
+ size: 64,
1313
+ setter: Vi,
1314
+ rows: 4,
1315
+ cols: 3
1316
+ }, K[Hr] = {
1317
+ Type: null,
1318
+ size: 0,
1319
+ setter: q,
1320
+ arraySetter: J,
1321
+ bindPoint: pi
1322
+ }, K[Ur] = {
1323
+ Type: null,
1324
+ size: 0,
1325
+ setter: q,
1326
+ arraySetter: J,
1327
+ bindPoint: mi
1328
+ }, K[Wr] = {
1329
+ Type: null,
1330
+ size: 0,
1331
+ setter: q,
1332
+ arraySetter: J,
1333
+ bindPoint: hi
1334
+ }, K[Gr] = {
1335
+ Type: null,
1336
+ size: 0,
1337
+ setter: q,
1338
+ arraySetter: J,
1339
+ bindPoint: pi
1340
+ }, K[Qr] = {
1341
+ Type: null,
1342
+ size: 0,
1343
+ setter: q,
1344
+ arraySetter: J,
1345
+ bindPoint: gi
1346
+ }, K[$r] = {
1347
+ Type: null,
1348
+ size: 0,
1349
+ setter: q,
1350
+ arraySetter: J,
1351
+ bindPoint: gi
1352
+ }, K[ei] = {
1353
+ Type: null,
1354
+ size: 0,
1355
+ setter: q,
1356
+ arraySetter: J,
1357
+ bindPoint: mi
1358
+ }, K[ai] = {
1359
+ Type: null,
1360
+ size: 0,
1361
+ setter: q,
1362
+ arraySetter: J,
1363
+ bindPoint: pi
1364
+ }, K[oi] = {
1365
+ Type: null,
1366
+ size: 0,
1367
+ setter: q,
1368
+ arraySetter: J,
1369
+ bindPoint: hi
1370
+ }, K[si] = {
1371
+ Type: null,
1372
+ size: 0,
1373
+ setter: q,
1374
+ arraySetter: J,
1375
+ bindPoint: mi
1376
+ }, K[ci] = {
1377
+ Type: null,
1378
+ size: 0,
1379
+ setter: q,
1380
+ arraySetter: J,
1381
+ bindPoint: gi
1382
+ }, K[li] = {
1383
+ Type: null,
1384
+ size: 0,
1385
+ setter: q,
1386
+ arraySetter: J,
1387
+ bindPoint: pi
1388
+ }, K[ui] = {
1389
+ Type: null,
1390
+ size: 0,
1391
+ setter: q,
1392
+ arraySetter: J,
1393
+ bindPoint: hi
1394
+ }, K[di] = {
1395
+ Type: null,
1396
+ size: 0,
1397
+ setter: q,
1398
+ arraySetter: J,
1399
+ bindPoint: mi
1400
+ }, K[fi] = {
1401
+ Type: null,
1402
+ size: 0,
1403
+ setter: q,
1404
+ arraySetter: J,
1405
+ bindPoint: gi
1406
+ };
1407
+ function Hi(e, t) {
1408
+ return function(n) {
1409
+ if (n.value) switch (e.disableVertexAttribArray(t), n.value.length) {
1410
+ case 4:
1411
+ e.vertexAttrib4fv(t, n.value);
1412
+ break;
1413
+ case 3:
1414
+ e.vertexAttrib3fv(t, n.value);
1415
+ break;
1416
+ case 2:
1417
+ e.vertexAttrib2fv(t, n.value);
1418
+ break;
1419
+ case 1:
1420
+ e.vertexAttrib1fv(t, n.value);
1421
+ break;
1422
+ default: throw Error("the length of a float constant value must be between 1 and 4!");
1423
+ }
1424
+ else e.bindBuffer(gr, n.buffer), e.enableVertexAttribArray(t), e.vertexAttribPointer(t, n.numComponents || n.size, n.type || Dr, n.normalize || !1, n.stride || 0, n.offset || 0), n.divisor !== void 0 && e.vertexAttribDivisor(t, n.divisor);
1425
+ };
1426
+ }
1427
+ function Y(e, t) {
1428
+ return function(n) {
1429
+ if (n.value) if (e.disableVertexAttribArray(t), n.value.length === 4) e.vertexAttrib4iv(t, n.value);
1430
+ else throw Error("The length of an integer constant value must be 4!");
1431
+ else e.bindBuffer(gr, n.buffer), e.enableVertexAttribArray(t), e.vertexAttribIPointer(t, n.numComponents || n.size, n.type || jr, n.stride || 0, n.offset || 0), n.divisor !== void 0 && e.vertexAttribDivisor(t, n.divisor);
1432
+ };
1433
+ }
1434
+ function Ui(e, t) {
1435
+ return function(n) {
1436
+ if (n.value) if (e.disableVertexAttribArray(t), n.value.length === 4) e.vertexAttrib4uiv(t, n.value);
1437
+ else throw Error("The length of an unsigned integer constant value must be 4!");
1438
+ else e.bindBuffer(gr, n.buffer), e.enableVertexAttribArray(t), e.vertexAttribIPointer(t, n.numComponents || n.size, n.type || ti, n.stride || 0, n.offset || 0), n.divisor !== void 0 && e.vertexAttribDivisor(t, n.divisor);
1439
+ };
1440
+ }
1441
+ function Wi(e, t, n) {
1442
+ let r = n.size, i = n.count;
1443
+ return function(n) {
1444
+ e.bindBuffer(gr, n.buffer);
1445
+ let a = n.size || n.numComponents || r, o = a / i, s = n.type || Dr, c = K[s].size * a, l = n.normalize || !1, u = n.offset || 0, d = c / i;
1446
+ for (let r = 0; r < i; ++r) e.enableVertexAttribArray(t + r), e.vertexAttribPointer(t + r, o, s, l, c, u + d * r), n.divisor !== void 0 && e.vertexAttribDivisor(t + r, n.divisor);
1447
+ };
1448
+ }
1449
+ var X = {};
1450
+ X[Dr] = {
1451
+ size: 4,
1452
+ setter: Hi
1453
+ }, X[Or] = {
1454
+ size: 8,
1455
+ setter: Hi
1456
+ }, X[kr] = {
1457
+ size: 12,
1458
+ setter: Hi
1459
+ }, X[Ar] = {
1460
+ size: 16,
1461
+ setter: Hi
1462
+ }, X[jr] = {
1463
+ size: 4,
1464
+ setter: Y
1465
+ }, X[Mr] = {
1466
+ size: 8,
1467
+ setter: Y
1468
+ }, X[Nr] = {
1469
+ size: 12,
1470
+ setter: Y
1471
+ }, X[Pr] = {
1472
+ size: 16,
1473
+ setter: Y
1474
+ }, X[ti] = {
1475
+ size: 4,
1476
+ setter: Ui
1477
+ }, X[ni] = {
1478
+ size: 8,
1479
+ setter: Ui
1480
+ }, X[ri] = {
1481
+ size: 12,
1482
+ setter: Ui
1483
+ }, X[ii] = {
1484
+ size: 16,
1485
+ setter: Ui
1486
+ }, X[Fr] = {
1487
+ size: 4,
1488
+ setter: Y
1489
+ }, X[Ir] = {
1490
+ size: 8,
1491
+ setter: Y
1492
+ }, X[Lr] = {
1493
+ size: 12,
1494
+ setter: Y
1495
+ }, X[Rr] = {
1496
+ size: 16,
1497
+ setter: Y
1498
+ }, X[zr] = {
1499
+ size: 4,
1500
+ setter: Wi,
1501
+ count: 2
1502
+ }, X[Br] = {
1503
+ size: 9,
1504
+ setter: Wi,
1505
+ count: 3
1506
+ }, X[Vr] = {
1507
+ size: 16,
1508
+ setter: Wi,
1509
+ count: 4
1510
+ };
1511
+ function Gi(e) {
1512
+ let t = e.name;
1513
+ return t.startsWith("gl_") || t.startsWith("webgl_");
1514
+ }
1515
+ var Ki = /(\.|\[|]|\w+)/g, qi = (e) => e >= "0" && e <= "9";
1516
+ function Ji(e, t, n, r) {
1517
+ let i = e.split(Ki).filter((e) => e !== ""), a = 0, o = "";
1518
+ for (;;) {
1519
+ let e = i[a++];
1520
+ o += e;
1521
+ let s = qi(e[0]), c = s ? parseInt(e) : e;
1522
+ if (s && (o += i[a++]), a === i.length) {
1523
+ n[c] = t;
1524
+ break;
1525
+ } else {
1526
+ let e = i[a++], t = e === "[", s = n[c] || (t ? [] : {});
1527
+ n[c] = s, n = s, r[o] = r[o] || function(e) {
1528
+ return function(t) {
1529
+ oa(e, t);
1530
+ };
1531
+ }(s), o += e;
1532
+ }
1533
+ }
1534
+ }
1535
+ function Yi(e, t) {
1536
+ let n = 0;
1537
+ function r(t, r, i) {
1538
+ let a = r.name.endsWith("[0]"), o = r.type, s = K[o];
1539
+ if (!s) throw Error(`unknown type: 0x${o.toString(16)}`);
1540
+ let c;
1541
+ if (s.bindPoint) {
1542
+ let t = n;
1543
+ n += r.size, c = a ? s.arraySetter(e, o, t, i, r.size) : s.setter(e, o, t, i, r.size);
1544
+ } else c = s.arraySetter && a ? s.arraySetter(e, i) : s.setter(e, i);
1545
+ return c.location = i, c;
1546
+ }
1547
+ let i = {}, a = {}, o = e.getProgramParameter(t, yr);
1548
+ for (let n = 0; n < o; ++n) {
1549
+ let o = e.getActiveUniform(t, n);
1550
+ if (Gi(o)) continue;
1551
+ let s = o.name;
1552
+ s.endsWith("[0]") && (s = s.substr(0, s.length - 3));
1553
+ let c = e.getUniformLocation(t, o.name);
1554
+ if (c) {
1555
+ let e = r(t, o, c);
1556
+ i[s] = e, Ji(s, e, a, i);
1557
+ }
1558
+ }
1559
+ return i;
1560
+ }
1561
+ function Xi(e, t) {
1562
+ let n = {}, r = e.getProgramParameter(t, xr);
1563
+ for (let i = 0; i < r; ++i) {
1564
+ let r = e.getTransformFeedbackVarying(t, i);
1565
+ n[r.name] = {
1566
+ index: i,
1567
+ type: r.type,
1568
+ size: r.size
1569
+ };
1570
+ }
1571
+ return n;
1572
+ }
1573
+ function Zi(e, t) {
1574
+ let n = e.getProgramParameter(t, yr), r = [], i = [];
1575
+ for (let a = 0; a < n; ++a) {
1576
+ i.push(a), r.push({});
1577
+ let n = e.getActiveUniform(t, a);
1578
+ r[a].name = n.name;
1579
+ }
1580
+ [
1581
+ ["UNIFORM_TYPE", "type"],
1582
+ ["UNIFORM_SIZE", "size"],
1583
+ ["UNIFORM_BLOCK_INDEX", "blockNdx"],
1584
+ ["UNIFORM_OFFSET", "offset"]
1585
+ ].forEach(function(n) {
1586
+ let a = n[0], o = n[1];
1587
+ e.getActiveUniforms(t, i, e[a]).forEach(function(e, t) {
1588
+ r[t][o] = e;
1589
+ });
1590
+ });
1591
+ let a = {}, o = e.getProgramParameter(t, Sr);
1592
+ for (let n = 0; n < o; ++n) {
1593
+ let r = e.getActiveUniformBlockName(t, n), i = {
1594
+ index: e.getUniformBlockIndex(t, r),
1595
+ usedByVertexShader: e.getActiveUniformBlockParameter(t, n, Cr),
1596
+ usedByFragmentShader: e.getActiveUniformBlockParameter(t, n, wr),
1597
+ size: e.getActiveUniformBlockParameter(t, n, Tr),
1598
+ uniformIndices: e.getActiveUniformBlockParameter(t, n, Er)
1599
+ };
1600
+ i.used = i.usedByVertexShader || i.usedByFragmentShader, a[r] = i;
1601
+ }
1602
+ return {
1603
+ blockSpecs: a,
1604
+ uniformData: r
1605
+ };
1606
+ }
1607
+ var Qi = /\[\d+\]\.$/, $i = (e, t) => ((e + (t - 1)) / t | 0) * t;
1608
+ function ea(e, t, n, r) {
1609
+ if (t || n) {
1610
+ r ||= 1;
1611
+ let t = e.length / 4;
1612
+ return function(n) {
1613
+ let i = 0, a = 0;
1614
+ for (let o = 0; o < t; ++o) {
1615
+ for (let t = 0; t < r; ++t) e[i++] = n[a++];
1616
+ i += 4 - r;
1617
+ }
1618
+ };
1619
+ } else return function(t) {
1620
+ t.length ? e.set(t) : e[0] = t;
1621
+ };
1622
+ }
1623
+ function ta(e, t, n, r) {
1624
+ let i = n.blockSpecs, a = n.uniformData, o = i[r];
1625
+ if (!o) return pr("no uniform block object named:", r), {
1626
+ name: r,
1627
+ uniforms: {}
1628
+ };
1629
+ let s = new ArrayBuffer(o.size), c = e.createBuffer(), l = o.index;
1630
+ e.bindBuffer(vr, c), e.uniformBlockBinding(t, o.index, l);
1631
+ let u = r + ".";
1632
+ Qi.test(u) && (u = u.replace(Qi, "."));
1633
+ let d = {}, f = {}, p = {};
1634
+ return o.uniformIndices.forEach(function(e) {
1635
+ let t = a[e], n = t.name;
1636
+ n.startsWith(u) && (n = n.substr(u.length));
1637
+ let r = n.endsWith("[0]");
1638
+ r && (n = n.substr(0, n.length - 3));
1639
+ let i = K[t.type], o = i.Type, c = r ? $i(i.size, 16) * t.size : i.size * t.size, l = new o(s, t.offset, c / o.BYTES_PER_ELEMENT);
1640
+ d[n] = l;
1641
+ let m = ea(l, r, i.rows, i.cols);
1642
+ f[n] = m, Ji(n, m, p, f);
1643
+ }), {
1644
+ name: r,
1645
+ array: s,
1646
+ asFloat: new Float32Array(s),
1647
+ buffer: c,
1648
+ uniforms: d,
1649
+ setters: f
1650
+ };
1651
+ }
1652
+ function na(e, t, n) {
1653
+ return ta(e, t.program, t.uniformBlockSpec, n);
1654
+ }
1655
+ function ra(e, t, n) {
1656
+ let r = (t.uniformBlockSpec || t).blockSpecs[n.name];
1657
+ if (r) {
1658
+ let t = r.index;
1659
+ return e.bindBufferRange(vr, t, n.buffer, n.offset || 0, n.array.byteLength), !0;
1660
+ }
1661
+ return !1;
1662
+ }
1663
+ function ia(e, t, n) {
1664
+ ra(e, t, n) && e.bufferData(vr, n.array, hr);
1665
+ }
1666
+ function aa(e, t) {
1667
+ let n = e.setters;
1668
+ for (let e in t) {
1669
+ let r = n[e];
1670
+ if (r) {
1671
+ let n = t[e];
1672
+ r(n);
1673
+ }
1674
+ }
1675
+ }
1676
+ function oa(e, t) {
1677
+ for (let n in t) {
1678
+ let r = e[n];
1679
+ typeof r == "function" ? r(t[n]) : oa(e[n], t[n]);
1680
+ }
1681
+ }
1682
+ function sa(e, ...t) {
1683
+ let n = e.uniformSetters || e, r = t.length;
1684
+ for (let e = 0; e < r; ++e) {
1685
+ let r = t[e];
1686
+ if (Array.isArray(r)) {
1687
+ let e = r.length;
1688
+ for (let t = 0; t < e; ++t) sa(n, r[t]);
1689
+ } else for (let e in r) {
1690
+ let t = n[e];
1691
+ t && t(r[e]);
1692
+ }
1693
+ }
1694
+ }
1695
+ function ca(e, t) {
1696
+ let n = {}, r = e.getProgramParameter(t, br);
1697
+ for (let i = 0; i < r; ++i) {
1698
+ let r = e.getActiveAttrib(t, i);
1699
+ if (Gi(r)) continue;
1700
+ let a = e.getAttribLocation(t, r.name), o = X[r.type], s = o.setter(e, a, o);
1701
+ s.location = a, n[r.name] = s;
1702
+ }
1703
+ return n;
1704
+ }
1705
+ function la(e, t) {
1706
+ for (let n in t) {
1707
+ let r = e[n];
1708
+ r && r(t[n]);
1709
+ }
1710
+ }
1711
+ function ua(e, t, n) {
1712
+ n.vertexArrayObject ? e.bindVertexArray(n.vertexArrayObject) : (la(t.attribSetters || t, n.attribs), n.indices && e.bindBuffer(_r, n.indices));
1713
+ }
1714
+ function da(e, t) {
1715
+ let n = {
1716
+ program: t,
1717
+ uniformSetters: Yi(e, t),
1718
+ attribSetters: ca(e, t)
1719
+ };
1720
+ return y(e) && (n.uniformBlockSpec = Zi(e, t), n.transformFeedbackInfo = Xi(e, t)), n;
1721
+ }
1722
+ var fa = 4, pa = 5123;
1723
+ function ma(e, t, n, r, i, a) {
1724
+ n = n === void 0 ? fa : n;
1725
+ let o = t.indices, s = t.elementType, c = r === void 0 ? t.numElements : r;
1726
+ i = i === void 0 ? 0 : i, s || o ? a === void 0 ? e.drawElements(n, c, s === void 0 ? pa : t.elementType, i) : e.drawElementsInstanced(n, c, s === void 0 ? pa : t.elementType, i, a) : a === void 0 ? e.drawArrays(n, i, c) : e.drawArraysInstanced(n, i, c, a);
1727
+ }
1728
+ var ha = 36160, Z = 36161, ga = 3553, _a = 5121, va = 6402, ya = 6408, ba = 33190, xa = 36012, Sa = 35056, Ca = 36013, wa = 32854, Ta = 32855, Ea = 36194, Da = 33189, Oa = 6401, ka = 36168, Aa = 34041, ja = 36064, Ma = 36096, Na = 36128, Pa = 33306, Fa = 33071, Ia = 9729, La = [{
1729
+ format: ya,
1730
+ type: _a,
1731
+ min: Ia,
1732
+ wrap: Fa
1733
+ }, { format: Aa }], Q = {};
1734
+ Q[Aa] = Pa, Q[Oa] = Na, Q[ka] = Na, Q[va] = Ma, Q[Da] = Ma, Q[ba] = Ma, Q[xa] = Ma, Q[Sa] = Pa, Q[Ca] = Pa;
1735
+ function Ra(e, t) {
1736
+ return Q[e] || Q[t];
1737
+ }
1738
+ var $ = {};
1739
+ $[wa] = !0, $[Ta] = !0, $[Ea] = !0, $[Aa] = !0, $[Da] = !0, $[Oa] = !0, $[ka] = !0;
1740
+ function za(e) {
1741
+ return $[e];
1742
+ }
1743
+ function Ba(e) {
1744
+ return e >= ja && e < 36096;
1745
+ }
1746
+ function Va(e, t, n, r) {
1747
+ let i = ha, a = e.createFramebuffer();
1748
+ e.bindFramebuffer(i, a), n ||= e.drawingBufferWidth, r ||= e.drawingBufferHeight, t ||= La;
1749
+ let o = [], s = {
1750
+ framebuffer: a,
1751
+ attachments: [],
1752
+ width: n,
1753
+ height: r
1754
+ };
1755
+ return t.forEach(function(t, a) {
1756
+ let c = t.attachment, l = t.samples, u = t.format, d = t.attachmentPoint || Ra(u, t.internalFormat);
1757
+ if (d ||= ja + a, Ba(d) && o.push(d), !c) if (l !== void 0 || za(u)) c = e.createRenderbuffer(), e.bindRenderbuffer(Z, c), l > 1 ? e.renderbufferStorageMultisample(Z, l, u, n, r) : e.renderbufferStorage(Z, u, n, r);
1758
+ else {
1759
+ let i = Object.assign({}, t);
1760
+ i.width = n, i.height = r, i.auto === void 0 && (i.auto = !1, i.min = i.min || i.minMag || Ia, i.mag = i.mag || i.minMag || Ia, i.wrapS = i.wrapS || i.wrap || Fa, i.wrapT = i.wrapT || i.wrap || Fa), c = dr(e, i);
1761
+ }
1762
+ if (ge(e, c)) e.framebufferRenderbuffer(i, d, Z, c);
1763
+ else if (_e(e, c)) t.layer === void 0 ? e.framebufferTexture2D(i, d, t.target || ga, c, t.level || 0) : e.framebufferTextureLayer(i, d, c, t.level || 0, t.layer);
1764
+ else throw Error("unknown attachment type");
1765
+ s.attachments.push(c);
1766
+ }), e.drawBuffers && e.drawBuffers(o), s;
1767
+ }
1768
+ function Ha(e, t, n, r, i) {
1769
+ r ||= e.drawingBufferWidth, i ||= e.drawingBufferHeight, t.width = r, t.height = i, n ||= La, n.forEach(function(n, a) {
1770
+ let o = t.attachments[a], s = n.format, c = n.samples;
1771
+ if (c !== void 0 || ge(e, o)) e.bindRenderbuffer(Z, o), c > 1 ? e.renderbufferStorageMultisample(Z, c, s, r, i) : e.renderbufferStorage(Z, s, r, i);
1772
+ else if (_e(e, o)) fr(e, o, n, r, i);
1773
+ else throw Error("unknown attachment type");
1774
+ });
1775
+ }
1776
+ function Ua(e, t, n) {
1777
+ let r = e.createVertexArray();
1778
+ return e.bindVertexArray(r), t.length || (t = [t]), t.forEach(function(t) {
1779
+ ua(e, t, n);
1780
+ }), e.bindVertexArray(null), {
1781
+ numElements: n.numElements,
1782
+ elementType: n.elementType,
1783
+ vertexArrayObject: r
1784
+ };
1785
+ }
1786
+ var Wa = { addExtensionsToContext: !0 }, Ga = /^(.*?)_/;
1787
+ function Ka(e, t) {
1788
+ qe(e, 0);
1789
+ let n = e.getExtension(t);
1790
+ if (n) {
1791
+ let r = {}, i = Ga.exec(t)[1], a = "_" + i;
1792
+ for (let t in n) {
1793
+ let o = n[t], s = typeof o == "function", c = s ? i : a, l = t;
1794
+ t.endsWith(c) && (l = t.substring(0, t.length - c.length)), e[l] === void 0 ? s ? e[l] = function(e) {
1795
+ return function() {
1796
+ return e.apply(n, arguments);
1797
+ };
1798
+ }(o) : (e[l] = o, r[l] = o) : !s && e[l] !== o && me(l, e[l], o, t);
1799
+ }
1800
+ r.constructor = { name: n.constructor.name }, qe(r, 0);
1801
+ }
1802
+ return n;
1803
+ }
1804
+ var qa = [
1805
+ "ANGLE_instanced_arrays",
1806
+ "EXT_blend_minmax",
1807
+ "EXT_color_buffer_float",
1808
+ "EXT_color_buffer_half_float",
1809
+ "EXT_disjoint_timer_query",
1810
+ "EXT_disjoint_timer_query_webgl2",
1811
+ "EXT_frag_depth",
1812
+ "EXT_sRGB",
1813
+ "EXT_shader_texture_lod",
1814
+ "EXT_texture_filter_anisotropic",
1815
+ "OES_element_index_uint",
1816
+ "OES_standard_derivatives",
1817
+ "OES_texture_float",
1818
+ "OES_texture_float_linear",
1819
+ "OES_texture_half_float",
1820
+ "OES_texture_half_float_linear",
1821
+ "OES_vertex_array_object",
1822
+ "WEBGL_color_buffer_float",
1823
+ "WEBGL_compressed_texture_atc",
1824
+ "WEBGL_compressed_texture_etc1",
1825
+ "WEBGL_compressed_texture_pvrtc",
1826
+ "WEBGL_compressed_texture_s3tc",
1827
+ "WEBGL_compressed_texture_s3tc_srgb",
1828
+ "WEBGL_depth_texture",
1829
+ "WEBGL_draw_buffers"
1830
+ ];
1831
+ function Ja(e) {
1832
+ for (let t = 0; t < qa.length; ++t) Ka(e, qa[t]);
1833
+ }
1834
+ function Ya(e, t) {
1835
+ let n = [
1836
+ "webgl2",
1837
+ "webgl",
1838
+ "experimental-webgl"
1839
+ ], r = null;
1840
+ for (let i = 0; i < n.length; ++i) if (r = e.getContext(n[i], t), r) {
1841
+ Wa.addExtensionsToContext && Ja(r);
1842
+ break;
1843
+ }
1844
+ return r;
1845
+ }
1846
+ function Xa(e, t) {
1847
+ return Ya(e, t);
1848
+ }
1849
+ //#endregion
1850
+ //#region ../core/src/view/renderingContext/bufferedViewRenderingContext.js
1851
+ var Za = class extends a {
1852
+ #e = [
1853
+ 0,
1854
+ 0,
1855
+ 0,
1856
+ 0
1857
+ ];
1858
+ #t;
1859
+ #n = [];
1860
+ #r;
1861
+ #i;
1862
+ #a = /* @__PURE__ */ new Set();
1863
+ #o;
1864
+ #s = void 0;
1865
+ #c = 1;
1866
+ #l = {
1867
+ width: 0,
1868
+ height: 0
1869
+ };
1870
+ #u;
1871
+ constructor(e, t) {
1872
+ if (super(e), this.#i = t.webGLHelper, this.#r = t.framebufferInfo, this.#c = t.devicePixelRatio, this.#l = t.canvasSize, this.#o = t.markPredicate ?? (() => !0), this.#u = t.pixelOffset, t.clearColor) {
1873
+ let e = i(t.clearColor).rgb();
1874
+ this.#e = [
1875
+ e.r / 255,
1876
+ e.g / 255,
1877
+ e.b / 255,
1878
+ e.opacity
1879
+ ];
1880
+ }
1881
+ }
1882
+ getDevicePixelRatio() {
1883
+ return this.#c;
1884
+ }
1885
+ pushView(e, t) {
1886
+ this.#a.add(e), this.#s = t;
1887
+ }
1888
+ renderMark(e, n) {
1889
+ if (!this.#o(e) || this.globalOptions.picking && !e.isPickingParticipant()) return;
1890
+ let i = e.render(n);
1891
+ if (i) {
1892
+ let a = t(n);
1893
+ this.#n.push({
1894
+ mark: e,
1895
+ callback: i,
1896
+ coords: this.#s,
1897
+ clip: r(a, e.properties.clip, this.#s),
1898
+ cullClip: a
1899
+ });
1900
+ }
1901
+ }
1902
+ render() {
1903
+ if (this.#t || this.#d(), this.#t.length == 0) return;
1904
+ let e = this.#i.gl, t = this.#r;
1905
+ t ? (e.bindFramebuffer(e.FRAMEBUFFER, t.framebuffer), e.viewport(0, 0, t.width, t.height)) : e.viewport(0, 0, e.drawingBufferWidth, e.drawingBufferHeight), e.disable(e.SCISSOR_TEST), e.clearColor(...this.#e), e.clear(e.COLOR_BUFFER_BIT);
1906
+ for (let e of this.#a) e.onBeforeRender();
1907
+ for (let e of this.#t) e();
1908
+ this.#r && e.bindFramebuffer(e.FRAMEBUFFER, null);
1909
+ }
1910
+ #d() {
1911
+ this.#t = [];
1912
+ let e = !0, t = !0, r = (t) => () => {
1913
+ e && t();
1914
+ }, i = (n) => () => {
1915
+ e && t && n();
1916
+ }, a = s(this.#n.reverse(), (e) => e.mark);
1917
+ for (let [o, s] of [...a.entries()].reverse()) {
1918
+ if (!o.isReady()) continue;
1919
+ this.#t.push(() => {
1920
+ e = o.unitView.getEffectiveOpacity() > 0;
1921
+ }), this.#t.push(...o.prepareRender(this.globalOptions).map((e) => r(e)));
1922
+ let a, c, l;
1923
+ for (let e of s) {
1924
+ let s = e.coords;
1925
+ (!s.equals(a) || !n(e.clip, c) || !n(e.cullClip, l)) && this.#t.push(r(() => {
1926
+ t = o.setViewport(this.#l, this.#c, s, e.clip, e.cullClip, this.#u);
1927
+ })), this.#t.push(i(e.callback)), a = e.coords, c = e.clip, l = e.cullClip;
1928
+ }
1929
+ }
1930
+ }
1931
+ };
1932
+ //#endregion
1933
+ //#region ../core/src/gl/framebufferReadback.js
1934
+ function Qa(e, t, n = {}) {
1935
+ let r = n.x ?? 0, i = n.y ?? 0, a = n.width ?? t.width, o = n.height ?? t.height;
1936
+ ro(t, r, i, a, o);
1937
+ let s = new Uint8Array(a * o * 4);
1938
+ e.bindFramebuffer(e.FRAMEBUFFER, t.framebuffer);
1939
+ try {
1940
+ e.readPixels(r, t.height - i - o, a, o, e.RGBA, e.UNSIGNED_BYTE, s);
1941
+ } finally {
1942
+ e.bindFramebuffer(e.FRAMEBUFFER, null);
1943
+ }
1944
+ return {
1945
+ pixels: no(s, a, o, n.unpremultiplyAlpha ?? !1),
1946
+ width: a,
1947
+ height: o
1948
+ };
1949
+ }
1950
+ function $a(e, t, n = "image/png", r = {}) {
1951
+ return to(e, t, r).toDataURL(n);
1952
+ }
1953
+ function eo(e, t, n = "image/png", r = {}) {
1954
+ let i = to(e, t, r);
1955
+ return new Promise((e, t) => {
1956
+ i.toBlob((r) => {
1957
+ r ? e(r) : t(/* @__PURE__ */ Error(`Could not encode framebuffer as ${n}.`));
1958
+ }, n);
1959
+ });
1960
+ }
1961
+ function to(e, t, n) {
1962
+ let { pixels: r, width: i, height: a } = Qa(e, t, n), o = document.createElement("canvas");
1963
+ o.width = i, o.height = a;
1964
+ let s = o.getContext("2d"), c = s.createImageData(i, a);
1965
+ return c.data.set(r), s.putImageData(c, 0, 0), o;
1966
+ }
1967
+ function no(e, t, n, r) {
1968
+ let i = new Uint8ClampedArray(e.length), a = t * 4;
1969
+ for (let t = 0; t < n; t++) {
1970
+ let r = (n - t - 1) * a, o = t * a;
1971
+ i.set(e.subarray(r, r + a), o);
1972
+ }
1973
+ if (r) for (let e = 0; e < i.length; e += 4) {
1974
+ let t = i[e + 3];
1975
+ if (t == 0) i[e] = 0, i[e + 1] = 0, i[e + 2] = 0;
1976
+ else if (t < 255) {
1977
+ let n = 255 / t;
1978
+ i[e] = Math.round(i[e] * n), i[e + 1] = Math.round(i[e + 1] * n), i[e + 2] = Math.round(i[e + 2] * n);
1979
+ }
1980
+ }
1981
+ return i;
1982
+ }
1983
+ function ro(e, t, n, r, i) {
1984
+ if (![
1985
+ t,
1986
+ n,
1987
+ r,
1988
+ i
1989
+ ].every(Number.isInteger)) throw RangeError("Framebuffer readback bounds must be integers.");
1990
+ if (t < 0 || n < 0 || r <= 0 || i <= 0 || t + r > e.width || n + i > e.height) throw RangeError("Framebuffer readback bounds are out of range.");
1991
+ }
1992
+ //#endregion
1993
+ export { c as C, s as S, aa as _, ra as a, ia as b, da as c, Ua as d, ma as f, He as g, Ha as h, Ja as i, dr as l, y as m, $a as n, Ke as o, Xa as p, Za as r, Va as s, eo as t, na as u, ua as v, o as w, sa as x, lr as y };