typegpu 0.3.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/attributes-BQuRnaZ4.d.ts +151 -0
  2. package/attributes-Bt2NG-9a.d.cts +151 -0
  3. package/chunk-LF344PKG.cjs +4 -0
  4. package/chunk-LF344PKG.cjs.map +1 -0
  5. package/chunk-SDSDWWKW.js +2 -0
  6. package/chunk-SDSDWWKW.js.map +1 -0
  7. package/chunk-Y2M5GYRO.cjs +2 -0
  8. package/chunk-Y2M5GYRO.cjs.map +1 -0
  9. package/chunk-YLI4IK35.js +4 -0
  10. package/chunk-YLI4IK35.js.map +1 -0
  11. package/data/index.cjs +1 -192
  12. package/data/index.d.cts +209 -2
  13. package/data/index.d.ts +209 -2
  14. package/data/index.js +1 -192
  15. package/index.cjs +18 -4269
  16. package/index.cjs.map +1 -1
  17. package/index.d.cts +146 -133
  18. package/index.d.ts +146 -133
  19. package/index.js +18 -4269
  20. package/index.js.map +1 -1
  21. package/package.json +2 -2
  22. package/std/index.cjs +1 -490
  23. package/std/index.cjs.map +1 -1
  24. package/std/index.d.cts +10 -3
  25. package/std/index.d.ts +10 -3
  26. package/std/index.js +1 -490
  27. package/std/index.js.map +1 -1
  28. package/vector-CeDeofzh.d.ts +176 -0
  29. package/vector-UFYwud47.d.cts +176 -0
  30. package/{vector-CDD2FV2v.d.cts → wgslTypes-BNsjCP--.d.cts} +477 -260
  31. package/{vector-CDD2FV2v.d.ts → wgslTypes-BNsjCP--.d.ts} +477 -260
  32. package/chunk-2CMWQRQC.cjs +0 -2
  33. package/chunk-2CMWQRQC.cjs.map +0 -1
  34. package/chunk-2ZAQFPSX.js +0 -1266
  35. package/chunk-2ZAQFPSX.js.map +0 -1
  36. package/chunk-35UVS2JJ.cjs +0 -591
  37. package/chunk-35UVS2JJ.cjs.map +0 -1
  38. package/chunk-A2QB4MSZ.js +0 -4
  39. package/chunk-A2QB4MSZ.js.map +0 -1
  40. package/chunk-CMYXKKUP.cjs +0 -1266
  41. package/chunk-CMYXKKUP.cjs.map +0 -1
  42. package/chunk-DDEF2Y4S.js +0 -591
  43. package/chunk-DDEF2Y4S.js.map +0 -1
  44. package/chunk-KYBPSQX5.js +0 -2
  45. package/chunk-KYBPSQX5.js.map +0 -1
  46. package/chunk-VRYGOFCW.cjs +0 -4
  47. package/chunk-VRYGOFCW.cjs.map +0 -1
  48. package/index-CuzbyKXg.d.cts +0 -751
  49. package/index-FHKuURMs.d.ts +0 -751
