@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.
- package/dist/index.d.ts +17 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -10
- package/dist/index.js.map +1 -1
- package/dist/wgpuBevelEffect.d.ts +4 -0
- package/dist/wgpuBevelEffect.d.ts.map +1 -0
- package/dist/wgpuBevelEffect.js +122 -0
- package/dist/wgpuBevelEffect.js.map +1 -0
- package/dist/wgpuBloomEffect.d.ts.map +1 -1
- package/dist/wgpuBloomEffect.js +9 -8
- package/dist/wgpuBloomEffect.js.map +1 -1
- package/dist/wgpuBlurEffect.d.ts +8 -0
- package/dist/wgpuBlurEffect.d.ts.map +1 -0
- package/dist/wgpuBlurEffect.js +70 -0
- package/dist/wgpuBlurEffect.js.map +1 -0
- package/dist/wgpuBokehDepthOfFieldEffect.d.ts.map +1 -1
- package/dist/wgpuBokehDepthOfFieldEffect.js +2 -2
- package/dist/wgpuBokehDepthOfFieldEffect.js.map +1 -1
- package/dist/wgpuCameraMotionBlurEffect.d.ts.map +1 -1
- package/dist/wgpuCameraMotionBlurEffect.js +2 -2
- package/dist/wgpuCameraMotionBlurEffect.js.map +1 -1
- package/dist/wgpuChromaticAberrationEffect.d.ts.map +1 -1
- package/dist/wgpuChromaticAberrationEffect.js +2 -2
- package/dist/wgpuChromaticAberrationEffect.js.map +1 -1
- package/dist/wgpuColorLutPass.d.ts +3 -0
- package/dist/wgpuColorLutPass.d.ts.map +1 -0
- package/dist/wgpuColorLutPass.js +144 -0
- package/dist/wgpuColorLutPass.js.map +1 -0
- package/dist/wgpuColorMatrixPass.d.ts +3 -0
- package/dist/wgpuColorMatrixPass.d.ts.map +1 -0
- package/dist/wgpuColorMatrixPass.js +51 -0
- package/dist/wgpuColorMatrixPass.js.map +1 -0
- package/dist/wgpuConvolutionEffect.d.ts +5 -0
- package/dist/wgpuConvolutionEffect.d.ts.map +1 -0
- package/dist/wgpuConvolutionEffect.js +108 -0
- package/dist/wgpuConvolutionEffect.js.map +1 -0
- package/dist/wgpuCrtEffect.d.ts.map +1 -1
- package/dist/wgpuCrtEffect.js +2 -2
- package/dist/wgpuCrtEffect.js.map +1 -1
- package/dist/wgpuDirectionalBlurEffect.d.ts.map +1 -1
- package/dist/wgpuDirectionalBlurEffect.js +2 -2
- package/dist/wgpuDirectionalBlurEffect.js.map +1 -1
- package/dist/wgpuDisplacementEffect.d.ts.map +1 -1
- package/dist/wgpuDisplacementEffect.js +2 -2
- package/dist/wgpuDisplacementEffect.js.map +1 -1
- package/dist/wgpuDitherEffect.d.ts.map +1 -1
- package/dist/wgpuDitherEffect.js +2 -2
- package/dist/wgpuDitherEffect.js.map +1 -1
- package/dist/wgpuDropShadowEffect.d.ts +4 -0
- package/dist/wgpuDropShadowEffect.d.ts.map +1 -0
- package/dist/wgpuDropShadowEffect.js +49 -0
- package/dist/wgpuDropShadowEffect.js.map +1 -0
- package/dist/wgpuEffectBlitShader.d.ts +15 -0
- package/dist/wgpuEffectBlitShader.d.ts.map +1 -0
- package/dist/wgpuEffectBlitShader.js +71 -0
- package/dist/wgpuEffectBlitShader.js.map +1 -0
- package/dist/wgpuEffectBoxBlur.d.ts +14 -0
- package/dist/wgpuEffectBoxBlur.d.ts.map +1 -0
- package/dist/wgpuEffectBoxBlur.js +81 -0
- package/dist/wgpuEffectBoxBlur.js.map +1 -0
- package/dist/wgpuEffectGradientRamp.d.ts +17 -0
- package/dist/wgpuEffectGradientRamp.d.ts.map +1 -0
- package/dist/wgpuEffectGradientRamp.js +89 -0
- package/dist/wgpuEffectGradientRamp.js.map +1 -0
- package/dist/wgpuEffectPass.d.ts +41 -0
- package/dist/wgpuEffectPass.d.ts.map +1 -0
- package/dist/wgpuEffectPass.js +259 -0
- package/dist/wgpuEffectPass.js.map +1 -0
- package/dist/wgpuEffectProgramCache.d.ts +2 -2
- package/dist/wgpuEffectProgramCache.d.ts.map +1 -1
- package/dist/wgpuEffectProgramCache.js +5 -5
- package/dist/wgpuEffectProgramCache.js.map +1 -1
- package/dist/wgpuEffectTintShader.d.ts +8 -0
- package/dist/wgpuEffectTintShader.d.ts.map +1 -0
- package/dist/wgpuEffectTintShader.js +109 -0
- package/dist/wgpuEffectTintShader.js.map +1 -0
- package/dist/wgpuFilmGrainEffect.d.ts.map +1 -1
- package/dist/wgpuFilmGrainEffect.js +2 -2
- package/dist/wgpuFilmGrainEffect.js.map +1 -1
- package/dist/wgpuFxaaEffect.d.ts.map +1 -1
- package/dist/wgpuFxaaEffect.js +2 -2
- package/dist/wgpuFxaaEffect.js.map +1 -1
- package/dist/wgpuGlitchEffect.d.ts.map +1 -1
- package/dist/wgpuGlitchEffect.js +2 -2
- package/dist/wgpuGlitchEffect.js.map +1 -1
- package/dist/wgpuGodRaysEffect.d.ts.map +1 -1
- package/dist/wgpuGodRaysEffect.js +2 -2
- package/dist/wgpuGodRaysEffect.js.map +1 -1
- package/dist/wgpuGradientBevelEffect.d.ts +4 -0
- package/dist/wgpuGradientBevelEffect.d.ts.map +1 -0
- package/dist/wgpuGradientBevelEffect.js +189 -0
- package/dist/wgpuGradientBevelEffect.js.map +1 -0
- package/dist/wgpuGradientGlowEffect.d.ts +4 -0
- package/dist/wgpuGradientGlowEffect.d.ts.map +1 -0
- package/dist/wgpuGradientGlowEffect.js +97 -0
- package/dist/wgpuGradientGlowEffect.js.map +1 -0
- package/dist/wgpuHalftoneEffect.d.ts.map +1 -1
- package/dist/wgpuHalftoneEffect.js +2 -2
- package/dist/wgpuHalftoneEffect.js.map +1 -1
- package/dist/wgpuInnerGlowEffect.d.ts +4 -0
- package/dist/wgpuInnerGlowEffect.d.ts.map +1 -0
- package/dist/wgpuInnerGlowEffect.js +37 -0
- package/dist/wgpuInnerGlowEffect.js.map +1 -0
- package/dist/wgpuInnerShadowEffect.d.ts +4 -0
- package/dist/wgpuInnerShadowEffect.d.ts.map +1 -0
- package/dist/wgpuInnerShadowEffect.js +42 -0
- package/dist/wgpuInnerShadowEffect.js.map +1 -0
- package/dist/wgpuKuwaharaEffect.d.ts.map +1 -1
- package/dist/wgpuKuwaharaEffect.js +2 -2
- package/dist/wgpuKuwaharaEffect.js.map +1 -1
- package/dist/wgpuLensDirtEffect.d.ts.map +1 -1
- package/dist/wgpuLensDirtEffect.js +2 -2
- package/dist/wgpuLensDirtEffect.js.map +1 -1
- package/dist/wgpuLensDistortionEffect.d.ts.map +1 -1
- package/dist/wgpuLensDistortionEffect.js +2 -2
- package/dist/wgpuLensDistortionEffect.js.map +1 -1
- package/dist/wgpuLensFlareEffect.d.ts.map +1 -1
- package/dist/wgpuLensFlareEffect.js +2 -2
- package/dist/wgpuLensFlareEffect.js.map +1 -1
- package/dist/wgpuMedianEffect.d.ts +5 -0
- package/dist/wgpuMedianEffect.d.ts.map +1 -0
- package/dist/wgpuMedianEffect.js +74 -0
- package/dist/wgpuMedianEffect.js.map +1 -0
- package/dist/wgpuMotionBlurEffect.d.ts.map +1 -1
- package/dist/wgpuMotionBlurEffect.js +6 -7
- package/dist/wgpuMotionBlurEffect.js.map +1 -1
- package/dist/wgpuOuterGlowEffect.d.ts +4 -0
- package/dist/wgpuOuterGlowEffect.d.ts.map +1 -0
- package/dist/wgpuOuterGlowEffect.js +43 -0
- package/dist/wgpuOuterGlowEffect.js.map +1 -0
- package/dist/wgpuOutlineEffect.d.ts.map +1 -1
- package/dist/wgpuOutlineEffect.js +2 -2
- package/dist/wgpuOutlineEffect.js.map +1 -1
- package/dist/wgpuPixelateEffect.d.ts.map +1 -1
- package/dist/wgpuPixelateEffect.js +2 -2
- package/dist/wgpuPixelateEffect.js.map +1 -1
- package/dist/wgpuPosterizeEffect.d.ts.map +1 -1
- package/dist/wgpuPosterizeEffect.js +2 -2
- package/dist/wgpuPosterizeEffect.js.map +1 -1
- package/dist/wgpuRadialBlurEffect.d.ts.map +1 -1
- package/dist/wgpuRadialBlurEffect.js +2 -2
- package/dist/wgpuRadialBlurEffect.js.map +1 -1
- package/dist/wgpuRenderEffectPipeline.d.ts +2 -2
- package/dist/wgpuRenderEffectPipeline.d.ts.map +1 -1
- package/dist/wgpuRenderEffectPipeline.js +59 -9
- package/dist/wgpuRenderEffectPipeline.js.map +1 -1
- package/dist/wgpuRenderEffectRegistrants.d.ts +1 -0
- package/dist/wgpuRenderEffectRegistrants.d.ts.map +1 -1
- package/dist/wgpuRenderEffectRegistrants.js +39 -28
- package/dist/wgpuRenderEffectRegistrants.js.map +1 -1
- package/dist/wgpuScanlinesEffect.d.ts.map +1 -1
- package/dist/wgpuScanlinesEffect.js +2 -2
- package/dist/wgpuScanlinesEffect.js.map +1 -1
- package/dist/wgpuScreenSpaceFogEffect.d.ts.map +1 -1
- package/dist/wgpuScreenSpaceFogEffect.js +2 -2
- package/dist/wgpuScreenSpaceFogEffect.js.map +1 -1
- package/dist/wgpuSharpenEffect.d.ts.map +1 -1
- package/dist/wgpuSharpenEffect.js +2 -2
- package/dist/wgpuSharpenEffect.js.map +1 -1
- package/dist/wgpuSketchEffect.d.ts.map +1 -1
- package/dist/wgpuSketchEffect.js +2 -2
- package/dist/wgpuSketchEffect.js.map +1 -1
- package/dist/wgpuSmaaEffect.d.ts.map +1 -1
- package/dist/wgpuSmaaEffect.js +2 -2
- package/dist/wgpuSmaaEffect.js.map +1 -1
- package/dist/wgpuSsaoEffect.d.ts.map +1 -1
- package/dist/wgpuSsaoEffect.js +2 -2
- package/dist/wgpuSsaoEffect.js.map +1 -1
- package/dist/wgpuSsrEffect.d.ts.map +1 -1
- package/dist/wgpuSsrEffect.js +2 -2
- package/dist/wgpuSsrEffect.js.map +1 -1
- package/dist/wgpuTaaEffect.d.ts.map +1 -1
- package/dist/wgpuTaaEffect.js +2 -2
- package/dist/wgpuTaaEffect.js.map +1 -1
- package/dist/wgpuTiltShiftEffect.d.ts.map +1 -1
- package/dist/wgpuTiltShiftEffect.js +2 -2
- package/dist/wgpuTiltShiftEffect.js.map +1 -1
- package/dist/wgpuToneMapEffect.d.ts.map +1 -1
- package/dist/wgpuToneMapEffect.js +2 -2
- package/dist/wgpuToneMapEffect.js.map +1 -1
- package/dist/wgpuVignetteEffect.d.ts.map +1 -1
- package/dist/wgpuVignetteEffect.js +2 -2
- package/dist/wgpuVignetteEffect.js.map +1 -1
- package/dist/wgpuWhiteBalanceEffect.d.ts.map +1 -1
- package/dist/wgpuWhiteBalanceEffect.js +2 -2
- package/dist/wgpuWhiteBalanceEffect.js.map +1 -1
- package/package.json +11 -7
- package/src/wgpuBevelEffect.test.ts +13 -0
- package/src/wgpuBlurEffect.test.ts +19 -0
- package/src/wgpuColorLutPass.test.ts +7 -0
- package/src/wgpuColorMatrixPass.test.ts +7 -0
- package/src/wgpuConvolutionEffect.test.ts +13 -0
- package/src/wgpuDropShadowEffect.test.ts +13 -0
- package/src/wgpuEffectBlitShader.test.ts +13 -0
- package/src/wgpuEffectBoxBlur.test.ts +7 -0
- package/src/wgpuEffectGradientRamp.test.ts +7 -0
- package/src/wgpuEffectPass.test.ts +51 -0
- package/src/wgpuEffectTintShader.test.ts +23 -0
- package/src/wgpuGradientBevelEffect.test.ts +13 -0
- package/src/wgpuGradientGlowEffect.test.ts +13 -0
- package/src/wgpuInnerGlowEffect.test.ts +13 -0
- package/src/wgpuInnerShadowEffect.test.ts +13 -0
- package/src/wgpuMedianEffect.test.ts +13 -0
- package/src/wgpuOuterGlowEffect.test.ts +13 -0
- package/src/wgpuRenderEffectPipeline.test.ts +2 -0
- package/src/wgpuRenderEffectRegistrants.test.ts +25 -14
- package/dist/wgpuBrightnessContrastEffect.d.ts +0 -4
- package/dist/wgpuBrightnessContrastEffect.d.ts.map +0 -1
- package/dist/wgpuBrightnessContrastEffect.js +0 -29
- package/dist/wgpuBrightnessContrastEffect.js.map +0 -1
- package/dist/wgpuChannelMixerEffect.d.ts +0 -4
- package/dist/wgpuChannelMixerEffect.d.ts.map +0 -1
- package/dist/wgpuChannelMixerEffect.js +0 -34
- package/dist/wgpuChannelMixerEffect.js.map +0 -1
- package/dist/wgpuColorGradeEffect.d.ts +0 -4
- package/dist/wgpuColorGradeEffect.d.ts.map +0 -1
- package/dist/wgpuColorGradeEffect.js +0 -52
- package/dist/wgpuColorGradeEffect.js.map +0 -1
- package/dist/wgpuExposureEffect.d.ts +0 -4
- package/dist/wgpuExposureEffect.d.ts.map +0 -1
- package/dist/wgpuExposureEffect.js +0 -28
- package/dist/wgpuExposureEffect.js.map +0 -1
- package/dist/wgpuGrayscaleEffect.d.ts +0 -4
- package/dist/wgpuGrayscaleEffect.d.ts.map +0 -1
- package/dist/wgpuGrayscaleEffect.js +0 -27
- package/dist/wgpuGrayscaleEffect.js.map +0 -1
- package/dist/wgpuHueSaturationEffect.d.ts +0 -4
- package/dist/wgpuHueSaturationEffect.d.ts.map +0 -1
- package/dist/wgpuHueSaturationEffect.js +0 -75
- package/dist/wgpuHueSaturationEffect.js.map +0 -1
- package/dist/wgpuInvertEffect.d.ts +0 -4
- package/dist/wgpuInvertEffect.d.ts.map +0 -1
- package/dist/wgpuInvertEffect.js +0 -26
- package/dist/wgpuInvertEffect.js.map +0 -1
- package/dist/wgpuLiftGammaGainEffect.d.ts +0 -4
- package/dist/wgpuLiftGammaGainEffect.d.ts.map +0 -1
- package/dist/wgpuLiftGammaGainEffect.js +0 -51
- package/dist/wgpuLiftGammaGainEffect.js.map +0 -1
- package/dist/wgpuLookupTableGradeEffect.d.ts +0 -4
- package/dist/wgpuLookupTableGradeEffect.d.ts.map +0 -1
- package/dist/wgpuLookupTableGradeEffect.js +0 -30
- package/dist/wgpuLookupTableGradeEffect.js.map +0 -1
- package/dist/wgpuSepiaEffect.d.ts +0 -4
- package/dist/wgpuSepiaEffect.d.ts.map +0 -1
- package/dist/wgpuSepiaEffect.js +0 -31
- package/dist/wgpuSepiaEffect.js.map +0 -1
- package/src/wgpuBrightnessContrastEffect.test.ts +0 -16
- package/src/wgpuChannelMixerEffect.test.ts +0 -13
- package/src/wgpuColorGradeEffect.test.ts +0 -13
- package/src/wgpuExposureEffect.test.ts +0 -13
- package/src/wgpuGrayscaleEffect.test.ts +0 -13
- package/src/wgpuHueSaturationEffect.test.ts +0 -13
- package/src/wgpuInvertEffect.test.ts +0 -13
- package/src/wgpuLiftGammaGainEffect.test.ts +0 -13
- package/src/wgpuLookupTableGradeEffect.test.ts +0 -16
- 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"}
|
package/dist/wgpuInvertEffect.js
DELETED
|
@@ -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"}
|
package/dist/wgpuSepiaEffect.js
DELETED
|
@@ -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
|
-
});
|