typegpu 0.11.9 → 0.12.1

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 (366) hide show
  1. package/bin.mjs +28 -6
  2. package/builtin.d.ts +51 -53
  3. package/builtin.js +30 -34
  4. package/common/fullScreenTriangle.d.ts +2 -10
  5. package/common/fullScreenTriangle.js +20 -28
  6. package/common/index.d.ts +2 -9
  7. package/common/index.js +3 -12
  8. package/common/writeSoA.d.ts +11 -12
  9. package/common/writeSoA.js +88 -76
  10. package/core/buffer/buffer.d.ts +79 -62
  11. package/core/buffer/buffer.js +283 -205
  12. package/core/buffer/bufferBinding.d.ts +71 -0
  13. package/core/buffer/bufferBinding.js +154 -0
  14. package/core/buffer/bufferUsage.d.ts +14 -45
  15. package/core/buffer/bufferUsage.js +1 -171
  16. package/core/buffer/laidOutBuffer.d.ts +25 -0
  17. package/core/buffer/laidOutBuffer.js +55 -0
  18. package/core/commandEncoder/attachments.d.ts +125 -0
  19. package/core/commandEncoder/attachments.js +29 -0
  20. package/core/commandEncoder/commandEncoder.d.ts +53 -0
  21. package/core/commandEncoder/commandEncoder.js +56 -0
  22. package/core/commandEncoder/computePass.d.ts +58 -0
  23. package/core/commandEncoder/computePass.js +63 -0
  24. package/core/commandEncoder/renderPass.d.ts +121 -0
  25. package/core/commandEncoder/renderPass.js +196 -0
  26. package/core/constant/tgpuConstant.d.ts +26 -26
  27. package/core/constant/tgpuConstant.js +76 -65
  28. package/core/declare/tgpuDeclare.d.ts +3 -6
  29. package/core/declare/tgpuDeclare.js +36 -36
  30. package/core/function/autoIO.d.ts +61 -33
  31. package/core/function/autoIO.js +68 -73
  32. package/core/function/comptime.d.ts +11 -13
  33. package/core/function/comptime.js +60 -52
  34. package/core/function/createCallableSchema.d.ts +16 -0
  35. package/core/function/createCallableSchema.js +50 -40
  36. package/core/function/dualImpl.d.ts +44 -0
  37. package/core/function/dualImpl.js +71 -50
  38. package/core/function/entryInputRouter.d.ts +26 -0
  39. package/core/function/entryInputRouter.js +31 -33
  40. package/core/function/extractArgs.d.ts +38 -0
  41. package/core/function/extractArgs.js +202 -200
  42. package/core/function/fnCore.d.ts +44 -5
  43. package/core/function/fnCore.js +148 -93
  44. package/core/function/fnTypes.d.ts +31 -29
  45. package/core/function/fnTypes.js +1 -0
  46. package/core/function/ioSchema.d.ts +12 -10
  47. package/core/function/ioSchema.js +65 -47
  48. package/core/function/shelllessImpl.d.ts +9 -12
  49. package/core/function/shelllessImpl.js +17 -22
  50. package/core/function/templateUtils.d.ts +2 -0
  51. package/core/function/templateUtils.js +9 -8
  52. package/core/function/tgpuComputeFn.d.ts +26 -28
  53. package/core/function/tgpuComputeFn.js +47 -48
  54. package/core/function/tgpuFn.d.ts +34 -37
  55. package/core/function/tgpuFn.js +179 -153
  56. package/core/function/tgpuFragmentFn.d.ts +52 -53
  57. package/core/function/tgpuFragmentFn.js +63 -56
  58. package/core/function/tgpuVertexFn.d.ts +36 -39
  59. package/core/function/tgpuVertexFn.js +56 -53
  60. package/core/pipeline/computePipeline.d.ts +141 -53
  61. package/core/pipeline/computePipeline.js +291 -225
  62. package/core/pipeline/connectAttachmentToShader.d.ts +4 -0
  63. package/core/pipeline/connectAttachmentToShader.js +25 -22
  64. package/core/pipeline/connectTargetsToShader.d.ts +3 -0
  65. package/core/pipeline/connectTargetsToShader.js +29 -27
  66. package/core/pipeline/drawState.d.ts +52 -0
  67. package/core/pipeline/drawState.js +225 -0
  68. package/core/pipeline/performanceTracker.d.ts +14 -0
  69. package/core/pipeline/performanceTracker.js +34 -0
  70. package/core/pipeline/pipelineUtils.d.ts +18 -0
  71. package/core/pipeline/pipelineUtils.js +54 -25
  72. package/core/pipeline/priors.d.ts +1 -0
  73. package/core/pipeline/priors.js +12 -0
  74. package/core/pipeline/renderPipeline.d.ts +246 -261
  75. package/core/pipeline/renderPipeline.js +487 -480
  76. package/core/pipeline/timeable.d.ts +28 -18
  77. package/core/pipeline/timeable.js +90 -52
  78. package/core/pipeline/typeGuards.d.ts +17 -0
  79. package/core/pipeline/typeGuards.js +52 -22
  80. package/core/pipeline/webgpuLimitations.d.ts +10 -0
  81. package/core/pipeline/webgpuLimitations.js +81 -0
  82. package/core/querySet/querySet.d.ts +26 -21
  83. package/core/querySet/querySet.js +127 -103
  84. package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +13 -18
  85. package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +89 -90
  86. package/core/resolve/externals.d.ts +25 -8
  87. package/core/resolve/externals.js +78 -54
  88. package/core/resolve/namespace.d.ts +22 -25
  89. package/core/resolve/namespace.js +16 -21
  90. package/core/resolve/resolvableString.d.ts +7 -0
  91. package/core/resolve/resolvableString.js +13 -0
  92. package/core/resolve/resolveData.d.ts +10 -0
  93. package/core/resolve/resolveData.js +162 -121
  94. package/core/resolve/stitch.d.ts +8 -0
  95. package/core/resolve/stitch.js +23 -21
  96. package/core/resolve/tgpuResolve.d.ts +55 -53
  97. package/core/resolve/tgpuResolve.js +106 -53
  98. package/core/root/configurableImpl.d.ts +10 -0
  99. package/core/root/configurableImpl.js +17 -19
  100. package/core/root/init.d.ts +76 -38
  101. package/core/root/init.js +346 -455
  102. package/core/root/rootTypes.d.ts +461 -636
  103. package/core/root/rootTypes.js +1 -0
  104. package/core/sampler/sampler.d.ts +50 -31
  105. package/core/sampler/sampler.js +120 -113
  106. package/core/simulate/tgpuSimulate.d.ts +9 -12
  107. package/core/simulate/tgpuSimulate.js +68 -71
  108. package/core/slot/accessor.d.ts +36 -13
  109. package/core/slot/accessor.js +138 -91
  110. package/core/slot/internalSlots.d.ts +2 -0
  111. package/core/slot/internalSlots.js +1 -6
  112. package/core/slot/lazy.d.ts +2 -6
  113. package/core/slot/lazy.js +71 -39
  114. package/core/slot/slot.d.ts +2 -6
  115. package/core/slot/slot.js +45 -38
  116. package/core/slot/slotTypes.d.ts +78 -80
  117. package/core/slot/slotTypes.js +11 -16
  118. package/core/texture/externalTexture.d.ts +20 -11
  119. package/core/texture/externalTexture.js +46 -46
  120. package/core/texture/texture.d.ts +152 -97
  121. package/core/texture/texture.js +407 -314
  122. package/core/texture/textureFormats.d.ts +42 -23
  123. package/core/texture/textureFormats.js +104 -75
  124. package/core/texture/textureProps.d.ts +7 -10
  125. package/core/texture/textureProps.js +1 -0
  126. package/core/texture/textureUtils.d.ts +8 -0
  127. package/core/texture/textureUtils.js +185 -179
  128. package/core/texture/usageExtension.d.ts +21 -18
  129. package/core/texture/usageExtension.js +13 -17
  130. package/core/unroll/tgpuUnroll.d.ts +20 -19
  131. package/core/unroll/tgpuUnroll.js +82 -91
  132. package/core/valueProxyUtils.d.ts +3 -0
  133. package/core/valueProxyUtils.js +52 -41
  134. package/core/variable/tgpuVariable.d.ts +26 -27
  135. package/core/variable/tgpuVariable.js +93 -96
  136. package/core/vertexLayout/connectAttributesToShader.d.ts +9 -0
  137. package/core/vertexLayout/connectAttributesToShader.js +61 -56
  138. package/core/vertexLayout/vertexAttribute.d.ts +21 -17
  139. package/core/vertexLayout/vertexAttribute.js +1 -0
  140. package/core/vertexLayout/vertexLayout.d.ts +24 -18
  141. package/core/vertexLayout/vertexLayout.js +130 -99
  142. package/core/whitespaces.d.ts +2 -0
  143. package/core/whitespaces.js +16 -0
  144. package/data/alignIO.d.ts +7 -0
  145. package/data/alignIO.js +13 -13
  146. package/data/alignmentOf.d.ts +5 -8
  147. package/data/alignmentOf.js +90 -75
  148. package/data/array.d.ts +17 -9
  149. package/data/array.js +57 -40
  150. package/data/atomic.d.ts +2 -7
  151. package/data/atomic.js +26 -23
  152. package/data/attributes.d.ts +19 -21
  153. package/data/attributes.js +192 -132
  154. package/data/autoStruct.d.ts +36 -3
  155. package/data/autoStruct.js +84 -81
  156. package/data/compiledIO.d.ts +5 -0
  157. package/data/compiledIO.js +231 -215
  158. package/data/dataIO.d.ts +13 -11
  159. package/data/dataIO.js +643 -589
  160. package/data/dataTypes.d.ts +83 -65
  161. package/data/dataTypes.js +66 -68
  162. package/data/deepEqual.d.ts +2 -7
  163. package/data/deepEqual.js +80 -55
  164. package/data/disarray.d.ts +6 -10
  165. package/data/disarray.js +52 -46
  166. package/data/float16Conversion.d.ts +4 -0
  167. package/data/float16Conversion.js +7 -0
  168. package/data/generalizeFn.d.ts +25 -0
  169. package/data/generalizeFn.js +89 -0
  170. package/data/getLongestContiguousPrefix.d.ts +4 -8
  171. package/data/getLongestContiguousPrefix.js +6 -11
  172. package/data/index.d.ts +30 -31
  173. package/data/index.js +39 -172
  174. package/data/instanceToSchema.d.ts +24 -27
  175. package/data/instanceToSchema.js +1 -0
  176. package/data/isContiguous.d.ts +4 -8
  177. package/data/isContiguous.js +6 -11
  178. package/data/matrix.d.ts +21 -21
  179. package/data/matrix.js +513 -505
  180. package/data/numberOps.d.ts +5 -0
  181. package/data/numberOps.js +21 -21
  182. package/data/numeric.d.ts +21 -12
  183. package/data/numeric.js +287 -197
  184. package/data/offsetUtils.d.ts +9 -13
  185. package/data/offsetUtils.js +204 -144
  186. package/data/offsets.d.ts +8 -0
  187. package/data/offsets.js +33 -33
  188. package/data/partialIO.d.ts +13 -8
  189. package/data/partialIO.js +124 -113
  190. package/data/ptr.d.ts +12 -12
  191. package/data/ptr.js +42 -44
  192. package/data/ref.d.ts +40 -27
  193. package/data/ref.js +125 -95
  194. package/data/sampler.d.ts +99 -101
  195. package/data/sampler.js +17 -21
  196. package/data/schemaCallWrapper.d.ts +19 -0
  197. package/data/schemaCallWrapper.js +31 -26
  198. package/data/schemaMemoryLayout.d.ts +8 -0
  199. package/data/schemaMemoryLayout.js +213 -185
  200. package/data/sizeOf.d.ts +4 -8
  201. package/data/sizeOf.js +6 -11
  202. package/data/snippet.d.ts +96 -20
  203. package/data/snippet.js +75 -86
  204. package/data/struct.d.ts +4 -7
  205. package/data/struct.js +51 -39
  206. package/data/texture.d.ts +253 -250
  207. package/data/texture.js +238 -200
  208. package/data/unstruct.d.ts +2 -7
  209. package/data/unstruct.js +43 -37
  210. package/data/vector.d.ts +33 -21
  211. package/data/vector.js +234 -221
  212. package/data/vectorImpl.d.ts +231 -0
  213. package/data/vectorImpl.js +563 -515
  214. package/data/vectorOps.d.ts +25 -0
  215. package/data/vectorOps.js +118 -669
  216. package/data/vertexFormatData.d.ts +181 -184
  217. package/data/vertexFormatData.js +104 -106
  218. package/data/wgslTypes.d.ts +665 -600
  219. package/data/wgslTypes.js +220 -198
  220. package/errors.d.ts +50 -24
  221. package/errors.js +146 -126
  222. package/execMode.d.ts +16 -0
  223. package/execMode.js +47 -40
  224. package/extension.d.ts +13 -8
  225. package/extension.js +10 -16
  226. package/getGPUValue.d.ts +1 -0
  227. package/getGPUValue.js +2 -7
  228. package/index.d.ts +28 -68
  229. package/index.js +8 -28
  230. package/indexNamedExports.d.ts +69 -42
  231. package/indexNamedExports.js +25 -0
  232. package/internal.d.ts +16 -0
  233. package/internal.js +12 -0
  234. package/mathUtils.d.ts +5 -0
  235. package/mathUtils.js +7 -11
  236. package/memo.d.ts +11 -0
  237. package/memo.js +20 -22
  238. package/minify.d.ts +5 -0
  239. package/minify.js +93 -0
  240. package/nameUtils.d.ts +29 -0
  241. package/nameUtils.js +427 -394
  242. package/package.json +5 -1
  243. package/resolutionCtx.d.ts +162 -22
  244. package/resolutionCtx.js +911 -629
  245. package/serial/registry.d.ts +15 -0
  246. package/serial/registry.js +106 -0
  247. package/serial/restore.d.ts +49 -0
  248. package/serial/restore.js +68 -0
  249. package/serial/schema.d.ts +58 -0
  250. package/serial/schema.js +209 -0
  251. package/serial/types.d.ts +5 -0
  252. package/serial/types.js +1 -0
  253. package/shared/env.d.ts +9 -0
  254. package/shared/env.js +9 -12
  255. package/shared/generators.d.ts +4 -0
  256. package/shared/generators.js +10 -12
  257. package/shared/meta.d.ts +29 -14
  258. package/shared/meta.js +71 -55
  259. package/shared/normalizeMetadata.d.ts +32 -27
  260. package/shared/normalizeMetadata.js +23 -36
  261. package/shared/repr.d.ts +73 -55
  262. package/shared/repr.js +1 -0
  263. package/shared/soul.d.ts +17 -0
  264. package/shared/soul.js +1 -0
  265. package/shared/stringify.d.ts +2 -0
  266. package/shared/stringify.js +29 -20
  267. package/shared/symbols.d.ts +26 -20
  268. package/shared/symbols.js +79 -79
  269. package/shared/tseynit.d.ts +2 -0
  270. package/shared/tseynit.js +160 -75
  271. package/shared/utilityTypes.d.ts +30 -14
  272. package/shared/utilityTypes.js +2 -6
  273. package/shared/vertexFormat.d.ts +41 -43
  274. package/shared/vertexFormat.js +59 -62
  275. package/std/array.d.ts +2 -7
  276. package/std/array.js +18 -23
  277. package/std/atomic.d.ts +14 -18
  278. package/std/atomic.js +96 -95
  279. package/std/bitcast.d.ts +193 -10
  280. package/std/bitcast.js +309 -39
  281. package/std/boolean.d.ts +19 -33
  282. package/std/boolean.js +296 -292
  283. package/std/copy.d.ts +2 -7
  284. package/std/copy.js +27 -24
  285. package/std/derivative.d.ts +11 -15
  286. package/std/derivative.js +56 -79
  287. package/std/discard.d.ts +1 -6
  288. package/std/discard.js +7 -14
  289. package/std/environment.d.ts +19 -14
  290. package/std/environment.js +71 -51
  291. package/std/extensions.d.ts +2 -8
  292. package/std/extensions.js +10 -11
  293. package/std/index.d.ts +20 -24
  294. package/std/index.js +32 -187
  295. package/std/matrix.d.ts +6 -12
  296. package/std/matrix.js +60 -69
  297. package/std/numeric.d.ts +150 -146
  298. package/std/numeric.js +771 -727
  299. package/std/operators.d.ts +19 -27
  300. package/std/operators.js +195 -194
  301. package/std/packing.d.ts +5 -11
  302. package/std/packing.js +67 -75
  303. package/std/range.d.ts +6 -11
  304. package/std/range.js +48 -36
  305. package/std/subgroup.d.ts +33 -37
  306. package/std/subgroup.js +180 -217
  307. package/std/texture.d.ts +70 -38
  308. package/std/texture.js +176 -172
  309. package/taskQueue.d.ts +6 -0
  310. package/taskQueue.js +30 -0
  311. package/tgpu.d.ts +16 -0
  312. package/tgpu.js +17 -44
  313. package/tgpuBindGroupLayout.d.ts +132 -152
  314. package/tgpuBindGroupLayout.js +346 -268
  315. package/tgpuLogger.d.ts +34 -0
  316. package/tgpuLogger.js +64 -0
  317. package/tgpuUnstable.d.ts +16 -22
  318. package/tgpuUnstable.js +13 -35
  319. package/tgsl/accessIndex.d.ts +2 -0
  320. package/tgsl/accessIndex.js +76 -33
  321. package/tgsl/accessProp.d.ts +2 -0
  322. package/tgsl/accessProp.js +142 -101
  323. package/tgsl/accessStructProp.d.ts +5 -0
  324. package/tgsl/accessStructProp.js +13 -15
  325. package/tgsl/consoleLog/deserializers.d.ts +13 -0
  326. package/tgsl/consoleLog/deserializers.js +119 -103
  327. package/tgsl/consoleLog/logGenerator.d.ts +21 -0
  328. package/tgsl/consoleLog/logGenerator.js +85 -80
  329. package/tgsl/consoleLog/serializers.d.ts +21 -0
  330. package/tgsl/consoleLog/serializers.js +119 -100
  331. package/tgsl/consoleLog/types.d.ts +40 -39
  332. package/tgsl/consoleLog/types.js +1 -0
  333. package/tgsl/conversion.d.ts +33 -0
  334. package/tgsl/conversion.js +271 -216
  335. package/tgsl/forOfUtils.d.ts +15 -0
  336. package/tgsl/forOfUtils.js +85 -70
  337. package/tgsl/generationHelpers.d.ts +22 -39
  338. package/tgsl/generationHelpers.js +85 -58
  339. package/tgsl/infixDispatch.d.ts +70 -0
  340. package/tgsl/infixDispatch.js +48 -46
  341. package/tgsl/jsPolyfills.d.ts +16 -19
  342. package/tgsl/jsPolyfills.js +44 -42
  343. package/tgsl/makeDereferenceable.d.ts +48 -0
  344. package/tgsl/makeDereferenceable.js +86 -0
  345. package/tgsl/makeResolvable.d.ts +22 -0
  346. package/tgsl/makeResolvable.js +33 -0
  347. package/tgsl/shaderGenerator.d.ts +77 -17
  348. package/tgsl/shaderGenerator.js +1 -0
  349. package/tgsl/shellless.d.ts +6 -9
  350. package/tgsl/shellless.js +73 -43
  351. package/tgsl/wgslGenerator.d.ts +66 -59
  352. package/tgsl/wgslGenerator.js +1345 -760
  353. package/types.d.ts +287 -222
  354. package/types.js +61 -44
  355. package/unwrapper.d.ts +31 -26
  356. package/unwrapper.js +1 -0
  357. package/wgslExtensions.d.ts +3 -5
  358. package/wgslExtensions.js +12 -16
  359. package/_virtual/rolldown_runtime.js +0 -13
  360. package/core/buffer/bufferShorthand.d.ts +0 -50
  361. package/core/buffer/bufferShorthand.js +0 -55
  362. package/core/pipeline/applyPipelineState.js +0 -37
  363. package/core/pipeline/limitsOverflow.js +0 -13
  364. package/package.js +0 -5
  365. package/tgsl/shaderGenerator_members.d.ts +0 -33
  366. 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
+ }