@@ -1,1266 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
- var _chunk35UVS2JJcjs = require('./chunk-35UVS2JJ.cjs');
14
-
15
- // src/data/numeric.ts
16
- var _typedbinary = require('typed-binary'); var _typedbinary2 = _interopRequireDefault(_typedbinary);
17
- var bool = {
18
- type: "bool"
19
- };
20
- var u32Cast = (v) => {
21
- if (_chunk35UVS2JJcjs.inGPUMode.call(void 0, )) {
22
- return `u32(${v})`;
23
- }
24
- if (typeof v === "boolean") {
25
- return v ? 1 : 0;
26
- }
27
- if (Number.isInteger(v)) {
28
- if (v < 0 || v > 4294967295) {
29
- console.warn(`u32 value ${v} overflowed`);
30
- }
31
- const value = v & 4294967295;
32
- return value >>> 0;
33
- }
34
- return Math.max(0, Math.min(4294967295, Math.floor(v)));
35
- };
36
- var u32 = Object.assign(u32Cast, {
37
- type: "u32"
38
- });
39
- var i32Cast = (v) => {
40
- if (_chunk35UVS2JJcjs.inGPUMode.call(void 0, )) {
41
- return `i32(${v})`;
42
- }
43
- if (typeof v === "boolean") {
44
- return v ? 1 : 0;
45
- }
46
- if (Number.isInteger(v)) {
47
- if (v < -2147483648 || v > 2147483647) {
48
- console.warn(`i32 value ${v} overflowed`);
49
- }
50
- const value2 = v | 0;
51
- return value2 & 4294967295;
52
- }
53
- const value = v < 0 ? Math.ceil(v) : Math.floor(v);
54
- return Math.max(-2147483648, Math.min(2147483647, value));
55
- };
56
- var i32 = Object.assign(i32Cast, {
57
- type: "i32"
58
- });
59
- var f32Cast = (v) => {
60
- if (_chunk35UVS2JJcjs.inGPUMode.call(void 0, )) {
61
- return `f32(${v})`;
62
- }
63
- if (typeof v === "boolean") {
64
- return v ? 1 : 0;
65
- }
66
- const arr = new Float32Array(1);
67
- arr[0] = v;
68
- return arr[0];
69
- };
70
- var f32 = Object.assign(f32Cast, {
71
- type: "f32"
72
- });
73
- var f16Cast = (v) => {
74
- if (_chunk35UVS2JJcjs.inGPUMode.call(void 0, )) {
75
- return `f16(${v})`;
76
- }
77
- if (typeof v === "boolean") {
78
- return v ? 1 : 0;
79
- }
80
- const arr = new ArrayBuffer(2);
81
- _typedbinary2.default.f16.write(new _typedbinary2.default.BufferWriter(arr), v);
82
- return _typedbinary2.default.f16.read(new _typedbinary2.default.BufferReader(arr));
83
- };
84
- var f16 = Object.assign(f16Cast, {
85
- type: "f16"
86
- });
87
-
88
- // src/data/wgslTypes.ts
89
- var wgslTypeLiterals = [
90
- "bool",
91
- "f32",
92
- "f16",
93
- "i32",
94
- "u32",
95
- "vec2f",
96
- "vec2h",
97
- "vec2i",
98
- "vec2u",
99
- "vec3f",
100
- "vec3h",
101
- "vec3i",
102
- "vec3u",
103
- "vec4f",
104
- "vec4h",
105
- "vec4i",
106
- "vec4u",
107
- "mat2x2f",
108
- "mat3x3f",
109
- "mat4x4f",
110
- "struct",
111
- "array",
112
- "ptrFn",
113
- "atomic",
114
- "decorated"
115
- ];
116
- function isWgslData(value) {
117
- return wgslTypeLiterals.includes(value == null ? void 0 : value.type);
118
- }
119
- function isWgslArray(schema) {
120
- return (schema == null ? void 0 : schema.type) === "array";
121
- }
122
- function isWgslStruct(schema) {
123
- return (schema == null ? void 0 : schema.type) === "struct";
124
- }
125
- function isPtrFn(schema) {
126
- return (schema == null ? void 0 : schema.type) === "ptrFn";
127
- }
128
- function isAtomic(schema) {
129
- return (schema == null ? void 0 : schema.type) === "atomic";
130
- }
131
- function isAlignAttrib(value) {
132
- return (value == null ? void 0 : value.type) === "@align";
133
- }
134
- function isSizeAttrib(value) {
135
- return (value == null ? void 0 : value.type) === "@size";
136
- }
137
- function isLocationAttrib(value) {
138
- return (value == null ? void 0 : value.type) === "@location";
139
- }
140
- function isInterpolateAttrib(value) {
141
- return (value == null ? void 0 : value.type) === "@interpolate";
142
- }
143
- function isBuiltinAttrib(value) {
144
- return (value == null ? void 0 : value.type) === "@builtin";
145
- }
146
- function isDecorated(value) {
147
- return (value == null ? void 0 : value.type) === "decorated";
148
- }
149
-
150
- // src/data/struct.ts
151
- var struct = (props) => {
152
- const struct2 = (props2) => props2;
153
- Object.setPrototypeOf(struct2, TgpuStructImpl);
154
- struct2.propTypes = props;
155
- return struct2;
156
- };
157
- var TgpuStructImpl = {
158
- type: "struct",
159
- _label: void 0,
160
- get label() {
161
- return this._label;
162
- },
163
- $name(label) {
164
- this._label = label;
165
- return this;
166
- },
167
- toString() {
168
- var _a;
169
- return `struct:${(_a = this.label) != null ? _a : "<unnamed>"}`;
170
- }
171
- };
172
-
173
- // src/mathUtils.ts
174
- var roundUp = (value, modulo) => {
175
- const bitMask = modulo - 1;
176
- const invBitMask = ~bitMask;
177
- return (value & bitMask) === 0 ? value : (value & invBitMask) + modulo;
178
- };
179
-
180
- // src/shared/vertexFormat.ts
181
- var vertexFormats = [
182
- "uint8",
183
- "uint8x2",
184
- "uint8x4",
185
- "sint8",
186
- "sint8x2",
187
- "sint8x4",
188
- "unorm8",
189
- "unorm8x2",
190
- "unorm8x4",
191
- "snorm8",
192
- "snorm8x2",
193
- "snorm8x4",
194
- "uint16",
195
- "uint16x2",
196
- "uint16x4",
197
- "sint16",
198
- "sint16x2",
199
- "sint16x4",
200
- "unorm16",
201
- "unorm16x2",
202
- "unorm16x4",
203
- "snorm16",
204
- "snorm16x2",
205
- "snorm16x4",
206
- "float16",
207
- "float16x2",
208
- "float16x4",
209
- "float32",
210
- "float32x2",
211
- "float32x3",
212
- "float32x4",
213
- "uint32",
214
- "uint32x2",
215
- "uint32x3",
216
- "uint32x4",
217
- "sint32",
218
- "sint32x2",
219
- "sint32x3",
220
- "sint32x4",
221
- "unorm10-10-10-2",
222
- "unorm8x4-bgra"
223
- ];
224
- var kindToDefaultFormatMap = {
225
- f32: "float32",
226
- vec2f: "float32x2",
227
- vec3f: "float32x3",
228
- vec4f: "float32x4",
229
- f16: "float16",
230
- vec2h: "float16x2",
231
- // vec3h has no direct equivalent in the spec
232
- vec4h: "float16x4",
233
- u32: "uint32",
234
- vec2u: "uint32x2",
235
- vec3u: "uint32x3",
236
- vec4u: "uint32x4",
237
- i32: "sint32",
238
- vec2i: "sint32x2",
239
- vec3i: "sint32x3",
240
- vec4i: "sint32x4"
241
- };
242
-
243
- // src/data/dataTypes.ts
244
- var looseTypeLiterals = [
245
- "unstruct",
246
- "disarray",
247
- "loose-decorated",
248
- ...vertexFormats
249
- ];
250
- function isLooseData(data) {
251
- return looseTypeLiterals.includes(data == null ? void 0 : data.type);
252
- }
253
- function isDisarray(schema) {
254
- return (schema == null ? void 0 : schema.type) === "disarray";
255
- }
256
- function isUnstruct(schema) {
257
- return (schema == null ? void 0 : schema.type) === "unstruct";
258
- }
259
- function isLooseDecorated(value) {
260
- return (value == null ? void 0 : value.type) === "loose-decorated";
261
- }
262
- function getCustomAlignment(data) {
263
- var _a, _b;
264
- return (_b = (_a = data.attribs) == null ? void 0 : _a.find(
265
- isAlignAttrib
266
- )) == null ? void 0 : _b.value;
267
- }
268
- function getCustomSize(data) {
269
- var _a, _b;
270
- return (_b = (_a = data.attribs) == null ? void 0 : _a.find(
271
- isSizeAttrib
272
- )) == null ? void 0 : _b.value;
273
- }
274
- function getCustomLocation(data) {
275
- var _a, _b;
276
- return (_b = (_a = data.attribs) == null ? void 0 : _a.find(
277
- isLocationAttrib
278
- )) == null ? void 0 : _b.value;
279
- }
280
- function isData(value) {
281
- return isWgslData(value) || isLooseData(value);
282
- }
283
-
284
- // src/data/vertexFormatData.ts
285
- var TgpuVertexFormatDataImpl = class {
286
- constructor(type) {
287
- this.type = type;
288
- /** Used as a type-token for the `Infer<T>` functionality. */
289
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "~repr");
290
- }
291
- };
292
- var formatToWGSLType = {
293
- uint8: u32,
294
- uint8x2: _chunk35UVS2JJcjs.vec2u,
295
- uint8x4: _chunk35UVS2JJcjs.vec4u,
296
- sint8: i32,
297
- sint8x2: _chunk35UVS2JJcjs.vec2i,
298
- sint8x4: _chunk35UVS2JJcjs.vec4i,
299
- unorm8: f32,
300
- unorm8x2: _chunk35UVS2JJcjs.vec2f,
301
- unorm8x4: _chunk35UVS2JJcjs.vec4f,
302
- snorm8: f32,
303
- snorm8x2: _chunk35UVS2JJcjs.vec2f,
304
- snorm8x4: _chunk35UVS2JJcjs.vec4f,
305
- uint16: u32,
306
- uint16x2: _chunk35UVS2JJcjs.vec2u,
307
- uint16x4: _chunk35UVS2JJcjs.vec4u,
308
- sint16: i32,
309
- sint16x2: _chunk35UVS2JJcjs.vec2i,
310
- sint16x4: _chunk35UVS2JJcjs.vec4i,
311
- unorm16: f32,
312
- unorm16x2: _chunk35UVS2JJcjs.vec2f,
313
- unorm16x4: _chunk35UVS2JJcjs.vec4f,
314
- snorm16: f32,
315
- snorm16x2: _chunk35UVS2JJcjs.vec2f,
316
- snorm16x4: _chunk35UVS2JJcjs.vec4f,
317
- float16: f32,
318
- float16x2: _chunk35UVS2JJcjs.vec2f,
319
- float16x4: _chunk35UVS2JJcjs.vec4f,
320
- float32: f32,
321
- float32x2: _chunk35UVS2JJcjs.vec2f,
322
- float32x3: _chunk35UVS2JJcjs.vec3f,
323
- float32x4: _chunk35UVS2JJcjs.vec4f,
324
- uint32: u32,
325
- uint32x2: _chunk35UVS2JJcjs.vec2u,
326
- uint32x3: _chunk35UVS2JJcjs.vec3u,
327
- uint32x4: _chunk35UVS2JJcjs.vec4u,
328
- sint32: i32,
329
- sint32x2: _chunk35UVS2JJcjs.vec2i,
330
- sint32x3: _chunk35UVS2JJcjs.vec3i,
331
- sint32x4: _chunk35UVS2JJcjs.vec4i,
332
- "unorm10-10-10-2": _chunk35UVS2JJcjs.vec4f,
333
- "unorm8x4-bgra": _chunk35UVS2JJcjs.vec4f
334
- };
335
- var packedFormats = Object.keys(formatToWGSLType);
336
- var uint8 = new TgpuVertexFormatDataImpl("uint8");
337
- var uint8x2 = new TgpuVertexFormatDataImpl("uint8x2");
338
- var uint8x4 = new TgpuVertexFormatDataImpl("uint8x4");
339
- var sint8 = new TgpuVertexFormatDataImpl("sint8");
340
- var sint8x2 = new TgpuVertexFormatDataImpl("sint8x2");
341
- var sint8x4 = new TgpuVertexFormatDataImpl("sint8x4");
342
- var unorm8 = new TgpuVertexFormatDataImpl("unorm8");
343
- var unorm8x2 = new TgpuVertexFormatDataImpl("unorm8x2");
344
- var unorm8x4 = new TgpuVertexFormatDataImpl("unorm8x4");
345
- var snorm8 = new TgpuVertexFormatDataImpl("snorm8");
346
- var snorm8x2 = new TgpuVertexFormatDataImpl("snorm8x2");
347
- var snorm8x4 = new TgpuVertexFormatDataImpl("snorm8x4");
348
- var uint16 = new TgpuVertexFormatDataImpl("uint16");
349
- var uint16x2 = new TgpuVertexFormatDataImpl("uint16x2");
350
- var uint16x4 = new TgpuVertexFormatDataImpl("uint16x4");
351
- var sint16 = new TgpuVertexFormatDataImpl("sint16");
352
- var sint16x2 = new TgpuVertexFormatDataImpl("sint16x2");
353
- var sint16x4 = new TgpuVertexFormatDataImpl("sint16x4");
354
- var unorm16 = new TgpuVertexFormatDataImpl("unorm16");
355
- var unorm16x2 = new TgpuVertexFormatDataImpl("unorm16x2");
356
- var unorm16x4 = new TgpuVertexFormatDataImpl("unorm16x4");
357
- var snorm16 = new TgpuVertexFormatDataImpl("snorm16");
358
- var snorm16x2 = new TgpuVertexFormatDataImpl("snorm16x2");
359
- var snorm16x4 = new TgpuVertexFormatDataImpl("snorm16x4");
360
- var float16 = new TgpuVertexFormatDataImpl("float16");
361
- var float16x2 = new TgpuVertexFormatDataImpl("float16x2");
362
- var float16x4 = new TgpuVertexFormatDataImpl("float16x4");
363
- var float32 = new TgpuVertexFormatDataImpl("float32");
364
- var float32x2 = new TgpuVertexFormatDataImpl("float32x2");
365
- var float32x3 = new TgpuVertexFormatDataImpl("float32x3");
366
- var float32x4 = new TgpuVertexFormatDataImpl("float32x4");
367
- var uint32 = new TgpuVertexFormatDataImpl("uint32");
368
- var uint32x2 = new TgpuVertexFormatDataImpl("uint32x2");
369
- var uint32x3 = new TgpuVertexFormatDataImpl("uint32x3");
370
- var uint32x4 = new TgpuVertexFormatDataImpl("uint32x4");
371
- var sint32 = new TgpuVertexFormatDataImpl("sint32");
372
- var sint32x2 = new TgpuVertexFormatDataImpl("sint32x2");
373
- var sint32x3 = new TgpuVertexFormatDataImpl("sint32x3");
374
- var sint32x4 = new TgpuVertexFormatDataImpl("sint32x4");
375
- var unorm10_10_10_2 = new TgpuVertexFormatDataImpl(
376
- "unorm10-10-10-2"
377
- );
378
- var unorm8x4_bgra = new TgpuVertexFormatDataImpl(
379
- "unorm8x4-bgra"
380
- );
381
-
382
- // src/data/alignmentOf.ts
383
- var knownAlignmentMap = {
384
- bool: 4,
385
- f32: 4,
386
- f16: 2,
387
- i32: 4,
388
- u32: 4,
389
- vec2f: 8,
390
- vec2h: 4,
391
- vec2i: 8,
392
- vec2u: 8,
393
- vec3f: 16,
394
- vec3h: 8,
395
- vec3i: 16,
396
- vec3u: 16,
397
- vec4f: 16,
398
- vec4h: 8,
399
- vec4i: 16,
400
- vec4u: 16,
401
- mat2x2f: 8,
402
- mat3x3f: 16,
403
- mat4x4f: 16
404
- };
405
- function computeAlignment(data) {
406
- var _a, _b, _c;
407
- const dataType = data == null ? void 0 : data.type;
408
- const knownAlignment = knownAlignmentMap[dataType];
409
- if (knownAlignment !== void 0) {
410
- return knownAlignment;
411
- }
412
- if (isWgslStruct(data)) {
413
- return Object.values(data.propTypes).map(alignmentOf).reduce((a, b) => a > b ? a : b);
414
- }
415
- if (isWgslArray(data)) {
416
- return alignmentOf(data.elementType);
417
- }
418
- if (isUnstruct(data)) {
419
- const firstProp = Object.values(data.propTypes)[0];
420
- return firstProp ? (_a = getCustomAlignment(firstProp)) != null ? _a : 1 : 1;
421
- }
422
- if (isDisarray(data)) {
423
- return (_b = getCustomAlignment(data.elementType)) != null ? _b : 1;
424
- }
425
- if (isDecorated(data) || isLooseDecorated(data)) {
426
- return (_c = getCustomAlignment(data)) != null ? _c : alignmentOf(data.inner);
427
- }
428
- if (packedFormats.includes(dataType)) {
429
- return 1;
430
- }
431
- throw new Error(
432
- `Cannot determine alignment of data: ${JSON.stringify(data)}`
433
- );
434
- }
435
- function computeCustomAlignment(data) {
436
- var _a, _b;
437
- if (isUnstruct(data)) {
438
- const firstProp = Object.values(data.propTypes)[0];
439
- return firstProp ? customAlignmentOf(firstProp) : 1;
440
- }
441
- if (isDisarray(data)) {
442
- return customAlignmentOf(data.elementType);
443
- }
444
- if (isLooseDecorated(data)) {
445
- return (_a = getCustomAlignment(data)) != null ? _a : customAlignmentOf(data.inner);
446
- }
447
- return (_b = getCustomAlignment(data)) != null ? _b : 1;
448
- }
449
- var cachedAlignments = /* @__PURE__ */ new WeakMap();
450
- var cachedCustomAlignments = /* @__PURE__ */ new WeakMap();
451
- function alignmentOf(data) {
452
- let alignment = cachedAlignments.get(data);
453
- if (alignment === void 0) {
454
- alignment = computeAlignment(data);
455
- cachedAlignments.set(data, alignment);
456
- }
457
- return alignment;
458
- }
459
- function customAlignmentOf(data) {
460
- let alignment = cachedCustomAlignments.get(data);
461
- if (alignment === void 0) {
462
- alignment = computeCustomAlignment(data);
463
- cachedCustomAlignments.set(data, alignment);
464
- }
465
- return alignment;
466
- }
467
- function PUBLIC_alignmentOf(schema) {
468
- return alignmentOf(schema);
469
- }
470
-
471
- // src/data/sizeOf.ts
472
- var knownSizesMap = {
473
- bool: 4,
474
- f32: 4,
475
- f16: 2,
476
- i32: 4,
477
- u32: 4,
478
- vec2f: 8,
479
- vec2h: 4,
480
- vec2i: 8,
481
- vec2u: 8,
482
- vec3f: 12,
483
- vec3h: 6,
484
- vec3i: 12,
485
- vec3u: 12,
486
- vec4f: 16,
487
- vec4h: 8,
488
- vec4i: 16,
489
- vec4u: 16,
490
- mat2x2f: 16,
491
- mat3x3f: 48,
492
- mat4x4f: 64,
493
- uint8: 1,
494
- uint8x2: 2,
495
- uint8x4: 4,
496
- sint8: 1,
497
- sint8x2: 2,
498
- sint8x4: 4,
499
- unorm8: 1,
500
- unorm8x2: 2,
501
- unorm8x4: 4,
502
- snorm8: 1,
503
- snorm8x2: 2,
504
- snorm8x4: 4,
505
- uint16: 2,
506
- uint16x2: 4,
507
- uint16x4: 8,
508
- sint16: 2,
509
- sint16x2: 4,
510
- sint16x4: 8,
511
- unorm16: 2,
512
- unorm16x2: 4,
513
- unorm16x4: 8,
514
- snorm16: 2,
515
- snorm16x2: 4,
516
- snorm16x4: 8,
517
- float16: 2,
518
- float16x2: 4,
519
- float16x4: 8,
520
- float32: 4,
521
- float32x2: 8,
522
- float32x3: 12,
523
- float32x4: 16,
524
- uint32: 4,
525
- uint32x2: 8,
526
- uint32x3: 12,
527
- uint32x4: 16,
528
- sint32: 4,
529
- sint32x2: 8,
530
- sint32x3: 12,
531
- sint32x4: 16,
532
- "unorm10-10-10-2": 4,
533
- "unorm8x4-bgra": 4
534
- };
535
- function sizeOfStruct(struct2) {
536
- let size2 = 0;
537
- for (const property of Object.values(struct2.propTypes)) {
538
- if (Number.isNaN(size2)) {
539
- throw new Error("Only the last property of a struct can be unbounded");
540
- }
541
- size2 = roundUp(size2, alignmentOf(property));
542
- size2 += sizeOf(property);
543
- if (Number.isNaN(size2) && property.type !== "array") {
544
- throw new Error("Cannot nest unbounded struct within another struct");
545
- }
546
- }
547
- return roundUp(size2, alignmentOf(struct2));
548
- }
549
- function sizeOfUnstruct(data) {
550
- let size2 = 0;
551
- for (const property of Object.values(data.propTypes)) {
552
- const alignment = customAlignmentOf(property);
553
- size2 = roundUp(size2, alignment);
554
- size2 += sizeOf(property);
555
- }
556
- return size2;
557
- }
558
- function computeSize(data) {
559
- var _a;
560
- const knownSize = knownSizesMap[data == null ? void 0 : data.type];
561
- if (knownSize !== void 0) {
562
- return knownSize;
563
- }
564
- if (isWgslStruct(data)) {
565
- return sizeOfStruct(data);
566
- }
567
- if (isUnstruct(data)) {
568
- return sizeOfUnstruct(data);
569
- }
570
- if (isWgslArray(data)) {
571
- if (data.elementCount === 0) {
572
- return Number.NaN;
573
- }
574
- const alignment = alignmentOf(data.elementType);
575
- const stride = roundUp(sizeOf(data.elementType), alignment);
576
- return stride * data.elementCount;
577
- }
578
- if (isDisarray(data)) {
579
- const alignment = customAlignmentOf(data.elementType);
580
- const stride = roundUp(sizeOf(data.elementType), alignment);
581
- return stride * data.elementCount;
582
- }
583
- if (isDecorated(data) || isLooseDecorated(data)) {
584
- return (_a = getCustomSize(data)) != null ? _a : sizeOf(data.inner);
585
- }
586
- throw new Error(`Cannot determine size of data: ${data}`);
587
- }
588
- var cachedSizes = /* @__PURE__ */ new WeakMap();
589
- function sizeOf(schema) {
590
- let size2 = cachedSizes.get(schema);
591
- if (size2 === void 0) {
592
- size2 = computeSize(schema);
593
- cachedSizes.set(schema, size2);
594
- }
595
- return size2;
596
- }
597
- function PUBLIC_sizeOf(schema) {
598
- return sizeOf(schema);
599
- }
600
-
601
- // src/data/array.ts
602
- var arrayOf = (elementType, elementCount) => new TgpuArrayImpl(elementType, elementCount);
603
- var TgpuArrayImpl = class {
604
- constructor(elementType, elementCount) {
605
- this.elementType = elementType;
606
- this.elementCount = elementCount;
607
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "type", "array");
608
- /** Type-token, not available at runtime */
609
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "~repr");
610
- /** Type-token, not available at runtime */
611
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "~exotic");
612
- if (Number.isNaN(sizeOf(elementType))) {
613
- throw new Error("Cannot nest runtime sized arrays.");
614
- }
615
- }
616
- toString() {
617
- return `arrayOf(${this.elementType})`;
618
- }
619
- };
620
-
621
- // src/data/ptr.ts
622
- function ptrFn(inner) {
623
- return {
624
- type: "ptrFn",
625
- inner
626
- };
627
- }
628
-
629
- // src/data/disarray.ts
630
- var disarrayOf = (elementType, count) => new DisarrayImpl(elementType, count);
631
- var DisarrayImpl = class {
632
- constructor(elementType, elementCount) {
633
- this.elementType = elementType;
634
- this.elementCount = elementCount;
635
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "type", "disarray");
636
- /** Type-token, not available at runtime */
637
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "~repr");
638
- }
639
- };
640
-
641
- // src/data/unstruct.ts
642
- var unstruct = (properties) => new UnstructImpl(properties);
643
- var UnstructImpl = class {
644
- constructor(propTypes) {
645
- this.propTypes = propTypes;
646
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "type", "unstruct");
647
- /** Type-token, not available at runtime */
648
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "~repr");
649
- }
650
- };
651
-
652
- // src/data/matrix.ts
653
- function createMatSchema(options) {
654
- const MatSchema = {
655
- /** Type-token, not available at runtime */
656
- "~repr": void 0,
657
- type: options.type,
658
- label: options.type
659
- };
660
- const construct = (...args) => {
661
- if (_chunk35UVS2JJcjs.inGPUMode.call(void 0, )) {
662
- return `${MatSchema.type}(${args.join(", ")})`;
663
- }
664
- const elements = [];
665
- for (const arg of args) {
666
- if (typeof arg === "number") {
667
- elements.push(arg);
668
- } else {
669
- for (let i = 0; i < arg.length; ++i) {
670
- elements.push(arg[i]);
671
- }
672
- }
673
- }
674
- for (let i = elements.length; i < options.columns * options.rows; ++i) {
675
- elements.push(0);
676
- }
677
- return options.makeFromElements(...elements);
678
- };
679
- return Object.assign(construct, MatSchema);
680
- }
681
- var mat2x2Impl = class {
682
- constructor(...elements) {
683
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "columns");
684
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "length", 4);
685
- this.columns = [
686
- this.makeColumn(elements[0], elements[1]),
687
- this.makeColumn(elements[2], elements[3])
688
- ];
689
- }
690
- get [0]() {
691
- return this.columns[0].x;
692
- }
693
- get [1]() {
694
- return this.columns[0].y;
695
- }
696
- get [2]() {
697
- return this.columns[1].x;
698
- }
699
- get [3]() {
700
- return this.columns[1].y;
701
- }
702
- set [0](value) {
703
- this.columns[0].x = value;
704
- }
705
- set [1](value) {
706
- this.columns[0].y = value;
707
- }
708
- set [2](value) {
709
- this.columns[1].x = value;
710
- }
711
- set [3](value) {
712
- this.columns[1].y = value;
713
- }
714
- "~resolve"() {
715
- return `${this.kind}(${Array.from({ length: this.length }).map((_, i) => this[i]).join(", ")})`;
716
- }
717
- };
718
- var mat2x2fImpl = class extends mat2x2Impl {
719
- constructor() {
720
- super(...arguments);
721
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "kind", "mat2x2f");
722
- }
723
- makeColumn(e0, e1) {
724
- return _chunk35UVS2JJcjs.vec2f.call(void 0, e0, e1);
725
- }
726
- };
727
- var mat3x3Impl = class {
728
- constructor(...elements) {
729
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "columns");
730
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "length", 12);
731
- this.columns = [
732
- this.makeColumn(
733
- elements[0],
734
- elements[1],
735
- elements[2]
736
- ),
737
- this.makeColumn(
738
- elements[3],
739
- elements[4],
740
- elements[5]
741
- ),
742
- this.makeColumn(
743
- elements[6],
744
- elements[7],
745
- elements[8]
746
- )
747
- ];
748
- }
749
- get [0]() {
750
- return this.columns[0].x;
751
- }
752
- get [1]() {
753
- return this.columns[0].y;
754
- }
755
- get [2]() {
756
- return this.columns[0].z;
757
- }
758
- get [3]() {
759
- return 0;
760
- }
761
- get [4]() {
762
- return this.columns[1].x;
763
- }
764
- get [5]() {
765
- return this.columns[1].y;
766
- }
767
- get [6]() {
768
- return this.columns[1].z;
769
- }
770
- get [7]() {
771
- return 0;
772
- }
773
- get [8]() {
774
- return this.columns[2].x;
775
- }
776
- get [9]() {
777
- return this.columns[2].y;
778
- }
779
- get [10]() {
780
- return this.columns[2].z;
781
- }
782
- get [11]() {
783
- return 0;
784
- }
785
- set [0](value) {
786
- this.columns[0].x = value;
787
- }
788
- set [1](value) {
789
- this.columns[0].y = value;
790
- }
791
- set [2](value) {
792
- this.columns[0].z = value;
793
- }
794
- set [3](_) {
795
- }
796
- set [4](value) {
797
- this.columns[1].x = value;
798
- }
799
- set [5](value) {
800
- this.columns[1].y = value;
801
- }
802
- set [6](value) {
803
- this.columns[1].z = value;
804
- }
805
- set [7](_) {
806
- }
807
- set [8](value) {
808
- this.columns[2].x = value;
809
- }
810
- set [9](value) {
811
- this.columns[2].y = value;
812
- }
813
- set [10](value) {
814
- this.columns[2].z = value;
815
- }
816
- set [11](_) {
817
- }
818
- "~resolve"() {
819
- return `${this.kind}(${this[0]}, ${this[1]}, ${this[2]}, ${this[4]}, ${this[5]}, ${this[6]}, ${this[8]}, ${this[9]}, ${this[10]})`;
820
- }
821
- };
822
- var mat3x3fImpl = class extends mat3x3Impl {
823
- constructor() {
824
- super(...arguments);
825
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "kind", "mat3x3f");
826
- }
827
- makeColumn(x, y, z) {
828
- return _chunk35UVS2JJcjs.vec3f.call(void 0, x, y, z);
829
- }
830
- };
831
- var mat4x4Impl = class {
832
- constructor(...elements) {
833
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "columns");
834
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "length", 16);
835
- this.columns = [
836
- this.makeColumn(
837
- elements[0],
838
- elements[1],
839
- elements[2],
840
- elements[3]
841
- ),
842
- this.makeColumn(
843
- elements[4],
844
- elements[5],
845
- elements[6],
846
- elements[7]
847
- ),
848
- this.makeColumn(
849
- elements[8],
850
- elements[9],
851
- elements[10],
852
- elements[11]
853
- ),
854
- this.makeColumn(
855
- elements[12],
856
- elements[13],
857
- elements[14],
858
- elements[15]
859
- )
860
- ];
861
- }
862
- get [0]() {
863
- return this.columns[0].x;
864
- }
865
- get [1]() {
866
- return this.columns[0].y;
867
- }
868
- get [2]() {
869
- return this.columns[0].z;
870
- }
871
- get [3]() {
872
- return this.columns[0].w;
873
- }
874
- get [4]() {
875
- return this.columns[1].x;
876
- }
877
- get [5]() {
878
- return this.columns[1].y;
879
- }
880
- get [6]() {
881
- return this.columns[1].z;
882
- }
883
- get [7]() {
884
- return this.columns[1].w;
885
- }
886
- get [8]() {
887
- return this.columns[2].x;
888
- }
889
- get [9]() {
890
- return this.columns[2].y;
891
- }
892
- get [10]() {
893
- return this.columns[2].z;
894
- }
895
- get [11]() {
896
- return this.columns[2].w;
897
- }
898
- get [12]() {
899
- return this.columns[3].x;
900
- }
901
- get [13]() {
902
- return this.columns[3].y;
903
- }
904
- get [14]() {
905
- return this.columns[3].z;
906
- }
907
- get [15]() {
908
- return this.columns[3].w;
909
- }
910
- set [0](value) {
911
- this.columns[0].x = value;
912
- }
913
- set [1](value) {
914
- this.columns[0].y = value;
915
- }
916
- set [2](value) {
917
- this.columns[0].z = value;
918
- }
919
- set [3](value) {
920
- this.columns[0].w = value;
921
- }
922
- set [4](value) {
923
- this.columns[1].x = value;
924
- }
925
- set [5](value) {
926
- this.columns[1].y = value;
927
- }
928
- set [6](value) {
929
- this.columns[1].z = value;
930
- }
931
- set [7](value) {
932
- this.columns[1].w = value;
933
- }
934
- set [8](value) {
935
- this.columns[2].x = value;
936
- }
937
- set [9](value) {
938
- this.columns[2].y = value;
939
- }
940
- set [10](value) {
941
- this.columns[2].z = value;
942
- }
943
- set [11](value) {
944
- this.columns[2].w = value;
945
- }
946
- set [12](value) {
947
- this.columns[3].x = value;
948
- }
949
- set [13](value) {
950
- this.columns[3].y = value;
951
- }
952
- set [14](value) {
953
- this.columns[3].z = value;
954
- }
955
- set [15](value) {
956
- this.columns[3].w = value;
957
- }
958
- "~resolve"() {
959
- return `${this.kind}(${Array.from({ length: this.length }).map((_, i) => this[i]).join(", ")})`;
960
- }
961
- };
962
- var mat4x4fImpl = class extends mat4x4Impl {
963
- constructor() {
964
- super(...arguments);
965
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "kind", "mat4x4f");
966
- }
967
- makeColumn(x, y, z, w) {
968
- return _chunk35UVS2JJcjs.vec4f.call(void 0, x, y, z, w);
969
- }
970
- };
971
- var mat2x2f = createMatSchema({
972
- type: "mat2x2f",
973
- rows: 2,
974
- columns: 2,
975
- makeFromElements: (...elements) => new mat2x2fImpl(...elements)
976
- });
977
- var mat3x3f = createMatSchema({
978
- type: "mat3x3f",
979
- rows: 3,
980
- columns: 3,
981
- makeFromElements: (...elements) => new mat3x3fImpl(...elements)
982
- });
983
- var mat4x4f = createMatSchema({
984
- type: "mat4x4f",
985
- rows: 4,
986
- columns: 4,
987
- makeFromElements: (...elements) => new mat4x4fImpl(...elements)
988
- });
989
- function matToArray(mat) {
990
- if (mat.kind === "mat3x3f") {
991
- return [
992
- mat[0],
993
- mat[1],
994
- mat[2],
995
- mat[4],
996
- mat[5],
997
- mat[6],
998
- mat[8],
999
- mat[9],
1000
- mat[10]
1001
- ];
1002
- }
1003
- return Array.from({ length: mat.length }).map((_, idx) => mat[idx]);
1004
- }
1005
-
1006
- // src/data/atomic.ts
1007
- function atomic(data) {
1008
- return new AtomicImpl(data);
1009
- }
1010
- var AtomicImpl = class {
1011
- constructor(inner) {
1012
- this.inner = inner;
1013
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "type", "atomic");
1014
- /** Type-token, not available at runtime */
1015
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "~repr");
1016
- }
1017
- };
1018
-
1019
- // src/data/attributes.ts
1020
- function attribute(data, attrib) {
1021
- if (isDecorated(data)) {
1022
- return new DecoratedImpl(data.inner, [
1023
- attrib,
1024
- ...data.attribs
1025
- ]);
1026
- }
1027
- if (isLooseDecorated(data)) {
1028
- return new LooseDecoratedImpl(data.inner, [
1029
- attrib,
1030
- ...data.attribs
1031
- ]);
1032
- }
1033
- if (isLooseData(data)) {
1034
- return new LooseDecoratedImpl(data, [attrib]);
1035
- }
1036
- return new DecoratedImpl(data, [attrib]);
1037
- }
1038
- function align(alignment, data) {
1039
- return attribute(data, { type: "@align", value: alignment });
1040
- }
1041
- function size(size2, data) {
1042
- return attribute(data, { type: "@size", value: size2 });
1043
- }
1044
- function location(location2, data) {
1045
- return attribute(data, { type: "@location", value: location2 });
1046
- }
1047
- function interpolate(interpolationType, data) {
1048
- return attribute(data, {
1049
- type: "@interpolate",
1050
- value: interpolationType
1051
- // biome-ignore lint/suspicious/noExplicitAny: <tired of lying to types>
1052
- });
1053
- }
1054
- function isBuiltin(value) {
1055
- return (isDecorated(value) || isLooseDecorated(value)) && value.attribs.find(isBuiltinAttrib) !== void 0;
1056
- }
1057
- function getAttributesString(field) {
1058
- if (!isDecorated(field) && !isLooseDecorated(field)) {
1059
- return "";
1060
- }
1061
- return field.attribs.map((attrib) => `${attrib.type}(${attrib.value}) `).join("");
1062
- }
1063
- var BaseDecoratedImpl = class {
1064
- constructor(inner, attribs) {
1065
- this.inner = inner;
1066
- this.attribs = attribs;
1067
- // Type-token, not available at runtime
1068
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "~repr");
1069
- var _a, _b;
1070
- const alignAttrib = (_a = attribs.find(isAlignAttrib)) == null ? void 0 : _a.value;
1071
- const sizeAttrib = (_b = attribs.find(isSizeAttrib)) == null ? void 0 : _b.value;
1072
- if (alignAttrib !== void 0) {
1073
- if (alignAttrib <= 0) {
1074
- throw new Error(
1075
- `Custom data alignment must be a positive number, got: ${alignAttrib}.`
1076
- );
1077
- }
1078
- if (Math.log2(alignAttrib) % 1 !== 0) {
1079
- throw new Error(
1080
- `Alignment has to be a power of 2, got: ${alignAttrib}.`
1081
- );
1082
- }
1083
- if (isWgslData(this.inner)) {
1084
- if (alignAttrib % alignmentOf(this.inner) !== 0) {
1085
- throw new Error(
1086
- `Custom alignment has to be a multiple of the standard data alignment. Got: ${alignAttrib}, expected multiple of: ${alignmentOf(this.inner)}.`
1087
- );
1088
- }
1089
- }
1090
- }
1091
- if (sizeAttrib !== void 0) {
1092
- if (sizeAttrib < sizeOf(this.inner)) {
1093
- throw new Error(
1094
- `Custom data size cannot be smaller then the standard data size. Got: ${sizeAttrib}, expected at least: ${sizeOf(this.inner)}.`
1095
- );
1096
- }
1097
- if (sizeAttrib <= 0) {
1098
- throw new Error(
1099
- `Custom data size must be a positive number. Got: ${sizeAttrib}.`
1100
- );
1101
- }
1102
- }
1103
- }
1104
- };
1105
- var DecoratedImpl = class extends BaseDecoratedImpl {
1106
- constructor() {
1107
- super(...arguments);
1108
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "type", "decorated");
1109
- }
1110
- };
1111
- var LooseDecoratedImpl = class extends BaseDecoratedImpl {
1112
- constructor() {
1113
- super(...arguments);
1114
- _chunk35UVS2JJcjs.__publicField.call(void 0, this, "type", "loose-decorated");
1115
- }
1116
- };
1117
-
1118
- // src/builtin.ts
1119
- var builtin = {
1120
- vertexIndex: attribute(u32, {
1121
- type: "@builtin",
1122
- value: "vertex_index"
1123
- }),
1124
- instanceIndex: attribute(u32, {
1125
- type: "@builtin",
1126
- value: "instance_index"
1127
- }),
1128
- position: attribute(_chunk35UVS2JJcjs.vec4f, {
1129
- type: "@builtin",
1130
- value: "position"
1131
- }),
1132
- clipDistances: attribute(arrayOf(u32, 8), {
1133
- type: "@builtin",
1134
- value: "clip_distances"
1135
- }),
1136
- frontFacing: attribute(f32, {
1137
- type: "@builtin",
1138
- value: "front_facing"
1139
- }),
1140
- fragDepth: attribute(f32, {
1141
- type: "@builtin",
1142
- value: "frag_depth"
1143
- }),
1144
- sampleIndex: attribute(u32, {
1145
- type: "@builtin",
1146
- value: "sample_index"
1147
- }),
1148
- sampleMask: attribute(u32, {
1149
- type: "@builtin",
1150
- value: "sample_mask"
1151
- }),
1152
- localInvocationId: attribute(_chunk35UVS2JJcjs.vec3u, {
1153
- type: "@builtin",
1154
- value: "local_invocation_id"
1155
- }),
1156
- localInvocationIndex: attribute(u32, {
1157
- type: "@builtin",
1158
- value: "local_invocation_index"
1159
- }),
1160
- globalInvocationId: attribute(_chunk35UVS2JJcjs.vec3u, {
1161
- type: "@builtin",
1162
- value: "global_invocation_id"
1163
- }),
1164
- workgroupId: attribute(_chunk35UVS2JJcjs.vec3u, {
1165
- type: "@builtin",
1166
- value: "workgroup_id"
1167
- }),
1168
- numWorkgroups: attribute(_chunk35UVS2JJcjs.vec3u, {
1169
- type: "@builtin",
1170
- value: "num_workgroups"
1171
- })
1172
- };
1173
-
1174
-
1175
-
1176
-
1177
-
1178
-
1179
-
1180
-
1181
-
1182
-
1183
-
1184
-
1185
-
1186
-
1187
-
1188
-
1189
-
1190
-
1191
-
1192
-
1193
-
1194
-
1195
-
1196
-
1197
-
1198
-
1199
-
1200
-
1201
-
1202
-
1203
-
1204
-
1205
-
1206
-
1207
-
1208
-
1209
-
1210
-
1211
-
1212
-
1213
-
1214
-
1215
-
1216
-
1217
-
1218
-
1219
-
1220
-
1221
-
1222
-
1223
-
1224
-
1225
-
1226
-
1227
-
1228
-
1229
-
1230
-
1231
-
1232
-
1233
-
1234
-
1235
-
1236
-
1237
-
1238
-
1239
-
1240
-
1241
-
1242
-
1243
-
1244
-
1245
-
1246
-
1247
-
1248
-
1249
-
1250
-
1251
-
1252
-
1253
-
1254
-
1255
-
1256
-
1257
-
1258
-
1259
-
1260
-
1261
-
1262
-
1263
-
1264
-
1265
- exports.isWgslData = isWgslData; exports.isWgslArray = isWgslArray; exports.isWgslStruct = isWgslStruct; exports.isPtrFn = isPtrFn; exports.isAtomic = isAtomic; exports.isAlignAttrib = isAlignAttrib; exports.isSizeAttrib = isSizeAttrib; exports.isLocationAttrib = isLocationAttrib; exports.isInterpolateAttrib = isInterpolateAttrib; exports.isBuiltinAttrib = isBuiltinAttrib; exports.isDecorated = isDecorated; exports.bool = bool; exports.u32 = u32; exports.i32 = i32; exports.f32 = f32; exports.f16 = f16; exports.struct = struct; exports.roundUp = roundUp; exports.vertexFormats = vertexFormats; exports.kindToDefaultFormatMap = kindToDefaultFormatMap; exports.isLooseData = isLooseData; exports.isDisarray = isDisarray; exports.isUnstruct = isUnstruct; exports.isLooseDecorated = isLooseDecorated; exports.getCustomLocation = getCustomLocation; exports.isData = isData; exports.packedFormats = packedFormats; exports.uint8 = uint8; exports.uint8x2 = uint8x2; exports.uint8x4 = uint8x4; exports.sint8 = sint8; exports.sint8x2 = sint8x2; exports.sint8x4 = sint8x4; exports.unorm8 = unorm8; exports.unorm8x2 = unorm8x2; exports.unorm8x4 = unorm8x4; exports.snorm8 = snorm8; exports.snorm8x2 = snorm8x2; exports.snorm8x4 = snorm8x4; exports.uint16 = uint16; exports.uint16x2 = uint16x2; exports.uint16x4 = uint16x4; exports.sint16 = sint16; exports.sint16x2 = sint16x2; exports.sint16x4 = sint16x4; exports.unorm16 = unorm16; exports.unorm16x2 = unorm16x2; exports.unorm16x4 = unorm16x4; exports.snorm16 = snorm16; exports.snorm16x2 = snorm16x2; exports.snorm16x4 = snorm16x4; exports.float16 = float16; exports.float16x2 = float16x2; exports.float16x4 = float16x4; exports.float32 = float32; exports.float32x2 = float32x2; exports.float32x3 = float32x3; exports.float32x4 = float32x4; exports.uint32 = uint32; exports.uint32x2 = uint32x2; exports.uint32x3 = uint32x3; exports.uint32x4 = uint32x4; exports.sint32 = sint32; exports.sint32x2 = sint32x2; exports.sint32x3 = sint32x3; exports.sint32x4 = sint32x4; exports.unorm10_10_10_2 = unorm10_10_10_2; exports.unorm8x4_bgra = unorm8x4_bgra; exports.alignmentOf = alignmentOf; exports.customAlignmentOf = customAlignmentOf; exports.PUBLIC_alignmentOf = PUBLIC_alignmentOf; exports.sizeOf = sizeOf; exports.PUBLIC_sizeOf = PUBLIC_sizeOf; exports.arrayOf = arrayOf; exports.ptrFn = ptrFn; exports.disarrayOf = disarrayOf; exports.unstruct = unstruct; exports.mat2x2f = mat2x2f; exports.mat3x3f = mat3x3f; exports.mat4x4f = mat4x4f; exports.matToArray = matToArray; exports.atomic = atomic; exports.attribute = attribute; exports.align = align; exports.size = size; exports.location = location; exports.interpolate = interpolate; exports.isBuiltin = isBuiltin; exports.getAttributesString = getAttributesString; exports.builtin = builtin;
1266
- //# sourceMappingURL=chunk-CMYXKKUP.cjs.map