typegpu 0.11.9 → 0.12.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 (362) hide show
  1. package/builtin.d.ts +51 -53
  2. package/builtin.js +30 -34
  3. package/common/fullScreenTriangle.d.ts +2 -10
  4. package/common/fullScreenTriangle.js +20 -28
  5. package/common/index.d.ts +2 -9
  6. package/common/index.js +3 -12
  7. package/common/writeSoA.d.ts +11 -12
  8. package/common/writeSoA.js +88 -76
  9. package/core/buffer/buffer.d.ts +79 -62
  10. package/core/buffer/buffer.js +279 -205
  11. package/core/buffer/bufferBinding.d.ts +71 -0
  12. package/core/buffer/bufferBinding.js +154 -0
  13. package/core/buffer/bufferUsage.d.ts +14 -45
  14. package/core/buffer/bufferUsage.js +1 -171
  15. package/core/buffer/laidOutBuffer.d.ts +25 -0
  16. package/core/buffer/laidOutBuffer.js +55 -0
  17. package/core/commandEncoder/attachments.d.ts +125 -0
  18. package/core/commandEncoder/attachments.js +29 -0
  19. package/core/commandEncoder/commandEncoder.d.ts +53 -0
  20. package/core/commandEncoder/commandEncoder.js +56 -0
  21. package/core/commandEncoder/computePass.d.ts +58 -0
  22. package/core/commandEncoder/computePass.js +63 -0
  23. package/core/commandEncoder/renderPass.d.ts +121 -0
  24. package/core/commandEncoder/renderPass.js +196 -0
  25. package/core/constant/tgpuConstant.d.ts +26 -26
  26. package/core/constant/tgpuConstant.js +76 -65
  27. package/core/declare/tgpuDeclare.d.ts +3 -6
  28. package/core/declare/tgpuDeclare.js +36 -36
  29. package/core/function/autoIO.d.ts +61 -33
  30. package/core/function/autoIO.js +68 -73
  31. package/core/function/comptime.d.ts +11 -13
  32. package/core/function/comptime.js +60 -52
  33. package/core/function/createCallableSchema.d.ts +16 -0
  34. package/core/function/createCallableSchema.js +50 -40
  35. package/core/function/dualImpl.d.ts +44 -0
  36. package/core/function/dualImpl.js +71 -50
  37. package/core/function/entryInputRouter.d.ts +26 -0
  38. package/core/function/entryInputRouter.js +31 -33
  39. package/core/function/extractArgs.d.ts +38 -0
  40. package/core/function/extractArgs.js +202 -200
  41. package/core/function/fnCore.d.ts +44 -5
  42. package/core/function/fnCore.js +148 -93
  43. package/core/function/fnTypes.d.ts +31 -29
  44. package/core/function/fnTypes.js +1 -0
  45. package/core/function/ioSchema.d.ts +12 -10
  46. package/core/function/ioSchema.js +65 -47
  47. package/core/function/shelllessImpl.d.ts +9 -12
  48. package/core/function/shelllessImpl.js +17 -22
  49. package/core/function/templateUtils.d.ts +2 -0
  50. package/core/function/templateUtils.js +9 -8
  51. package/core/function/tgpuComputeFn.d.ts +26 -28
  52. package/core/function/tgpuComputeFn.js +47 -48
  53. package/core/function/tgpuFn.d.ts +34 -37
  54. package/core/function/tgpuFn.js +179 -153
  55. package/core/function/tgpuFragmentFn.d.ts +52 -53
  56. package/core/function/tgpuFragmentFn.js +63 -56
  57. package/core/function/tgpuVertexFn.d.ts +36 -39
  58. package/core/function/tgpuVertexFn.js +56 -53
  59. package/core/pipeline/computePipeline.d.ts +141 -53
  60. package/core/pipeline/computePipeline.js +291 -225
  61. package/core/pipeline/connectAttachmentToShader.d.ts +4 -0
  62. package/core/pipeline/connectAttachmentToShader.js +25 -22
  63. package/core/pipeline/connectTargetsToShader.d.ts +3 -0
  64. package/core/pipeline/connectTargetsToShader.js +29 -27
  65. package/core/pipeline/drawState.d.ts +52 -0
  66. package/core/pipeline/drawState.js +225 -0
  67. package/core/pipeline/limitsOverflow.d.ts +2 -0
  68. package/core/pipeline/limitsOverflow.js +13 -10
  69. package/core/pipeline/performanceTracker.d.ts +14 -0
  70. package/core/pipeline/performanceTracker.js +34 -0
  71. package/core/pipeline/pipelineUtils.d.ts +18 -0
  72. package/core/pipeline/pipelineUtils.js +54 -25
  73. package/core/pipeline/priors.d.ts +1 -0
  74. package/core/pipeline/priors.js +12 -0
  75. package/core/pipeline/renderPipeline.d.ts +246 -261
  76. package/core/pipeline/renderPipeline.js +487 -480
  77. package/core/pipeline/timeable.d.ts +28 -18
  78. package/core/pipeline/timeable.js +90 -52
  79. package/core/pipeline/typeGuards.d.ts +17 -0
  80. package/core/pipeline/typeGuards.js +52 -22
  81. package/core/querySet/querySet.d.ts +26 -21
  82. package/core/querySet/querySet.js +127 -103
  83. package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +13 -18
  84. package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +89 -90
  85. package/core/resolve/externals.d.ts +25 -8
  86. package/core/resolve/externals.js +78 -54
  87. package/core/resolve/namespace.d.ts +22 -25
  88. package/core/resolve/namespace.js +16 -21
  89. package/core/resolve/resolvableString.d.ts +7 -0
  90. package/core/resolve/resolvableString.js +13 -0
  91. package/core/resolve/resolveData.d.ts +10 -0
  92. package/core/resolve/resolveData.js +162 -121
  93. package/core/resolve/stitch.d.ts +8 -0
  94. package/core/resolve/stitch.js +23 -21
  95. package/core/resolve/tgpuResolve.d.ts +55 -53
  96. package/core/resolve/tgpuResolve.js +106 -53
  97. package/core/root/configurableImpl.d.ts +10 -0
  98. package/core/root/configurableImpl.js +17 -19
  99. package/core/root/init.d.ts +76 -38
  100. package/core/root/init.js +346 -455
  101. package/core/root/rootTypes.d.ts +461 -636
  102. package/core/root/rootTypes.js +1 -0
  103. package/core/sampler/sampler.d.ts +50 -31
  104. package/core/sampler/sampler.js +120 -113
  105. package/core/simulate/tgpuSimulate.d.ts +9 -12
  106. package/core/simulate/tgpuSimulate.js +68 -71
  107. package/core/slot/accessor.d.ts +36 -13
  108. package/core/slot/accessor.js +138 -91
  109. package/core/slot/internalSlots.d.ts +2 -0
  110. package/core/slot/internalSlots.js +1 -6
  111. package/core/slot/lazy.d.ts +2 -6
  112. package/core/slot/lazy.js +71 -39
  113. package/core/slot/slot.d.ts +2 -6
  114. package/core/slot/slot.js +45 -38
  115. package/core/slot/slotTypes.d.ts +78 -80
  116. package/core/slot/slotTypes.js +11 -16
  117. package/core/texture/externalTexture.d.ts +20 -11
  118. package/core/texture/externalTexture.js +46 -46
  119. package/core/texture/texture.d.ts +152 -97
  120. package/core/texture/texture.js +407 -314
  121. package/core/texture/textureFormats.d.ts +42 -23
  122. package/core/texture/textureFormats.js +104 -75
  123. package/core/texture/textureProps.d.ts +7 -10
  124. package/core/texture/textureProps.js +1 -0
  125. package/core/texture/textureUtils.d.ts +8 -0
  126. package/core/texture/textureUtils.js +185 -179
  127. package/core/texture/usageExtension.d.ts +21 -18
  128. package/core/texture/usageExtension.js +13 -17
  129. package/core/unroll/tgpuUnroll.d.ts +20 -19
  130. package/core/unroll/tgpuUnroll.js +82 -91
  131. package/core/valueProxyUtils.d.ts +3 -0
  132. package/core/valueProxyUtils.js +52 -41
  133. package/core/variable/tgpuVariable.d.ts +26 -27
  134. package/core/variable/tgpuVariable.js +93 -96
  135. package/core/vertexLayout/connectAttributesToShader.d.ts +9 -0
  136. package/core/vertexLayout/connectAttributesToShader.js +61 -56
  137. package/core/vertexLayout/vertexAttribute.d.ts +21 -17
  138. package/core/vertexLayout/vertexAttribute.js +1 -0
  139. package/core/vertexLayout/vertexLayout.d.ts +24 -18
  140. package/core/vertexLayout/vertexLayout.js +130 -99
  141. package/core/whitespaces.d.ts +2 -0
  142. package/core/whitespaces.js +16 -0
  143. package/data/alignIO.d.ts +7 -0
  144. package/data/alignIO.js +13 -13
  145. package/data/alignmentOf.d.ts +5 -8
  146. package/data/alignmentOf.js +90 -75
  147. package/data/array.d.ts +6 -9
  148. package/data/array.js +48 -40
  149. package/data/atomic.d.ts +2 -7
  150. package/data/atomic.js +26 -23
  151. package/data/attributes.d.ts +19 -21
  152. package/data/attributes.js +192 -132
  153. package/data/autoStruct.d.ts +36 -3
  154. package/data/autoStruct.js +84 -81
  155. package/data/compiledIO.d.ts +5 -0
  156. package/data/compiledIO.js +231 -215
  157. package/data/dataIO.d.ts +13 -11
  158. package/data/dataIO.js +643 -589
  159. package/data/dataTypes.d.ts +83 -65
  160. package/data/dataTypes.js +66 -68
  161. package/data/deepEqual.d.ts +2 -7
  162. package/data/deepEqual.js +80 -55
  163. package/data/disarray.d.ts +6 -10
  164. package/data/disarray.js +52 -46
  165. package/data/float16Conversion.d.ts +4 -0
  166. package/data/float16Conversion.js +7 -0
  167. package/data/getLongestContiguousPrefix.d.ts +4 -8
  168. package/data/getLongestContiguousPrefix.js +6 -11
  169. package/data/index.d.ts +30 -31
  170. package/data/index.js +39 -172
  171. package/data/instanceToSchema.d.ts +24 -27
  172. package/data/instanceToSchema.js +1 -0
  173. package/data/isContiguous.d.ts +4 -8
  174. package/data/isContiguous.js +6 -11
  175. package/data/matrix.d.ts +21 -21
  176. package/data/matrix.js +513 -505
  177. package/data/numberOps.d.ts +6 -0
  178. package/data/numberOps.js +26 -20
  179. package/data/numeric.d.ts +21 -12
  180. package/data/numeric.js +287 -197
  181. package/data/offsetUtils.d.ts +9 -13
  182. package/data/offsetUtils.js +204 -144
  183. package/data/offsets.d.ts +8 -0
  184. package/data/offsets.js +33 -33
  185. package/data/partialIO.d.ts +13 -8
  186. package/data/partialIO.js +124 -113
  187. package/data/ptr.d.ts +12 -12
  188. package/data/ptr.js +42 -44
  189. package/data/ref.d.ts +40 -27
  190. package/data/ref.js +125 -95
  191. package/data/sampler.d.ts +99 -101
  192. package/data/sampler.js +17 -21
  193. package/data/schemaCallWrapper.d.ts +19 -0
  194. package/data/schemaCallWrapper.js +31 -26
  195. package/data/schemaMemoryLayout.d.ts +8 -0
  196. package/data/schemaMemoryLayout.js +213 -185
  197. package/data/sizeOf.d.ts +4 -8
  198. package/data/sizeOf.js +6 -11
  199. package/data/snippet.d.ts +96 -20
  200. package/data/snippet.js +75 -86
  201. package/data/struct.d.ts +4 -7
  202. package/data/struct.js +51 -39
  203. package/data/texture.d.ts +253 -250
  204. package/data/texture.js +238 -200
  205. package/data/unstruct.d.ts +2 -7
  206. package/data/unstruct.js +43 -37
  207. package/data/vector.d.ts +33 -21
  208. package/data/vector.js +234 -221
  209. package/data/vectorImpl.d.ts +231 -0
  210. package/data/vectorImpl.js +563 -515
  211. package/data/vectorOps.d.ts +63 -0
  212. package/data/vectorOps.js +642 -630
  213. package/data/vertexFormatData.d.ts +181 -184
  214. package/data/vertexFormatData.js +104 -106
  215. package/data/wgslTypes.d.ts +665 -600
  216. package/data/wgslTypes.js +220 -198
  217. package/errors.d.ts +50 -24
  218. package/errors.js +146 -126
  219. package/execMode.d.ts +16 -0
  220. package/execMode.js +47 -40
  221. package/extension.d.ts +13 -8
  222. package/extension.js +10 -16
  223. package/getGPUValue.d.ts +1 -0
  224. package/getGPUValue.js +2 -7
  225. package/index.d.ts +28 -68
  226. package/index.js +8 -28
  227. package/indexNamedExports.d.ts +69 -42
  228. package/indexNamedExports.js +25 -0
  229. package/internal.d.ts +16 -0
  230. package/internal.js +12 -0
  231. package/mathUtils.d.ts +5 -0
  232. package/mathUtils.js +7 -11
  233. package/memo.d.ts +11 -0
  234. package/memo.js +20 -22
  235. package/minify.d.ts +5 -0
  236. package/minify.js +93 -0
  237. package/nameUtils.d.ts +29 -0
  238. package/nameUtils.js +427 -394
  239. package/package.json +5 -1
  240. package/resolutionCtx.d.ts +162 -22
  241. package/resolutionCtx.js +911 -629
  242. package/serial/registry.d.ts +15 -0
  243. package/serial/registry.js +106 -0
  244. package/serial/restore.d.ts +49 -0
  245. package/serial/restore.js +68 -0
  246. package/serial/schema.d.ts +58 -0
  247. package/serial/schema.js +209 -0
  248. package/serial/types.d.ts +5 -0
  249. package/serial/types.js +1 -0
  250. package/shared/env.d.ts +9 -0
  251. package/shared/env.js +9 -12
  252. package/shared/generators.d.ts +4 -0
  253. package/shared/generators.js +10 -12
  254. package/shared/meta.d.ts +29 -14
  255. package/shared/meta.js +71 -55
  256. package/shared/normalizeMetadata.d.ts +32 -27
  257. package/shared/normalizeMetadata.js +23 -36
  258. package/shared/repr.d.ts +73 -55
  259. package/shared/repr.js +1 -0
  260. package/shared/soul.d.ts +17 -0
  261. package/shared/soul.js +1 -0
  262. package/shared/stringify.d.ts +2 -0
  263. package/shared/stringify.js +29 -20
  264. package/shared/symbols.d.ts +26 -20
  265. package/shared/symbols.js +79 -79
  266. package/shared/tseynit.d.ts +2 -0
  267. package/shared/tseynit.js +160 -75
  268. package/shared/utilityTypes.d.ts +30 -14
  269. package/shared/utilityTypes.js +2 -6
  270. package/shared/vertexFormat.d.ts +41 -43
  271. package/shared/vertexFormat.js +59 -62
  272. package/std/array.d.ts +2 -7
  273. package/std/array.js +18 -23
  274. package/std/atomic.d.ts +14 -18
  275. package/std/atomic.js +96 -95
  276. package/std/bitcast.d.ts +193 -10
  277. package/std/bitcast.js +309 -39
  278. package/std/boolean.d.ts +19 -33
  279. package/std/boolean.js +296 -288
  280. package/std/copy.d.ts +2 -7
  281. package/std/copy.js +27 -24
  282. package/std/derivative.d.ts +11 -15
  283. package/std/derivative.js +56 -79
  284. package/std/discard.d.ts +1 -6
  285. package/std/discard.js +7 -14
  286. package/std/environment.d.ts +19 -14
  287. package/std/environment.js +71 -51
  288. package/std/extensions.d.ts +2 -8
  289. package/std/extensions.js +10 -11
  290. package/std/index.d.ts +20 -24
  291. package/std/index.js +32 -187
  292. package/std/matrix.d.ts +6 -12
  293. package/std/matrix.js +60 -69
  294. package/std/numeric.d.ts +143 -146
  295. package/std/numeric.js +858 -749
  296. package/std/operators.d.ts +19 -27
  297. package/std/operators.js +227 -193
  298. package/std/packing.d.ts +5 -11
  299. package/std/packing.js +67 -75
  300. package/std/range.d.ts +6 -11
  301. package/std/range.js +48 -36
  302. package/std/subgroup.d.ts +33 -37
  303. package/std/subgroup.js +180 -217
  304. package/std/texture.d.ts +70 -38
  305. package/std/texture.js +176 -172
  306. package/taskQueue.d.ts +6 -0
  307. package/taskQueue.js +30 -0
  308. package/tgpu.d.ts +16 -0
  309. package/tgpu.js +17 -44
  310. package/tgpuBindGroupLayout.d.ts +132 -152
  311. package/tgpuBindGroupLayout.js +346 -268
  312. package/tgpuLogger.d.ts +34 -0
  313. package/tgpuLogger.js +63 -0
  314. package/tgpuUnstable.d.ts +16 -22
  315. package/tgpuUnstable.js +13 -35
  316. package/tgsl/accessIndex.d.ts +2 -0
  317. package/tgsl/accessIndex.js +76 -33
  318. package/tgsl/accessProp.d.ts +2 -0
  319. package/tgsl/accessProp.js +142 -101
  320. package/tgsl/accessStructProp.d.ts +5 -0
  321. package/tgsl/accessStructProp.js +13 -15
  322. package/tgsl/consoleLog/deserializers.d.ts +13 -0
  323. package/tgsl/consoleLog/deserializers.js +119 -103
  324. package/tgsl/consoleLog/logGenerator.d.ts +21 -0
  325. package/tgsl/consoleLog/logGenerator.js +85 -80
  326. package/tgsl/consoleLog/serializers.d.ts +21 -0
  327. package/tgsl/consoleLog/serializers.js +119 -100
  328. package/tgsl/consoleLog/types.d.ts +40 -39
  329. package/tgsl/consoleLog/types.js +1 -0
  330. package/tgsl/conversion.d.ts +33 -0
  331. package/tgsl/conversion.js +271 -216
  332. package/tgsl/forOfUtils.d.ts +15 -0
  333. package/tgsl/forOfUtils.js +85 -70
  334. package/tgsl/generationHelpers.d.ts +22 -39
  335. package/tgsl/generationHelpers.js +85 -58
  336. package/tgsl/infixDispatch.d.ts +70 -0
  337. package/tgsl/infixDispatch.js +48 -46
  338. package/tgsl/jsPolyfills.d.ts +16 -19
  339. package/tgsl/jsPolyfills.js +44 -42
  340. package/tgsl/makeDereferenceable.d.ts +48 -0
  341. package/tgsl/makeDereferenceable.js +86 -0
  342. package/tgsl/makeResolvable.d.ts +22 -0
  343. package/tgsl/makeResolvable.js +33 -0
  344. package/tgsl/shaderGenerator.d.ts +77 -17
  345. package/tgsl/shaderGenerator.js +1 -0
  346. package/tgsl/shellless.d.ts +6 -9
  347. package/tgsl/shellless.js +73 -43
  348. package/tgsl/wgslGenerator.d.ts +66 -59
  349. package/tgsl/wgslGenerator.js +1344 -760
  350. package/types.d.ts +287 -222
  351. package/types.js +61 -44
  352. package/unwrapper.d.ts +31 -26
  353. package/unwrapper.js +1 -0
  354. package/wgslExtensions.d.ts +3 -5
  355. package/wgslExtensions.js +12 -16
  356. package/_virtual/rolldown_runtime.js +0 -13
  357. package/core/buffer/bufferShorthand.d.ts +0 -50
  358. package/core/buffer/bufferShorthand.js +0 -55
  359. package/core/pipeline/applyPipelineState.js +0 -37
  360. package/package.js +0 -5
  361. package/tgsl/shaderGenerator_members.d.ts +0 -33
  362. package/tgsl/shaderGenerator_members.js +0 -12
