@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,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
3
|
// Radial blur: accumulate samples stepped from the current uv toward (centerX, centerY) scaled by
|
|
4
4
|
// `strength`, normalized by the sample count. Single-pass reference recipe, the Wgpu mirror of
|
|
@@ -9,7 +9,7 @@ export function applyRadialBlurEffectToWgpu(state, source, dest, effect) {
|
|
|
9
9
|
const strength = effect.strength ?? 0.2;
|
|
10
10
|
const samples = effect.samples ?? 16;
|
|
11
11
|
const pipeline = getWgpuEffectPipeline(state, 'motion.radialBlur', RADIAL_BLUR_FRAGMENT_WGSL, 'replace');
|
|
12
|
-
|
|
12
|
+
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
13
13
|
f32[0] = centerX;
|
|
14
14
|
f32[1] = centerY;
|
|
15
15
|
f32[2] = strength;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRadialBlurEffect.js","sourceRoot":"","sources":["../src/wgpuRadialBlurEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuRadialBlurEffect.js","sourceRoot":"","sources":["../src/wgpuRadialBlurEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,kGAAkG;AAClG,+FAA+F;AAC/F,0CAA0C;AAC1C,MAAM,UAAU,2BAA2B,CACzC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAkC;IAElC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,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,OAAO,CAAC;QACjB,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QACjB,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAClB,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACnB,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,sEAAsE;AACtE,MAAM,yBAAyB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B3C,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { RenderEffect, RenderEffectPipelineOptions, WgpuRenderEffectPipeline, WgpuRenderState } from '@flighthq/types';
|
|
1
|
+
import type { Adjustment, RenderEffect, RenderEffectPipelineOptions, WgpuRenderEffectPipeline, WgpuRenderState } from '@flighthq/types';
|
|
2
2
|
export declare function beginWgpuRenderEffectPipeline(state: WgpuRenderState, pipeline: WgpuRenderEffectPipeline): void;
|
|
3
3
|
export declare function createWgpuRenderEffectPipeline(_state: WgpuRenderState, options?: Readonly<RenderEffectPipelineOptions>): WgpuRenderEffectPipeline;
|
|
4
4
|
export declare function destroyWgpuRenderEffectPipeline(state: WgpuRenderState, pipeline: WgpuRenderEffectPipeline): void;
|
|
5
|
-
export declare function endWgpuRenderEffectPipeline(state: WgpuRenderState, pipeline: WgpuRenderEffectPipeline,
|
|
5
|
+
export declare function endWgpuRenderEffectPipeline(state: WgpuRenderState, pipeline: WgpuRenderEffectPipeline, operations: ReadonlyArray<RenderEffect | Adjustment>): void;
|
|
6
6
|
export declare function setWgpuRenderEffectVelocityTexture(pipeline: WgpuRenderEffectPipeline, texture: GPUTexture | null): void;
|
|
7
7
|
//# sourceMappingURL=wgpuRenderEffectPipeline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderEffectPipeline.d.ts","sourceRoot":"","sources":["../src/wgpuRenderEffectPipeline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuRenderEffectPipeline.d.ts","sourceRoot":"","sources":["../src/wgpuRenderEffectPipeline.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,2BAA2B,EAC3B,wBAAwB,EACxB,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAmBzB,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAiB9G;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,QAAQ,CAAC,2BAA2B,CAAM,GAClD,wBAAwB,CAS1B;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAYhH;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,aAAa,CAAC,YAAY,GAAG,UAAU,CAAC,GACnD,IAAI,CAwEN;AAID,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,wBAAwB,EAClC,OAAO,EAAE,UAAU,GAAG,IAAI,GACzB,IAAI,CAEN"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { bakeColorLutForRun, createColorLutCache, fuseColorMatrices, getAdjustmentColorMatrix, isColorLutAdjustment, } from '@flighthq/adjustments';
|
|
2
2
|
import { createMatrix } from '@flighthq/geometry';
|
|
3
3
|
import { acquireWgpuRenderTarget, beginWgpuRenderTarget, createWgpuRenderTarget, createWgpuRenderTargetPool, destroyWgpuRenderTarget, destroyWgpuRenderTargetPool, endWgpuRenderTarget, getWgpuRenderStateRuntime, releaseWgpuRenderTarget, resizeWgpuRenderTarget, } from '@flighthq/render-wgpu';
|
|
4
|
+
import { applyColorLutPassToWgpu } from './wgpuColorLutPass';
|
|
5
|
+
import { applyColorMatrixPassToWgpu } from './wgpuColorMatrixPass';
|
|
6
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
4
7
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
5
8
|
import { getWgpuRenderEffectRunner } from './wgpuRenderEffectRegistry';
|
|
6
9
|
// Opt-in post-process pipeline, the Wgpu mirror of effects-gl's renderEffectPipeline. The caller
|
|
@@ -31,7 +34,14 @@ export function beginWgpuRenderEffectPipeline(state, pipeline) {
|
|
|
31
34
|
beginWgpuRenderTarget(state, pipeline.sceneTarget, state.renderTransform2D ?? createMatrix(), clearColor);
|
|
32
35
|
}
|
|
33
36
|
export function createWgpuRenderEffectPipeline(_state, options = {}) {
|
|
34
|
-
return {
|
|
37
|
+
return {
|
|
38
|
+
options: { ...options },
|
|
39
|
+
sceneTarget: null,
|
|
40
|
+
pool: createWgpuRenderTargetPool(),
|
|
41
|
+
lutCache: createColorLutCache(),
|
|
42
|
+
lutTexture: { texture: null, size: 0, lut: null },
|
|
43
|
+
velocityTexture: null,
|
|
44
|
+
};
|
|
35
45
|
}
|
|
36
46
|
export function destroyWgpuRenderEffectPipeline(state, pipeline) {
|
|
37
47
|
if (pipeline.sceneTarget) {
|
|
@@ -39,8 +49,14 @@ export function destroyWgpuRenderEffectPipeline(state, pipeline) {
|
|
|
39
49
|
pipeline.sceneTarget = null;
|
|
40
50
|
}
|
|
41
51
|
destroyWgpuRenderTargetPool(state, pipeline.pool);
|
|
52
|
+
pipeline.lutTexture.texture?.destroy();
|
|
53
|
+
pipeline.lutTexture.texture = null;
|
|
54
|
+
pipeline.lutTexture.size = 0;
|
|
55
|
+
pipeline.lutTexture.lut = null;
|
|
56
|
+
pipeline.lutCache.signature = null;
|
|
57
|
+
pipeline.lutCache.lut = null;
|
|
42
58
|
}
|
|
43
|
-
export function endWgpuRenderEffectPipeline(state, pipeline,
|
|
59
|
+
export function endWgpuRenderEffectPipeline(state, pipeline, operations) {
|
|
44
60
|
const scene = pipeline.sceneTarget;
|
|
45
61
|
if (scene === null)
|
|
46
62
|
return;
|
|
@@ -51,14 +67,47 @@ export function endWgpuRenderEffectPipeline(state, pipeline, effects) {
|
|
|
51
67
|
let source = scene;
|
|
52
68
|
let scratchA = null;
|
|
53
69
|
let scratchB = null;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
70
|
+
// A maximal run of consecutive pointwise adjustments fuses into ONE pass: all matrix-tier → one 4×5
|
|
71
|
+
// matrix (cheaper applyColorMatrixPass); any LUT-tier member → the whole run (matrices folded in) bakes
|
|
72
|
+
// into one ColorLut (applyColorLutPass). An effect (or the end of the stack) breaks the run and flushes
|
|
73
|
+
// it first, preserving stack order.
|
|
74
|
+
let pending = [];
|
|
75
|
+
const ensureScratch = () => {
|
|
58
76
|
if (scratchA === null)
|
|
59
77
|
scratchA = acquireWgpuRenderTarget(state, pipeline.pool, descriptor);
|
|
60
78
|
if (scratchB === null)
|
|
61
79
|
scratchB = acquireWgpuRenderTarget(state, pipeline.pool, descriptor);
|
|
80
|
+
};
|
|
81
|
+
const flushAdjustments = () => {
|
|
82
|
+
if (pending.length === 0)
|
|
83
|
+
return;
|
|
84
|
+
ensureScratch();
|
|
85
|
+
const dest = source === scratchA ? scratchB : scratchA;
|
|
86
|
+
if (pending.some(isColorLutAdjustment)) {
|
|
87
|
+
applyColorLutPassToWgpu(state, source, dest, bakeColorLutForRun(pipeline.lutCache, pending), pipeline.lutTexture);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
const matrices = [];
|
|
91
|
+
for (const op of pending) {
|
|
92
|
+
const matrix = getAdjustmentColorMatrix(op);
|
|
93
|
+
if (matrix !== null)
|
|
94
|
+
matrices.push(matrix);
|
|
95
|
+
}
|
|
96
|
+
applyColorMatrixPassToWgpu(state, source, dest, fuseColorMatrices(matrices));
|
|
97
|
+
}
|
|
98
|
+
source = dest;
|
|
99
|
+
pending = [];
|
|
100
|
+
};
|
|
101
|
+
for (const operation of operations) {
|
|
102
|
+
if (getAdjustmentColorMatrix(operation) !== null || isColorLutAdjustment(operation)) {
|
|
103
|
+
pending.push(operation);
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
const runner = getWgpuRenderEffectRunner(state, operation.kind);
|
|
107
|
+
if (runner === null)
|
|
108
|
+
continue;
|
|
109
|
+
flushAdjustments();
|
|
110
|
+
ensureScratch();
|
|
62
111
|
const dest = source === scratchA ? scratchB : scratchA;
|
|
63
112
|
runner({
|
|
64
113
|
state,
|
|
@@ -70,9 +119,10 @@ export function endWgpuRenderEffectPipeline(state, pipeline, effects) {
|
|
|
70
119
|
// depth attachment; velocity a separate pass), mirroring the Gl seam.
|
|
71
120
|
sceneDepthTexture: null,
|
|
72
121
|
sceneVelocityTexture: pipeline.velocityTexture,
|
|
73
|
-
},
|
|
122
|
+
}, operation);
|
|
74
123
|
source = dest;
|
|
75
124
|
}
|
|
125
|
+
flushAdjustments();
|
|
76
126
|
presentWgpuRenderEffectResult(state, source);
|
|
77
127
|
if (scratchA !== null)
|
|
78
128
|
releaseWgpuRenderTarget(pipeline.pool, scratchA);
|
|
@@ -91,7 +141,7 @@ function presentWgpuRenderEffectResult(state, source) {
|
|
|
91
141
|
if (runtime.commandEncoder === null)
|
|
92
142
|
return;
|
|
93
143
|
const pipeline = getWgpuEffectPipeline(state, 'effect.present', PRESENT_FRAGMENT_WGSL, 'replace');
|
|
94
|
-
|
|
144
|
+
drawWgpuEffectPass(state, source, null, pipeline, () => { });
|
|
95
145
|
}
|
|
96
146
|
const PRESENT_FRAGMENT_WGSL = /* wgsl */ `
|
|
97
147
|
struct Uniforms { _u : f32, _pad0 : f32, _pad1 : f32, _pad2 : f32, }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderEffectPipeline.js","sourceRoot":"","sources":["../src/wgpuRenderEffectPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"wgpuRenderEffectPipeline.js","sourceRoot":"","sources":["../src/wgpuRenderEffectPipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ export declare function registerAntialiasingWgpuRenderEffects(state: WgpuRenderS
|
|
|
3
3
|
export declare function registerBloomWgpuRenderEffects(state: WgpuRenderState): void;
|
|
4
4
|
export declare function registerBlurWgpuRenderEffects(state: WgpuRenderState): void;
|
|
5
5
|
export declare function registerColorWgpuRenderEffects(state: WgpuRenderState): void;
|
|
6
|
+
export declare function registerCompositeWgpuRenderEffects(state: WgpuRenderState): void;
|
|
6
7
|
export declare function registerScreenSpaceWgpuRenderEffects(state: WgpuRenderState): void;
|
|
7
8
|
export declare function registerStandardWgpuRenderEffects(state: WgpuRenderState): void;
|
|
8
9
|
export declare function registerStylizeWgpuRenderEffects(state: WgpuRenderState): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderEffectRegistrants.d.ts","sourceRoot":"","sources":["../src/wgpuRenderEffectRegistrants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAsDvD,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAIlF;AAID,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAQ3E;AAID,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"wgpuRenderEffectRegistrants.d.ts","sourceRoot":"","sources":["../src/wgpuRenderEffectRegistrants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAsDvD,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAIlF;AAID,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAQ3E;AAID,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAQ1E;AAOD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAG3E;AASD,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAQ/E;AAID,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAMjF;AAED,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAQ9E;AAMD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAc7E"}
|
|
@@ -1,30 +1,31 @@
|
|
|
1
|
+
import { defaultWgpuBevelEffectRunner } from './wgpuBevelEffect';
|
|
1
2
|
import { defaultWgpuBloomEffectRunner } from './wgpuBloomEffect';
|
|
3
|
+
import { defaultWgpuBlurEffectRunner } from './wgpuBlurEffect';
|
|
2
4
|
import { defaultWgpuBokehDepthOfFieldEffectRunner } from './wgpuBokehDepthOfFieldEffect';
|
|
3
|
-
import { defaultWgpuBrightnessContrastEffectRunner } from './wgpuBrightnessContrastEffect';
|
|
4
5
|
import { defaultWgpuCameraMotionBlurEffectRunner } from './wgpuCameraMotionBlurEffect';
|
|
5
|
-
import { defaultWgpuChannelMixerEffectRunner } from './wgpuChannelMixerEffect';
|
|
6
6
|
import { defaultWgpuChromaticAberrationEffectRunner } from './wgpuChromaticAberrationEffect';
|
|
7
|
-
import {
|
|
7
|
+
import { defaultWgpuConvolutionEffectRunner } from './wgpuConvolutionEffect';
|
|
8
8
|
import { defaultWgpuCrtEffectRunner } from './wgpuCrtEffect';
|
|
9
9
|
import { defaultWgpuDirectionalBlurEffectRunner } from './wgpuDirectionalBlurEffect';
|
|
10
10
|
import { defaultWgpuDisplacementEffectRunner } from './wgpuDisplacementEffect';
|
|
11
11
|
import { defaultWgpuDitherEffectRunner } from './wgpuDitherEffect';
|
|
12
|
-
import {
|
|
12
|
+
import { defaultWgpuDropShadowEffectRunner } from './wgpuDropShadowEffect';
|
|
13
13
|
import { defaultWgpuFilmGrainEffectRunner } from './wgpuFilmGrainEffect';
|
|
14
14
|
import { defaultWgpuFxaaEffectRunner } from './wgpuFxaaEffect';
|
|
15
15
|
import { defaultWgpuGlitchEffectRunner } from './wgpuGlitchEffect';
|
|
16
16
|
import { defaultWgpuGodRaysEffectRunner } from './wgpuGodRaysEffect';
|
|
17
|
-
import {
|
|
17
|
+
import { defaultWgpuGradientBevelEffectRunner } from './wgpuGradientBevelEffect';
|
|
18
|
+
import { defaultWgpuGradientGlowEffectRunner } from './wgpuGradientGlowEffect';
|
|
18
19
|
import { defaultWgpuHalftoneEffectRunner } from './wgpuHalftoneEffect';
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
20
|
+
import { defaultWgpuInnerGlowEffectRunner } from './wgpuInnerGlowEffect';
|
|
21
|
+
import { defaultWgpuInnerShadowEffectRunner } from './wgpuInnerShadowEffect';
|
|
21
22
|
import { defaultWgpuKuwaharaEffectRunner } from './wgpuKuwaharaEffect';
|
|
22
23
|
import { defaultWgpuLensDirtEffectRunner } from './wgpuLensDirtEffect';
|
|
23
24
|
import { defaultWgpuLensDistortionEffectRunner } from './wgpuLensDistortionEffect';
|
|
24
25
|
import { defaultWgpuLensFlareEffectRunner } from './wgpuLensFlareEffect';
|
|
25
|
-
import {
|
|
26
|
-
import { defaultWgpuLookupTableGradeEffectRunner } from './wgpuLookupTableGradeEffect';
|
|
26
|
+
import { defaultWgpuMedianEffectRunner } from './wgpuMedianEffect';
|
|
27
27
|
import { defaultWgpuMotionBlurEffectRunner } from './wgpuMotionBlurEffect';
|
|
28
|
+
import { defaultWgpuOuterGlowEffectRunner } from './wgpuOuterGlowEffect';
|
|
28
29
|
import { defaultWgpuOutlineEffectRunner } from './wgpuOutlineEffect';
|
|
29
30
|
import { defaultWgpuPixelateEffectRunner } from './wgpuPixelateEffect';
|
|
30
31
|
import { defaultWgpuPosterizeEffectRunner } from './wgpuPosterizeEffect';
|
|
@@ -32,7 +33,6 @@ import { defaultWgpuRadialBlurEffectRunner } from './wgpuRadialBlurEffect';
|
|
|
32
33
|
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
33
34
|
import { defaultWgpuScanlinesEffectRunner } from './wgpuScanlinesEffect';
|
|
34
35
|
import { defaultWgpuScreenSpaceFogEffectRunner } from './wgpuScreenSpaceFogEffect';
|
|
35
|
-
import { defaultWgpuSepiaEffectRunner } from './wgpuSepiaEffect';
|
|
36
36
|
import { defaultWgpuSharpenEffectRunner } from './wgpuSharpenEffect';
|
|
37
37
|
import { defaultWgpuSketchEffectRunner } from './wgpuSketchEffect';
|
|
38
38
|
import { defaultWgpuSmaaEffectRunner } from './wgpuSmaaEffect';
|
|
@@ -67,6 +67,7 @@ export function registerBloomWgpuRenderEffects(state) {
|
|
|
67
67
|
// Blur band: BokehDepthOfFieldEffect, CameraMotionBlurEffect, DirectionalBlurEffect, MotionBlurEffect,
|
|
68
68
|
// RadialBlurEffect, TiltShiftEffect.
|
|
69
69
|
export function registerBlurWgpuRenderEffects(state) {
|
|
70
|
+
registerWgpuRenderEffect(state, 'BlurEffect', defaultWgpuBlurEffectRunner);
|
|
70
71
|
registerWgpuRenderEffect(state, 'BokehDepthOfFieldEffect', defaultWgpuBokehDepthOfFieldEffectRunner);
|
|
71
72
|
registerWgpuRenderEffect(state, 'CameraMotionBlurEffect', defaultWgpuCameraMotionBlurEffectRunner);
|
|
72
73
|
registerWgpuRenderEffect(state, 'DirectionalBlurEffect', defaultWgpuDirectionalBlurEffectRunner);
|
|
@@ -74,24 +75,31 @@ export function registerBlurWgpuRenderEffects(state) {
|
|
|
74
75
|
registerWgpuRenderEffect(state, 'RadialBlurEffect', defaultWgpuRadialBlurEffectRunner);
|
|
75
76
|
registerWgpuRenderEffect(state, 'TiltShiftEffect', defaultWgpuTiltShiftEffectRunner);
|
|
76
77
|
}
|
|
77
|
-
// Color / tone band:
|
|
78
|
-
//
|
|
79
|
-
//
|
|
78
|
+
// Color / tone band: ToneMapEffect, WhiteBalanceEffect.
|
|
79
|
+
// (The pointwise color ops were dissolved into @flighthq/adjustments — Grayscale/Invert/Sepia/
|
|
80
|
+
// BrightnessContrast/ChannelMixer/Exposure as matrix-tier, and HueSaturation/LiftGammaGain/ColorGrade/
|
|
81
|
+
// Posterize/LookupTableGrade as LUT-tier — folded through the pipeline's generic color-matrix / color-LUT
|
|
82
|
+
// pass; see effect-adjustment-architecture.)
|
|
80
83
|
export function registerColorWgpuRenderEffects(state) {
|
|
81
|
-
registerWgpuRenderEffect(state, 'BrightnessContrastEffect', defaultWgpuBrightnessContrastEffectRunner);
|
|
82
|
-
registerWgpuRenderEffect(state, 'ChannelMixerEffect', defaultWgpuChannelMixerEffectRunner);
|
|
83
|
-
registerWgpuRenderEffect(state, 'ColorGradeEffect', defaultWgpuColorGradeEffectRunner);
|
|
84
|
-
registerWgpuRenderEffect(state, 'ExposureEffect', defaultWgpuExposureEffectRunner);
|
|
85
|
-
registerWgpuRenderEffect(state, 'GrayscaleEffect', defaultWgpuGrayscaleEffectRunner);
|
|
86
|
-
registerWgpuRenderEffect(state, 'HueSaturationEffect', defaultWgpuHueSaturationEffectRunner);
|
|
87
|
-
registerWgpuRenderEffect(state, 'InvertEffect', defaultWgpuInvertEffectRunner);
|
|
88
|
-
registerWgpuRenderEffect(state, 'LiftGammaGainEffect', defaultWgpuLiftGammaGainEffectRunner);
|
|
89
|
-
registerWgpuRenderEffect(state, 'LookupTableGradeEffect', defaultWgpuLookupTableGradeEffectRunner);
|
|
90
|
-
registerWgpuRenderEffect(state, 'PosterizeEffect', defaultWgpuPosterizeEffectRunner);
|
|
91
|
-
registerWgpuRenderEffect(state, 'SepiaEffect', defaultWgpuSepiaEffectRunner);
|
|
92
84
|
registerWgpuRenderEffect(state, 'ToneMapEffect', defaultWgpuToneMapEffectRunner);
|
|
93
85
|
registerWgpuRenderEffect(state, 'WhiteBalanceEffect', defaultWgpuWhiteBalanceEffectRunner);
|
|
94
86
|
}
|
|
87
|
+
// Full standard set — composes all taxonomy bands. Registers all 43 default runners under their
|
|
88
|
+
// canonical kind keys. Import this when the full effect palette is needed; import individual band
|
|
89
|
+
// helpers when only a subset of effects is used.
|
|
90
|
+
// Composite band: BevelEffect, DropShadowEffect, GradientBevelEffect, GradientGlowEffect,
|
|
91
|
+
// InnerGlowEffect, InnerShadowEffect, OuterGlowEffect. The former filter-layer composite ops,
|
|
92
|
+
// now full-frame composite effects chaining tint/blur/offset passes through pooled offscreen targets.
|
|
93
|
+
// Symmetric with Gl's registerCompositeGlRenderEffects.
|
|
94
|
+
export function registerCompositeWgpuRenderEffects(state) {
|
|
95
|
+
registerWgpuRenderEffect(state, 'BevelEffect', defaultWgpuBevelEffectRunner);
|
|
96
|
+
registerWgpuRenderEffect(state, 'DropShadowEffect', defaultWgpuDropShadowEffectRunner);
|
|
97
|
+
registerWgpuRenderEffect(state, 'GradientBevelEffect', defaultWgpuGradientBevelEffectRunner);
|
|
98
|
+
registerWgpuRenderEffect(state, 'GradientGlowEffect', defaultWgpuGradientGlowEffectRunner);
|
|
99
|
+
registerWgpuRenderEffect(state, 'InnerGlowEffect', defaultWgpuInnerGlowEffectRunner);
|
|
100
|
+
registerWgpuRenderEffect(state, 'InnerShadowEffect', defaultWgpuInnerShadowEffectRunner);
|
|
101
|
+
registerWgpuRenderEffect(state, 'OuterGlowEffect', defaultWgpuOuterGlowEffectRunner);
|
|
102
|
+
}
|
|
95
103
|
// Screen-space / atmospheric band: DisplacementEffect, ScreenSpaceFogEffect, SharpenEffect,
|
|
96
104
|
// SsaoEffect, SsrEffect.
|
|
97
105
|
export function registerScreenSpaceWgpuRenderEffects(state) {
|
|
@@ -101,28 +109,31 @@ export function registerScreenSpaceWgpuRenderEffects(state) {
|
|
|
101
109
|
registerWgpuRenderEffect(state, 'SsaoEffect', defaultWgpuSsaoEffectRunner);
|
|
102
110
|
registerWgpuRenderEffect(state, 'SsrEffect', defaultWgpuSsrEffectRunner);
|
|
103
111
|
}
|
|
104
|
-
// Full standard set — composes all taxonomy bands. Registers all 45 default runners under their
|
|
105
|
-
// canonical kind keys. Import this when the full effect palette is needed; import individual band
|
|
106
|
-
// helpers when only a subset of effects is used.
|
|
107
112
|
export function registerStandardWgpuRenderEffects(state) {
|
|
108
113
|
registerAntialiasingWgpuRenderEffects(state);
|
|
109
114
|
registerBloomWgpuRenderEffects(state);
|
|
110
115
|
registerBlurWgpuRenderEffects(state);
|
|
111
116
|
registerColorWgpuRenderEffects(state);
|
|
117
|
+
registerCompositeWgpuRenderEffects(state);
|
|
112
118
|
registerScreenSpaceWgpuRenderEffects(state);
|
|
113
119
|
registerStylizeWgpuRenderEffects(state);
|
|
114
120
|
}
|
|
115
121
|
// Stylize band: CrtEffect, DitherEffect, FilmGrainEffect, GlitchEffect, HalftoneEffect,
|
|
116
|
-
// KuwaharaEffect, OutlineEffect, PixelateEffect, ScanlinesEffect, SketchEffect.
|
|
122
|
+
// KuwaharaEffect, OutlineEffect, PixelateEffect, PosterizeEffect, ScanlinesEffect, SketchEffect.
|
|
123
|
+
// PosterizeEffect is a stylize effect, not a LUT adjustment: its hard step (floor) would be smoothed
|
|
124
|
+
// away by a trilinear fused LUT, so it needs a dedicated per-op pass — see effect-adjustment-architecture.
|
|
117
125
|
export function registerStylizeWgpuRenderEffects(state) {
|
|
126
|
+
registerWgpuRenderEffect(state, 'ConvolutionEffect', defaultWgpuConvolutionEffectRunner);
|
|
118
127
|
registerWgpuRenderEffect(state, 'CrtEffect', defaultWgpuCrtEffectRunner);
|
|
119
128
|
registerWgpuRenderEffect(state, 'DitherEffect', defaultWgpuDitherEffectRunner);
|
|
120
129
|
registerWgpuRenderEffect(state, 'FilmGrainEffect', defaultWgpuFilmGrainEffectRunner);
|
|
121
130
|
registerWgpuRenderEffect(state, 'GlitchEffect', defaultWgpuGlitchEffectRunner);
|
|
122
131
|
registerWgpuRenderEffect(state, 'HalftoneEffect', defaultWgpuHalftoneEffectRunner);
|
|
123
132
|
registerWgpuRenderEffect(state, 'KuwaharaEffect', defaultWgpuKuwaharaEffectRunner);
|
|
133
|
+
registerWgpuRenderEffect(state, 'MedianEffect', defaultWgpuMedianEffectRunner);
|
|
124
134
|
registerWgpuRenderEffect(state, 'OutlineEffect', defaultWgpuOutlineEffectRunner);
|
|
125
135
|
registerWgpuRenderEffect(state, 'PixelateEffect', defaultWgpuPixelateEffectRunner);
|
|
136
|
+
registerWgpuRenderEffect(state, 'PosterizeEffect', defaultWgpuPosterizeEffectRunner);
|
|
126
137
|
registerWgpuRenderEffect(state, 'ScanlinesEffect', defaultWgpuScanlinesEffectRunner);
|
|
127
138
|
registerWgpuRenderEffect(state, 'SketchEffect', defaultWgpuSketchEffectRunner);
|
|
128
139
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderEffectRegistrants.js","sourceRoot":"","sources":["../src/wgpuRenderEffectRegistrants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wgpuRenderEffectRegistrants.js","sourceRoot":"","sources":["../src/wgpuRenderEffectRegistrants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,wCAAwC,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,uCAAuC,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,0CAA0C,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAE,kCAAkC,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,sCAAsC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,oCAAoC,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,kCAAkC,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAE/E,sGAAsG;AACtG,wGAAwG;AACxG,uGAAuG;AACvG,iBAAiB;AAEjB,wDAAwD;AACxD,MAAM,UAAU,qCAAqC,CAAC,KAAsB;IAC1E,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,2BAA2B,CAAC,CAAC;IAC3E,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,2BAA2B,CAAC,CAAC;IAC3E,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,0BAA0B,CAAC,CAAC;AAC3E,CAAC;AAED,+FAA+F;AAC/F,yDAAyD;AACzD,MAAM,UAAU,8BAA8B,CAAC,KAAsB;IACnE,wBAAwB,CAAC,KAAK,EAAE,aAAa,EAAE,4BAA4B,CAAC,CAAC;IAC7E,wBAAwB,CAAC,KAAK,EAAE,2BAA2B,EAAE,0CAA0C,CAAC,CAAC;IACzG,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,8BAA8B,CAAC,CAAC;IACjF,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;IACnF,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,EAAE,qCAAqC,CAAC,CAAC;IAC/F,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;IACrF,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;AACrF,CAAC;AAED,uGAAuG;AACvG,qCAAqC;AACrC,MAAM,UAAU,6BAA6B,CAAC,KAAsB;IAClE,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,2BAA2B,CAAC,CAAC;IAC3E,wBAAwB,CAAC,KAAK,EAAE,yBAAyB,EAAE,wCAAwC,CAAC,CAAC;IACrG,wBAAwB,CAAC,KAAK,EAAE,wBAAwB,EAAE,uCAAuC,CAAC,CAAC;IACnG,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,EAAE,sCAAsC,CAAC,CAAC;IACjG,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE,iCAAiC,CAAC,CAAC;IACvF,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE,iCAAiC,CAAC,CAAC;IACvF,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;AACvF,CAAC;AAED,wDAAwD;AACxD,+FAA+F;AAC/F,wGAAwG;AACxG,2GAA2G;AAC3G,8CAA8C;AAC9C,MAAM,UAAU,8BAA8B,CAAC,KAAsB;IACnE,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,8BAA8B,CAAC,CAAC;IACjF,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,EAAE,mCAAmC,CAAC,CAAC;AAC7F,CAAC;AAED,gGAAgG;AAChG,kGAAkG;AAClG,iDAAiD;AACjD,0FAA0F;AAC1F,8FAA8F;AAC9F,sGAAsG;AACtG,wDAAwD;AACxD,MAAM,UAAU,kCAAkC,CAAC,KAAsB;IACvE,wBAAwB,CAAC,KAAK,EAAE,aAAa,EAAE,4BAA4B,CAAC,CAAC;IAC7E,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE,iCAAiC,CAAC,CAAC;IACvF,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,EAAE,oCAAoC,CAAC,CAAC;IAC7F,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,EAAE,mCAAmC,CAAC,CAAC;IAC3F,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;IACrF,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,EAAE,kCAAkC,CAAC,CAAC;IACzF,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;AACvF,CAAC;AAED,4FAA4F;AAC5F,yBAAyB;AACzB,MAAM,UAAU,oCAAoC,CAAC,KAAsB;IACzE,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,EAAE,mCAAmC,CAAC,CAAC;IAC3F,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,EAAE,qCAAqC,CAAC,CAAC;IAC/F,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,8BAA8B,CAAC,CAAC;IACjF,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,2BAA2B,CAAC,CAAC;IAC3E,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,0BAA0B,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,KAAsB;IACtE,qCAAqC,CAAC,KAAK,CAAC,CAAC;IAC7C,8BAA8B,CAAC,KAAK,CAAC,CAAC;IACtC,6BAA6B,CAAC,KAAK,CAAC,CAAC;IACrC,8BAA8B,CAAC,KAAK,CAAC,CAAC;IACtC,kCAAkC,CAAC,KAAK,CAAC,CAAC;IAC1C,oCAAoC,CAAC,KAAK,CAAC,CAAC;IAC5C,gCAAgC,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,wFAAwF;AACxF,iGAAiG;AACjG,qGAAqG;AACrG,2GAA2G;AAC3G,MAAM,UAAU,gCAAgC,CAAC,KAAsB;IACrE,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,EAAE,kCAAkC,CAAC,CAAC;IACzF,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,0BAA0B,CAAC,CAAC;IACzE,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,6BAA6B,CAAC,CAAC;IAC/E,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;IACrF,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,6BAA6B,CAAC,CAAC;IAC/E,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;IACnF,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;IACnF,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,6BAA6B,CAAC,CAAC;IAC/E,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,8BAA8B,CAAC,CAAC;IACjF,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;IACnF,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;IACrF,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;IACrF,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,6BAA6B,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuScanlinesEffect.d.ts","sourceRoot":"","sources":["../src/wgpuScanlinesEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuScanlinesEffect.d.ts","sourceRoot":"","sources":["../src/wgpuScanlinesEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMlH,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,CAQN;AAED,eAAO,MAAM,gCAAgC,EAAE,sBAE9C,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
3
|
// Scanlines: darken by a vertical sine band; `count` sets the line density, `intensity` the darkening.
|
|
4
4
|
export function applyScanlinesEffectToWgpu(state, source, dest, effect) {
|
|
5
5
|
const count = effect.count ?? 240;
|
|
6
6
|
const intensity = effect.intensity ?? 0.3;
|
|
7
7
|
const pipeline = getWgpuEffectPipeline(state, 'stylization.scanlines', SCANLINES_FRAGMENT_WGSL, 'replace');
|
|
8
|
-
|
|
8
|
+
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
9
9
|
f32[0] = count;
|
|
10
10
|
f32[1] = intensity;
|
|
11
11
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuScanlinesEffect.js","sourceRoot":"","sources":["../src/wgpuScanlinesEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuScanlinesEffect.js","sourceRoot":"","sources":["../src/wgpuScanlinesEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,uGAAuG;AACvG,MAAM,UAAU,0BAA0B,CACxC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAiC;IAEjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC;IAClC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,SAAS,CAAC,CAAC;IAC3G,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACf,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,yCAAyC;AACzC,MAAM,uBAAuB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;EAczC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuScreenSpaceFogEffect.d.ts","sourceRoot":"","sources":["../src/wgpuScreenSpaceFogEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuScreenSpaceFogEffect.d.ts","sourceRoot":"","sources":["../src/wgpuScreenSpaceFogEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAUvH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GACrC,IAAI,CAkBN;AAED,eAAO,MAAM,qCAAqC,EAAE,sBAEnD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
3
|
// Screen-space fog: blends the scene toward an unpacked fog color by a depth proxy. The real recipe
|
|
4
4
|
// reads a sampleable DEPTH texture per fragment — fog = 1 - exp(-density * remap(depth, near, far)) — but
|
|
@@ -12,7 +12,7 @@ export function applyScreenSpaceFogEffectToWgpu(state, source, dest, effect) {
|
|
|
12
12
|
const b = ((packed >>> 8) & 0xff) / 255;
|
|
13
13
|
const density = effect.density ?? 1;
|
|
14
14
|
const pipeline = getWgpuEffectPipeline(state, 'atmospheric.screenSpaceFog', SCREEN_SPACE_FOG_FRAGMENT_WGSL, 'replace');
|
|
15
|
-
|
|
15
|
+
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
16
16
|
f32[0] = density;
|
|
17
17
|
f32[4] = r;
|
|
18
18
|
f32[5] = g;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuScreenSpaceFogEffect.js","sourceRoot":"","sources":["../src/wgpuScreenSpaceFogEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuScreenSpaceFogEffect.js","sourceRoot":"","sources":["../src/wgpuScreenSpaceFogEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,oGAAoG;AACpG,0GAA0G;AAC1G,sGAAsG;AACtG,sGAAsG;AACtG,gFAAgF;AAChF,MAAM,UAAU,+BAA+B,CAC7C,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAsC;IAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,qBAAqB,CACpC,KAAK,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,SAAS,CACV,CAAC;IACF,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QACjB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,qCAAqC,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC3F,+BAA+B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA8B,CAAC,CAAC;AACnG,CAAC,CAAC;AAEF,sGAAsG;AACtG,mEAAmE;AACnE,MAAM,8BAA8B,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;EAmBhD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSharpenEffect.d.ts","sourceRoot":"","sources":["../src/wgpuSharpenEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuSharpenEffect.d.ts","sourceRoot":"","sources":["../src/wgpuSharpenEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMhH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC9B,IAAI,CASN;AAED,eAAO,MAAM,8BAA8B,EAAE,sBAE5C,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
3
|
// Sharpen: unsharp mask via a 3x3 Laplacian kernel; `amount` scales the high-frequency boost.
|
|
4
4
|
export function applySharpenEffectToWgpu(state, source, dest, effect) {
|
|
5
5
|
const amount = effect.amount ?? 0.5;
|
|
6
6
|
const pipeline = getWgpuEffectPipeline(state, 'stylization.sharpen', SHARPEN_FRAGMENT_WGSL, 'replace');
|
|
7
|
-
|
|
7
|
+
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
8
8
|
f32[0] = amount;
|
|
9
9
|
// u_resolution (vec2f) aligns to slot [2].
|
|
10
10
|
f32[2] = source.width;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSharpenEffect.js","sourceRoot":"","sources":["../src/wgpuSharpenEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuSharpenEffect.js","sourceRoot":"","sources":["../src/wgpuSharpenEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,8FAA8F;AAC9F,MAAM,UAAU,wBAAwB,CACtC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA+B;IAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;IACpC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAC;IACvG,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAChB,2CAA2C;QAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,8BAA8B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACpF,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAuB,CAAC,CAAC;AACrF,CAAC,CAAC;AAEF,uDAAuD;AACvD,MAAM,qBAAqB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;EAqBvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSketchEffect.d.ts","sourceRoot":"","sources":["../src/wgpuSketchEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuSketchEffect.d.ts","sourceRoot":"","sources":["../src/wgpuSketchEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAO/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,CASN;AAED,eAAO,MAAM,6BAA6B,EAAE,sBAE3C,CAAC"}
|
package/dist/wgpuSketchEffect.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
3
|
// Sketch: detect luminance edges and invert them into dark pencil strokes over a light page; `strength`
|
|
4
4
|
// scales how dark the strokes get.
|
|
5
5
|
export function applySketchEffectToWgpu(state, source, dest, effect) {
|
|
6
6
|
const strength = effect.strength ?? 1;
|
|
7
7
|
const pipeline = getWgpuEffectPipeline(state, 'stylization.sketch', SKETCH_FRAGMENT_WGSL, 'replace');
|
|
8
|
-
|
|
8
|
+
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
9
9
|
f32[0] = strength;
|
|
10
10
|
// u_resolution (vec2f) aligns to slot [2].
|
|
11
11
|
f32[2] = source.width;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSketchEffect.js","sourceRoot":"","sources":["../src/wgpuSketchEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuSketchEffect.js","sourceRoot":"","sources":["../src/wgpuSketchEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,wGAAwG;AACxG,mCAAmC;AACnC,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA8B;IAE9B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;IACrG,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAClB,2CAA2C;QAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,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,yDAAyD;AACzD,MAAM,oBAAoB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSmaaEffect.d.ts","sourceRoot":"","sources":["../src/wgpuSmaaEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuSmaaEffect.d.ts","sourceRoot":"","sources":["../src/wgpuSmaaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAQ7G,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC3B,IAAI,CAUN;AAED,eAAO,MAAM,2BAA2B,EAAE,sBAEzC,CAAC"}
|
package/dist/wgpuSmaaEffect.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
3
|
// SMAA: a single-pass edge-aware blur approximation. Full SMAA needs separate edge-detection and
|
|
4
4
|
// blend-weight passes against precomputed area/search lookup textures; this single-pass approximation
|
|
@@ -8,7 +8,7 @@ export function applySmaaEffectToWgpu(state, source, dest, effect) {
|
|
|
8
8
|
const width = source.width;
|
|
9
9
|
const height = source.height;
|
|
10
10
|
const pipeline = getWgpuEffectPipeline(state, 'antialiasing.smaa', SMAA_FRAGMENT_WGSL, 'replace');
|
|
11
|
-
|
|
11
|
+
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
12
12
|
f32[0] = width;
|
|
13
13
|
f32[1] = height;
|
|
14
14
|
f32[2] = threshold;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSmaaEffect.js","sourceRoot":"","sources":["../src/wgpuSmaaEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuSmaaEffect.js","sourceRoot":"","sources":["../src/wgpuSmaaEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,iGAAiG;AACjG,sGAAsG;AACtG,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CACnC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA4B;IAE5B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,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,KAAK,CAAC;QACf,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAChB,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACjF,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAoB,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,sGAAsG;AACtG,MAAM,kBAAkB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSsaoEffect.d.ts","sourceRoot":"","sources":["../src/wgpuSsaoEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuSsaoEffect.d.ts","sourceRoot":"","sources":["../src/wgpuSsaoEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAU7G,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC3B,IAAI,CAUN;AAED,eAAO,MAAM,2BAA2B,EAAE,sBAEzC,CAAC"}
|
package/dist/wgpuSsaoEffect.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
3
|
// SSAO: ambient-occlusion approximation. Real SSAO reconstructs view-space position/normals from a
|
|
4
4
|
// sampleable DEPTH texture and accumulates occlusion over `samples` kernel offsets within `radius`,
|
|
@@ -9,7 +9,7 @@ export function applySsaoEffectToWgpu(state, source, dest, effect) {
|
|
|
9
9
|
const radius = effect.radius ?? 1;
|
|
10
10
|
const intensity = effect.intensity ?? 1;
|
|
11
11
|
const pipeline = getWgpuEffectPipeline(state, 'atmospheric.ssao', SSAO_FRAGMENT_WGSL, 'replace');
|
|
12
|
-
|
|
12
|
+
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
13
13
|
f32[0] = radius;
|
|
14
14
|
f32[1] = intensity;
|
|
15
15
|
f32[2] = source.width;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSsaoEffect.js","sourceRoot":"","sources":["../src/wgpuSsaoEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuSsaoEffect.js","sourceRoot":"","sources":["../src/wgpuSsaoEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,mGAAmG;AACnG,oGAAoG;AACpG,sGAAsG;AACtG,sGAAsG;AACtG,yEAAyE;AACzE,MAAM,UAAU,qBAAqB,CACnC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;IACjG,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAChB,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACjF,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAoB,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,kBAAkB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSsrEffect.d.ts","sourceRoot":"","sources":["../src/wgpuSsrEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuSsrEffect.d.ts","sourceRoot":"","sources":["../src/wgpuSsrEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAS5G,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAEhC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC1B,IAAI,CAGN;AAED,eAAO,MAAM,0BAA0B,EAAE,sBAExC,CAAC"}
|
package/dist/wgpuSsrEffect.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
3
|
// SSR: screen-space reflections. The real recipe ray-marches reflected rays against a sampleable DEPTH
|
|
4
4
|
// buffer using view-space normals, walking `steps` increments up to `maxDistance` at the given
|
|
@@ -8,7 +8,7 @@ export function applySsrEffectToWgpu(state, source, dest,
|
|
|
8
8
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
9
9
|
effect) {
|
|
10
10
|
const pipeline = getWgpuEffectPipeline(state, 'atmospheric.ssr', SSR_FRAGMENT_WGSL, 'replace');
|
|
11
|
-
|
|
11
|
+
drawWgpuEffectPass(state, source, dest, pipeline, () => { });
|
|
12
12
|
}
|
|
13
13
|
export const defaultWgpuSsrEffectRunner = (ctx, effect) => {
|
|
14
14
|
applySsrEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSsrEffect.js","sourceRoot":"","sources":["../src/wgpuSsrEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuSsrEffect.js","sourceRoot":"","sources":["../src/wgpuSsrEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,uGAAuG;AACvG,+FAA+F;AAC/F,mGAAmG;AACnG,4GAA4G;AAC5G,MAAM,UAAU,oBAAoB,CAClC,KAAsB,EACtB,MAAkC,EAClC,IAAgC;AAChC,6DAA6D;AAC7D,MAA2B;IAE3B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC/F,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAChF,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAmB,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,UAAU,CAAC;;;;;;;;;;;EAWnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuTaaEffect.d.ts","sourceRoot":"","sources":["../src/wgpuTaaEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuTaaEffect.d.ts","sourceRoot":"","sources":["../src/wgpuTaaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAQ5G,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC3B,IAAI,CAGN;AAED,eAAO,MAAM,0BAA0B,EAAE,sBAExC,CAAC"}
|