@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,94 @@
1
+ /**
2
+ * `color.channelShuffle@1` — permute / rebroadcast source channels onto the
3
+ * output.
4
+ *
5
+ * Four integer indices (`rFrom`, `gFrom`, `bFrom`, `aFrom`) pick which input
6
+ * channel feeds each output channel: `0` R, `1` G, `2` B, `3` A. The
7
+ * identity permutation `(0, 1, 2, 3)` is passthrough; common swaps include
8
+ * RGB↔BGR (`2, 1, 0, 3`) and "alpha to grayscale" (`3, 3, 3, 3`).
9
+ *
10
+ * Premultiplication: the pool's contract is that alpha is premultiplied
11
+ * between modules, so the shader un-premultiplies the source's RGB by its
12
+ * original alpha before picking, then re-premultiplies the result by the
13
+ * shuffled output alpha. That keeps the canonical premultiplied invariant
14
+ * intact regardless of which input channel `aFrom` points at.
15
+ */
16
+ import tgpu from "typegpu";
17
+ import * as d from "typegpu/data";
18
+ import { defineModule } from "../../../../module.js";
19
+ export const ChannelShuffleParams = d.struct({
20
+ rFrom: d.f32,
21
+ gFrom: d.f32,
22
+ bFrom: d.f32,
23
+ aFrom: d.f32
24
+ });
25
+ const layout = tgpu.bindGroupLayout({
26
+ params: { uniform: ChannelShuffleParams },
27
+ source: { texture: "float" },
28
+ samp: { sampler: "filtering" }
29
+ });
30
+ const samplerDescriptor = {
31
+ magFilter: "linear",
32
+ minFilter: "linear",
33
+ addressModeU: "clamp-to-edge",
34
+ addressModeV: "clamp-to-edge"
35
+ };
36
+ export const colorChannelShuffleV1 = defineModule({
37
+ id: "color.channelShuffle",
38
+ version: 1,
39
+ surface: "internal",
40
+ category: "color",
41
+ linearity: "nonlinear-in-rgb",
42
+ kind: "fragment",
43
+ params: ChannelShuffleParams,
44
+ paramDefaults: { rFrom: 0, gFrom: 1, bFrom: 2, aFrom: 3 },
45
+ paramUi: {
46
+ rFrom: { min: 0, max: 3, step: 1, label: "R ← channel", notes: "0 R / 1 G / 2 B / 3 A" },
47
+ gFrom: { min: 0, max: 3, step: 1, label: "G ← channel", notes: "0 R / 1 G / 2 B / 3 A" },
48
+ bFrom: { min: 0, max: 3, step: 1, label: "B ← channel", notes: "0 R / 1 G / 2 B / 3 A" },
49
+ aFrom: { min: 0, max: 3, step: 1, label: "A ← channel", notes: "0 R / 1 G / 2 B / 3 A" }
50
+ },
51
+ layout,
52
+ samplers: { samp: samplerDescriptor },
53
+ wgsl: /* wgsl */ `
54
+ fn pick(src: vec4f, idx: i32) -> f32 {
55
+ if (idx == 0) { return src.r; }
56
+ if (idx == 1) { return src.g; }
57
+ if (idx == 2) { return src.b; }
58
+ return src.a;
59
+ }
60
+
61
+ @fragment
62
+ fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
63
+ let src = textureSample(layout.$.source, layout.$.samp, uv);
64
+ let p = layout.$.params;
65
+ // Un-premultiply by the source alpha so channels are picked in straight
66
+ // space, then re-premultiply by the chosen output alpha — keeps the pool's
67
+ // premultiplied-between-modules invariant regardless of aFrom.
68
+ let safeA = max(src.a, 0.0001);
69
+ let straight = vec4f(src.rgb / safeA, src.a);
70
+ let outA = pick(straight, i32(round(p.aFrom)) & 3);
71
+ let outR = pick(straight, i32(round(p.rFrom)) & 3) * outA;
72
+ let outG = pick(straight, i32(round(p.gFrom)) & 3) * outA;
73
+ let outB = pick(straight, i32(round(p.bFrom)) & 3) * outA;
74
+ return vec4f(outR, outG, outB, outA);
75
+ }
76
+ `,
77
+ io: {
78
+ inputs: {
79
+ source: {
80
+ colorSpace: "linear",
81
+ alpha: "premultiplied",
82
+ bindingKinds: ["texture_2d"]
83
+ }
84
+ },
85
+ output: {
86
+ colorSpace: "linear",
87
+ alpha: "premultiplied",
88
+ format: "rgba8unorm",
89
+ dimensions: "same-as:source"
90
+ },
91
+ rod: "same-as:source"
92
+ }
93
+ });
94
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/color/channelShuffle/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;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,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,GAAG;IACZ,KAAK,EAAE,CAAC,CAAC,GAAG;IACZ,KAAK,EAAE,CAAC,CAAC,GAAG;IACZ,KAAK,EAAE,CAAC,CAAC,GAAG;CACb,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;IACzC,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,OAAO;IACjB,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,oBAAoB;IAC5B,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;IACzD,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,uBAAuB,EAAE;QACxF,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,uBAAuB,EAAE;QACxF,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,uBAAuB,EAAE;QACxF,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,uBAAuB,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,18 @@
1
+ /**
2
+ * `color.channelSplit@1` — output a single channel of the source as
3
+ * opaque grayscale RGB.
4
+ *
5
+ * `mode = 0` red, `1` green, `2` blue, `3` alpha, `4` luminance
6
+ * (`0.299R + 0.587G + 0.114B`). The selected value is broadcast to all three
7
+ * output RGB channels and the alpha is forced to `1.0`, so the result is a
8
+ * standard grayscale visualization safe to chain into any RGBA consumer.
9
+ * Pairs with `color.channelMerge` to build per-channel pipelines.
10
+ */
11
+ import * as d from "typegpu/data";
12
+ export declare const ChannelSplitParams: d.WgslStruct<{
13
+ mode: d.F32;
14
+ }>;
15
+ export declare const colorChannelSplitV1: import("../../../../module.js").ShaderModule<d.WgslStruct<{
16
+ mode: d.F32;
17
+ }>>;
18
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/color/channelSplit/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,kBAAkB;;EAE7B,CAAC;AAeH,eAAO,MAAM,mBAAmB;;GA6D9B,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * `color.channelSplit@1` — output a single channel of the source as
3
+ * opaque grayscale RGB.
4
+ *
5
+ * `mode = 0` red, `1` green, `2` blue, `3` alpha, `4` luminance
6
+ * (`0.299R + 0.587G + 0.114B`). The selected value is broadcast to all three
7
+ * output RGB channels and the alpha is forced to `1.0`, so the result is a
8
+ * standard grayscale visualization safe to chain into any RGBA consumer.
9
+ * Pairs with `color.channelMerge` to build per-channel pipelines.
10
+ */
11
+ import tgpu from "typegpu";
12
+ import * as d from "typegpu/data";
13
+ import { defineModule } from "../../../../module.js";
14
+ export const ChannelSplitParams = d.struct({
15
+ mode: d.f32
16
+ });
17
+ const layout = tgpu.bindGroupLayout({
18
+ params: { uniform: ChannelSplitParams },
19
+ source: { texture: "float" },
20
+ samp: { sampler: "filtering" }
21
+ });
22
+ const samplerDescriptor = {
23
+ magFilter: "linear",
24
+ minFilter: "linear",
25
+ addressModeU: "clamp-to-edge",
26
+ addressModeV: "clamp-to-edge"
27
+ };
28
+ export const colorChannelSplitV1 = defineModule({
29
+ id: "color.channelSplit",
30
+ version: 1,
31
+ surface: "internal",
32
+ category: "color",
33
+ linearity: "nonlinear-in-rgb",
34
+ kind: "fragment",
35
+ params: ChannelSplitParams,
36
+ paramDefaults: { mode: 0 },
37
+ paramUi: {
38
+ mode: {
39
+ min: 0,
40
+ max: 4,
41
+ step: 1,
42
+ label: "Channel",
43
+ notes: "0 R / 1 G / 2 B / 3 A / 4 luma"
44
+ }
45
+ },
46
+ layout,
47
+ samplers: { samp: samplerDescriptor },
48
+ wgsl: /* wgsl */ `
49
+ @fragment
50
+ fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
51
+ let src = textureSample(layout.$.source, layout.$.samp, uv);
52
+ // Un-premultiply so the reported channel/luma reflects the underlying
53
+ // straight colour. Reading premultiplied rgb directly under-reports every
54
+ // channel on partial-alpha pixels (e.g. a 50%-transparent mid-grey reads at
55
+ // half its true value).
56
+ let straight = src.rgb / max(src.a, 1.0 / 255.0);
57
+ let mode = i32(round(layout.$.params.mode));
58
+ var v: f32 = 0.0;
59
+ if (mode == 0) {
60
+ v = straight.r;
61
+ } else if (mode == 1) {
62
+ v = straight.g;
63
+ } else if (mode == 2) {
64
+ v = straight.b;
65
+ } else if (mode == 3) {
66
+ v = src.a;
67
+ } else {
68
+ v = dot(straight, vec3f(0.299, 0.587, 0.114));
69
+ }
70
+ return vec4f(v, v, v, 1.0);
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: "same-as:source"
86
+ },
87
+ rod: "same-as:source"
88
+ }
89
+ });
90
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/color/channelSplit/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,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,GAAG;CACZ,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;IACvC,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,mBAAmB,GAAG,YAAY,CAAC;IAC9C,EAAE,EAAE,oBAAoB;IACxB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,kBAAkB;IAC1B,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,SAAS;YAChB,KAAK,EAAE,gCAAgC;SACxC;KACF;IACD,MAAM;IACN,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CAwBlB;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,18 @@
1
+ /**
2
+ * `color.colorBalance@1` — white-balance temperature / tint shift.
3
+ *
4
+ * Ported verbatim from the CPU `lib.image.color_grading.ColorBalance` loop:
5
+ * temperature pushes red up and blue down (warmer), tint trades green against
6
+ * magenta. Both knobs are scaled by `0.3` then applied additively to straight
7
+ * RGB. Fragment, with the canonical optional mask slot.
8
+ */
9
+ import * as d from "typegpu/data";
10
+ export declare const ColorBalanceParams: d.WgslStruct<{
11
+ temperature: d.F32;
12
+ tint: d.F32;
13
+ }>;
14
+ export declare const colorColorBalanceV1: import("../../../../module.js").ShaderModule<d.WgslStruct<{
15
+ temperature: d.F32;
16
+ tint: d.F32;
17
+ }>>;
18
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/color/colorBalance/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,kBAAkB;;;EAG7B,CAAC;AAgBH,eAAO,MAAM,mBAAmB;;;GAyD9B,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * `color.colorBalance@1` — white-balance temperature / tint shift.
3
+ *
4
+ * Ported verbatim from the CPU `lib.image.color_grading.ColorBalance` loop:
5
+ * temperature pushes red up and blue down (warmer), tint trades green against
6
+ * magenta. Both knobs are scaled by `0.3` then applied additively to straight
7
+ * RGB. Fragment, with the canonical optional mask slot.
8
+ */
9
+ import tgpu from "typegpu";
10
+ import * as d from "typegpu/data";
11
+ import { defineModule } from "../../../../module.js";
12
+ export const ColorBalanceParams = d.struct({
13
+ temperature: d.f32,
14
+ tint: d.f32
15
+ });
16
+ const layout = tgpu.bindGroupLayout({
17
+ params: { uniform: ColorBalanceParams },
18
+ source: { texture: "float" },
19
+ mask: { texture: "float" },
20
+ samp: { sampler: "filtering" }
21
+ });
22
+ const samplerDescriptor = {
23
+ magFilter: "linear",
24
+ minFilter: "linear",
25
+ addressModeU: "clamp-to-edge",
26
+ addressModeV: "clamp-to-edge"
27
+ };
28
+ export const colorColorBalanceV1 = defineModule({
29
+ id: "color.colorBalance",
30
+ version: 1,
31
+ surface: "internal",
32
+ category: "color",
33
+ linearity: "nonlinear-in-rgb",
34
+ kind: "fragment",
35
+ params: ColorBalanceParams,
36
+ paramDefaults: { temperature: 0, tint: 0 },
37
+ paramUi: {
38
+ temperature: { min: -1, max: 1, step: 0.01, label: "Temperature" },
39
+ tint: { min: -1, max: 1, step: 0.01, label: "Tint" }
40
+ },
41
+ layout,
42
+ samplers: { samp: samplerDescriptor },
43
+ wgsl: /* wgsl */ `
44
+ @fragment
45
+ fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
46
+ let src = textureSample(layout.$.source, layout.$.samp, uv);
47
+ let coverage = textureSample(layout.$.mask, layout.$.samp, uv).a;
48
+ let p = layout.$.params;
49
+ // Operate on straight color so the additive shifts act on the underlying
50
+ // colour, not the premultiplied magnitude. Re-premultiply on store.
51
+ let safeA = max(src.a, 1.0 / 255.0);
52
+ let straight = src.rgb / safeA;
53
+ let tempShift = p.temperature * 0.3;
54
+ let tintShift = p.tint * 0.3;
55
+ var rgb = straight;
56
+ rgb.r = rgb.r + tempShift + tintShift * 0.5;
57
+ rgb.g = rgb.g - tintShift;
58
+ rgb.b = rgb.b - tempShift + tintShift * 0.5;
59
+ let mixed = mix(straight, rgb, coverage);
60
+ return vec4f(clamp(mixed, vec3f(0.0), vec3f(1.0)) * src.a, src.a);
61
+ }
62
+ `,
63
+ io: {
64
+ inputs: {
65
+ source: {
66
+ colorSpace: "srgb",
67
+ alpha: "premultiplied",
68
+ bindingKinds: ["texture_2d"]
69
+ },
70
+ mask: {
71
+ colorSpace: "srgb",
72
+ alpha: "premultiplied",
73
+ bindingKinds: ["texture_2d"],
74
+ optional: true
75
+ }
76
+ },
77
+ output: {
78
+ colorSpace: "srgb",
79
+ alpha: "premultiplied",
80
+ format: "rgba8unorm",
81
+ dimensions: "same-as:source"
82
+ },
83
+ rod: "same-as:source"
84
+ }
85
+ });
86
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/color/colorBalance/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,GAAG;IAClB,IAAI,EAAE,CAAC,CAAC,GAAG;CACZ,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;IACvC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC1B,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,mBAAmB,GAAG,YAAY,CAAC;IAC9C,EAAE,EAAE,oBAAoB;IACxB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,kBAAkB;IAC1B,aAAa,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;IAC1C,OAAO,EAAE;QACP,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE;QAClE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;KACrD;IACD,MAAM;IACN,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;CAmBlB;IACC,EAAE,EAAE;QACF,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;aAC7B;YACD,IAAI,EAAE;gBACJ,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;gBAC5B,QAAQ,EAAE,IAAI;aACf;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,gBAAgB;SAC7B;QACD,GAAG,EAAE,gBAAgB;KACtB;CACF,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import * as d from "typegpu/data";
2
+ export declare const CubeLutParams: d.WgslStruct<{
3
+ size: d.F32;
4
+ intensity: d.F32;
5
+ domainMin: d.Vec4f;
6
+ domainMax: d.Vec4f;
7
+ }>;
8
+ export declare const colorCubeLutV1: import("../../../../module.js").ShaderModule<d.WgslStruct<{
9
+ size: d.F32;
10
+ intensity: d.F32;
11
+ domainMin: d.Vec4f;
12
+ domainMax: d.Vec4f;
13
+ }>>;
14
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/color/cubeLut/v1/module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,aAAa;;;;;EAKxB,CAAC;AAUH,eAAO,MAAM,cAAc;;;;;GA4DzB,CAAC"}
@@ -0,0 +1,78 @@
1
+ import tgpu from "typegpu";
2
+ import * as d from "typegpu/data";
3
+ import { defineModule } from "../../../../module.js";
4
+ export const CubeLutParams = d.struct({
5
+ size: d.f32,
6
+ intensity: d.f32,
7
+ domainMin: d.vec4f,
8
+ domainMax: d.vec4f
9
+ });
10
+ const layout = tgpu.bindGroupLayout({
11
+ params: { uniform: CubeLutParams },
12
+ source: { texture: "float" },
13
+ lut: { texture: "float" },
14
+ mask: { texture: "float" },
15
+ samp: { sampler: "filtering" }
16
+ });
17
+ export const colorCubeLutV1 = defineModule({
18
+ id: "color.cubeLut",
19
+ version: 1,
20
+ surface: "internal",
21
+ category: "color",
22
+ linearity: "nonlinear-in-rgb",
23
+ kind: "fragment",
24
+ params: CubeLutParams,
25
+ paramDefaults: {
26
+ size: 2,
27
+ intensity: 1,
28
+ domainMin: d.vec4f(0, 0, 0, 0),
29
+ domainMax: d.vec4f(1, 1, 1, 0)
30
+ },
31
+ layout,
32
+ samplers: { samp: { magFilter: "linear", minFilter: "linear", addressModeU: "clamp-to-edge", addressModeV: "clamp-to-edge" } },
33
+ wgsl: /* wgsl */ `
34
+ fn lookup(r: i32, g: i32, b: i32, size: i32) -> vec3f {
35
+ return textureLoad(layout.$.lut, vec2i(b * size + r, g), 0).rgb;
36
+ }
37
+
38
+ @fragment
39
+ fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
40
+ let p = layout.$.params;
41
+ let src = textureSample(layout.$.source, layout.$.samp, uv);
42
+ let coverage = textureSample(layout.$.mask, layout.$.samp, uv).a;
43
+ let size = i32(round(p.size));
44
+ let straight = src.rgb / max(src.a, 1.0 / 255.0);
45
+ let domain = max(p.domainMax.xyz - p.domainMin.xyz, vec3f(0.000001));
46
+ let coordinate = clamp((straight - p.domainMin.xyz) / domain, vec3f(0.0), vec3f(1.0)) * f32(size - 1);
47
+ let lo = vec3i(floor(coordinate));
48
+ let hi = min(lo + vec3i(1), vec3i(size - 1));
49
+ let f = fract(coordinate);
50
+ var graded = vec3f(0.0);
51
+ for (var bz = 0; bz <= 1; bz = bz + 1) {
52
+ for (var gy = 0; gy <= 1; gy = gy + 1) {
53
+ for (var rx = 0; rx <= 1; rx = rx + 1) {
54
+ let r = select(lo.x, hi.x, rx == 1);
55
+ let g = select(lo.y, hi.y, gy == 1);
56
+ let b = select(lo.z, hi.z, bz == 1);
57
+ let weight = select(1.0 - f.x, f.x, rx == 1)
58
+ * select(1.0 - f.y, f.y, gy == 1)
59
+ * select(1.0 - f.z, f.z, bz == 1);
60
+ graded = graded + lookup(r, g, b, size) * weight;
61
+ }
62
+ }
63
+ }
64
+ let mixAmount = clamp(p.intensity * coverage, 0.0, 1.0);
65
+ return vec4f(clamp(mix(straight, graded, mixAmount), vec3f(0.0), vec3f(1.0)) * src.a, src.a);
66
+ }
67
+ `,
68
+ io: {
69
+ inputs: {
70
+ source: { colorSpace: "srgb", alpha: "premultiplied", bindingKinds: ["texture_2d"] },
71
+ lut: { colorSpace: "srgb", alpha: "premultiplied", bindingKinds: ["texture_2d"] },
72
+ mask: { colorSpace: "srgb", alpha: "premultiplied", bindingKinds: ["texture_2d"], optional: true }
73
+ },
74
+ output: { colorSpace: "srgb", alpha: "premultiplied", format: "rgba8unorm", dimensions: "same-as:source" },
75
+ rod: "same-as:source"
76
+ }
77
+ });
78
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/color/cubeLut/v1/module.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,GAAG;IACX,SAAS,EAAE,CAAC,CAAC,GAAG;IAChB,SAAS,EAAE,CAAC,CAAC,KAAK;IAClB,SAAS,EAAE,CAAC,CAAC,KAAK;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5B,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IACzB,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC1B,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;IACzC,EAAE,EAAE,eAAe;IACnB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,aAAa;IACrB,aAAa,EAAE;QACb,IAAI,EAAE,CAAC;QACP,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KAC/B;IACD,MAAM;IACN,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE;IAC9H,IAAI,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkClB;IACC,EAAE,EAAE;QACF,MAAM,EAAE;YACN,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE;YACpF,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE;YACjF,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;SACnG;QACD,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE;QAC1G,GAAG,EAAE,gBAAgB;KACtB;CACF,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `color.curves@1` — black/white-point levels plus shadow / midtone /
3
+ * highlight tonal bends, with per-channel midtone gamma.
4
+ *
5
+ * Ported verbatim from the CPU `lib.image.color_grading.Curves` loop:
6
+ * remap `[blackPoint, whitePoint]` to `[0, 1]`, apply a parametric shadow lift,
7
+ * a global midtone gamma, a highlight roll, then a per-channel midtone gamma.
8
+ * Fragment, with the canonical optional mask slot.
9
+ */
10
+ import * as d from "typegpu/data";
11
+ export declare const CurvesParams: d.WgslStruct<{
12
+ blackPoint: d.F32;
13
+ whitePoint: d.F32;
14
+ shadows: d.F32;
15
+ midtones: d.F32;
16
+ highlights: d.F32;
17
+ redMidtones: d.F32;
18
+ greenMidtones: d.F32;
19
+ blueMidtones: d.F32;
20
+ }>;
21
+ export declare const colorCurvesV1: import("../../../../module.js").ShaderModule<d.WgslStruct<{
22
+ blackPoint: d.F32;
23
+ whitePoint: d.F32;
24
+ shadows: d.F32;
25
+ midtones: d.F32;
26
+ highlights: d.F32;
27
+ redMidtones: d.F32;
28
+ greenMidtones: d.F32;
29
+ blueMidtones: d.F32;
30
+ }>>;
31
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/color/curves/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,YAAY;;;;;;;;;EASvB,CAAC;AAgBH,eAAO,MAAM,aAAa;;;;;;;;;GAkExB,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * `color.curves@1` — black/white-point levels plus shadow / midtone /
3
+ * highlight tonal bends, with per-channel midtone gamma.
4
+ *
5
+ * Ported verbatim from the CPU `lib.image.color_grading.Curves` loop:
6
+ * remap `[blackPoint, whitePoint]` to `[0, 1]`, apply a parametric shadow lift,
7
+ * a global midtone gamma, a highlight roll, then a per-channel midtone gamma.
8
+ * Fragment, with the canonical optional mask slot.
9
+ */
10
+ import tgpu from "typegpu";
11
+ import * as d from "typegpu/data";
12
+ import { defineModule } from "../../../../module.js";
13
+ export const CurvesParams = d.struct({
14
+ blackPoint: d.f32,
15
+ whitePoint: d.f32,
16
+ shadows: d.f32,
17
+ midtones: d.f32,
18
+ highlights: d.f32,
19
+ redMidtones: d.f32,
20
+ greenMidtones: d.f32,
21
+ blueMidtones: d.f32
22
+ });
23
+ const layout = tgpu.bindGroupLayout({
24
+ params: { uniform: CurvesParams },
25
+ source: { texture: "float" },
26
+ mask: { texture: "float" },
27
+ samp: { sampler: "filtering" }
28
+ });
29
+ const samplerDescriptor = {
30
+ magFilter: "linear",
31
+ minFilter: "linear",
32
+ addressModeU: "clamp-to-edge",
33
+ addressModeV: "clamp-to-edge"
34
+ };
35
+ export const colorCurvesV1 = defineModule({
36
+ id: "color.curves",
37
+ version: 1,
38
+ surface: "internal",
39
+ category: "color",
40
+ linearity: "nonlinear-in-rgb",
41
+ kind: "fragment",
42
+ params: CurvesParams,
43
+ paramDefaults: {
44
+ blackPoint: 0,
45
+ whitePoint: 1,
46
+ shadows: 0,
47
+ midtones: 0,
48
+ highlights: 0,
49
+ redMidtones: 0,
50
+ greenMidtones: 0,
51
+ blueMidtones: 0
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 src = textureSample(layout.$.source, layout.$.samp, uv);
59
+ let coverage = textureSample(layout.$.mask, layout.$.samp, uv).a;
60
+ let p = layout.$.params;
61
+ let safeA = max(src.a, 1.0 / 255.0);
62
+ let straight = src.rgb / safeA;
63
+ let range = max(0.001, p.whitePoint - p.blackPoint);
64
+ let gammaAll = 1.0 / max(0.01, 1.0 + p.midtones);
65
+ let gammaPer = vec3f(
66
+ 1.0 / max(0.01, 1.0 + p.redMidtones),
67
+ 1.0 / max(0.01, 1.0 + p.greenMidtones),
68
+ 1.0 / max(0.01, 1.0 + p.blueMidtones)
69
+ );
70
+ var rgb = clamp((straight - vec3f(p.blackPoint)) / range, vec3f(0.0), vec3f(1.0));
71
+ rgb = rgb + p.shadows * (vec3f(1.0) - rgb) * rgb;
72
+ rgb = pow(max(rgb, vec3f(0.0)), vec3f(gammaAll));
73
+ rgb = rgb + p.highlights * rgb * (vec3f(1.0) - rgb);
74
+ rgb = pow(max(rgb, vec3f(0.0)), gammaPer);
75
+ let mixed = mix(straight, rgb, coverage);
76
+ return vec4f(clamp(mixed, vec3f(0.0), vec3f(1.0)) * src.a, src.a);
77
+ }
78
+ `,
79
+ io: {
80
+ inputs: {
81
+ source: {
82
+ colorSpace: "srgb",
83
+ alpha: "premultiplied",
84
+ bindingKinds: ["texture_2d"]
85
+ },
86
+ mask: {
87
+ colorSpace: "srgb",
88
+ alpha: "premultiplied",
89
+ bindingKinds: ["texture_2d"],
90
+ optional: true
91
+ }
92
+ },
93
+ output: {
94
+ colorSpace: "srgb",
95
+ alpha: "premultiplied",
96
+ format: "rgba8unorm",
97
+ dimensions: "same-as:source"
98
+ },
99
+ rod: "same-as:source"
100
+ }
101
+ });
102
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/color/curves/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,UAAU,EAAE,CAAC,CAAC,GAAG;IACjB,UAAU,EAAE,CAAC,CAAC,GAAG;IACjB,OAAO,EAAE,CAAC,CAAC,GAAG;IACd,QAAQ,EAAE,CAAC,CAAC,GAAG;IACf,UAAU,EAAE,CAAC,CAAC,GAAG;IACjB,WAAW,EAAE,CAAC,CAAC,GAAG;IAClB,aAAa,EAAE,CAAC,CAAC,GAAG;IACpB,YAAY,EAAE,CAAC,CAAC,GAAG;CACpB,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,OAAO,EAAE;IAC1B,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,aAAa,GAAG,YAAY,CAAC;IACxC,EAAE,EAAE,cAAc;IAClB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,YAAY;IACpB,aAAa,EAAE;QACb,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,CAAC;KAChB;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,MAAM;gBAClB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;aAC7B;YACD,IAAI,EAAE;gBACJ,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;gBAC5B,QAAQ,EAAE,IAAI;aACf;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,gBAAgB;SAC7B;QACD,GAAG,EAAE,gBAAgB;KACtB;CACF,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `color.exposure@1` — multiplicative exposure in stops (`rgb *= pow(2, stops)`).
3
+ *
4
+ * `0` stops is passthrough; `+1` doubles, `-1` halves. Clamps output to
5
+ * `[0, 1]` since the working format is SDR; HDR exposure ships with the
6
+ * separate HDR pipeline plan. Fragment, with the canonical mask slot.
7
+ */
8
+ import * as d from "typegpu/data";
9
+ export declare const ExposureParams: d.WgslStruct<{
10
+ stops: d.F32;
11
+ }>;
12
+ export declare const colorExposureV1: import("../../../../module.js").ShaderModule<d.WgslStruct<{
13
+ stops: d.F32;
14
+ }>>;
15
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/color/exposure/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,cAAc;;EAEzB,CAAC;AAgBH,eAAO,MAAM,eAAe;;GAmD1B,CAAC"}