@@ -1,517 +1,565 @@
1
1
  import { $internal, $resolve } from "../shared/symbols.js";
2
- import { WORKAROUND_getSchema } from "./wgslTypes.js";
3
- import { bool, f16, f32, i32, u32 } from "./numeric.js";
4
2
  import { numericLiteralToSnippet } from "../tgsl/generationHelpers.js";
5
-
6
- //#region src/data/vectorImpl.ts
7
- const XYZW = [
8
- "x",
9
- "y",
10
- "z",
11
- "w"
12
- ];
13
- const RGBA = [
14
- "r",
15
- "g",
16
- "b",
17
- "a"
18
- ];
19
- var VecBase = class VecBase extends Array {
20
- static {
21
- for (let e0 = 0; e0 < 4; e0++) for (let e1 = 0; e1 < 4; e1++) for (let e2 = 0; e2 < 4; e2++) for (let e3 = 0; e3 < 4; e3++) {
22
- const xyzwProp = `${XYZW[e0]}${XYZW[e1]}${XYZW[e2]}${XYZW[e3]}`;
23
- const rgbaProp = `${RGBA[e0]}${RGBA[e1]}${RGBA[e2]}${RGBA[e3]}`;
24
- Object.defineProperty(VecBase.prototype, xyzwProp, { get() {
25
- return new this._Vec4(this[e0], this[e1], this[e2], this[e3]);
26
- } });
27
- Object.defineProperty(VecBase.prototype, rgbaProp, { get() {
28
- return new this._Vec4(this[e0], this[e1], this[e2], this[e3]);
29
- } });
30
- }
31
- for (let e0 = 0; e0 < 4; e0++) for (let e1 = 0; e1 < 4; e1++) for (let e2 = 0; e2 < 4; e2++) {
32
- const xyzwProp = `${XYZW[e0]}${XYZW[e1]}${XYZW[e2]}`;
33
- const rgbaProp = `${RGBA[e0]}${RGBA[e1]}${RGBA[e2]}`;
34
- Object.defineProperty(VecBase.prototype, xyzwProp, { get() {
35
- return new this._Vec3(this[e0], this[e1], this[e2]);
36
- } });
37
- Object.defineProperty(VecBase.prototype, rgbaProp, { get() {
38
- return new this._Vec3(this[e0], this[e1], this[e2]);
39
- } });
40
- }
41
- for (let e0 = 0; e0 < 4; e0++) for (let e1 = 0; e1 < 4; e1++) {
42
- const xyzwProp = `${XYZW[e0]}${XYZW[e1]}`;
43
- const rgbaProp = `${RGBA[e0]}${RGBA[e1]}`;
44
- Object.defineProperty(VecBase.prototype, xyzwProp, { get() {
45
- return new this._Vec2(this[e0], this[e1]);
46
- } });
47
- Object.defineProperty(VecBase.prototype, rgbaProp, { get() {
48
- return new this._Vec2(this[e0], this[e1]);
49
- } });
50
- }
51
- }
52
- castElement() {
53
- return this[$internal].elementSchema;
54
- }
55
- [$resolve](ctx) {
56
- const vecSchema = WORKAROUND_getSchema(this);
57
- if (this.every((e) => !e)) return ctx.gen.typeInstantiation(vecSchema, []);
58
- if (this.every((e) => this[0] === e)) return ctx.gen.typeInstantiation(vecSchema, [numericLiteralToSnippet(this[0])]);
59
- return ctx.gen.typeInstantiation(vecSchema, this.map((e) => numericLiteralToSnippet(e)));
60
- }
61
- toString() {
62
- return `${this.kind}(${this.join(", ")})`;
63
- }
64
- };
65
- var Vec2 = class extends VecBase {
66
- e0;
67
- e1;
68
- constructor(x, y) {
69
- super(2);
70
- this.e0 = this.castElement()(x);
71
- this.e1 = this.castElement()(y ?? x);
72
- }
73
- get 0() {
74
- return this.e0;
75
- }
76
- get 1() {
77
- return this.e1;
78
- }
79
- set 0(value) {
80
- this.e0 = this.castElement()(value);
81
- }
82
- set 1(value) {
83
- this.e1 = this.castElement()(value);
84
- }
85
- get x() {
86
- return this[0];
87
- }
88
- get y() {
89
- return this[1];
90
- }
91
- set x(value) {
92
- this[0] = this.castElement()(value);
93
- }
94
- set y(value) {
95
- this[1] = this.castElement()(value);
96
- }
97
- get r() {
98
- return this[0];
99
- }
100
- get g() {
101
- return this[1];
102
- }
103
- set r(value) {
104
- this[0] = this.castElement()(value);
105
- }
106
- set g(value) {
107
- this[1] = this.castElement()(value);
108
- }
109
- };
110
- var Vec3 = class extends VecBase {
111
- e0;
112
- e1;
113
- e2;
114
- constructor(x, y, z) {
115
- super(3);
116
- this.e0 = this.castElement()(x);
117
- this.e1 = this.castElement()(y ?? x);
118
- this.e2 = this.castElement()(z ?? x);
119
- }
120
- get 0() {
121
- return this.e0;
122
- }
123
- get 1() {
124
- return this.e1;
125
- }
126
- get 2() {
127
- return this.e2;
128
- }
129
- set 0(value) {
130
- this.e0 = this.castElement()(value);
131
- }
132
- set 1(value) {
133
- this.e1 = this.castElement()(value);
134
- }
135
- set 2(value) {
136
- this.e2 = this.castElement()(value);
137
- }
138
- get x() {
139
- return this[0];
140
- }
141
- get y() {
142
- return this[1];
143
- }
144
- get z() {
145
- return this[2];
146
- }
147
- set x(value) {
148
- this[0] = this.castElement()(value);
149
- }
150
- set y(value) {
151
- this[1] = this.castElement()(value);
152
- }
153
- set z(value) {
154
- this[2] = this.castElement()(value);
155
- }
156
- get r() {
157
- return this[0];
158
- }
159
- get g() {
160
- return this[1];
161
- }
162
- get b() {
163
- return this[2];
164
- }
165
- set r(value) {
166
- this[0] = this.castElement()(value);
167
- }
168
- set g(value) {
169
- this[1] = this.castElement()(value);
170
- }
171
- set b(value) {
172
- this[2] = this.castElement()(value);
173
- }
174
- };
175
- var Vec4 = class extends VecBase {
176
- e0;
177
- e1;
178
- e2;
179
- e3;
180
- constructor(x, y, z, w) {
181
- super(4);
182
- this.e0 = this.castElement()(x);
183
- this.e1 = this.castElement()(y ?? x);
184
- this.e2 = this.castElement()(z ?? x);
185
- this.e3 = this.castElement()(w ?? x);
186
- }
187
- get 0() {
188
- return this.e0;
189
- }
190
- get 1() {
191
- return this.e1;
192
- }
193
- get 2() {
194
- return this.e2;
195
- }
196
- get 3() {
197
- return this.e3;
198
- }
199
- set 0(value) {
200
- this.e0 = this.castElement()(value);
201
- }
202
- set 1(value) {
203
- this.e1 = this.castElement()(value);
204
- }
205
- set 2(value) {
206
- this.e2 = this.castElement()(value);
207
- }
208
- set 3(value) {
209
- this.e3 = this.castElement()(value);
210
- }
211
- get x() {
212
- return this[0];
213
- }
214
- get y() {
215
- return this[1];
216
- }
217
- get z() {
218
- return this[2];
219
- }
220
- get w() {
221
- return this[3];
222
- }
223
- set x(value) {
224
- this[0] = value;
225
- }
226
- set y(value) {
227
- this[1] = value;
228
- }
229
- set z(value) {
230
- this[2] = value;
231
- }
232
- set w(value) {
233
- this[3] = value;
234
- }
235
- get r() {
236
- return this[0];
237
- }
238
- get g() {
239
- return this[1];
240
- }
241
- get b() {
242
- return this[2];
243
- }
244
- get a() {
245
- return this[3];
246
- }
247
- set r(value) {
248
- this[0] = value;
249
- }
250
- set g(value) {
251
- this[1] = value;
252
- }
253
- set b(value) {
254
- this[2] = value;
255
- }
256
- set a(value) {
257
- this[3] = value;
258
- }
259
- };
260
- var Vec2fImpl = class Vec2fImpl extends Vec2 {
261
- get [$internal]() {
262
- return { elementSchema: f32 };
263
- }
264
- get kind() {
265
- return "vec2f";
266
- }
267
- get _Vec2() {
268
- return Vec2fImpl;
269
- }
270
- get _Vec3() {
271
- return Vec3fImpl;
272
- }
273
- get _Vec4() {
274
- return Vec4fImpl;
275
- }
276
- };
277
- var Vec2hImpl = class Vec2hImpl extends Vec2 {
278
- get [$internal]() {
279
- return { elementSchema: f16 };
280
- }
281
- get kind() {
282
- return "vec2h";
283
- }
284
- get _Vec2() {
285
- return Vec2hImpl;
286
- }
287
- get _Vec3() {
288
- return Vec3hImpl;
289
- }
290
- get _Vec4() {
291
- return Vec4hImpl;
292
- }
293
- };
294
- var Vec2iImpl = class Vec2iImpl extends Vec2 {
295
- get [$internal]() {
296
- return { elementSchema: i32 };
297
- }
298
- get kind() {
299
- return "vec2i";
300
- }
301
- get _Vec2() {
302
- return Vec2iImpl;
303
- }
304
- get _Vec3() {
305
- return Vec3iImpl;
306
- }
307
- get _Vec4() {
308
- return Vec4iImpl;
309
- }
310
- };
311
- var Vec2uImpl = class Vec2uImpl extends Vec2 {
312
- get [$internal]() {
313
- return { elementSchema: u32 };
314
- }
315
- get kind() {
316
- return "vec2u";
317
- }
318
- get _Vec2() {
319
- return Vec2uImpl;
320
- }
321
- get _Vec3() {
322
- return Vec3uImpl;
323
- }
324
- get _Vec4() {
325
- return Vec4uImpl;
326
- }
327
- };
328
- var Vec2bImpl = class Vec2bImpl extends Vec2 {
329
- get [$internal]() {
330
- return { elementSchema: bool };
331
- }
332
- get kind() {
333
- return "vec2<bool>";
334
- }
335
- get _Vec2() {
336
- return Vec2bImpl;
337
- }
338
- get _Vec3() {
339
- return Vec3bImpl;
340
- }
341
- get _Vec4() {
342
- return Vec4bImpl;
343
- }
344
- };
345
- var Vec3fImpl = class Vec3fImpl extends Vec3 {
346
- get [$internal]() {
347
- return { elementSchema: f32 };
348
- }
349
- get kind() {
350
- return "vec3f";
351
- }
352
- get _Vec2() {
353
- return Vec2fImpl;
354
- }
355
- get _Vec3() {
356
- return Vec3fImpl;
357
- }
358
- get _Vec4() {
359
- return Vec4fImpl;
360
- }
361
- };
362
- var Vec3hImpl = class Vec3hImpl extends Vec3 {
363
- get [$internal]() {
364
- return { elementSchema: f16 };
365
- }
366
- get kind() {
367
- return "vec3h";
368
- }
369
- get _Vec2() {
370
- return Vec2hImpl;
371
- }
372
- get _Vec3() {
373
- return Vec3hImpl;
374
- }
375
- get _Vec4() {
376
- return Vec4hImpl;
377
- }
378
- };
379
- var Vec3iImpl = class Vec3iImpl extends Vec3 {
380
- get [$internal]() {
381
- return { elementSchema: i32 };
382
- }
383
- get kind() {
384
- return "vec3i";
385
- }
386
- get _Vec2() {
387
- return Vec2iImpl;
388
- }
389
- get _Vec3() {
390
- return Vec3iImpl;
391
- }
392
- get _Vec4() {
393
- return Vec4iImpl;
394
- }
395
- };
396
- var Vec3uImpl = class Vec3uImpl extends Vec3 {
397
- get [$internal]() {
398
- return { elementSchema: u32 };
399
- }
400
- get kind() {
401
- return "vec3u";
402
- }
403
- get _Vec2() {
404
- return Vec2uImpl;
405
- }
406
- get _Vec3() {
407
- return Vec3uImpl;
408
- }
409
- get _Vec4() {
410
- return Vec4uImpl;
411
- }
412
- };
413
- var Vec3bImpl = class Vec3bImpl extends Vec3 {
414
- get [$internal]() {
415
- return { elementSchema: bool };
416
- }
417
- get kind() {
418
- return "vec3<bool>";
419
- }
420
- get _Vec2() {
421
- return Vec2bImpl;
422
- }
423
- get _Vec3() {
424
- return Vec3bImpl;
425
- }
426
- get _Vec4() {
427
- return Vec4bImpl;
428
- }
429
- };
430
- var Vec4fImpl = class Vec4fImpl extends Vec4 {
431
- get [$internal]() {
432
- return { elementSchema: f32 };
433
- }
434
- get kind() {
435
- return "vec4f";
436
- }
437
- get _Vec2() {
438
- return Vec2fImpl;
439
- }
440
- get _Vec3() {
441
- return Vec3fImpl;
442
- }
443
- get _Vec4() {
444
- return Vec4fImpl;
445
- }
446
- };
447
- var Vec4hImpl = class Vec4hImpl extends Vec4 {
448
- get [$internal]() {
449
- return { elementSchema: f16 };
450
- }
451
- get kind() {
452
- return "vec4h";
453
- }
454
- get _Vec2() {
455
- return Vec2hImpl;
456
- }
457
- get _Vec3() {
458
- return Vec3hImpl;
459
- }
460
- get _Vec4() {
461
- return Vec4hImpl;
462
- }
463
- };
464
- var Vec4iImpl = class Vec4iImpl extends Vec4 {
465
- get [$internal]() {
466
- return { elementSchema: i32 };
467
- }
468
- get kind() {
469
- return "vec4i";
470
- }
471
- get _Vec2() {
472
- return Vec2iImpl;
473
- }
474
- get _Vec3() {
475
- return Vec3iImpl;
476
- }
477
- get _Vec4() {
478
- return Vec4iImpl;
479
- }
480
- };
481
- var Vec4uImpl = class Vec4uImpl extends Vec4 {
482
- get [$internal]() {
483
- return { elementSchema: u32 };
484
- }
485
- get kind() {
486
- return "vec4u";
487
- }
488
- get _Vec2() {
489
- return Vec2uImpl;
490
- }
491
- get _Vec3() {
492
- return Vec3uImpl;
493
- }
494
- get _Vec4() {
495
- return Vec4uImpl;
496
- }
497
- };
498
- var Vec4bImpl = class Vec4bImpl extends Vec4 {
499
- get [$internal]() {
500
- return { elementSchema: bool };
501
- }
502
- get kind() {
503
- return "vec4<bool>";
504
- }
505
- get _Vec2() {
506
- return Vec2bImpl;
507
- }
508
- get _Vec3() {
509
- return Vec3bImpl;
510
- }
511
- get _Vec4() {
512
- return Vec4bImpl;
513
- }
514
- };
515
-
516
- //#endregion
517
- export { Vec2bImpl, Vec2fImpl, Vec2hImpl, Vec2iImpl, Vec2uImpl, Vec3bImpl, Vec3fImpl, Vec3hImpl, Vec3iImpl, Vec3uImpl, Vec4bImpl, Vec4fImpl, Vec4hImpl, Vec4iImpl, Vec4uImpl, VecBase };
3
+ import { bool, f16, f32, i32, u32 } from "./numeric.js";
4
+ import {} from "./snippet.js";
5
+ import { WORKAROUND_getSchema } from "./wgslTypes.js";
6
+ const XYZW = ['x', 'y', 'z', 'w'];
7
+ const RGBA = ['r', 'g', 'b', 'a'];
8
+ export class VecBase extends Array {
9
+ static {
10
+ // Defining 4-length swizzles
11
+ for (let e0 = 0; e0 < 4; e0++) {
12
+ for (let e1 = 0; e1 < 4; e1++) {
13
+ for (let e2 = 0; e2 < 4; e2++) {
14
+ for (let e3 = 0; e3 < 4; e3++) {
15
+ const xyzwProp = `${XYZW[e0]}${XYZW[e1]}${XYZW[e2]}${XYZW[e3]}`;
16
+ const rgbaProp = `${RGBA[e0]}${RGBA[e1]}${RGBA[e2]}${RGBA[e3]}`;
17
+ Object.defineProperty(VecBase.prototype, xyzwProp, {
18
+ get() {
19
+ return new this._Vec4(this[e0], this[e1], this[e2], this[e3]);
20
+ },
21
+ });
22
+ Object.defineProperty(VecBase.prototype, rgbaProp, {
23
+ get() {
24
+ return new this._Vec4(this[e0], this[e1], this[e2], this[e3]);
25
+ },
26
+ });
27
+ }
28
+ }
29
+ }
30
+ }
31
+ // Defining 3-length swizzles
32
+ for (let e0 = 0; e0 < 4; e0++) {
33
+ for (let e1 = 0; e1 < 4; e1++) {
34
+ for (let e2 = 0; e2 < 4; e2++) {
35
+ const xyzwProp = `${XYZW[e0]}${XYZW[e1]}${XYZW[e2]}`;
36
+ const rgbaProp = `${RGBA[e0]}${RGBA[e1]}${RGBA[e2]}`;
37
+ Object.defineProperty(VecBase.prototype, xyzwProp, {
38
+ get() {
39
+ return new this._Vec3(this[e0], this[e1], this[e2]);
40
+ },
41
+ });
42
+ Object.defineProperty(VecBase.prototype, rgbaProp, {
43
+ get() {
44
+ return new this._Vec3(this[e0], this[e1], this[e2]);
45
+ },
46
+ });
47
+ }
48
+ }
49
+ }
50
+ // Defining 2-length swizzles
51
+ for (let e0 = 0; e0 < 4; e0++) {
52
+ for (let e1 = 0; e1 < 4; e1++) {
53
+ const xyzwProp = `${XYZW[e0]}${XYZW[e1]}`;
54
+ const rgbaProp = `${RGBA[e0]}${RGBA[e1]}`;
55
+ Object.defineProperty(VecBase.prototype, xyzwProp, {
56
+ get() {
57
+ return new this._Vec2(this[e0], this[e1]);
58
+ },
59
+ });
60
+ Object.defineProperty(VecBase.prototype, rgbaProp, {
61
+ get() {
62
+ return new this._Vec2(this[e0], this[e1]);
63
+ },
64
+ });
65
+ }
66
+ }
67
+ }
68
+ castElement() {
69
+ return this[$internal].elementSchema;
70
+ }
71
+ [$resolve](ctx) {
72
+ // oxlint-disable-next-line typescript-eslint(no-explicit-any)
73
+ const vecSchema = WORKAROUND_getSchema(this);
74
+ if (this.every((e) => !e)) {
75
+ return ctx.gen.typeInstantiation(vecSchema, []);
76
+ }
77
+ if (this.every((e) => this[0] === e)) {
78
+ return ctx.gen.typeInstantiation(vecSchema, [numericLiteralToSnippet(this[0])]);
79
+ }
80
+ return ctx.gen.typeInstantiation(vecSchema, this.map((e) => numericLiteralToSnippet(e)));
81
+ }
82
+ toString() {
83
+ return `${this.kind}(${this.join(', ')})`;
84
+ }
85
+ }
86
+ class Vec2 extends VecBase {
87
+ e0;
88
+ e1;
89
+ constructor(x, y) {
90
+ super(2);
91
+ this.e0 = this.castElement()(x);
92
+ this.e1 = this.castElement()(y ?? x);
93
+ }
94
+ get 0() {
95
+ return this.e0;
96
+ }
97
+ get 1() {
98
+ return this.e1;
99
+ }
100
+ set 0(value) {
101
+ this.e0 = this.castElement()(value);
102
+ }
103
+ set 1(value) {
104
+ this.e1 = this.castElement()(value);
105
+ }
106
+ get x() {
107
+ return this[0];
108
+ }
109
+ get y() {
110
+ return this[1];
111
+ }
112
+ set x(value) {
113
+ this[0] = this.castElement()(value);
114
+ }
115
+ set y(value) {
116
+ this[1] = this.castElement()(value);
117
+ }
118
+ get r() {
119
+ return this[0];
120
+ }
121
+ get g() {
122
+ return this[1];
123
+ }
124
+ set r(value) {
125
+ this[0] = this.castElement()(value);
126
+ }
127
+ set g(value) {
128
+ this[1] = this.castElement()(value);
129
+ }
130
+ }
131
+ class Vec3 extends VecBase {
132
+ e0;
133
+ e1;
134
+ e2;
135
+ constructor(x, y, z) {
136
+ super(3);
137
+ this.e0 = this.castElement()(x);
138
+ this.e1 = this.castElement()(y ?? x);
139
+ this.e2 = this.castElement()(z ?? x);
140
+ }
141
+ get 0() {
142
+ return this.e0;
143
+ }
144
+ get 1() {
145
+ return this.e1;
146
+ }
147
+ get 2() {
148
+ return this.e2;
149
+ }
150
+ set 0(value) {
151
+ this.e0 = this.castElement()(value);
152
+ }
153
+ set 1(value) {
154
+ this.e1 = this.castElement()(value);
155
+ }
156
+ set 2(value) {
157
+ this.e2 = this.castElement()(value);
158
+ }
159
+ get x() {
160
+ return this[0];
161
+ }
162
+ get y() {
163
+ return this[1];
164
+ }
165
+ get z() {
166
+ return this[2];
167
+ }
168
+ set x(value) {
169
+ this[0] = this.castElement()(value);
170
+ }
171
+ set y(value) {
172
+ this[1] = this.castElement()(value);
173
+ }
174
+ set z(value) {
175
+ this[2] = this.castElement()(value);
176
+ }
177
+ get r() {
178
+ return this[0];
179
+ }
180
+ get g() {
181
+ return this[1];
182
+ }
183
+ get b() {
184
+ return this[2];
185
+ }
186
+ set r(value) {
187
+ this[0] = this.castElement()(value);
188
+ }
189
+ set g(value) {
190
+ this[1] = this.castElement()(value);
191
+ }
192
+ set b(value) {
193
+ this[2] = this.castElement()(value);
194
+ }
195
+ }
196
+ class Vec4 extends VecBase {
197
+ e0;
198
+ e1;
199
+ e2;
200
+ e3;
201
+ constructor(x, y, z, w) {
202
+ super(4);
203
+ this.e0 = this.castElement()(x);
204
+ this.e1 = this.castElement()(y ?? x);
205
+ this.e2 = this.castElement()(z ?? x);
206
+ this.e3 = this.castElement()(w ?? x);
207
+ }
208
+ get 0() {
209
+ return this.e0;
210
+ }
211
+ get 1() {
212
+ return this.e1;
213
+ }
214
+ get 2() {
215
+ return this.e2;
216
+ }
217
+ get 3() {
218
+ return this.e3;
219
+ }
220
+ set 0(value) {
221
+ this.e0 = this.castElement()(value);
222
+ }
223
+ set 1(value) {
224
+ this.e1 = this.castElement()(value);
225
+ }
226
+ set 2(value) {
227
+ this.e2 = this.castElement()(value);
228
+ }
229
+ set 3(value) {
230
+ this.e3 = this.castElement()(value);
231
+ }
232
+ get x() {
233
+ return this[0];
234
+ }
235
+ get y() {
236
+ return this[1];
237
+ }
238
+ get z() {
239
+ return this[2];
240
+ }
241
+ get w() {
242
+ return this[3];
243
+ }
244
+ set x(value) {
245
+ this[0] = value;
246
+ }
247
+ set y(value) {
248
+ this[1] = value;
249
+ }
250
+ set z(value) {
251
+ this[2] = value;
252
+ }
253
+ set w(value) {
254
+ this[3] = value;
255
+ }
256
+ get r() {
257
+ return this[0];
258
+ }
259
+ get g() {
260
+ return this[1];
261
+ }
262
+ get b() {
263
+ return this[2];
264
+ }
265
+ get a() {
266
+ return this[3];
267
+ }
268
+ set r(value) {
269
+ this[0] = value;
270
+ }
271
+ set g(value) {
272
+ this[1] = value;
273
+ }
274
+ set b(value) {
275
+ this[2] = value;
276
+ }
277
+ set a(value) {
278
+ this[3] = value;
279
+ }
280
+ }
281
+ export class Vec2fImpl extends Vec2 {
282
+ get [$internal]() {
283
+ return {
284
+ elementSchema: f32,
285
+ };
286
+ }
287
+ get kind() {
288
+ return 'vec2f';
289
+ }
290
+ get _Vec2() {
291
+ return Vec2fImpl;
292
+ }
293
+ get _Vec3() {
294
+ return Vec3fImpl;
295
+ }
296
+ get _Vec4() {
297
+ return Vec4fImpl;
298
+ }
299
+ }
300
+ export class Vec2hImpl extends Vec2 {
301
+ get [$internal]() {
302
+ return {
303
+ elementSchema: f16,
304
+ };
305
+ }
306
+ get kind() {
307
+ return 'vec2h';
308
+ }
309
+ get _Vec2() {
310
+ return Vec2hImpl;
311
+ }
312
+ get _Vec3() {
313
+ return Vec3hImpl;
314
+ }
315
+ get _Vec4() {
316
+ return Vec4hImpl;
317
+ }
318
+ }
319
+ export class Vec2iImpl extends Vec2 {
320
+ get [$internal]() {
321
+ return {
322
+ elementSchema: i32,
323
+ };
324
+ }
325
+ get kind() {
326
+ return 'vec2i';
327
+ }
328
+ get _Vec2() {
329
+ return Vec2iImpl;
330
+ }
331
+ get _Vec3() {
332
+ return Vec3iImpl;
333
+ }
334
+ get _Vec4() {
335
+ return Vec4iImpl;
336
+ }
337
+ }
338
+ export class Vec2uImpl extends Vec2 {
339
+ get [$internal]() {
340
+ return {
341
+ elementSchema: u32,
342
+ };
343
+ }
344
+ get kind() {
345
+ return 'vec2u';
346
+ }
347
+ get _Vec2() {
348
+ return Vec2uImpl;
349
+ }
350
+ get _Vec3() {
351
+ return Vec3uImpl;
352
+ }
353
+ get _Vec4() {
354
+ return Vec4uImpl;
355
+ }
356
+ }
357
+ export class Vec2bImpl extends Vec2 {
358
+ get [$internal]() {
359
+ return {
360
+ elementSchema: bool,
361
+ };
362
+ }
363
+ get kind() {
364
+ return 'vec2<bool>';
365
+ }
366
+ get _Vec2() {
367
+ return Vec2bImpl;
368
+ }
369
+ get _Vec3() {
370
+ return Vec3bImpl;
371
+ }
372
+ get _Vec4() {
373
+ return Vec4bImpl;
374
+ }
375
+ }
376
+ export class Vec3fImpl extends Vec3 {
377
+ get [$internal]() {
378
+ return {
379
+ elementSchema: f32,
380
+ };
381
+ }
382
+ get kind() {
383
+ return 'vec3f';
384
+ }
385
+ get _Vec2() {
386
+ return Vec2fImpl;
387
+ }
388
+ get _Vec3() {
389
+ return Vec3fImpl;
390
+ }
391
+ get _Vec4() {
392
+ return Vec4fImpl;
393
+ }
394
+ }
395
+ export class Vec3hImpl extends Vec3 {
396
+ get [$internal]() {
397
+ return {
398
+ elementSchema: f16,
399
+ };
400
+ }
401
+ get kind() {
402
+ return 'vec3h';
403
+ }
404
+ get _Vec2() {
405
+ return Vec2hImpl;
406
+ }
407
+ get _Vec3() {
408
+ return Vec3hImpl;
409
+ }
410
+ get _Vec4() {
411
+ return Vec4hImpl;
412
+ }
413
+ }
414
+ export class Vec3iImpl extends Vec3 {
415
+ get [$internal]() {
416
+ return {
417
+ elementSchema: i32,
418
+ };
419
+ }
420
+ get kind() {
421
+ return 'vec3i';
422
+ }
423
+ get _Vec2() {
424
+ return Vec2iImpl;
425
+ }
426
+ get _Vec3() {
427
+ return Vec3iImpl;
428
+ }
429
+ get _Vec4() {
430
+ return Vec4iImpl;
431
+ }
432
+ }
433
+ export class Vec3uImpl extends Vec3 {
434
+ get [$internal]() {
435
+ return {
436
+ elementSchema: u32,
437
+ };
438
+ }
439
+ get kind() {
440
+ return 'vec3u';
441
+ }
442
+ get _Vec2() {
443
+ return Vec2uImpl;
444
+ }
445
+ get _Vec3() {
446
+ return Vec3uImpl;
447
+ }
448
+ get _Vec4() {
449
+ return Vec4uImpl;
450
+ }
451
+ }
452
+ export class Vec3bImpl extends Vec3 {
453
+ get [$internal]() {
454
+ return {
455
+ elementSchema: bool,
456
+ };
457
+ }
458
+ get kind() {
459
+ return 'vec3<bool>';
460
+ }
461
+ get _Vec2() {
462
+ return Vec2bImpl;
463
+ }
464
+ get _Vec3() {
465
+ return Vec3bImpl;
466
+ }
467
+ get _Vec4() {
468
+ return Vec4bImpl;
469
+ }
470
+ }
471
+ export class Vec4fImpl extends Vec4 {
472
+ get [$internal]() {
473
+ return {
474
+ elementSchema: f32,
475
+ };
476
+ }
477
+ get kind() {
478
+ return 'vec4f';
479
+ }
480
+ get _Vec2() {
481
+ return Vec2fImpl;
482
+ }
483
+ get _Vec3() {
484
+ return Vec3fImpl;
485
+ }
486
+ get _Vec4() {
487
+ return Vec4fImpl;
488
+ }
489
+ }
490
+ export class Vec4hImpl extends Vec4 {
491
+ get [$internal]() {
492
+ return {
493
+ elementSchema: f16,
494
+ };
495
+ }
496
+ get kind() {
497
+ return 'vec4h';
498
+ }
499
+ get _Vec2() {
500
+ return Vec2hImpl;
501
+ }
502
+ get _Vec3() {
503
+ return Vec3hImpl;
504
+ }
505
+ get _Vec4() {
506
+ return Vec4hImpl;
507
+ }
508
+ }
509
+ export class Vec4iImpl extends Vec4 {
510
+ get [$internal]() {
511
+ return {
512
+ elementSchema: i32,
513
+ };
514
+ }
515
+ get kind() {
516
+ return 'vec4i';
517
+ }
518
+ get _Vec2() {
519
+ return Vec2iImpl;
520
+ }
521
+ get _Vec3() {
522
+ return Vec3iImpl;
523
+ }
524
+ get _Vec4() {
525
+ return Vec4iImpl;
526
+ }
527
+ }
528
+ export class Vec4uImpl extends Vec4 {
529
+ get [$internal]() {
530
+ return {
531
+ elementSchema: u32,
532
+ };
533
+ }
534
+ get kind() {
535
+ return 'vec4u';
536
+ }
537
+ get _Vec2() {
538
+ return Vec2uImpl;
539
+ }
540
+ get _Vec3() {
541
+ return Vec3uImpl;
542
+ }
543
+ get _Vec4() {
544
+ return Vec4uImpl;
545
+ }
546
+ }
547
+ export class Vec4bImpl extends Vec4 {
548
+ get [$internal]() {
549
+ return {
550
+ elementSchema: bool,
551
+ };
552
+ }
553
+ get kind() {
554
+ return 'vec4<bool>';
555
+ }
556
+ get _Vec2() {
557
+ return Vec2bImpl;
558
+ }
559
+ get _Vec3() {
560
+ return Vec3bImpl;
561
+ }
562
+ get _Vec4() {
563
+ return Vec4bImpl;
564
+ }
565
+ }