@nodetool-ai/gpu 0.8.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 (359) hide show
  1. package/README.md +52 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/blend/blendModes.d.ts +67 -0
  4. package/dist/blend/blendModes.d.ts.map +1 -0
  5. package/dist/blend/blendModes.js +80 -0
  6. package/dist/blend/blendModes.js.map +1 -0
  7. package/dist/blend/index.d.ts +10 -0
  8. package/dist/blend/index.d.ts.map +1 -0
  9. package/dist/blend/index.js +10 -0
  10. package/dist/blend/index.js.map +1 -0
  11. package/dist/blend/wgsl.d.ts +16 -0
  12. package/dist/blend/wgsl.d.ts.map +1 -0
  13. package/dist/blend/wgsl.js +85 -0
  14. package/dist/blend/wgsl.js.map +1 -0
  15. package/dist/compositor/compositor.d.ts +112 -0
  16. package/dist/compositor/compositor.d.ts.map +1 -0
  17. package/dist/compositor/compositor.js +353 -0
  18. package/dist/compositor/compositor.js.map +1 -0
  19. package/dist/compositor/headless.d.ts +47 -0
  20. package/dist/compositor/headless.d.ts.map +1 -0
  21. package/dist/compositor/headless.js +158 -0
  22. package/dist/compositor/headless.js.map +1 -0
  23. package/dist/compositor/index.d.ts +8 -0
  24. package/dist/compositor/index.d.ts.map +1 -0
  25. package/dist/compositor/index.js +8 -0
  26. package/dist/compositor/index.js.map +1 -0
  27. package/dist/compositor/shaders.d.ts +24 -0
  28. package/dist/compositor/shaders.d.ts.map +1 -0
  29. package/dist/compositor/shaders.js +241 -0
  30. package/dist/compositor/shaders.js.map +1 -0
  31. package/dist/compositor/transform.d.ts +49 -0
  32. package/dist/compositor/transform.d.ts.map +1 -0
  33. package/dist/compositor/transform.js +74 -0
  34. package/dist/compositor/transform.js.map +1 -0
  35. package/dist/context.d.ts +108 -0
  36. package/dist/context.d.ts.map +1 -0
  37. package/dist/context.js +205 -0
  38. package/dist/context.js.map +1 -0
  39. package/dist/debug/premulValidator.d.ts +85 -0
  40. package/dist/debug/premulValidator.d.ts.map +1 -0
  41. package/dist/debug/premulValidator.js +239 -0
  42. package/dist/debug/premulValidator.js.map +1 -0
  43. package/dist/executor.d.ts +74 -0
  44. package/dist/executor.d.ts.map +1 -0
  45. package/dist/executor.js +413 -0
  46. package/dist/executor.js.map +1 -0
  47. package/dist/fullscreenQuad.d.ts +11 -0
  48. package/dist/fullscreenQuad.d.ts.map +1 -0
  49. package/dist/fullscreenQuad.js +31 -0
  50. package/dist/fullscreenQuad.js.map +1 -0
  51. package/dist/index.d.ts +16 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +16 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/module.d.ts +162 -0
  56. package/dist/module.d.ts.map +1 -0
  57. package/dist/module.js +100 -0
  58. package/dist/module.js.map +1 -0
  59. package/dist/node.d.ts +38 -0
  60. package/dist/node.d.ts.map +1 -0
  61. package/dist/node.js +140 -0
  62. package/dist/node.js.map +1 -0
  63. package/dist/pool.d.ts +30 -0
  64. package/dist/pool.d.ts.map +1 -0
  65. package/dist/pool.js +33 -0
  66. package/dist/pool.js.map +1 -0
  67. package/dist/recipe.d.ts +148 -0
  68. package/dist/recipe.d.ts.map +1 -0
  69. package/dist/recipe.js +181 -0
  70. package/dist/recipe.js.map +1 -0
  71. package/dist/registry.d.ts +49 -0
  72. package/dist/registry.d.ts.map +1 -0
  73. package/dist/registry.js +100 -0
  74. package/dist/registry.js.map +1 -0
  75. package/dist/shaders/_canary/passthrough/v1/module.d.ts +13 -0
  76. package/dist/shaders/_canary/passthrough/v1/module.d.ts.map +1 -0
  77. package/dist/shaders/_canary/passthrough/v1/module.js +71 -0
  78. package/dist/shaders/_canary/passthrough/v1/module.js.map +1 -0
  79. package/dist/shaders/alpha/premulToStraight/v1/module.d.ts +16 -0
  80. package/dist/shaders/alpha/premulToStraight/v1/module.d.ts.map +1 -0
  81. package/dist/shaders/alpha/premulToStraight/v1/module.js +62 -0
  82. package/dist/shaders/alpha/premulToStraight/v1/module.js.map +1 -0
  83. package/dist/shaders/alpha/straightToPremul/v1/module.d.ts +19 -0
  84. package/dist/shaders/alpha/straightToPremul/v1/module.d.ts.map +1 -0
  85. package/dist/shaders/alpha/straightToPremul/v1/module.js +61 -0
  86. package/dist/shaders/alpha/straightToPremul/v1/module.js.map +1 -0
  87. package/dist/shaders/color/brightnessContrast/v1/module.d.ts +17 -0
  88. package/dist/shaders/color/brightnessContrast/v1/module.d.ts.map +1 -0
  89. package/dist/shaders/color/brightnessContrast/v1/module.js +84 -0
  90. package/dist/shaders/color/brightnessContrast/v1/module.js.map +1 -0
  91. package/dist/shaders/color/cdl/v1/module.d.ts +35 -0
  92. package/dist/shaders/color/cdl/v1/module.d.ts.map +1 -0
  93. package/dist/shaders/color/cdl/v1/module.js +106 -0
  94. package/dist/shaders/color/cdl/v1/module.js.map +1 -0
  95. package/dist/shaders/color/channelMerge/v1/module.d.ts +22 -0
  96. package/dist/shaders/color/channelMerge/v1/module.d.ts.map +1 -0
  97. package/dist/shaders/color/channelMerge/v1/module.js +101 -0
  98. package/dist/shaders/color/channelMerge/v1/module.js.map +1 -0
  99. package/dist/shaders/color/channelShuffle/v1/module.d.ts +29 -0
  100. package/dist/shaders/color/channelShuffle/v1/module.d.ts.map +1 -0
  101. package/dist/shaders/color/channelShuffle/v1/module.js +94 -0
  102. package/dist/shaders/color/channelShuffle/v1/module.js.map +1 -0
  103. package/dist/shaders/color/channelSplit/v1/module.d.ts +18 -0
  104. package/dist/shaders/color/channelSplit/v1/module.d.ts.map +1 -0
  105. package/dist/shaders/color/channelSplit/v1/module.js +90 -0
  106. package/dist/shaders/color/channelSplit/v1/module.js.map +1 -0
  107. package/dist/shaders/color/colorBalance/v1/module.d.ts +18 -0
  108. package/dist/shaders/color/colorBalance/v1/module.d.ts.map +1 -0
  109. package/dist/shaders/color/colorBalance/v1/module.js +86 -0
  110. package/dist/shaders/color/colorBalance/v1/module.js.map +1 -0
  111. package/dist/shaders/color/cubeLut/v1/module.d.ts +14 -0
  112. package/dist/shaders/color/cubeLut/v1/module.d.ts.map +1 -0
  113. package/dist/shaders/color/cubeLut/v1/module.js +78 -0
  114. package/dist/shaders/color/cubeLut/v1/module.js.map +1 -0
  115. package/dist/shaders/color/curves/v1/module.d.ts +31 -0
  116. package/dist/shaders/color/curves/v1/module.d.ts.map +1 -0
  117. package/dist/shaders/color/curves/v1/module.js +102 -0
  118. package/dist/shaders/color/curves/v1/module.js.map +1 -0
  119. package/dist/shaders/color/exposure/v1/module.d.ts +15 -0
  120. package/dist/shaders/color/exposure/v1/module.d.ts.map +1 -0
  121. package/dist/shaders/color/exposure/v1/module.js +78 -0
  122. package/dist/shaders/color/exposure/v1/module.js.map +1 -0
  123. package/dist/shaders/color/exposureTone/v1/module.d.ts +28 -0
  124. package/dist/shaders/color/exposureTone/v1/module.d.ts.map +1 -0
  125. package/dist/shaders/color/exposureTone/v1/module.js +107 -0
  126. package/dist/shaders/color/exposureTone/v1/module.js.map +1 -0
  127. package/dist/shaders/color/filmLook/v1/module.d.ts +28 -0
  128. package/dist/shaders/color/filmLook/v1/module.d.ts.map +1 -0
  129. package/dist/shaders/color/filmLook/v1/module.js +103 -0
  130. package/dist/shaders/color/filmLook/v1/module.js.map +1 -0
  131. package/dist/shaders/color/grade/v1/module.d.ts +35 -0
  132. package/dist/shaders/color/grade/v1/module.d.ts.map +1 -0
  133. package/dist/shaders/color/grade/v1/module.js +182 -0
  134. package/dist/shaders/color/grade/v1/module.js.map +1 -0
  135. package/dist/shaders/color/grayscale/v1/module.d.ts +14 -0
  136. package/dist/shaders/color/grayscale/v1/module.d.ts.map +1 -0
  137. package/dist/shaders/color/grayscale/v1/module.js +79 -0
  138. package/dist/shaders/color/grayscale/v1/module.js.map +1 -0
  139. package/dist/shaders/color/hsb/v1/module.d.ts +20 -0
  140. package/dist/shaders/color/hsb/v1/module.d.ts.map +1 -0
  141. package/dist/shaders/color/hsb/v1/module.js +131 -0
  142. package/dist/shaders/color/hsb/v1/module.js.map +1 -0
  143. package/dist/shaders/color/hslAdjust/v1/module.d.ts +30 -0
  144. package/dist/shaders/color/hslAdjust/v1/module.d.ts.map +1 -0
  145. package/dist/shaders/color/hslAdjust/v1/module.js +170 -0
  146. package/dist/shaders/color/hslAdjust/v1/module.js.map +1 -0
  147. package/dist/shaders/color/invert/v1/module.d.ts +15 -0
  148. package/dist/shaders/color/invert/v1/module.d.ts.map +1 -0
  149. package/dist/shaders/color/invert/v1/module.js +85 -0
  150. package/dist/shaders/color/invert/v1/module.js.map +1 -0
  151. package/dist/shaders/color/levels/v1/module.d.ts +33 -0
  152. package/dist/shaders/color/levels/v1/module.d.ts.map +1 -0
  153. package/dist/shaders/color/levels/v1/module.js +116 -0
  154. package/dist/shaders/color/levels/v1/module.js.map +1 -0
  155. package/dist/shaders/color/liftGammaGain/v1/module.d.ts +40 -0
  156. package/dist/shaders/color/liftGammaGain/v1/module.d.ts.map +1 -0
  157. package/dist/shaders/color/liftGammaGain/v1/module.js +114 -0
  158. package/dist/shaders/color/liftGammaGain/v1/module.js.map +1 -0
  159. package/dist/shaders/color/posterize/v1/module.d.ts +16 -0
  160. package/dist/shaders/color/posterize/v1/module.d.ts.map +1 -0
  161. package/dist/shaders/color/posterize/v1/module.js +80 -0
  162. package/dist/shaders/color/posterize/v1/module.js.map +1 -0
  163. package/dist/shaders/color/solarize/v1/module.d.ts +15 -0
  164. package/dist/shaders/color/solarize/v1/module.d.ts.map +1 -0
  165. package/dist/shaders/color/solarize/v1/module.js +83 -0
  166. package/dist/shaders/color/solarize/v1/module.js.map +1 -0
  167. package/dist/shaders/color/splitToning/v1/module.d.ts +26 -0
  168. package/dist/shaders/color/splitToning/v1/module.d.ts.map +1 -0
  169. package/dist/shaders/color/splitToning/v1/module.js +95 -0
  170. package/dist/shaders/color/splitToning/v1/module.js.map +1 -0
  171. package/dist/shaders/filters/blur/gaussian/v1/module.d.ts +23 -0
  172. package/dist/shaders/filters/blur/gaussian/v1/module.d.ts.map +1 -0
  173. package/dist/shaders/filters/blur/gaussian/v1/module.js +110 -0
  174. package/dist/shaders/filters/blur/gaussian/v1/module.js.map +1 -0
  175. package/dist/shaders/filters/blur/separable/v1/module.d.ts +18 -0
  176. package/dist/shaders/filters/blur/separable/v1/module.d.ts.map +1 -0
  177. package/dist/shaders/filters/blur/separable/v1/module.js +64 -0
  178. package/dist/shaders/filters/blur/separable/v1/module.js.map +1 -0
  179. package/dist/shaders/filters/convolve3x3/v1/module.d.ts +23 -0
  180. package/dist/shaders/filters/convolve3x3/v1/module.d.ts.map +1 -0
  181. package/dist/shaders/filters/convolve3x3/v1/module.js +128 -0
  182. package/dist/shaders/filters/convolve3x3/v1/module.js.map +1 -0
  183. package/dist/shaders/filters/glow/v1/module.d.ts +26 -0
  184. package/dist/shaders/filters/glow/v1/module.d.ts.map +1 -0
  185. package/dist/shaders/filters/glow/v1/module.js +102 -0
  186. package/dist/shaders/filters/glow/v1/module.js.map +1 -0
  187. package/dist/shaders/filters/grain/v1/module.d.ts +38 -0
  188. package/dist/shaders/filters/grain/v1/module.d.ts.map +1 -0
  189. package/dist/shaders/filters/grain/v1/module.js +110 -0
  190. package/dist/shaders/filters/grain/v1/module.js.map +1 -0
  191. package/dist/shaders/filters/pixelate/v1/module.d.ts +14 -0
  192. package/dist/shaders/filters/pixelate/v1/module.d.ts.map +1 -0
  193. package/dist/shaders/filters/pixelate/v1/module.js +76 -0
  194. package/dist/shaders/filters/pixelate/v1/module.js.map +1 -0
  195. package/dist/shaders/filters/sharpen/unsharpMask/v1/module.d.ts +17 -0
  196. package/dist/shaders/filters/sharpen/unsharpMask/v1/module.d.ts.map +1 -0
  197. package/dist/shaders/filters/sharpen/unsharpMask/v1/module.js +93 -0
  198. package/dist/shaders/filters/sharpen/unsharpMask/v1/module.js.map +1 -0
  199. package/dist/shaders/filters/threshold/v1/module.d.ts +17 -0
  200. package/dist/shaders/filters/threshold/v1/module.d.ts.map +1 -0
  201. package/dist/shaders/filters/threshold/v1/module.js +71 -0
  202. package/dist/shaders/filters/threshold/v1/module.js.map +1 -0
  203. package/dist/shaders/filters/vignette/v1/module.d.ts +18 -0
  204. package/dist/shaders/filters/vignette/v1/module.d.ts.map +1 -0
  205. package/dist/shaders/filters/vignette/v1/module.js +78 -0
  206. package/dist/shaders/filters/vignette/v1/module.js.map +1 -0
  207. package/dist/shaders/filters/visualFx/v1/module.d.ts +24 -0
  208. package/dist/shaders/filters/visualFx/v1/module.d.ts.map +1 -0
  209. package/dist/shaders/filters/visualFx/v1/module.js +210 -0
  210. package/dist/shaders/filters/visualFx/v1/module.js.map +1 -0
  211. package/dist/shaders/index.d.ts +86 -0
  212. package/dist/shaders/index.d.ts.map +1 -0
  213. package/dist/shaders/index.js +161 -0
  214. package/dist/shaders/index.js.map +1 -0
  215. package/dist/shaders/keyer/chromaKey/v1/module.d.ts +25 -0
  216. package/dist/shaders/keyer/chromaKey/v1/module.d.ts.map +1 -0
  217. package/dist/shaders/keyer/chromaKey/v1/module.js +111 -0
  218. package/dist/shaders/keyer/chromaKey/v1/module.js.map +1 -0
  219. package/dist/shaders/keyer/lumaKey/v1/module.d.ts +22 -0
  220. package/dist/shaders/keyer/lumaKey/v1/module.d.ts.map +1 -0
  221. package/dist/shaders/keyer/lumaKey/v1/module.js +89 -0
  222. package/dist/shaders/keyer/lumaKey/v1/module.js.map +1 -0
  223. package/dist/shaders/mask/apply/v1/module.d.ts +16 -0
  224. package/dist/shaders/mask/apply/v1/module.d.ts.map +1 -0
  225. package/dist/shaders/mask/apply/v1/module.js +79 -0
  226. package/dist/shaders/mask/apply/v1/module.js.map +1 -0
  227. package/dist/shaders/mask/fromImage/v1/module.d.ts +18 -0
  228. package/dist/shaders/mask/fromImage/v1/module.d.ts.map +1 -0
  229. package/dist/shaders/mask/fromImage/v1/module.js +99 -0
  230. package/dist/shaders/mask/fromImage/v1/module.js.map +1 -0
  231. package/dist/shaders/mask/invert/v1/module.d.ts +12 -0
  232. package/dist/shaders/mask/invert/v1/module.d.ts.map +1 -0
  233. package/dist/shaders/mask/invert/v1/module.js +57 -0
  234. package/dist/shaders/mask/invert/v1/module.js.map +1 -0
  235. package/dist/shaders/mixer/add/v1/module.d.ts +17 -0
  236. package/dist/shaders/mixer/add/v1/module.d.ts.map +1 -0
  237. package/dist/shaders/mixer/add/v1/module.js +73 -0
  238. package/dist/shaders/mixer/add/v1/module.js.map +1 -0
  239. package/dist/shaders/mixer/colorOverlay/v1/module.d.ts +26 -0
  240. package/dist/shaders/mixer/colorOverlay/v1/module.d.ts.map +1 -0
  241. package/dist/shaders/mixer/colorOverlay/v1/module.js +81 -0
  242. package/dist/shaders/mixer/colorOverlay/v1/module.js.map +1 -0
  243. package/dist/shaders/mixer/dropShadow/v1/module.d.ts +28 -0
  244. package/dist/shaders/mixer/dropShadow/v1/module.d.ts.map +1 -0
  245. package/dist/shaders/mixer/dropShadow/v1/module.js +104 -0
  246. package/dist/shaders/mixer/dropShadow/v1/module.js.map +1 -0
  247. package/dist/shaders/mixer/outline/v1/module.d.ts +27 -0
  248. package/dist/shaders/mixer/outline/v1/module.d.ts.map +1 -0
  249. package/dist/shaders/mixer/outline/v1/module.js +105 -0
  250. package/dist/shaders/mixer/outline/v1/module.js.map +1 -0
  251. package/dist/shaders/mixer/over/v1/module.d.ts +16 -0
  252. package/dist/shaders/mixer/over/v1/module.d.ts.map +1 -0
  253. package/dist/shaders/mixer/over/v1/module.js +71 -0
  254. package/dist/shaders/mixer/over/v1/module.js.map +1 -0
  255. package/dist/shaders/mixer/shadowCompose/v1/module.d.ts +26 -0
  256. package/dist/shaders/mixer/shadowCompose/v1/module.d.ts.map +1 -0
  257. package/dist/shaders/mixer/shadowCompose/v1/module.js +95 -0
  258. package/dist/shaders/mixer/shadowCompose/v1/module.js.map +1 -0
  259. package/dist/shaders/sources/angularGradient/v1/module.d.ts +18 -0
  260. package/dist/shaders/sources/angularGradient/v1/module.d.ts.map +1 -0
  261. package/dist/shaders/sources/angularGradient/v1/module.js +67 -0
  262. package/dist/shaders/sources/angularGradient/v1/module.js.map +1 -0
  263. package/dist/shaders/sources/checkerboard/v1/module.d.ts +19 -0
  264. package/dist/shaders/sources/checkerboard/v1/module.d.ts.map +1 -0
  265. package/dist/shaders/sources/checkerboard/v1/module.js +70 -0
  266. package/dist/shaders/sources/checkerboard/v1/module.js.map +1 -0
  267. package/dist/shaders/sources/diamondGradient/v1/module.d.ts +18 -0
  268. package/dist/shaders/sources/diamondGradient/v1/module.d.ts.map +1 -0
  269. package/dist/shaders/sources/diamondGradient/v1/module.js +61 -0
  270. package/dist/shaders/sources/diamondGradient/v1/module.js.map +1 -0
  271. package/dist/shaders/sources/gaussianNoise/v1/module.d.ts +21 -0
  272. package/dist/shaders/sources/gaussianNoise/v1/module.d.ts.map +1 -0
  273. package/dist/shaders/sources/gaussianNoise/v1/module.js +72 -0
  274. package/dist/shaders/sources/gaussianNoise/v1/module.js.map +1 -0
  275. package/dist/shaders/sources/linearGradient/v1/module.d.ts +21 -0
  276. package/dist/shaders/sources/linearGradient/v1/module.d.ts.map +1 -0
  277. package/dist/shaders/sources/linearGradient/v1/module.js +72 -0
  278. package/dist/shaders/sources/linearGradient/v1/module.js.map +1 -0
  279. package/dist/shaders/sources/radialGradient/v1/module.d.ts +18 -0
  280. package/dist/shaders/sources/radialGradient/v1/module.d.ts.map +1 -0
  281. package/dist/shaders/sources/radialGradient/v1/module.js +60 -0
  282. package/dist/shaders/sources/radialGradient/v1/module.js.map +1 -0
  283. package/dist/shaders/sources/solid/v1/module.d.ts +17 -0
  284. package/dist/shaders/sources/solid/v1/module.d.ts.map +1 -0
  285. package/dist/shaders/sources/solid/v1/module.js +49 -0
  286. package/dist/shaders/sources/solid/v1/module.js.map +1 -0
  287. package/dist/shaders/transform/affine/v1/module.d.ts +36 -0
  288. package/dist/shaders/transform/affine/v1/module.d.ts.map +1 -0
  289. package/dist/shaders/transform/affine/v1/module.js +94 -0
  290. package/dist/shaders/transform/affine/v1/module.js.map +1 -0
  291. package/dist/shaders/transform/cornerPin/v1/module.d.ts +40 -0
  292. package/dist/shaders/transform/cornerPin/v1/module.d.ts.map +1 -0
  293. package/dist/shaders/transform/cornerPin/v1/module.js +109 -0
  294. package/dist/shaders/transform/cornerPin/v1/module.js.map +1 -0
  295. package/dist/shaders/transform/crop/v1/module.d.ts +26 -0
  296. package/dist/shaders/transform/crop/v1/module.d.ts.map +1 -0
  297. package/dist/shaders/transform/crop/v1/module.js +82 -0
  298. package/dist/shaders/transform/crop/v1/module.js.map +1 -0
  299. package/dist/shaders/transform/displace/v1/module.d.ts +23 -0
  300. package/dist/shaders/transform/displace/v1/module.d.ts.map +1 -0
  301. package/dist/shaders/transform/displace/v1/module.js +95 -0
  302. package/dist/shaders/transform/displace/v1/module.js.map +1 -0
  303. package/dist/shaders/transform/mirror/v1/module.d.ts +14 -0
  304. package/dist/shaders/transform/mirror/v1/module.d.ts.map +1 -0
  305. package/dist/shaders/transform/mirror/v1/module.js +73 -0
  306. package/dist/shaders/transform/mirror/v1/module.js.map +1 -0
  307. package/dist/shaders/transform/offset/v1/module.d.ts +21 -0
  308. package/dist/shaders/transform/offset/v1/module.d.ts.map +1 -0
  309. package/dist/shaders/transform/offset/v1/module.js +88 -0
  310. package/dist/shaders/transform/offset/v1/module.js.map +1 -0
  311. package/dist/shaders/transform/pad/v1/module.d.ts +26 -0
  312. package/dist/shaders/transform/pad/v1/module.d.ts.map +1 -0
  313. package/dist/shaders/transform/pad/v1/module.js +95 -0
  314. package/dist/shaders/transform/pad/v1/module.js.map +1 -0
  315. package/dist/shaders/transform/polarRemap/v1/module.d.ts +20 -0
  316. package/dist/shaders/transform/polarRemap/v1/module.d.ts.map +1 -0
  317. package/dist/shaders/transform/polarRemap/v1/module.js +95 -0
  318. package/dist/shaders/transform/polarRemap/v1/module.js.map +1 -0
  319. package/dist/shaders/transform/resize/v1/module.d.ts +20 -0
  320. package/dist/shaders/transform/resize/v1/module.d.ts.map +1 -0
  321. package/dist/shaders/transform/resize/v1/module.js +116 -0
  322. package/dist/shaders/transform/resize/v1/module.js.map +1 -0
  323. package/dist/shaders/transform/rotate90/v1/module.d.ts +25 -0
  324. package/dist/shaders/transform/rotate90/v1/module.d.ts.map +1 -0
  325. package/dist/shaders/transform/rotate90/v1/module.js +90 -0
  326. package/dist/shaders/transform/rotate90/v1/module.js.map +1 -0
  327. package/dist/shaders/transform/spherize/v1/module.d.ts +21 -0
  328. package/dist/shaders/transform/spherize/v1/module.d.ts.map +1 -0
  329. package/dist/shaders/transform/spherize/v1/module.js +94 -0
  330. package/dist/shaders/transform/spherize/v1/module.js.map +1 -0
  331. package/dist/shaders/transform/tile/v1/module.d.ts +22 -0
  332. package/dist/shaders/transform/tile/v1/module.d.ts.map +1 -0
  333. package/dist/shaders/transform/tile/v1/module.js +89 -0
  334. package/dist/shaders/transform/tile/v1/module.js.map +1 -0
  335. package/dist/shared/lumaWgsl.d.ts +14 -0
  336. package/dist/shared/lumaWgsl.d.ts.map +1 -0
  337. package/dist/shared/lumaWgsl.js +18 -0
  338. package/dist/shared/lumaWgsl.js.map +1 -0
  339. package/dist/shared/premulWgsl.d.ts +46 -0
  340. package/dist/shared/premulWgsl.d.ts.map +1 -0
  341. package/dist/shared/premulWgsl.js +90 -0
  342. package/dist/shared/premulWgsl.js.map +1 -0
  343. package/dist/texture.d.ts +54 -0
  344. package/dist/texture.d.ts.map +1 -0
  345. package/dist/texture.js +70 -0
  346. package/dist/texture.js.map +1 -0
  347. package/dist/types.d.ts +103 -0
  348. package/dist/types.d.ts.map +1 -0
  349. package/dist/types.js +8 -0
  350. package/dist/types.js.map +1 -0
  351. package/dist/validate/wgslLinearity.d.ts +86 -0
  352. package/dist/validate/wgslLinearity.d.ts.map +1 -0
  353. package/dist/validate/wgslLinearity.js +298 -0
  354. package/dist/validate/wgslLinearity.js.map +1 -0
  355. package/dist/webgpu/index.d.ts +11 -0
  356. package/dist/webgpu/index.d.ts.map +1 -0
  357. package/dist/webgpu/index.js +11 -0
  358. package/dist/webgpu/index.js.map +1 -0
  359. package/package.json +85 -0
