@flighthq/effects-wgpu 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/dist/index.d.ts +17 -10
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +17 -10
  4. package/dist/index.js.map +1 -1
  5. package/dist/wgpuBevelEffect.d.ts +4 -0
  6. package/dist/wgpuBevelEffect.d.ts.map +1 -0
  7. package/dist/wgpuBevelEffect.js +122 -0
  8. package/dist/wgpuBevelEffect.js.map +1 -0
  9. package/dist/wgpuBloomEffect.d.ts.map +1 -1
  10. package/dist/wgpuBloomEffect.js +9 -8
  11. package/dist/wgpuBloomEffect.js.map +1 -1
  12. package/dist/wgpuBlurEffect.d.ts +8 -0
  13. package/dist/wgpuBlurEffect.d.ts.map +1 -0
  14. package/dist/wgpuBlurEffect.js +70 -0
  15. package/dist/wgpuBlurEffect.js.map +1 -0
  16. package/dist/wgpuBokehDepthOfFieldEffect.d.ts.map +1 -1
  17. package/dist/wgpuBokehDepthOfFieldEffect.js +2 -2
  18. package/dist/wgpuBokehDepthOfFieldEffect.js.map +1 -1
  19. package/dist/wgpuCameraMotionBlurEffect.d.ts.map +1 -1
  20. package/dist/wgpuCameraMotionBlurEffect.js +2 -2
  21. package/dist/wgpuCameraMotionBlurEffect.js.map +1 -1
  22. package/dist/wgpuChromaticAberrationEffect.d.ts.map +1 -1
  23. package/dist/wgpuChromaticAberrationEffect.js +2 -2
  24. package/dist/wgpuChromaticAberrationEffect.js.map +1 -1
  25. package/dist/wgpuColorLutPass.d.ts +3 -0
  26. package/dist/wgpuColorLutPass.d.ts.map +1 -0
  27. package/dist/wgpuColorLutPass.js +144 -0
  28. package/dist/wgpuColorLutPass.js.map +1 -0
  29. package/dist/wgpuColorMatrixPass.d.ts +3 -0
  30. package/dist/wgpuColorMatrixPass.d.ts.map +1 -0
  31. package/dist/wgpuColorMatrixPass.js +51 -0
  32. package/dist/wgpuColorMatrixPass.js.map +1 -0
  33. package/dist/wgpuConvolutionEffect.d.ts +5 -0
  34. package/dist/wgpuConvolutionEffect.d.ts.map +1 -0
  35. package/dist/wgpuConvolutionEffect.js +108 -0
  36. package/dist/wgpuConvolutionEffect.js.map +1 -0
  37. package/dist/wgpuCrtEffect.d.ts.map +1 -1
  38. package/dist/wgpuCrtEffect.js +2 -2
  39. package/dist/wgpuCrtEffect.js.map +1 -1
  40. package/dist/wgpuDirectionalBlurEffect.d.ts.map +1 -1
  41. package/dist/wgpuDirectionalBlurEffect.js +2 -2
  42. package/dist/wgpuDirectionalBlurEffect.js.map +1 -1
  43. package/dist/wgpuDisplacementEffect.d.ts.map +1 -1
  44. package/dist/wgpuDisplacementEffect.js +2 -2
  45. package/dist/wgpuDisplacementEffect.js.map +1 -1
  46. package/dist/wgpuDitherEffect.d.ts.map +1 -1
  47. package/dist/wgpuDitherEffect.js +2 -2
  48. package/dist/wgpuDitherEffect.js.map +1 -1
  49. package/dist/wgpuDropShadowEffect.d.ts +4 -0
  50. package/dist/wgpuDropShadowEffect.d.ts.map +1 -0
  51. package/dist/wgpuDropShadowEffect.js +49 -0
  52. package/dist/wgpuDropShadowEffect.js.map +1 -0
  53. package/dist/wgpuEffectBlitShader.d.ts +15 -0
  54. package/dist/wgpuEffectBlitShader.d.ts.map +1 -0
  55. package/dist/wgpuEffectBlitShader.js +71 -0
  56. package/dist/wgpuEffectBlitShader.js.map +1 -0
  57. package/dist/wgpuEffectBoxBlur.d.ts +14 -0
  58. package/dist/wgpuEffectBoxBlur.d.ts.map +1 -0
  59. package/dist/wgpuEffectBoxBlur.js +81 -0
  60. package/dist/wgpuEffectBoxBlur.js.map +1 -0
  61. package/dist/wgpuEffectGradientRamp.d.ts +17 -0
  62. package/dist/wgpuEffectGradientRamp.d.ts.map +1 -0
  63. package/dist/wgpuEffectGradientRamp.js +89 -0
  64. package/dist/wgpuEffectGradientRamp.js.map +1 -0
  65. package/dist/wgpuEffectPass.d.ts +41 -0
  66. package/dist/wgpuEffectPass.d.ts.map +1 -0
  67. package/dist/wgpuEffectPass.js +259 -0
  68. package/dist/wgpuEffectPass.js.map +1 -0
  69. package/dist/wgpuEffectProgramCache.d.ts +2 -2
  70. package/dist/wgpuEffectProgramCache.d.ts.map +1 -1
  71. package/dist/wgpuEffectProgramCache.js +5 -5
  72. package/dist/wgpuEffectProgramCache.js.map +1 -1
  73. package/dist/wgpuEffectTintShader.d.ts +8 -0
  74. package/dist/wgpuEffectTintShader.d.ts.map +1 -0
  75. package/dist/wgpuEffectTintShader.js +109 -0
  76. package/dist/wgpuEffectTintShader.js.map +1 -0
  77. package/dist/wgpuFilmGrainEffect.d.ts.map +1 -1
  78. package/dist/wgpuFilmGrainEffect.js +2 -2
  79. package/dist/wgpuFilmGrainEffect.js.map +1 -1
  80. package/dist/wgpuFxaaEffect.d.ts.map +1 -1
  81. package/dist/wgpuFxaaEffect.js +2 -2
  82. package/dist/wgpuFxaaEffect.js.map +1 -1
  83. package/dist/wgpuGlitchEffect.d.ts.map +1 -1
  84. package/dist/wgpuGlitchEffect.js +2 -2
  85. package/dist/wgpuGlitchEffect.js.map +1 -1
  86. package/dist/wgpuGodRaysEffect.d.ts.map +1 -1
  87. package/dist/wgpuGodRaysEffect.js +2 -2
  88. package/dist/wgpuGodRaysEffect.js.map +1 -1
  89. package/dist/wgpuGradientBevelEffect.d.ts +4 -0
  90. package/dist/wgpuGradientBevelEffect.d.ts.map +1 -0
  91. package/dist/wgpuGradientBevelEffect.js +189 -0
  92. package/dist/wgpuGradientBevelEffect.js.map +1 -0
  93. package/dist/wgpuGradientGlowEffect.d.ts +4 -0
  94. package/dist/wgpuGradientGlowEffect.d.ts.map +1 -0
  95. package/dist/wgpuGradientGlowEffect.js +97 -0
  96. package/dist/wgpuGradientGlowEffect.js.map +1 -0
  97. package/dist/wgpuHalftoneEffect.d.ts.map +1 -1
  98. package/dist/wgpuHalftoneEffect.js +2 -2
  99. package/dist/wgpuHalftoneEffect.js.map +1 -1
  100. package/dist/wgpuInnerGlowEffect.d.ts +4 -0
  101. package/dist/wgpuInnerGlowEffect.d.ts.map +1 -0
  102. package/dist/wgpuInnerGlowEffect.js +37 -0
  103. package/dist/wgpuInnerGlowEffect.js.map +1 -0
  104. package/dist/wgpuInnerShadowEffect.d.ts +4 -0
  105. package/dist/wgpuInnerShadowEffect.d.ts.map +1 -0
  106. package/dist/wgpuInnerShadowEffect.js +42 -0
  107. package/dist/wgpuInnerShadowEffect.js.map +1 -0
  108. package/dist/wgpuKuwaharaEffect.d.ts.map +1 -1
  109. package/dist/wgpuKuwaharaEffect.js +2 -2
  110. package/dist/wgpuKuwaharaEffect.js.map +1 -1
  111. package/dist/wgpuLensDirtEffect.d.ts.map +1 -1
  112. package/dist/wgpuLensDirtEffect.js +2 -2
  113. package/dist/wgpuLensDirtEffect.js.map +1 -1
  114. package/dist/wgpuLensDistortionEffect.d.ts.map +1 -1
  115. package/dist/wgpuLensDistortionEffect.js +2 -2
  116. package/dist/wgpuLensDistortionEffect.js.map +1 -1
  117. package/dist/wgpuLensFlareEffect.d.ts.map +1 -1
  118. package/dist/wgpuLensFlareEffect.js +2 -2
  119. package/dist/wgpuLensFlareEffect.js.map +1 -1
  120. package/dist/wgpuMedianEffect.d.ts +5 -0
  121. package/dist/wgpuMedianEffect.d.ts.map +1 -0
  122. package/dist/wgpuMedianEffect.js +74 -0
  123. package/dist/wgpuMedianEffect.js.map +1 -0
  124. package/dist/wgpuMotionBlurEffect.d.ts.map +1 -1
  125. package/dist/wgpuMotionBlurEffect.js +6 -7
  126. package/dist/wgpuMotionBlurEffect.js.map +1 -1
  127. package/dist/wgpuOuterGlowEffect.d.ts +4 -0
  128. package/dist/wgpuOuterGlowEffect.d.ts.map +1 -0
  129. package/dist/wgpuOuterGlowEffect.js +43 -0
  130. package/dist/wgpuOuterGlowEffect.js.map +1 -0
  131. package/dist/wgpuOutlineEffect.d.ts.map +1 -1
  132. package/dist/wgpuOutlineEffect.js +2 -2
  133. package/dist/wgpuOutlineEffect.js.map +1 -1
  134. package/dist/wgpuPixelateEffect.d.ts.map +1 -1
  135. package/dist/wgpuPixelateEffect.js +2 -2
  136. package/dist/wgpuPixelateEffect.js.map +1 -1
  137. package/dist/wgpuPosterizeEffect.d.ts.map +1 -1
  138. package/dist/wgpuPosterizeEffect.js +2 -2
  139. package/dist/wgpuPosterizeEffect.js.map +1 -1
  140. package/dist/wgpuRadialBlurEffect.d.ts.map +1 -1
  141. package/dist/wgpuRadialBlurEffect.js +2 -2
  142. package/dist/wgpuRadialBlurEffect.js.map +1 -1
  143. package/dist/wgpuRenderEffectPipeline.d.ts +2 -2
  144. package/dist/wgpuRenderEffectPipeline.d.ts.map +1 -1
  145. package/dist/wgpuRenderEffectPipeline.js +59 -9
  146. package/dist/wgpuRenderEffectPipeline.js.map +1 -1
  147. package/dist/wgpuRenderEffectRegistrants.d.ts +1 -0
  148. package/dist/wgpuRenderEffectRegistrants.d.ts.map +1 -1
  149. package/dist/wgpuRenderEffectRegistrants.js +39 -28
  150. package/dist/wgpuRenderEffectRegistrants.js.map +1 -1
  151. package/dist/wgpuScanlinesEffect.d.ts.map +1 -1
  152. package/dist/wgpuScanlinesEffect.js +2 -2
  153. package/dist/wgpuScanlinesEffect.js.map +1 -1
  154. package/dist/wgpuScreenSpaceFogEffect.d.ts.map +1 -1
  155. package/dist/wgpuScreenSpaceFogEffect.js +2 -2
  156. package/dist/wgpuScreenSpaceFogEffect.js.map +1 -1
  157. package/dist/wgpuSharpenEffect.d.ts.map +1 -1
  158. package/dist/wgpuSharpenEffect.js +2 -2
  159. package/dist/wgpuSharpenEffect.js.map +1 -1
  160. package/dist/wgpuSketchEffect.d.ts.map +1 -1
  161. package/dist/wgpuSketchEffect.js +2 -2
  162. package/dist/wgpuSketchEffect.js.map +1 -1
  163. package/dist/wgpuSmaaEffect.d.ts.map +1 -1
  164. package/dist/wgpuSmaaEffect.js +2 -2
  165. package/dist/wgpuSmaaEffect.js.map +1 -1
  166. package/dist/wgpuSsaoEffect.d.ts.map +1 -1
  167. package/dist/wgpuSsaoEffect.js +2 -2
  168. package/dist/wgpuSsaoEffect.js.map +1 -1
  169. package/dist/wgpuSsrEffect.d.ts.map +1 -1
  170. package/dist/wgpuSsrEffect.js +2 -2
  171. package/dist/wgpuSsrEffect.js.map +1 -1
  172. package/dist/wgpuTaaEffect.d.ts.map +1 -1
  173. package/dist/wgpuTaaEffect.js +2 -2
  174. package/dist/wgpuTaaEffect.js.map +1 -1
  175. package/dist/wgpuTiltShiftEffect.d.ts.map +1 -1
  176. package/dist/wgpuTiltShiftEffect.js +2 -2
  177. package/dist/wgpuTiltShiftEffect.js.map +1 -1
  178. package/dist/wgpuToneMapEffect.d.ts.map +1 -1
  179. package/dist/wgpuToneMapEffect.js +2 -2
  180. package/dist/wgpuToneMapEffect.js.map +1 -1
  181. package/dist/wgpuVignetteEffect.d.ts.map +1 -1
  182. package/dist/wgpuVignetteEffect.js +2 -2
  183. package/dist/wgpuVignetteEffect.js.map +1 -1
  184. package/dist/wgpuWhiteBalanceEffect.d.ts.map +1 -1
  185. package/dist/wgpuWhiteBalanceEffect.js +2 -2
  186. package/dist/wgpuWhiteBalanceEffect.js.map +1 -1
  187. package/package.json +11 -7
  188. package/src/wgpuBevelEffect.test.ts +13 -0
  189. package/src/wgpuBlurEffect.test.ts +19 -0
  190. package/src/wgpuColorLutPass.test.ts +7 -0
  191. package/src/wgpuColorMatrixPass.test.ts +7 -0
  192. package/src/wgpuConvolutionEffect.test.ts +13 -0
  193. package/src/wgpuDropShadowEffect.test.ts +13 -0
  194. package/src/wgpuEffectBlitShader.test.ts +13 -0
  195. package/src/wgpuEffectBoxBlur.test.ts +7 -0
  196. package/src/wgpuEffectGradientRamp.test.ts +7 -0
  197. package/src/wgpuEffectPass.test.ts +51 -0
  198. package/src/wgpuEffectTintShader.test.ts +23 -0
  199. package/src/wgpuGradientBevelEffect.test.ts +13 -0
  200. package/src/wgpuGradientGlowEffect.test.ts +13 -0
  201. package/src/wgpuInnerGlowEffect.test.ts +13 -0
  202. package/src/wgpuInnerShadowEffect.test.ts +13 -0
  203. package/src/wgpuMedianEffect.test.ts +13 -0
  204. package/src/wgpuOuterGlowEffect.test.ts +13 -0
  205. package/src/wgpuRenderEffectPipeline.test.ts +2 -0
  206. package/src/wgpuRenderEffectRegistrants.test.ts +25 -14
  207. package/dist/wgpuBrightnessContrastEffect.d.ts +0 -4
  208. package/dist/wgpuBrightnessContrastEffect.d.ts.map +0 -1
  209. package/dist/wgpuBrightnessContrastEffect.js +0 -29
  210. package/dist/wgpuBrightnessContrastEffect.js.map +0 -1
  211. package/dist/wgpuChannelMixerEffect.d.ts +0 -4
  212. package/dist/wgpuChannelMixerEffect.d.ts.map +0 -1
  213. package/dist/wgpuChannelMixerEffect.js +0 -34
  214. package/dist/wgpuChannelMixerEffect.js.map +0 -1
  215. package/dist/wgpuColorGradeEffect.d.ts +0 -4
  216. package/dist/wgpuColorGradeEffect.d.ts.map +0 -1
  217. package/dist/wgpuColorGradeEffect.js +0 -52
  218. package/dist/wgpuColorGradeEffect.js.map +0 -1
  219. package/dist/wgpuExposureEffect.d.ts +0 -4
  220. package/dist/wgpuExposureEffect.d.ts.map +0 -1
  221. package/dist/wgpuExposureEffect.js +0 -28
  222. package/dist/wgpuExposureEffect.js.map +0 -1
  223. package/dist/wgpuGrayscaleEffect.d.ts +0 -4
  224. package/dist/wgpuGrayscaleEffect.d.ts.map +0 -1
  225. package/dist/wgpuGrayscaleEffect.js +0 -27
  226. package/dist/wgpuGrayscaleEffect.js.map +0 -1
  227. package/dist/wgpuHueSaturationEffect.d.ts +0 -4
  228. package/dist/wgpuHueSaturationEffect.d.ts.map +0 -1
  229. package/dist/wgpuHueSaturationEffect.js +0 -75
  230. package/dist/wgpuHueSaturationEffect.js.map +0 -1
  231. package/dist/wgpuInvertEffect.d.ts +0 -4
  232. package/dist/wgpuInvertEffect.d.ts.map +0 -1
  233. package/dist/wgpuInvertEffect.js +0 -26
  234. package/dist/wgpuInvertEffect.js.map +0 -1
  235. package/dist/wgpuLiftGammaGainEffect.d.ts +0 -4
  236. package/dist/wgpuLiftGammaGainEffect.d.ts.map +0 -1
  237. package/dist/wgpuLiftGammaGainEffect.js +0 -51
  238. package/dist/wgpuLiftGammaGainEffect.js.map +0 -1
  239. package/dist/wgpuLookupTableGradeEffect.d.ts +0 -4
  240. package/dist/wgpuLookupTableGradeEffect.d.ts.map +0 -1
  241. package/dist/wgpuLookupTableGradeEffect.js +0 -30
  242. package/dist/wgpuLookupTableGradeEffect.js.map +0 -1
  243. package/dist/wgpuSepiaEffect.d.ts +0 -4
  244. package/dist/wgpuSepiaEffect.d.ts.map +0 -1
  245. package/dist/wgpuSepiaEffect.js +0 -31
  246. package/dist/wgpuSepiaEffect.js.map +0 -1
  247. package/src/wgpuBrightnessContrastEffect.test.ts +0 -16
  248. package/src/wgpuChannelMixerEffect.test.ts +0 -13
  249. package/src/wgpuColorGradeEffect.test.ts +0 -13
  250. package/src/wgpuExposureEffect.test.ts +0 -13
  251. package/src/wgpuGrayscaleEffect.test.ts +0 -13
  252. package/src/wgpuHueSaturationEffect.test.ts +0 -13
  253. package/src/wgpuInvertEffect.test.ts +0 -13
  254. package/src/wgpuLiftGammaGainEffect.test.ts +0 -13
  255. package/src/wgpuLookupTableGradeEffect.test.ts +0 -16
  256. package/src/wgpuSepiaEffect.test.ts +0 -13
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuChannelMixerEffect.js","sourceRoot":"","sources":["../src/wgpuChannelMixerEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,sGAAsG;AACtG,wGAAwG;AACxG,MAAM,UAAU,6BAA6B,CAC3C,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAoC;IAEpC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;QAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,SAAS,CAAC,CAAC;IACjH,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,mCAAmC,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACzF,6BAA6B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA4B,CAAC,CAAC;AAC/F,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEvF,mGAAmG;AACnG,MAAM,2BAA2B,GAAG,UAAU,CAAC;;;;;;;;;;;;;EAa7C,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { ColorGradeEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
2
- export declare function applyColorGradeEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<ColorGradeEffect>): void;
3
- export declare const defaultWgpuColorGradeEffectRunner: WgpuRenderEffectRunner;
4
- //# sourceMappingURL=wgpuColorGradeEffect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuColorGradeEffect.d.ts","sourceRoot":"","sources":["../src/wgpuColorGradeEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKnH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACjC,IAAI,CAgBN;AAED,eAAO,MAAM,iCAAiC,EAAE,sBAE/C,CAAC"}
@@ -1,52 +0,0 @@
1
- import { drawWgpuFilterPass } from '@flighthq/filters-wgpu';
2
- import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
3
- // Color grade: combined exposure, brightness, contrast, saturation, and temperature/tint shift.
4
- export function applyColorGradeEffectToWgpu(state, source, dest, effect) {
5
- const exposure = Math.pow(2, effect.exposure ?? 0);
6
- const contrast = effect.contrast ?? 1;
7
- const saturation = effect.saturation ?? 1;
8
- const temperature = effect.temperature ?? 0;
9
- const tint = effect.tint ?? 0;
10
- const brightness = effect.brightness ?? 0;
11
- const pipeline = getWgpuEffectPipeline(state, 'colorGrade.colorGrade', COLOR_GRADE_FRAGMENT_WGSL, 'replace');
12
- drawWgpuFilterPass(state, source, dest, pipeline, (f32) => {
13
- f32[0] = exposure;
14
- f32[1] = contrast;
15
- f32[2] = saturation;
16
- f32[3] = temperature;
17
- f32[4] = tint;
18
- f32[5] = brightness;
19
- });
20
- }
21
- export const defaultWgpuColorGradeEffectRunner = (ctx, effect) => {
22
- applyColorGradeEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
23
- };
24
- // Slot layout: [0]=exposure, [1]=contrast, [2]=saturation, [3]=temperature, [4]=tint, [5]=brightness.
25
- const COLOR_GRADE_FRAGMENT_WGSL = /* wgsl */ `
26
- struct Uniforms {
27
- u_exposure : f32,
28
- u_contrast : f32,
29
- u_saturation : f32,
30
- u_temperature : f32,
31
- u_tint : f32,
32
- u_brightness : f32,
33
- _pad0 : f32,
34
- _pad1 : f32,
35
- }
36
- @group(0) @binding(0) var<uniform> uni : Uniforms;
37
- @group(1) @binding(0) var tex : texture_2d<f32>;
38
- @group(1) @binding(1) var smp : sampler;
39
-
40
- @fragment
41
- fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
42
- let c = textureSampleLevel(tex, smp, uv, 0.0);
43
- var rgb = c.rgb * uni.u_exposure + uni.u_brightness;
44
- rgb.r += uni.u_temperature * 0.5;
45
- rgb.b -= uni.u_temperature * 0.5;
46
- rgb.g += uni.u_tint * 0.5;
47
- let l = dot(rgb, vec3f(0.2126, 0.7152, 0.0722));
48
- rgb = mix(vec3f(l), rgb, uni.u_saturation);
49
- rgb = (rgb - 0.5) * uni.u_contrast + 0.5;
50
- return vec4f(clamp(rgb, vec3f(0.0), vec3f(1.0)), c.a);
51
- }`;
52
- //# sourceMappingURL=wgpuColorGradeEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuColorGradeEffect.js","sourceRoot":"","sources":["../src/wgpuColorGradeEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,gGAAgG;AAChG,MAAM,UAAU,2BAA2B,CACzC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAkC;IAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,SAAS,CAAC,CAAC;IAC7G,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAClB,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAClB,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;QACrB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACd,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,iCAAiC,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACvF,2BAA2B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA0B,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,sGAAsG;AACtG,MAAM,yBAAyB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B3C,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { ExposureEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
2
- export declare function applyExposureEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<ExposureEffect>): void;
3
- export declare const defaultWgpuExposureEffectRunner: WgpuRenderEffectRunner;
4
- //# sourceMappingURL=wgpuExposureEffect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuExposureEffect.d.ts","sourceRoot":"","sources":["../src/wgpuExposureEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMjH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAC/B,IAAI,CAON;AAED,eAAO,MAAM,+BAA+B,EAAE,sBAE7C,CAAC"}
@@ -1,28 +0,0 @@
1
- import { drawWgpuFilterPass } from '@flighthq/filters-wgpu';
2
- import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
3
- // Exposure: scale linear color by 2^stops. Single-pass reference recipe, the Wgpu mirror of
4
- // effects-gl's applyExposureEffectToGl. The stops are converted to a linear multiplier in JS.
5
- export function applyExposureEffectToWgpu(state, source, dest, effect) {
6
- const exposure = effect.exposure ?? 0;
7
- const multiplier = Math.pow(2, exposure);
8
- const pipeline = getWgpuEffectPipeline(state, 'exposure', EXPOSURE_FRAGMENT_WGSL, 'replace');
9
- drawWgpuFilterPass(state, source, dest, pipeline, (f32) => {
10
- f32[0] = multiplier;
11
- });
12
- }
13
- export const defaultWgpuExposureEffectRunner = (ctx, effect) => {
14
- applyExposureEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
15
- };
16
- // Slot [0]=multiplier (2^stops, precomputed in JS); the scalar struct pads to a 16-byte boundary.
17
- const EXPOSURE_FRAGMENT_WGSL = /* wgsl */ `
18
- struct Uniforms { u_exposure : f32, _pad0 : f32, _pad1 : f32, _pad2 : f32, }
19
- @group(0) @binding(0) var<uniform> uni : Uniforms;
20
- @group(1) @binding(0) var tex : texture_2d<f32>;
21
- @group(1) @binding(1) var smp : sampler;
22
-
23
- @fragment
24
- fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
25
- let c = textureSampleLevel(tex, smp, uv, 0.0);
26
- return vec4f(c.rgb * uni.u_exposure, c.a);
27
- }`;
28
- //# sourceMappingURL=wgpuExposureEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuExposureEffect.js","sourceRoot":"","sources":["../src/wgpuExposureEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,4FAA4F;AAC5F,8FAA8F;AAC9F,MAAM,UAAU,yBAAyB,CACvC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAgC;IAEhC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;IAC7F,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACrF,yBAAyB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAwB,CAAC,CAAC;AACvF,CAAC,CAAC;AAEF,kGAAkG;AAClG,MAAM,sBAAsB,GAAG,UAAU,CAAC;;;;;;;;;;EAUxC,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { GrayscaleEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
2
- export declare function applyGrayscaleEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<GrayscaleEffect>): void;
3
- export declare const defaultWgpuGrayscaleEffectRunner: WgpuRenderEffectRunner;
4
- //# sourceMappingURL=wgpuGrayscaleEffect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuGrayscaleEffect.d.ts","sourceRoot":"","sources":["../src/wgpuGrayscaleEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKlH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAMN;AAED,eAAO,MAAM,gCAAgC,EAAE,sBAE9C,CAAC"}
@@ -1,27 +0,0 @@
1
- import { drawWgpuFilterPass } from '@flighthq/filters-wgpu';
2
- import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
3
- // Grayscale: mix toward luminance by intensity.
4
- export function applyGrayscaleEffectToWgpu(state, source, dest, effect) {
5
- const intensity = effect.intensity ?? 1;
6
- const pipeline = getWgpuEffectPipeline(state, 'colorGrade.grayscale', GRAYSCALE_FRAGMENT_WGSL, 'replace');
7
- drawWgpuFilterPass(state, source, dest, pipeline, (f32) => {
8
- f32[0] = intensity;
9
- });
10
- }
11
- export const defaultWgpuGrayscaleEffectRunner = (ctx, effect) => {
12
- applyGrayscaleEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
13
- };
14
- // Slot layout: [0]=intensity.
15
- const GRAYSCALE_FRAGMENT_WGSL = /* wgsl */ `
16
- struct Uniforms { u_intensity : f32, _pad0 : f32, _pad1 : f32, _pad2 : f32, }
17
- @group(0) @binding(0) var<uniform> uni : Uniforms;
18
- @group(1) @binding(0) var tex : texture_2d<f32>;
19
- @group(1) @binding(1) var smp : sampler;
20
-
21
- @fragment
22
- fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
23
- let c = textureSampleLevel(tex, smp, uv, 0.0);
24
- let l = dot(c.rgb, vec3f(0.2126, 0.7152, 0.0722));
25
- return vec4f(mix(c.rgb, vec3f(l), uni.u_intensity), c.a);
26
- }`;
27
- //# sourceMappingURL=wgpuGrayscaleEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuGrayscaleEffect.js","sourceRoot":"","sources":["../src/wgpuGrayscaleEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,gDAAgD;AAChD,MAAM,UAAU,0BAA0B,CACxC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAiC;IAEjC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,SAAS,CAAC,CAAC;IAC1G,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,gCAAgC,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACtF,0BAA0B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAyB,CAAC,CAAC;AACzF,CAAC,CAAC;AAEF,8BAA8B;AAC9B,MAAM,uBAAuB,GAAG,UAAU,CAAC;;;;;;;;;;;EAWzC,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { HueSaturationEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
2
- export declare function applyHueSaturationEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<HueSaturationEffect>): void;
3
- export declare const defaultWgpuHueSaturationEffectRunner: WgpuRenderEffectRunner;
4
- //# sourceMappingURL=wgpuHueSaturationEffect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuHueSaturationEffect.d.ts","sourceRoot":"","sources":["../src/wgpuHueSaturationEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKtH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACpC,IAAI,CAUN;AAED,eAAO,MAAM,oCAAoC,EAAE,sBAElD,CAAC"}
@@ -1,75 +0,0 @@
1
- import { drawWgpuFilterPass } from '@flighthq/filters-wgpu';
2
- import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
3
- // Hue/saturation/lightness: convert to HSL, adjust, convert back.
4
- export function applyHueSaturationEffectToWgpu(state, source, dest, effect) {
5
- const hue = (effect.hue ?? 0) / 360;
6
- const saturation = effect.saturation ?? 1;
7
- const lightness = effect.lightness ?? 0;
8
- const pipeline = getWgpuEffectPipeline(state, 'colorGrade.hueSaturation', HUE_SATURATION_FRAGMENT_WGSL, 'replace');
9
- drawWgpuFilterPass(state, source, dest, pipeline, (f32) => {
10
- f32[0] = hue;
11
- f32[1] = saturation;
12
- f32[2] = lightness;
13
- });
14
- }
15
- export const defaultWgpuHueSaturationEffectRunner = (ctx, effect) => {
16
- applyHueSaturationEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
17
- };
18
- // Slot layout: [0]=hue (turns), [1]=saturation, [2]=lightness.
19
- const HUE_SATURATION_FRAGMENT_WGSL = /* wgsl */ `
20
- struct Uniforms { u_hue : f32, u_saturation : f32, u_lightness : f32, _pad0 : f32, }
21
- @group(0) @binding(0) var<uniform> uni : Uniforms;
22
- @group(1) @binding(0) var tex : texture_2d<f32>;
23
- @group(1) @binding(1) var smp : sampler;
24
-
25
- fn rgb2hsl(c : vec3f) -> vec3f {
26
- let mx = max(c.r, max(c.g, c.b));
27
- let mn = min(c.r, min(c.g, c.b));
28
- let l = (mx + mn) * 0.5;
29
- var h = 0.0;
30
- var s = 0.0;
31
- let d = mx - mn;
32
- if (d > 0.0001) {
33
- s = select(d / (2.0 - mx - mn), d / (mx + mn), l < 0.5);
34
- if (mx == c.r) {
35
- h = (c.g - c.b) / d + select(0.0, 6.0, c.g < c.b);
36
- } else if (mx == c.g) {
37
- h = (c.b - c.r) / d + 2.0;
38
- } else {
39
- h = (c.r - c.g) / d + 4.0;
40
- }
41
- h /= 6.0;
42
- }
43
- return vec3f(h, s, l);
44
- }
45
-
46
- fn hue2rgb(p : f32, q : f32, t_in : f32) -> f32 {
47
- var t = t_in;
48
- if (t < 0.0) { t += 1.0; }
49
- if (t > 1.0) { t -= 1.0; }
50
- if (t < 1.0 / 6.0) { return p + (q - p) * 6.0 * t; }
51
- if (t < 1.0 / 2.0) { return q; }
52
- if (t < 2.0 / 3.0) { return p + (q - p) * (2.0 / 3.0 - t) * 6.0; }
53
- return p;
54
- }
55
-
56
- fn hsl2rgb(hsl : vec3f) -> vec3f {
57
- let h = hsl.x;
58
- let s = hsl.y;
59
- let l = hsl.z;
60
- if (s <= 0.0) { return vec3f(l); }
61
- let q = select(l + s - l * s, l * (1.0 + s), l < 0.5);
62
- let p = 2.0 * l - q;
63
- return vec3f(hue2rgb(p, q, h + 1.0 / 3.0), hue2rgb(p, q, h), hue2rgb(p, q, h - 1.0 / 3.0));
64
- }
65
-
66
- @fragment
67
- fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
68
- let c = textureSampleLevel(tex, smp, uv, 0.0);
69
- var hsl = rgb2hsl(c.rgb);
70
- hsl.x = fract(hsl.x + uni.u_hue);
71
- hsl.y = clamp(hsl.y * uni.u_saturation, 0.0, 1.0);
72
- hsl.z = clamp(hsl.z + uni.u_lightness, 0.0, 1.0);
73
- return vec4f(hsl2rgb(hsl), c.a);
74
- }`;
75
- //# sourceMappingURL=wgpuHueSaturationEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuHueSaturationEffect.js","sourceRoot":"","sources":["../src/wgpuHueSaturationEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,kEAAkE;AAClE,MAAM,UAAU,8BAA8B,CAC5C,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAqC;IAErC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;IACpC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,SAAS,CAAC,CAAC;IACnH,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACb,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,oCAAoC,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC1F,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA6B,CAAC,CAAC;AACjG,CAAC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,4BAA4B,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuD9C,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { InvertEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
2
- export declare function applyInvertEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<InvertEffect>): void;
3
- export declare const defaultWgpuInvertEffectRunner: WgpuRenderEffectRunner;
4
- //# sourceMappingURL=wgpuInvertEffect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuInvertEffect.d.ts","sourceRoot":"","sources":["../src/wgpuInvertEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAK/G,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,IAAI,CAMN;AAED,eAAO,MAAM,6BAA6B,EAAE,sBAE3C,CAAC"}
@@ -1,26 +0,0 @@
1
- import { drawWgpuFilterPass } from '@flighthq/filters-wgpu';
2
- import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
3
- // Invert: mix toward 1 - rgb by intensity.
4
- export function applyInvertEffectToWgpu(state, source, dest, effect) {
5
- const intensity = effect.intensity ?? 1;
6
- const pipeline = getWgpuEffectPipeline(state, 'colorGrade.invert', INVERT_FRAGMENT_WGSL, 'replace');
7
- drawWgpuFilterPass(state, source, dest, pipeline, (f32) => {
8
- f32[0] = intensity;
9
- });
10
- }
11
- export const defaultWgpuInvertEffectRunner = (ctx, effect) => {
12
- applyInvertEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
13
- };
14
- // Slot layout: [0]=intensity.
15
- const INVERT_FRAGMENT_WGSL = /* wgsl */ `
16
- struct Uniforms { u_intensity : f32, _pad0 : f32, _pad1 : f32, _pad2 : f32, }
17
- @group(0) @binding(0) var<uniform> uni : Uniforms;
18
- @group(1) @binding(0) var tex : texture_2d<f32>;
19
- @group(1) @binding(1) var smp : sampler;
20
-
21
- @fragment
22
- fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
23
- let c = textureSampleLevel(tex, smp, uv, 0.0);
24
- return vec4f(mix(c.rgb, vec3f(1.0) - c.rgb, uni.u_intensity), c.a);
25
- }`;
26
- //# sourceMappingURL=wgpuInvertEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuInvertEffect.js","sourceRoot":"","sources":["../src/wgpuInvertEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,2CAA2C;AAC3C,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA8B;IAE9B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;IACpG,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACnF,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAsB,CAAC,CAAC;AACnF,CAAC,CAAC;AAEF,8BAA8B;AAC9B,MAAM,oBAAoB,GAAG,UAAU,CAAC;;;;;;;;;;EAUtC,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { LiftGammaGainEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
2
- export declare function applyLiftGammaGainEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<LiftGammaGainEffect>): void;
3
- export declare const defaultWgpuLiftGammaGainEffectRunner: WgpuRenderEffectRunner;
4
- //# sourceMappingURL=wgpuLiftGammaGainEffect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuLiftGammaGainEffect.d.ts","sourceRoot":"","sources":["../src/wgpuLiftGammaGainEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAOtH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACpC,IAAI,CAsBN;AAED,eAAO,MAAM,oCAAoC,EAAE,sBAElD,CAAC"}
@@ -1,51 +0,0 @@
1
- import { drawWgpuFilterPass } from '@flighthq/filters-wgpu';
2
- import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
3
- // Lift/gamma/gain: unpack packed-RGBA neutrals to per-channel offsets/exponents/multipliers in JS.
4
- // Neutral packed values: lift 0x000000ff, gamma 0x808080ff, gain 0xffffffff. Each vec3 is uploaded
5
- // into its own 16-byte-aligned slot so the std140 vec3 alignment is satisfied.
6
- export function applyLiftGammaGainEffectToWgpu(state, source, dest, effect) {
7
- const lift = unpackColor(effect.lift ?? 0x000000ff);
8
- const gammaRaw = unpackColor(effect.gamma ?? 0x808080ff);
9
- const gain = unpackColor(effect.gain ?? 0xffffffff);
10
- // Map gamma's 0.5-neutral to a 1.0-neutral exponent so 0x808080 leaves the image unchanged.
11
- const gamma = [
12
- 1 / Math.max(gammaRaw[0] * 2, 1e-3),
13
- 1 / Math.max(gammaRaw[1] * 2, 1e-3),
14
- 1 / Math.max(gammaRaw[2] * 2, 1e-3),
15
- ];
16
- const pipeline = getWgpuEffectPipeline(state, 'colorGrade.liftGammaGain', LIFT_GAMMA_GAIN_FRAGMENT_WGSL, 'replace');
17
- drawWgpuFilterPass(state, source, dest, pipeline, (f32) => {
18
- f32[0] = lift[0];
19
- f32[1] = lift[1];
20
- f32[2] = lift[2];
21
- f32[4] = gamma[0];
22
- f32[5] = gamma[1];
23
- f32[6] = gamma[2];
24
- f32[8] = gain[0];
25
- f32[9] = gain[1];
26
- f32[10] = gain[2];
27
- });
28
- }
29
- export const defaultWgpuLiftGammaGainEffectRunner = (ctx, effect) => {
30
- applyLiftGammaGainEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
31
- };
32
- // Unpack a packed RGBA integer (0xRRGGBBAA) into normalized [r, g, b] floats. Alpha is dropped — these
33
- // grade values describe RGB channels only.
34
- function unpackColor(c) {
35
- return [((c >>> 24) & 255) / 255, ((c >>> 16) & 255) / 255, ((c >>> 8) & 255) / 255];
36
- }
37
- // Slot layout: three vec3 in 16-byte-aligned slots — [0..2]=lift, [4..6]=gamma, [8..10]=gain.
38
- const LIFT_GAMMA_GAIN_FRAGMENT_WGSL = /* wgsl */ `
39
- struct Uniforms { u_lift : vec3f, u_gamma : vec3f, u_gain : vec3f, }
40
- @group(0) @binding(0) var<uniform> uni : Uniforms;
41
- @group(1) @binding(0) var tex : texture_2d<f32>;
42
- @group(1) @binding(1) var smp : sampler;
43
-
44
- @fragment
45
- fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
46
- let c = textureSampleLevel(tex, smp, uv, 0.0);
47
- var rgb = c.rgb * uni.u_gain + uni.u_lift * (vec3f(1.0) - c.rgb);
48
- rgb = pow(max(rgb, vec3f(0.0)), uni.u_gamma);
49
- return vec4f(clamp(rgb, vec3f(0.0), vec3f(1.0)), c.a);
50
- }`;
51
- //# sourceMappingURL=wgpuLiftGammaGainEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuLiftGammaGainEffect.js","sourceRoot":"","sources":["../src/wgpuLiftGammaGainEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,mGAAmG;AACnG,mGAAmG;AACnG,+EAA+E;AAC/E,MAAM,UAAU,8BAA8B,CAC5C,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAqC;IAErC,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC;IACpD,4FAA4F;IAC5F,MAAM,KAAK,GAAsC;QAC/C,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;QACnC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;QACnC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;KACpC,CAAC;IACF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,SAAS,CAAC,CAAC;IACpH,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,oCAAoC,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC1F,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA6B,CAAC,CAAC;AACjG,CAAC,CAAC;AAEF,uGAAuG;AACvG,2CAA2C;AAC3C,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACvF,CAAC;AAED,8FAA8F;AAC9F,MAAM,6BAA6B,GAAG,UAAU,CAAC;;;;;;;;;;;;EAY/C,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { LookupTableGradeEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
2
- export declare function applyLookupTableGradeEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<LookupTableGradeEffect>): void;
3
- export declare const defaultWgpuLookupTableGradeEffectRunner: WgpuRenderEffectRunner;
4
- //# sourceMappingURL=wgpuLookupTableGradeEffect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuLookupTableGradeEffect.d.ts","sourceRoot":"","sources":["../src/wgpuLookupTableGradeEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAOzB,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GACvC,IAAI,CAMN;AAED,eAAO,MAAM,uCAAuC,EAAE,sBAErD,CAAC"}
@@ -1,30 +0,0 @@
1
- import { drawWgpuFilterPass } from '@flighthq/filters-wgpu';
2
- import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
3
- // LUT grade: passthrough with a strength mix. A real 3D LUT grade needs an uploaded LUT cube texture
4
- // (size from effect.size) sampled per pixel as an extra bound texture; that texture path is not yet
5
- // wired, so this keeps the pass compiling and color-neutral until the LUT upload is added.
6
- export function applyLookupTableGradeEffectToWgpu(state, source, dest, effect) {
7
- const strength = effect.strength ?? 1;
8
- const pipeline = getWgpuEffectPipeline(state, 'colorGrade.lutGrade', LUT_GRADE_FRAGMENT_WGSL, 'replace');
9
- drawWgpuFilterPass(state, source, dest, pipeline, (f32) => {
10
- f32[0] = strength;
11
- });
12
- }
13
- export const defaultWgpuLookupTableGradeEffectRunner = (ctx, effect) => {
14
- applyLookupTableGradeEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
15
- };
16
- // Slot layout: [0]=strength.
17
- const LUT_GRADE_FRAGMENT_WGSL = /* wgsl */ `
18
- struct Uniforms { u_strength : f32, _pad0 : f32, _pad1 : f32, _pad2 : f32, }
19
- @group(0) @binding(0) var<uniform> uni : Uniforms;
20
- @group(1) @binding(0) var tex : texture_2d<f32>;
21
- @group(1) @binding(1) var smp : sampler;
22
-
23
- @fragment
24
- fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
25
- let c = textureSampleLevel(tex, smp, uv, 0.0);
26
- // Passthrough: a real 3D LUT samples an uploaded LUT cube texture here, then mixes by u_strength.
27
- let graded = c.rgb;
28
- return vec4f(mix(c.rgb, graded, uni.u_strength), c.a);
29
- }`;
30
- //# sourceMappingURL=wgpuLookupTableGradeEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuLookupTableGradeEffect.js","sourceRoot":"","sources":["../src/wgpuLookupTableGradeEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAQ5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,qGAAqG;AACrG,oGAAoG;AACpG,2FAA2F;AAC3F,MAAM,UAAU,iCAAiC,CAC/C,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAwC;IAExC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,SAAS,CAAC,CAAC;IACzG,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,uCAAuC,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC7F,iCAAiC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAgC,CAAC,CAAC;AACvG,CAAC,CAAC;AAEF,6BAA6B;AAC7B,MAAM,uBAAuB,GAAG,UAAU,CAAC;;;;;;;;;;;;EAYzC,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { SepiaEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
2
- export declare function applySepiaEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<SepiaEffect>): void;
3
- export declare const defaultWgpuSepiaEffectRunner: WgpuRenderEffectRunner;
4
- //# sourceMappingURL=wgpuSepiaEffect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuSepiaEffect.d.ts","sourceRoot":"","sources":["../src/wgpuSepiaEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAK9G,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAMN;AAED,eAAO,MAAM,4BAA4B,EAAE,sBAE1C,CAAC"}
@@ -1,31 +0,0 @@
1
- import { drawWgpuFilterPass } from '@flighthq/filters-wgpu';
2
- import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
3
- // Sepia: mix toward a sepia matrix transform by intensity.
4
- export function applySepiaEffectToWgpu(state, source, dest, effect) {
5
- const intensity = effect.intensity ?? 1;
6
- const pipeline = getWgpuEffectPipeline(state, 'colorGrade.sepia', SEPIA_FRAGMENT_WGSL, 'replace');
7
- drawWgpuFilterPass(state, source, dest, pipeline, (f32) => {
8
- f32[0] = intensity;
9
- });
10
- }
11
- export const defaultWgpuSepiaEffectRunner = (ctx, effect) => {
12
- applySepiaEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
13
- };
14
- // Slot layout: [0]=intensity.
15
- const SEPIA_FRAGMENT_WGSL = /* wgsl */ `
16
- struct Uniforms { u_intensity : f32, _pad0 : f32, _pad1 : f32, _pad2 : f32, }
17
- @group(0) @binding(0) var<uniform> uni : Uniforms;
18
- @group(1) @binding(0) var tex : texture_2d<f32>;
19
- @group(1) @binding(1) var smp : sampler;
20
-
21
- @fragment
22
- fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
23
- let c = textureSampleLevel(tex, smp, uv, 0.0);
24
- let sepia = vec3f(
25
- dot(c.rgb, vec3f(0.393, 0.769, 0.189)),
26
- dot(c.rgb, vec3f(0.349, 0.686, 0.168)),
27
- dot(c.rgb, vec3f(0.272, 0.534, 0.131))
28
- );
29
- return vec4f(mix(c.rgb, sepia, uni.u_intensity), c.a);
30
- }`;
31
- //# sourceMappingURL=wgpuSepiaEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wgpuSepiaEffect.js","sourceRoot":"","sources":["../src/wgpuSepiaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,2DAA2D;AAC3D,MAAM,UAAU,sBAAsB,CACpC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA6B;IAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;IAClG,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAClF,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAqB,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF,8BAA8B;AAC9B,MAAM,mBAAmB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;EAerC,CAAC"}
@@ -1,16 +0,0 @@
1
- import {
2
- applyBrightnessContrastEffectToWgpu,
3
- defaultWgpuBrightnessContrastEffectRunner,
4
- } from './wgpuBrightnessContrastEffect';
5
-
6
- describe('applyBrightnessContrastEffectToWgpu', () => {
7
- it('is a function', () => {
8
- expect(typeof applyBrightnessContrastEffectToWgpu).toBe('function');
9
- });
10
- });
11
-
12
- describe('defaultWgpuBrightnessContrastEffectRunner', () => {
13
- it('is a function', () => {
14
- expect(typeof defaultWgpuBrightnessContrastEffectRunner).toBe('function');
15
- });
16
- });
@@ -1,13 +0,0 @@
1
- import { applyChannelMixerEffectToWgpu, defaultWgpuChannelMixerEffectRunner } from './wgpuChannelMixerEffect';
2
-
3
- describe('applyChannelMixerEffectToWgpu', () => {
4
- it('is a function', () => {
5
- expect(typeof applyChannelMixerEffectToWgpu).toBe('function');
6
- });
7
- });
8
-
9
- describe('defaultWgpuChannelMixerEffectRunner', () => {
10
- it('is a function', () => {
11
- expect(typeof defaultWgpuChannelMixerEffectRunner).toBe('function');
12
- });
13
- });
@@ -1,13 +0,0 @@
1
- import { applyColorGradeEffectToWgpu, defaultWgpuColorGradeEffectRunner } from './wgpuColorGradeEffect';
2
-
3
- describe('applyColorGradeEffectToWgpu', () => {
4
- it('is a function', () => {
5
- expect(typeof applyColorGradeEffectToWgpu).toBe('function');
6
- });
7
- });
8
-
9
- describe('defaultWgpuColorGradeEffectRunner', () => {
10
- it('is a function', () => {
11
- expect(typeof defaultWgpuColorGradeEffectRunner).toBe('function');
12
- });
13
- });
@@ -1,13 +0,0 @@
1
- import { applyExposureEffectToWgpu, defaultWgpuExposureEffectRunner } from './wgpuExposureEffect';
2
-
3
- describe('applyExposureEffectToWgpu', () => {
4
- it('is a function', () => {
5
- expect(typeof applyExposureEffectToWgpu).toBe('function');
6
- });
7
- });
8
-
9
- describe('defaultWgpuExposureEffectRunner', () => {
10
- it('is a function', () => {
11
- expect(typeof defaultWgpuExposureEffectRunner).toBe('function');
12
- });
13
- });
@@ -1,13 +0,0 @@
1
- import { applyGrayscaleEffectToWgpu, defaultWgpuGrayscaleEffectRunner } from './wgpuGrayscaleEffect';
2
-
3
- describe('applyGrayscaleEffectToWgpu', () => {
4
- it('is a function', () => {
5
- expect(typeof applyGrayscaleEffectToWgpu).toBe('function');
6
- });
7
- });
8
-
9
- describe('defaultWgpuGrayscaleEffectRunner', () => {
10
- it('is a function', () => {
11
- expect(typeof defaultWgpuGrayscaleEffectRunner).toBe('function');
12
- });
13
- });
@@ -1,13 +0,0 @@
1
- import { applyHueSaturationEffectToWgpu, defaultWgpuHueSaturationEffectRunner } from './wgpuHueSaturationEffect';
2
-
3
- describe('applyHueSaturationEffectToWgpu', () => {
4
- it('is a function', () => {
5
- expect(typeof applyHueSaturationEffectToWgpu).toBe('function');
6
- });
7
- });
8
-
9
- describe('defaultWgpuHueSaturationEffectRunner', () => {
10
- it('is a function', () => {
11
- expect(typeof defaultWgpuHueSaturationEffectRunner).toBe('function');
12
- });
13
- });
@@ -1,13 +0,0 @@
1
- import { applyInvertEffectToWgpu, defaultWgpuInvertEffectRunner } from './wgpuInvertEffect';
2
-
3
- describe('applyInvertEffectToWgpu', () => {
4
- it('is a function', () => {
5
- expect(typeof applyInvertEffectToWgpu).toBe('function');
6
- });
7
- });
8
-
9
- describe('defaultWgpuInvertEffectRunner', () => {
10
- it('is a function', () => {
11
- expect(typeof defaultWgpuInvertEffectRunner).toBe('function');
12
- });
13
- });
@@ -1,13 +0,0 @@
1
- import { applyLiftGammaGainEffectToWgpu, defaultWgpuLiftGammaGainEffectRunner } from './wgpuLiftGammaGainEffect';
2
-
3
- describe('applyLiftGammaGainEffectToWgpu', () => {
4
- it('is a function', () => {
5
- expect(typeof applyLiftGammaGainEffectToWgpu).toBe('function');
6
- });
7
- });
8
-
9
- describe('defaultWgpuLiftGammaGainEffectRunner', () => {
10
- it('is a function', () => {
11
- expect(typeof defaultWgpuLiftGammaGainEffectRunner).toBe('function');
12
- });
13
- });
@@ -1,16 +0,0 @@
1
- import {
2
- applyLookupTableGradeEffectToWgpu,
3
- defaultWgpuLookupTableGradeEffectRunner,
4
- } from './wgpuLookupTableGradeEffect';
5
-
6
- describe('applyLookupTableGradeEffectToWgpu', () => {
7
- it('is a function', () => {
8
- expect(typeof applyLookupTableGradeEffectToWgpu).toBe('function');
9
- });
10
- });
11
-
12
- describe('defaultWgpuLookupTableGradeEffectRunner', () => {
13
- it('is a function', () => {
14
- expect(typeof defaultWgpuLookupTableGradeEffectRunner).toBe('function');
15
- });
16
- });
@@ -1,13 +0,0 @@
1
- import { applySepiaEffectToWgpu, defaultWgpuSepiaEffectRunner } from './wgpuSepiaEffect';
2
-
3
- describe('applySepiaEffectToWgpu', () => {
4
- it('is a function', () => {
5
- expect(typeof applySepiaEffectToWgpu).toBe('function');
6
- });
7
- });
8
-
9
- describe('defaultWgpuSepiaEffectRunner', () => {
10
- it('is a function', () => {
11
- expect(typeof defaultWgpuSepiaEffectRunner).toBe('function');
12
- });
13
- });