@@ -0,0 +1,88 @@
1
+ /**
2
+ * `transform.offset@1` — translate the source by a normalized UV offset,
3
+ * with the address mode controlled by `wrap` (`0` clamp-to-edge,
4
+ * `1` repeat, `2` mirror-repeat).
5
+ *
6
+ * `dx`/`dy` are in normalized UV units (`0..1`). Output dimensions are
7
+ * `same-as:source`; for `wrap = 0`, regions outside the original sample
8
+ * area return the edge color (so they don't introduce transparent pixels).
9
+ */
10
+ import tgpu from "typegpu";
11
+ import * as d from "typegpu/data";
12
+ import { defineModule } from "../../../../module.js";
13
+ export const OffsetParams = d.struct({
14
+ dx: d.f32,
15
+ dy: d.f32,
16
+ wrap: d.f32
17
+ });
18
+ const layout = tgpu.bindGroupLayout({
19
+ params: { uniform: OffsetParams },
20
+ source: { texture: "float" },
21
+ samp: { sampler: "filtering" }
22
+ });
23
+ const samplerDescriptor = {
24
+ magFilter: "linear",
25
+ minFilter: "linear",
26
+ // We pick the address mode in the shader so a single sampler binding
27
+ // covers all three wrap behaviors; the sampler stays clamp-to-edge.
28
+ addressModeU: "clamp-to-edge",
29
+ addressModeV: "clamp-to-edge"
30
+ };
31
+ export const transformOffsetV1 = defineModule({
32
+ id: "transform.offset",
33
+ version: 1,
34
+ surface: "internal",
35
+ category: "transform",
36
+ linearity: "linear-in-rgb",
37
+ kind: "fragment",
38
+ params: OffsetParams,
39
+ paramDefaults: { dx: 0, dy: 0, wrap: 0 },
40
+ paramUi: {
41
+ dx: { min: -1, max: 1, step: 0.01, label: "Offset X" },
42
+ dy: { min: -1, max: 1, step: 0.01, label: "Offset Y" },
43
+ wrap: { min: 0, max: 2, step: 1, label: "Wrap", notes: "0 clamp / 1 repeat / 2 mirror" }
44
+ },
45
+ layout,
46
+ samplers: { samp: samplerDescriptor },
47
+ wgsl: /* wgsl */ `
48
+ fn applyWrap(u: vec2f, mode: i32) -> vec2f {
49
+ if (mode == 1) {
50
+ return fract(u);
51
+ }
52
+ if (mode == 2) {
53
+ let q = fract(u * 0.5) * 2.0;
54
+ return vec2f(
55
+ select(q.x, 2.0 - q.x, q.x > 1.0),
56
+ select(q.y, 2.0 - q.y, q.y > 1.0)
57
+ );
58
+ }
59
+ return clamp(u, vec2f(0.0), vec2f(1.0));
60
+ }
61
+
62
+ @fragment
63
+ fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
64
+ let p = layout.$.params;
65
+ let mode = i32(round(p.wrap));
66
+ let shifted = uv - vec2f(p.dx, p.dy);
67
+ let u = applyWrap(shifted, mode);
68
+ return textureSample(layout.$.source, layout.$.samp, u);
69
+ }
70
+ `,
71
+ io: {
72
+ inputs: {
73
+ source: {
74
+ colorSpace: "linear",
75
+ alpha: "premultiplied",
76
+ bindingKinds: ["texture_2d"]
77
+ }
78
+ },
79
+ output: {
80
+ colorSpace: "linear",
81
+ alpha: "premultiplied",
82
+ format: "rgba8unorm",
83
+ dimensions: "same-as:source"
84
+ },
85
+ rod: "same-as:source"
86
+ }
87
+ });
88
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/transform/offset/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,CAAC,CAAC,GAAG;IACT,EAAE,EAAE,CAAC,CAAC,GAAG;IACT,IAAI,EAAE,CAAC,CAAC,GAAG;CACZ,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;IACjC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAyB;IAC9C,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,qEAAqE;IACrE,oEAAoE;IACpE,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;IAC5C,EAAE,EAAE,kBAAkB;IACtB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,YAAY;IACpB,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;IACxC,OAAO,EAAE;QACP,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;QACtD,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;QACtD,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,+BAA+B,EAAE;KACzF;IACD,MAAM;IACN,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAuBlB;IACC,EAAE,EAAE;QACF,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,UAAU,EAAE,QAAQ;gBACpB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;aAC7B;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,gBAAgB;SAC7B;QACD,GAAG,EAAE,gBAAgB;KACtB;CACF,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * `transform.pad@1` — pad the source with empty space on each side.
3
+ *
4
+ * `left`/`top`/`right`/`bottom` are in normalized UV units relative to the
5
+ * source: `left = 0.25` adds a quarter-source-width of empty space on the
6
+ * left. Output dimensions are `derived` — the host allocates a target sized
7
+ * `(source.w * (1 + left + right), source.h * (1 + top + bottom))`. The
8
+ * padded region samples as `color` (premultiplied); the source occupies the
9
+ * interior rectangle.
10
+ */
11
+ import * as d from "typegpu/data";
12
+ export declare const PadParams: d.WgslStruct<{
13
+ left: d.F32;
14
+ top: d.F32;
15
+ right: d.F32;
16
+ bottom: d.F32;
17
+ color: d.Vec4f;
18
+ }>;
19
+ export declare const transformPadV1: import("../../../../module.js").ShaderModule<d.WgslStruct<{
20
+ left: d.F32;
21
+ top: d.F32;
22
+ right: d.F32;
23
+ bottom: d.F32;
24
+ color: d.Vec4f;
25
+ }>>;
26
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/transform/pad/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,SAAS;;;;;;EAMpB,CAAC;AAeH,eAAO,MAAM,cAAc;;;;;;GA8DzB,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * `transform.pad@1` — pad the source with empty space on each side.
3
+ *
4
+ * `left`/`top`/`right`/`bottom` are in normalized UV units relative to the
5
+ * source: `left = 0.25` adds a quarter-source-width of empty space on the
6
+ * left. Output dimensions are `derived` — the host allocates a target sized
7
+ * `(source.w * (1 + left + right), source.h * (1 + top + bottom))`. The
8
+ * padded region samples as `color` (premultiplied); the source occupies the
9
+ * interior rectangle.
10
+ */
11
+ import tgpu from "typegpu";
12
+ import * as d from "typegpu/data";
13
+ import { defineModule } from "../../../../module.js";
14
+ export const PadParams = d.struct({
15
+ left: d.f32,
16
+ top: d.f32,
17
+ right: d.f32,
18
+ bottom: d.f32,
19
+ color: d.vec4f
20
+ });
21
+ const layout = tgpu.bindGroupLayout({
22
+ params: { uniform: PadParams },
23
+ source: { texture: "float" },
24
+ samp: { sampler: "filtering" }
25
+ });
26
+ const samplerDescriptor = {
27
+ magFilter: "linear",
28
+ minFilter: "linear",
29
+ addressModeU: "clamp-to-edge",
30
+ addressModeV: "clamp-to-edge"
31
+ };
32
+ export const transformPadV1 = defineModule({
33
+ id: "transform.pad",
34
+ version: 1,
35
+ surface: "internal",
36
+ category: "transform",
37
+ linearity: "linear-in-rgb",
38
+ kind: "fragment",
39
+ params: PadParams,
40
+ paramDefaults: {
41
+ left: 0,
42
+ top: 0,
43
+ right: 0,
44
+ bottom: 0,
45
+ color: d.vec4f(0, 0, 0, 0)
46
+ },
47
+ paramUi: {
48
+ left: { min: 0, max: 4, step: 0.01, label: "Left", notes: "× source width" },
49
+ top: { min: 0, max: 4, step: 0.01, label: "Top", notes: "× source height" },
50
+ right: { min: 0, max: 4, step: 0.01, label: "Right", notes: "× source width" },
51
+ bottom: { min: 0, max: 4, step: 0.01, label: "Bottom", notes: "× source height" },
52
+ color: { label: "Fill color", notes: "RGBA, premultiplied" }
53
+ },
54
+ layout,
55
+ samplers: { samp: samplerDescriptor },
56
+ wgsl: /* wgsl */ `
57
+ @fragment
58
+ fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
59
+ let p = layout.$.params;
60
+ let totalW = 1.0 + p.left + p.right;
61
+ let totalH = 1.0 + p.top + p.bottom;
62
+ let uMin = p.left / totalW;
63
+ let uMax = (p.left + 1.0) / totalW;
64
+ let vMin = p.top / totalH;
65
+ let vMax = (p.top + 1.0) / totalH;
66
+ let inPad = uv.x < uMin || uv.x > uMax || uv.y < vMin || uv.y > vMax;
67
+ let sampleUv = vec2f(
68
+ (uv.x - uMin) / (uMax - uMin),
69
+ (uv.y - vMin) / (vMax - vMin)
70
+ );
71
+ // Sample unconditionally (textureSample must run in uniform control flow);
72
+ // select the fill colour for the padded border. uMax-uMin = 1/totalW > 0 so
73
+ // the normalization never divides by zero.
74
+ let col = textureSample(layout.$.source, layout.$.samp, sampleUv);
75
+ return select(col, p.color, inPad);
76
+ }
77
+ `,
78
+ io: {
79
+ inputs: {
80
+ source: {
81
+ colorSpace: "linear",
82
+ alpha: "premultiplied",
83
+ bindingKinds: ["texture_2d"]
84
+ }
85
+ },
86
+ output: {
87
+ colorSpace: "linear",
88
+ alpha: "premultiplied",
89
+ format: "rgba8unorm",
90
+ dimensions: "derived"
91
+ },
92
+ rod: "explicit"
93
+ }
94
+ });
95
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/transform/pad/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,GAAG;IACX,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,KAAK,EAAE,CAAC,CAAC,GAAG;IACZ,MAAM,EAAE,CAAC,CAAC,GAAG;IACb,KAAK,EAAE,CAAC,CAAC,KAAK;CACf,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;IAC9B,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAyB;IAC9C,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;IACzC,EAAE,EAAE,eAAe;IACnB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,SAAS;IACjB,aAAa,EAAE;QACb,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KAC3B;IACD,OAAO,EAAE;QACP,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE;QAC5E,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE;QAC3E,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE;QAC9E,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE;QACjF,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,qBAAqB,EAAE;KAC7D;IACD,MAAM;IACN,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBlB;IACC,EAAE,EAAE;QACF,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,UAAU,EAAE,QAAQ;gBACpB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;aAC7B;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,SAAS;SACtB;QACD,GAAG,EAAE,UAAU;KAChB;CACF,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `transform.polarRemap@1` — convert between rectangular and polar UV space.
3
+ *
4
+ * `mode = 0` rect→polar: the output `x` axis is angle (`[0, 2π)`) and the
5
+ * output `y` axis is radius (`[0, 1]`). `mode = 1` polar→rect: treat the
6
+ * source as `(angle, radius)` and unwrap it into a centered disc.
7
+ *
8
+ * Used for "polar coordinates" filters, kaleidoscopes, and as the building
9
+ * block for fisheye fronts. Output dimensions stay `same-as:source` —
10
+ * sampling is symmetrical between the two modes, so the host doesn't have to
11
+ * resize.
12
+ */
13
+ import * as d from "typegpu/data";
14
+ export declare const PolarRemapParams: d.WgslStruct<{
15
+ mode: d.F32;
16
+ }>;
17
+ export declare const transformPolarRemapV1: import("../../../../module.js").ShaderModule<d.WgslStruct<{
18
+ mode: d.F32;
19
+ }>>;
20
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/transform/polarRemap/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,gBAAgB;;EAE3B,CAAC;AAeH,eAAO,MAAM,qBAAqB;;GAgEhC,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * `transform.polarRemap@1` — convert between rectangular and polar UV space.
3
+ *
4
+ * `mode = 0` rect→polar: the output `x` axis is angle (`[0, 2π)`) and the
5
+ * output `y` axis is radius (`[0, 1]`). `mode = 1` polar→rect: treat the
6
+ * source as `(angle, radius)` and unwrap it into a centered disc.
7
+ *
8
+ * Used for "polar coordinates" filters, kaleidoscopes, and as the building
9
+ * block for fisheye fronts. Output dimensions stay `same-as:source` —
10
+ * sampling is symmetrical between the two modes, so the host doesn't have to
11
+ * resize.
12
+ */
13
+ import tgpu from "typegpu";
14
+ import * as d from "typegpu/data";
15
+ import { defineModule } from "../../../../module.js";
16
+ export const PolarRemapParams = d.struct({
17
+ mode: d.f32
18
+ });
19
+ const layout = tgpu.bindGroupLayout({
20
+ params: { uniform: PolarRemapParams },
21
+ source: { texture: "float" },
22
+ samp: { sampler: "filtering" }
23
+ });
24
+ const samplerDescriptor = {
25
+ magFilter: "linear",
26
+ minFilter: "linear",
27
+ addressModeU: "clamp-to-edge",
28
+ addressModeV: "clamp-to-edge"
29
+ };
30
+ export const transformPolarRemapV1 = defineModule({
31
+ id: "transform.polarRemap",
32
+ version: 1,
33
+ surface: "internal",
34
+ category: "transform",
35
+ linearity: "linear-in-rgb",
36
+ kind: "fragment",
37
+ params: PolarRemapParams,
38
+ paramDefaults: { mode: 0 },
39
+ paramUi: {
40
+ mode: {
41
+ min: 0,
42
+ max: 1,
43
+ step: 1,
44
+ label: "Mode",
45
+ notes: "0 rect→polar / 1 polar→rect"
46
+ }
47
+ },
48
+ layout,
49
+ samplers: { samp: samplerDescriptor },
50
+ wgsl: /* wgsl */ `
51
+ @fragment
52
+ fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
53
+ let mode = i32(round(layout.$.params.mode));
54
+ let pi = 3.14159265358979;
55
+ if (mode == 0) {
56
+ // rect → polar: output (x, y) lives in (angle, radius) space.
57
+ // Sample the source at the cartesian position that maps to (angle, r).
58
+ let angle = uv.x * (2.0 * pi);
59
+ let r = uv.y;
60
+ let s = vec2f(0.5 + r * 0.5 * cos(angle), 0.5 + r * 0.5 * sin(angle));
61
+ return textureSample(layout.$.source, layout.$.samp, s);
62
+ }
63
+ // polar → rect: treat the source's u-axis as angle and v-axis as radius.
64
+ // Output is a centered disc; convert this output's cartesian (uv) to (r,θ)
65
+ // and sample the source there.
66
+ let centered = uv - vec2f(0.5);
67
+ let r = length(centered) * 2.0;
68
+ var angle = atan2(centered.y, centered.x);
69
+ if (angle < 0.0) {
70
+ angle = angle + 2.0 * pi;
71
+ }
72
+ // Sample unconditionally (textureSample must run in uniform control flow);
73
+ // select transparent black outside the inscribed disc.
74
+ let col = textureSample(layout.$.source, layout.$.samp, vec2f(angle / (2.0 * pi), r));
75
+ return select(col, vec4f(0.0), r > 1.0);
76
+ }
77
+ `,
78
+ io: {
79
+ inputs: {
80
+ source: {
81
+ colorSpace: "linear",
82
+ alpha: "premultiplied",
83
+ bindingKinds: ["texture_2d"]
84
+ }
85
+ },
86
+ output: {
87
+ colorSpace: "linear",
88
+ alpha: "premultiplied",
89
+ format: "rgba8unorm",
90
+ dimensions: "same-as:source"
91
+ },
92
+ rod: "same-as:source"
93
+ }
94
+ });
95
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/transform/polarRemap/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,GAAG;CACZ,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;IACrC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAyB;IAC9C,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;IAChD,EAAE,EAAE,sBAAsB;IAC1B,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,gBAAgB;IACxB,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IAC1B,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,6BAA6B;SACrC;KACF;IACD,MAAM;IACN,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BlB;IACC,EAAE,EAAE;QACF,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,UAAU,EAAE,QAAQ;gBACpB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;aAC7B;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,gBAAgB;SAC7B;QACD,GAAG,EAAE,gBAAgB;KACtB;CACF,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `transform.resize@1` — resample the source onto a host-specified target.
3
+ *
4
+ * `mode` picks the algorithm: `0` nearest-neighbour (point sample, pixel-art
5
+ * safe), `1` bilinear (default), `2` bicubic (Catmull–Rom). Output dimensions
6
+ * are `host-specified` — the host allocates whatever target size it wants;
7
+ * the shader maps each output pixel back to source UV space and samples.
8
+ *
9
+ * Bilinear uses the bound `filtering` sampler. Nearest snaps UVs to source
10
+ * texel centers with the same sampler (one binding rather than two). Bicubic
11
+ * implements a 4×4 Catmull–Rom kernel in WGSL.
12
+ */
13
+ import * as d from "typegpu/data";
14
+ export declare const ResizeParams: d.WgslStruct<{
15
+ mode: d.F32;
16
+ }>;
17
+ export declare const transformResizeV1: import("../../../../module.js").ShaderModule<d.WgslStruct<{
18
+ mode: d.F32;
19
+ }>>;
20
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/transform/resize/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,YAAY;;EAEvB,CAAC;AAeH,eAAO,MAAM,iBAAiB;;GAqF5B,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * `transform.resize@1` — resample the source onto a host-specified target.
3
+ *
4
+ * `mode` picks the algorithm: `0` nearest-neighbour (point sample, pixel-art
5
+ * safe), `1` bilinear (default), `2` bicubic (Catmull–Rom). Output dimensions
6
+ * are `host-specified` — the host allocates whatever target size it wants;
7
+ * the shader maps each output pixel back to source UV space and samples.
8
+ *
9
+ * Bilinear uses the bound `filtering` sampler. Nearest snaps UVs to source
10
+ * texel centers with the same sampler (one binding rather than two). Bicubic
11
+ * implements a 4×4 Catmull–Rom kernel in WGSL.
12
+ */
13
+ import tgpu from "typegpu";
14
+ import * as d from "typegpu/data";
15
+ import { defineModule } from "../../../../module.js";
16
+ export const ResizeParams = d.struct({
17
+ mode: d.f32
18
+ });
19
+ const layout = tgpu.bindGroupLayout({
20
+ params: { uniform: ResizeParams },
21
+ source: { texture: "float" },
22
+ samp: { sampler: "filtering" }
23
+ });
24
+ const samplerDescriptor = {
25
+ magFilter: "linear",
26
+ minFilter: "linear",
27
+ addressModeU: "clamp-to-edge",
28
+ addressModeV: "clamp-to-edge"
29
+ };
30
+ export const transformResizeV1 = defineModule({
31
+ id: "transform.resize",
32
+ version: 1,
33
+ surface: "internal",
34
+ category: "transform",
35
+ linearity: "linear-in-rgb",
36
+ kind: "fragment",
37
+ params: ResizeParams,
38
+ paramDefaults: { mode: 1 },
39
+ paramUi: {
40
+ mode: {
41
+ min: 0,
42
+ max: 2,
43
+ step: 1,
44
+ label: "Mode",
45
+ notes: "0 nearest / 1 bilinear / 2 bicubic"
46
+ }
47
+ },
48
+ layout,
49
+ samplers: { samp: samplerDescriptor },
50
+ wgsl: /* wgsl */ `
51
+ fn cubicWeight(x: f32) -> f32 {
52
+ // Catmull–Rom (a = -0.5). Symmetric in x.
53
+ let ax = abs(x);
54
+ if (ax < 1.0) {
55
+ return ((1.5 * ax - 2.5) * ax * ax) + 1.0;
56
+ }
57
+ if (ax < 2.0) {
58
+ return (((-0.5 * ax + 2.5) * ax - 4.0) * ax) + 2.0;
59
+ }
60
+ return 0.0;
61
+ }
62
+
63
+ fn sampleBicubic(uv: vec2f, dims: vec2f) -> vec4f {
64
+ // Map UV → texel-center coords, take floor as the kernel anchor, sweep the
65
+ // surrounding 4×4 neighborhood and accumulate weighted samples.
66
+ let center = uv * dims - vec2f(0.5);
67
+ let baseI = floor(center);
68
+ let frac = center - baseI;
69
+ var color = vec4f(0.0);
70
+ var weight: f32 = 0.0;
71
+ for (var j = -1; j <= 2; j = j + 1) {
72
+ let wy = cubicWeight(f32(j) - frac.y);
73
+ for (var i = -1; i <= 2; i = i + 1) {
74
+ let wx = cubicWeight(f32(i) - frac.x);
75
+ let w = wx * wy;
76
+ let texel = baseI + vec2f(f32(i), f32(j)) + vec2f(0.5);
77
+ let u = clamp(texel / dims, vec2f(0.0), vec2f(1.0));
78
+ color = color + textureSample(layout.$.source, layout.$.samp, u) * w;
79
+ weight = weight + w;
80
+ }
81
+ }
82
+ return color / weight;
83
+ }
84
+
85
+ @fragment
86
+ fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
87
+ let mode = i32(round(layout.$.params.mode));
88
+ let dims = vec2f(textureDimensions(layout.$.source));
89
+ if (mode == 0) {
90
+ let snapped = (floor(uv * dims) + vec2f(0.5)) / dims;
91
+ return textureSample(layout.$.source, layout.$.samp, snapped);
92
+ }
93
+ if (mode == 2) {
94
+ return sampleBicubic(uv, dims);
95
+ }
96
+ return textureSample(layout.$.source, layout.$.samp, uv);
97
+ }
98
+ `,
99
+ io: {
100
+ inputs: {
101
+ source: {
102
+ colorSpace: "linear",
103
+ alpha: "premultiplied",
104
+ bindingKinds: ["texture_2d"]
105
+ }
106
+ },
107
+ output: {
108
+ colorSpace: "linear",
109
+ alpha: "premultiplied",
110
+ format: "rgba8unorm",
111
+ dimensions: "host-specified"
112
+ },
113
+ rod: "explicit"
114
+ }
115
+ });
116
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/transform/resize/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,GAAG;CACZ,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;IACjC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAyB;IAC9C,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;IAC5C,EAAE,EAAE,kBAAkB;IACtB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,YAAY;IACpB,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IAC1B,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,oCAAoC;SAC5C;KACF;IACD,MAAM;IACN,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDlB;IACC,EAAE,EAAE;QACF,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,UAAU,EAAE,QAAQ;gBACpB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;aAC7B;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,gBAAgB;SAC7B;QACD,GAAG,EAAE,UAAU;KAChB;CACF,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * `transform.rotate90@1` — rotate by 90°, 180°, or 270° in nearest-friendly
3
+ * steps.
4
+ *
5
+ * `turns` packs the quarter-turn count: `0` identity, `1` 90° CW, `2` 180°,
6
+ * `3` 270° CW (= 90° CCW). Output dimensions are `derived`: the host swaps
7
+ * width/height for odd quarter-turns (90/270) and keeps them for even ones
8
+ * (0/180). The shader maps each output UV back to the corresponding source
9
+ * UV using only normalized-UV arithmetic — quarter-turn rotation around the
10
+ * canvas center is `(u, v) → (1-v, u)` for 90° CW, so the sampler never
11
+ * needs `textureDimensions`.
12
+ *
13
+ * For arbitrary rotations (and translation/scale combined), use
14
+ * `transform.affine@1`. This module exists specifically because quarter-turns
15
+ * have no resampling loss and are extremely common (sensor orientation,
16
+ * EXIF auto-rotate, pixel-art layouts).
17
+ */
18
+ import * as d from "typegpu/data";
19
+ export declare const Rotate90Params: d.WgslStruct<{
20
+ turns: d.F32;
21
+ }>;
22
+ export declare const transformRotate90V1: import("../../../../module.js").ShaderModule<d.WgslStruct<{
23
+ turns: d.F32;
24
+ }>>;
25
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/transform/rotate90/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,cAAc;;EAEzB,CAAC;AAeH,eAAO,MAAM,mBAAmB;;GAsD9B,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * `transform.rotate90@1` — rotate by 90°, 180°, or 270° in nearest-friendly
3
+ * steps.
4
+ *
5
+ * `turns` packs the quarter-turn count: `0` identity, `1` 90° CW, `2` 180°,
6
+ * `3` 270° CW (= 90° CCW). Output dimensions are `derived`: the host swaps
7
+ * width/height for odd quarter-turns (90/270) and keeps them for even ones
8
+ * (0/180). The shader maps each output UV back to the corresponding source
9
+ * UV using only normalized-UV arithmetic — quarter-turn rotation around the
10
+ * canvas center is `(u, v) → (1-v, u)` for 90° CW, so the sampler never
11
+ * needs `textureDimensions`.
12
+ *
13
+ * For arbitrary rotations (and translation/scale combined), use
14
+ * `transform.affine@1`. This module exists specifically because quarter-turns
15
+ * have no resampling loss and are extremely common (sensor orientation,
16
+ * EXIF auto-rotate, pixel-art layouts).
17
+ */
18
+ import tgpu from "typegpu";
19
+ import * as d from "typegpu/data";
20
+ import { defineModule } from "../../../../module.js";
21
+ export const Rotate90Params = d.struct({
22
+ turns: d.f32
23
+ });
24
+ const layout = tgpu.bindGroupLayout({
25
+ params: { uniform: Rotate90Params },
26
+ source: { texture: "float" },
27
+ samp: { sampler: "filtering" }
28
+ });
29
+ const samplerDescriptor = {
30
+ magFilter: "nearest",
31
+ minFilter: "nearest",
32
+ addressModeU: "clamp-to-edge",
33
+ addressModeV: "clamp-to-edge"
34
+ };
35
+ export const transformRotate90V1 = defineModule({
36
+ id: "transform.rotate90",
37
+ version: 1,
38
+ surface: "internal",
39
+ category: "transform",
40
+ linearity: "linear-in-rgb",
41
+ kind: "fragment",
42
+ params: Rotate90Params,
43
+ paramDefaults: { turns: 1 },
44
+ paramUi: {
45
+ turns: {
46
+ min: 0,
47
+ max: 3,
48
+ step: 1,
49
+ label: "Turns (CW)",
50
+ notes: "0 / 1=90° / 2=180° / 3=270°"
51
+ }
52
+ },
53
+ layout,
54
+ samplers: { samp: samplerDescriptor },
55
+ wgsl: /* wgsl */ `
56
+ @fragment
57
+ fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
58
+ let t = i32(round(layout.$.params.turns)) & 3;
59
+ // Map output UV (in the rotated canvas) back to source UV by applying the
60
+ // inverse rotation. Quarter-turn rotation around the canvas center is
61
+ // (u, v) → (1-v, u) for 90° CW; the inverse for sampling is (u, v) → (v, 1-u).
62
+ var s = uv;
63
+ if (t == 1) {
64
+ s = vec2f(uv.y, 1.0 - uv.x);
65
+ } else if (t == 2) {
66
+ s = vec2f(1.0 - uv.x, 1.0 - uv.y);
67
+ } else if (t == 3) {
68
+ s = vec2f(1.0 - uv.y, uv.x);
69
+ }
70
+ return textureSample(layout.$.source, layout.$.samp, s);
71
+ }
72
+ `,
73
+ io: {
74
+ inputs: {
75
+ source: {
76
+ colorSpace: "linear",
77
+ alpha: "premultiplied",
78
+ bindingKinds: ["texture_2d"]
79
+ }
80
+ },
81
+ output: {
82
+ colorSpace: "linear",
83
+ alpha: "premultiplied",
84
+ format: "rgba8unorm",
85
+ dimensions: "derived"
86
+ },
87
+ rod: "explicit"
88
+ }
89
+ });
90
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/transform/rotate90/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,GAAG;CACb,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;IACnC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAyB;IAC9C,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;IAC9C,EAAE,EAAE,oBAAoB;IACxB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,cAAc;IACtB,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3B,OAAO,EAAE;QACP,KAAK,EAAE;YACL,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,6BAA6B;SACrC;KACF;IACD,MAAM;IACN,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;CAiBlB;IACC,EAAE,EAAE;QACF,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,UAAU,EAAE,QAAQ;gBACpB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;aAC7B;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,SAAS;SACtB;QACD,GAAG,EAAE,UAAU;KAChB;CACF,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * `transform.spherize@1` — spherical/fisheye lens distortion centered on the
3
+ * source.
4
+ *
5
+ * `amount > 0` bulges the centre outward (fisheye, magnifying-glass);
6
+ * `amount < 0` pinches it inward. The implementation is the classic
7
+ * Photoshop-style normalized-radius warp: convert UV to centered polar,
8
+ * remap the radius by `r' = r * (1 + amount * (1 - r²))`, convert back.
9
+ *
10
+ * Output dimensions stay `same-as:source`. Pixels outside the unit circle
11
+ * pass through unchanged so the corners of a rectangular source aren't
12
+ * snipped; pixels inside the circle get the spherical remap.
13
+ */
14
+ import * as d from "typegpu/data";
15
+ export declare const SpherizeParams: d.WgslStruct<{
16
+ amount: d.F32;
17
+ }>;
18
+ export declare const transformSpherizeV1: import("../../../../module.js").ShaderModule<d.WgslStruct<{
19
+ amount: d.F32;
20
+ }>>;
21
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/transform/spherize/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,cAAc;;EAEzB,CAAC;AAeH,eAAO,MAAM,mBAAmB;;GA8D9B,CAAC"}