@flighthq/effects-wgpu 0.3.0-next.906.07cea63 → 0.3.1-next.209.43ef1bc
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/contract.d.ts +2 -3
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +2 -3
- package/dist/contract.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/wgpuBevelEffect.d.ts +1 -0
- package/dist/wgpuBevelEffect.d.ts.map +1 -1
- package/dist/wgpuBevelEffect.js +4 -0
- package/dist/wgpuBevelEffect.js.map +1 -1
- package/dist/wgpuBlendEffect.d.ts +2 -1
- package/dist/wgpuBlendEffect.d.ts.map +1 -1
- package/dist/wgpuBlendEffect.js +8 -0
- package/dist/wgpuBlendEffect.js.map +1 -1
- package/dist/wgpuBloomEffect.d.ts +1 -0
- package/dist/wgpuBloomEffect.d.ts.map +1 -1
- package/dist/wgpuBloomEffect.js +4 -0
- package/dist/wgpuBloomEffect.js.map +1 -1
- package/dist/wgpuBlurEffect.d.ts +1 -0
- package/dist/wgpuBlurEffect.d.ts.map +1 -1
- package/dist/wgpuBlurEffect.js +4 -0
- package/dist/wgpuBlurEffect.js.map +1 -1
- package/dist/wgpuCameraMotionBlurEffect.d.ts +1 -0
- package/dist/wgpuCameraMotionBlurEffect.d.ts.map +1 -1
- package/dist/wgpuCameraMotionBlurEffect.js +4 -0
- package/dist/wgpuCameraMotionBlurEffect.js.map +1 -1
- package/dist/wgpuChromaticAberrationEffect.d.ts +1 -0
- package/dist/wgpuChromaticAberrationEffect.d.ts.map +1 -1
- package/dist/wgpuChromaticAberrationEffect.js +4 -0
- package/dist/wgpuChromaticAberrationEffect.js.map +1 -1
- package/dist/wgpuCompositeEffect.d.ts +1 -0
- package/dist/wgpuCompositeEffect.d.ts.map +1 -1
- package/dist/wgpuCompositeEffect.js +4 -0
- package/dist/wgpuCompositeEffect.js.map +1 -1
- package/dist/wgpuContactShadowsEffect.d.ts +5 -0
- package/dist/wgpuContactShadowsEffect.d.ts.map +1 -0
- package/dist/wgpuContactShadowsEffect.js +19 -0
- package/dist/wgpuContactShadowsEffect.js.map +1 -0
- package/dist/wgpuConvolutionEffect.d.ts +1 -0
- package/dist/wgpuConvolutionEffect.d.ts.map +1 -1
- package/dist/wgpuConvolutionEffect.js +4 -0
- package/dist/wgpuConvolutionEffect.js.map +1 -1
- package/dist/wgpuCrtEffect.d.ts +1 -0
- package/dist/wgpuCrtEffect.d.ts.map +1 -1
- package/dist/wgpuCrtEffect.js +4 -0
- package/dist/wgpuCrtEffect.js.map +1 -1
- package/dist/wgpuDirectionalBlurEffect.d.ts +1 -0
- package/dist/wgpuDirectionalBlurEffect.d.ts.map +1 -1
- package/dist/wgpuDirectionalBlurEffect.js +4 -0
- package/dist/wgpuDirectionalBlurEffect.js.map +1 -1
- package/dist/wgpuDisplacementEffect.d.ts +1 -0
- package/dist/wgpuDisplacementEffect.d.ts.map +1 -1
- package/dist/wgpuDisplacementEffect.js +4 -0
- package/dist/wgpuDisplacementEffect.js.map +1 -1
- package/dist/wgpuDitherEffect.d.ts +1 -0
- package/dist/wgpuDitherEffect.d.ts.map +1 -1
- package/dist/wgpuDitherEffect.js +4 -0
- package/dist/wgpuDitherEffect.js.map +1 -1
- package/dist/wgpuDropShadowEffect.d.ts +1 -0
- package/dist/wgpuDropShadowEffect.d.ts.map +1 -1
- package/dist/wgpuDropShadowEffect.js +4 -0
- package/dist/wgpuDropShadowEffect.js.map +1 -1
- package/dist/wgpuFilmGrainEffect.d.ts +1 -0
- package/dist/wgpuFilmGrainEffect.d.ts.map +1 -1
- package/dist/wgpuFilmGrainEffect.js +4 -0
- package/dist/wgpuFilmGrainEffect.js.map +1 -1
- package/dist/wgpuFxaaEffect.d.ts +1 -0
- package/dist/wgpuFxaaEffect.d.ts.map +1 -1
- package/dist/wgpuFxaaEffect.js +4 -0
- package/dist/wgpuFxaaEffect.js.map +1 -1
- package/dist/wgpuGlitchEffect.d.ts +1 -0
- package/dist/wgpuGlitchEffect.d.ts.map +1 -1
- package/dist/wgpuGlitchEffect.js +4 -0
- package/dist/wgpuGlitchEffect.js.map +1 -1
- package/dist/wgpuGodRaysEffect.d.ts +1 -0
- package/dist/wgpuGodRaysEffect.d.ts.map +1 -1
- package/dist/wgpuGodRaysEffect.js +4 -0
- package/dist/wgpuGodRaysEffect.js.map +1 -1
- package/dist/wgpuGradientBevelEffect.d.ts +1 -0
- package/dist/wgpuGradientBevelEffect.d.ts.map +1 -1
- package/dist/wgpuGradientBevelEffect.js +4 -0
- package/dist/wgpuGradientBevelEffect.js.map +1 -1
- package/dist/wgpuGradientGlowEffect.d.ts +1 -0
- package/dist/wgpuGradientGlowEffect.d.ts.map +1 -1
- package/dist/wgpuGradientGlowEffect.js +4 -0
- package/dist/wgpuGradientGlowEffect.js.map +1 -1
- package/dist/wgpuHalftoneEffect.d.ts +1 -0
- package/dist/wgpuHalftoneEffect.d.ts.map +1 -1
- package/dist/wgpuHalftoneEffect.js +4 -0
- package/dist/wgpuHalftoneEffect.js.map +1 -1
- package/dist/wgpuInnerGlowEffect.d.ts +1 -0
- package/dist/wgpuInnerGlowEffect.d.ts.map +1 -1
- package/dist/wgpuInnerGlowEffect.js +4 -0
- package/dist/wgpuInnerGlowEffect.js.map +1 -1
- package/dist/wgpuInnerShadowEffect.d.ts +1 -0
- package/dist/wgpuInnerShadowEffect.d.ts.map +1 -1
- package/dist/wgpuInnerShadowEffect.js +4 -0
- package/dist/wgpuInnerShadowEffect.js.map +1 -1
- package/dist/wgpuKuwaharaEffect.d.ts +1 -0
- package/dist/wgpuKuwaharaEffect.d.ts.map +1 -1
- package/dist/wgpuKuwaharaEffect.js +4 -0
- package/dist/wgpuKuwaharaEffect.js.map +1 -1
- package/dist/wgpuLensDirtEffect.d.ts +1 -0
- package/dist/wgpuLensDirtEffect.d.ts.map +1 -1
- package/dist/wgpuLensDirtEffect.js +4 -0
- package/dist/wgpuLensDirtEffect.js.map +1 -1
- package/dist/wgpuLensDistortionEffect.d.ts +1 -0
- package/dist/wgpuLensDistortionEffect.d.ts.map +1 -1
- package/dist/wgpuLensDistortionEffect.js +4 -0
- package/dist/wgpuLensDistortionEffect.js.map +1 -1
- package/dist/wgpuLensFlareEffect.d.ts +1 -0
- package/dist/wgpuLensFlareEffect.d.ts.map +1 -1
- package/dist/wgpuLensFlareEffect.js +4 -0
- package/dist/wgpuLensFlareEffect.js.map +1 -1
- package/dist/wgpuMedianEffect.d.ts +1 -0
- package/dist/wgpuMedianEffect.d.ts.map +1 -1
- package/dist/wgpuMedianEffect.js +4 -0
- package/dist/wgpuMedianEffect.js.map +1 -1
- package/dist/wgpuMotionBlurEffect.d.ts +1 -0
- package/dist/wgpuMotionBlurEffect.d.ts.map +1 -1
- package/dist/wgpuMotionBlurEffect.js +4 -0
- package/dist/wgpuMotionBlurEffect.js.map +1 -1
- package/dist/wgpuOuterGlowEffect.d.ts +1 -0
- package/dist/wgpuOuterGlowEffect.d.ts.map +1 -1
- package/dist/wgpuOuterGlowEffect.js +4 -0
- package/dist/wgpuOuterGlowEffect.js.map +1 -1
- package/dist/wgpuOutlineEffect.d.ts +1 -0
- package/dist/wgpuOutlineEffect.d.ts.map +1 -1
- package/dist/wgpuOutlineEffect.js +4 -0
- package/dist/wgpuOutlineEffect.js.map +1 -1
- package/dist/wgpuPixelateEffect.d.ts +1 -0
- package/dist/wgpuPixelateEffect.d.ts.map +1 -1
- package/dist/wgpuPixelateEffect.js +4 -0
- package/dist/wgpuPixelateEffect.js.map +1 -1
- package/dist/wgpuPosterizeEffect.d.ts +1 -0
- package/dist/wgpuPosterizeEffect.d.ts.map +1 -1
- package/dist/wgpuPosterizeEffect.js +4 -0
- package/dist/wgpuPosterizeEffect.js.map +1 -1
- package/dist/wgpuRadialBlurEffect.d.ts +1 -0
- package/dist/wgpuRadialBlurEffect.d.ts.map +1 -1
- package/dist/wgpuRadialBlurEffect.js +4 -0
- package/dist/wgpuRadialBlurEffect.js.map +1 -1
- package/dist/wgpuRenderEffectRegistry.d.ts.map +1 -1
- package/dist/wgpuRenderEffectRegistry.js +7 -9
- package/dist/wgpuRenderEffectRegistry.js.map +1 -1
- package/dist/wgpuRenderTextureEffect.d.ts +3 -0
- package/dist/wgpuRenderTextureEffect.d.ts.map +1 -0
- package/dist/wgpuRenderTextureEffect.js +38 -0
- package/dist/wgpuRenderTextureEffect.js.map +1 -0
- package/dist/wgpuScanlinesEffect.d.ts +1 -0
- package/dist/wgpuScanlinesEffect.d.ts.map +1 -1
- package/dist/wgpuScanlinesEffect.js +4 -0
- package/dist/wgpuScanlinesEffect.js.map +1 -1
- package/dist/wgpuScreenSpaceFogEffect.d.ts +1 -0
- package/dist/wgpuScreenSpaceFogEffect.d.ts.map +1 -1
- package/dist/wgpuScreenSpaceFogEffect.js +4 -0
- package/dist/wgpuScreenSpaceFogEffect.js.map +1 -1
- package/dist/wgpuSharpenEffect.d.ts +1 -0
- package/dist/wgpuSharpenEffect.d.ts.map +1 -1
- package/dist/wgpuSharpenEffect.js +4 -0
- package/dist/wgpuSharpenEffect.js.map +1 -1
- package/dist/wgpuSketchEffect.d.ts +1 -0
- package/dist/wgpuSketchEffect.d.ts.map +1 -1
- package/dist/wgpuSketchEffect.js +4 -0
- package/dist/wgpuSketchEffect.js.map +1 -1
- package/dist/wgpuSmaaEffect.d.ts +1 -0
- package/dist/wgpuSmaaEffect.d.ts.map +1 -1
- package/dist/wgpuSmaaEffect.js +4 -0
- package/dist/wgpuSmaaEffect.js.map +1 -1
- package/dist/wgpuSsaoEffect.d.ts +1 -0
- package/dist/wgpuSsaoEffect.d.ts.map +1 -1
- package/dist/wgpuSsaoEffect.js +4 -0
- package/dist/wgpuSsaoEffect.js.map +1 -1
- package/dist/wgpuTiltShiftEffect.d.ts +1 -0
- package/dist/wgpuTiltShiftEffect.d.ts.map +1 -1
- package/dist/wgpuTiltShiftEffect.js +4 -0
- package/dist/wgpuTiltShiftEffect.js.map +1 -1
- package/dist/wgpuToneMapEffect.d.ts +1 -0
- package/dist/wgpuToneMapEffect.d.ts.map +1 -1
- package/dist/wgpuToneMapEffect.js +4 -0
- package/dist/wgpuToneMapEffect.js.map +1 -1
- package/dist/wgpuVignetteEffect.d.ts +1 -0
- package/dist/wgpuVignetteEffect.d.ts.map +1 -1
- package/dist/wgpuVignetteEffect.js +4 -0
- package/dist/wgpuVignetteEffect.js.map +1 -1
- package/dist/wgpuWhiteBalanceEffect.d.ts +1 -0
- package/dist/wgpuWhiteBalanceEffect.d.ts.map +1 -1
- package/dist/wgpuWhiteBalanceEffect.js +4 -0
- package/dist/wgpuWhiteBalanceEffect.js.map +1 -1
- package/package.json +8 -6
- package/src/wgpuBevelEffect.test.ts +7 -1
- package/src/wgpuBlendEffect.test.ts +25 -0
- package/src/wgpuBloomEffect.test.ts +7 -1
- package/src/wgpuBlurEffect.test.ts +19 -1
- package/src/wgpuCameraMotionBlurEffect.test.ts +7 -0
- package/src/wgpuChromaticAberrationEffect.test.ts +7 -0
- package/src/wgpuCompositeEffect.test.ts +7 -0
- package/src/wgpuContactShadowsEffect.test.ts +47 -0
- package/src/wgpuConvolutionEffect.test.ts +11 -1
- package/src/wgpuCrtEffect.test.ts +7 -1
- package/src/wgpuDirectionalBlurEffect.test.ts +11 -1
- package/src/wgpuDisplacementEffect.test.ts +11 -1
- package/src/wgpuDitherEffect.test.ts +7 -1
- package/src/wgpuDropShadowEffect.test.ts +11 -10
- package/src/wgpuEffectBoxBlur.test.ts +0 -5
- package/src/wgpuEffectTintShader.test.ts +0 -5
- package/src/wgpuFilmGrainEffect.test.ts +11 -1
- package/src/wgpuFxaaEffect.test.ts +7 -1
- package/src/wgpuGlitchEffect.test.ts +7 -1
- package/src/wgpuGodRaysEffect.test.ts +11 -1
- package/src/wgpuGradientBevelEffect.test.ts +11 -1
- package/src/wgpuGradientGlowEffect.test.ts +11 -1
- package/src/wgpuHalftoneEffect.test.ts +11 -1
- package/src/wgpuInnerGlowEffect.test.ts +11 -10
- package/src/wgpuInnerShadowEffect.test.ts +11 -10
- package/src/wgpuKuwaharaEffect.test.ts +11 -1
- package/src/wgpuLensDirtEffect.test.ts +11 -1
- package/src/wgpuLensDistortionEffect.test.ts +11 -1
- package/src/wgpuLensFlareEffect.test.ts +11 -1
- package/src/wgpuMedianEffect.test.ts +7 -1
- package/src/wgpuMotionBlurEffect.test.ts +11 -1
- package/src/wgpuOuterGlowEffect.test.ts +11 -10
- package/src/wgpuOutlineEffect.test.ts +11 -1
- package/src/wgpuPixelateEffect.test.ts +11 -1
- package/src/wgpuPosterizeEffect.test.ts +11 -1
- package/src/wgpuRadialBlurEffect.test.ts +11 -1
- package/src/wgpuRenderTextureEffect.test.ts +99 -0
- package/src/wgpuScanlinesEffect.test.ts +11 -1
- package/src/wgpuScreenSpaceFogEffect.test.ts +11 -1
- package/src/wgpuSharpenEffect.test.ts +11 -1
- package/src/wgpuSketchEffect.test.ts +7 -1
- package/src/wgpuSmaaEffect.test.ts +7 -1
- package/src/wgpuSpatialEffectRegistration.test.ts +70 -0
- package/src/wgpuSsaoEffect.test.ts +7 -1
- package/src/wgpuTiltShiftEffect.test.ts +11 -1
- package/src/wgpuToneMapEffect.test.ts +11 -1
- package/src/wgpuVignetteEffect.test.ts +11 -1
- package/src/wgpuWhiteBalanceEffect.test.ts +11 -1
- package/dist/wgpuBokehDepthOfFieldEffect.d.ts +0 -4
- package/dist/wgpuBokehDepthOfFieldEffect.d.ts.map +0 -1
- package/dist/wgpuBokehDepthOfFieldEffect.js +0 -51
- package/dist/wgpuBokehDepthOfFieldEffect.js.map +0 -1
- package/dist/wgpuSsrEffect.d.ts +0 -4
- package/dist/wgpuSsrEffect.d.ts.map +0 -1
- package/dist/wgpuSsrEffect.js +0 -28
- package/dist/wgpuSsrEffect.js.map +0 -1
- package/dist/wgpuTaaEffect.d.ts +0 -4
- package/dist/wgpuTaaEffect.d.ts.map +0 -1
- package/dist/wgpuTaaEffect.js +0 -27
- package/dist/wgpuTaaEffect.js.map +0 -1
- package/src/wgpuBokehDepthOfFieldEffect.test.ts +0 -16
- package/src/wgpuSsrEffect.test.ts +0 -13
- package/src/wgpuTaaEffect.test.ts +0 -13
package/dist/contract.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export * from './wgpuColorMatrixPass';
|
|
2
2
|
export * from './wgpuCompositeEffect';
|
|
3
|
+
export * from './wgpuContactShadowsEffect';
|
|
3
4
|
export * from './wgpuBlendEffect';
|
|
4
5
|
export * from './wgpuBevelEffect';
|
|
5
6
|
export * from './wgpuBloomEffect';
|
|
6
7
|
export * from './wgpuBlurEffect';
|
|
7
|
-
export * from './wgpuBokehDepthOfFieldEffect';
|
|
8
8
|
export * from './wgpuCameraMotionBlurEffect';
|
|
9
9
|
export * from './wgpuChromaticAberrationEffect';
|
|
10
10
|
export * from './wgpuConvolutionEffect';
|
|
@@ -41,14 +41,13 @@ export * from './wgpuPosterizeEffect';
|
|
|
41
41
|
export * from './wgpuRadialBlurEffect';
|
|
42
42
|
export * from './wgpuRenderEffectPipeline';
|
|
43
43
|
export * from './wgpuRenderEffectRegistry';
|
|
44
|
+
export * from './wgpuRenderTextureEffect';
|
|
44
45
|
export * from './wgpuScanlinesEffect';
|
|
45
46
|
export * from './wgpuScreenSpaceFogEffect';
|
|
46
47
|
export * from './wgpuSharpenEffect';
|
|
47
48
|
export * from './wgpuSketchEffect';
|
|
48
49
|
export * from './wgpuSmaaEffect';
|
|
49
50
|
export * from './wgpuSsaoEffect';
|
|
50
|
-
export * from './wgpuSsrEffect';
|
|
51
|
-
export * from './wgpuTaaEffect';
|
|
52
51
|
export * from './wgpuTiltShiftEffect';
|
|
53
52
|
export * from './wgpuToneMapEffect';
|
|
54
53
|
export * from './wgpuVignetteEffect';
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
|
package/dist/contract.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export * from './wgpuColorMatrixPass';
|
|
2
2
|
export * from './wgpuCompositeEffect';
|
|
3
|
+
export * from './wgpuContactShadowsEffect';
|
|
3
4
|
export * from './wgpuBlendEffect';
|
|
4
5
|
export * from './wgpuBevelEffect';
|
|
5
6
|
export * from './wgpuBloomEffect';
|
|
6
7
|
export * from './wgpuBlurEffect';
|
|
7
|
-
export * from './wgpuBokehDepthOfFieldEffect';
|
|
8
8
|
export * from './wgpuCameraMotionBlurEffect';
|
|
9
9
|
export * from './wgpuChromaticAberrationEffect';
|
|
10
10
|
export * from './wgpuConvolutionEffect';
|
|
@@ -41,14 +41,13 @@ export * from './wgpuPosterizeEffect';
|
|
|
41
41
|
export * from './wgpuRadialBlurEffect';
|
|
42
42
|
export * from './wgpuRenderEffectPipeline';
|
|
43
43
|
export * from './wgpuRenderEffectRegistry';
|
|
44
|
+
export * from './wgpuRenderTextureEffect';
|
|
44
45
|
export * from './wgpuScanlinesEffect';
|
|
45
46
|
export * from './wgpuScreenSpaceFogEffect';
|
|
46
47
|
export * from './wgpuSharpenEffect';
|
|
47
48
|
export * from './wgpuSketchEffect';
|
|
48
49
|
export * from './wgpuSmaaEffect';
|
|
49
50
|
export * from './wgpuSsaoEffect';
|
|
50
|
-
export * from './wgpuSsrEffect';
|
|
51
|
-
export * from './wgpuTaaEffect';
|
|
52
51
|
export * from './wgpuTiltShiftEffect';
|
|
53
52
|
export * from './wgpuToneMapEffect';
|
|
54
53
|
export * from './wgpuVignetteEffect';
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { beginWgpuRenderEffectPipeline, createWgpuRenderEffectPipeline, defaultWgpuBlendEffectRunner, defaultWgpuBloomEffectRunner,
|
|
1
|
+
export { applyWgpuRenderEffectsToRenderTexture, beginWgpuRenderEffectPipeline, createWgpuRenderEffectPipeline, defaultWgpuBevelEffectRunner, defaultWgpuBlendEffectRunner, defaultWgpuBloomEffectRunner, defaultWgpuBlurEffectRunner, defaultWgpuCameraMotionBlurEffectRunner, defaultWgpuChromaticAberrationEffectRunner, defaultWgpuCompositeEffectRunner, defaultWgpuContactShadowsEffectRunner, defaultWgpuConvolutionEffectRunner, defaultWgpuCrtEffectRunner, defaultWgpuDirectionalBlurEffectRunner, defaultWgpuDisplacementEffectRunner, defaultWgpuDitherEffectRunner, defaultWgpuDropShadowEffectRunner, defaultWgpuFilmGrainEffectRunner, defaultWgpuFxaaEffectRunner, defaultWgpuGlitchEffectRunner, defaultWgpuGodRaysEffectRunner, defaultWgpuGradientBevelEffectRunner, defaultWgpuGradientGlowEffectRunner, defaultWgpuHalftoneEffectRunner, defaultWgpuInnerGlowEffectRunner, defaultWgpuInnerShadowEffectRunner, defaultWgpuKuwaharaEffectRunner, defaultWgpuLensDirtEffectRunner, defaultWgpuLensDistortionEffectRunner, defaultWgpuLensFlareEffectRunner, defaultWgpuMedianEffectRunner, defaultWgpuMotionBlurEffectRunner, defaultWgpuOuterGlowEffectRunner, defaultWgpuOutlineEffectRunner, defaultWgpuPixelateEffectRunner, defaultWgpuPosterizeEffectRunner, defaultWgpuRadialBlurEffectRunner, defaultWgpuScanlinesEffectRunner, defaultWgpuScreenSpaceFogEffectRunner, defaultWgpuSharpenEffectRunner, defaultWgpuSketchEffectRunner, defaultWgpuSmaaEffectRunner, defaultWgpuSsaoEffectRunner, defaultWgpuTiltShiftEffectRunner, defaultWgpuToneMapEffectRunner, defaultWgpuVignetteEffectRunner, defaultWgpuWhiteBalanceEffectRunner, endWgpuRenderEffectPipeline, registerWgpuBlendEffectBackdrop, registerWgpuBevelEffect, registerWgpuBlurEffect, registerWgpuContactShadowsEffect, registerWgpuDropShadowEffect, registerWgpuGradientBevelEffect, registerWgpuGradientGlowEffect, registerWgpuInnerGlowEffect, registerWgpuInnerShadowEffect, registerWgpuOuterGlowEffect, registerWgpuBlendEffect, registerWgpuBloomEffect, registerWgpuCameraMotionBlurEffect, registerWgpuChromaticAberrationEffect, registerWgpuCompositeEffect, registerWgpuConvolutionEffect, registerWgpuCrtEffect, registerWgpuDirectionalBlurEffect, registerWgpuDisplacementEffect, registerWgpuDitherEffect, registerWgpuFilmGrainEffect, registerWgpuFxaaEffect, registerWgpuGlitchEffect, registerWgpuGodRaysEffect, registerWgpuHalftoneEffect, registerWgpuKuwaharaEffect, registerWgpuLensDirtEffect, registerWgpuLensDistortionEffect, registerWgpuLensFlareEffect, registerWgpuMedianEffect, registerWgpuMotionBlurEffect, registerWgpuOutlineEffect, registerWgpuPixelateEffect, registerWgpuPosterizeEffect, registerWgpuRadialBlurEffect, registerWgpuScanlinesEffect, registerWgpuScreenSpaceFogEffect, registerWgpuSharpenEffect, registerWgpuSketchEffect, registerWgpuSmaaEffect, registerWgpuSsaoEffect, registerWgpuTiltShiftEffect, registerWgpuToneMapEffect, registerWgpuVignetteEffect, registerWgpuWhiteBalanceEffect, registerWgpuRenderEffect, setWgpuRenderEffectVelocityTexture, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,4BAA4B,EAC5B,4BAA4B,EAC5B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qCAAqC,EACrC,6BAA6B,EAC7B,8BAA8B,EAC9B,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,uCAAuC,EACvC,0CAA0C,EAC1C,gCAAgC,EAChC,qCAAqC,EACrC,kCAAkC,EAClC,0BAA0B,EAC1B,sCAAsC,EACtC,mCAAmC,EACnC,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,oCAAoC,EACpC,mCAAmC,EACnC,+BAA+B,EAC/B,gCAAgC,EAChC,kCAAkC,EAClC,+BAA+B,EAC/B,+BAA+B,EAC/B,qCAAqC,EACrC,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,mCAAmC,EACnC,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,EACtB,gCAAgC,EAChC,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,kCAAkC,EAClC,qCAAqC,EACrC,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,iCAAiC,EACjC,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,gCAAgC,EAChC,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,wBAAwB,EACxB,kCAAkC,GACnC,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { beginWgpuRenderEffectPipeline, createWgpuRenderEffectPipeline, defaultWgpuBlendEffectRunner, defaultWgpuBloomEffectRunner,
|
|
1
|
+
export { applyWgpuRenderEffectsToRenderTexture, beginWgpuRenderEffectPipeline, createWgpuRenderEffectPipeline, defaultWgpuBevelEffectRunner, defaultWgpuBlendEffectRunner, defaultWgpuBloomEffectRunner, defaultWgpuBlurEffectRunner, defaultWgpuCameraMotionBlurEffectRunner, defaultWgpuChromaticAberrationEffectRunner, defaultWgpuCompositeEffectRunner, defaultWgpuContactShadowsEffectRunner, defaultWgpuConvolutionEffectRunner, defaultWgpuCrtEffectRunner, defaultWgpuDirectionalBlurEffectRunner, defaultWgpuDisplacementEffectRunner, defaultWgpuDitherEffectRunner, defaultWgpuDropShadowEffectRunner, defaultWgpuFilmGrainEffectRunner, defaultWgpuFxaaEffectRunner, defaultWgpuGlitchEffectRunner, defaultWgpuGodRaysEffectRunner, defaultWgpuGradientBevelEffectRunner, defaultWgpuGradientGlowEffectRunner, defaultWgpuHalftoneEffectRunner, defaultWgpuInnerGlowEffectRunner, defaultWgpuInnerShadowEffectRunner, defaultWgpuKuwaharaEffectRunner, defaultWgpuLensDirtEffectRunner, defaultWgpuLensDistortionEffectRunner, defaultWgpuLensFlareEffectRunner, defaultWgpuMedianEffectRunner, defaultWgpuMotionBlurEffectRunner, defaultWgpuOuterGlowEffectRunner, defaultWgpuOutlineEffectRunner, defaultWgpuPixelateEffectRunner, defaultWgpuPosterizeEffectRunner, defaultWgpuRadialBlurEffectRunner, defaultWgpuScanlinesEffectRunner, defaultWgpuScreenSpaceFogEffectRunner, defaultWgpuSharpenEffectRunner, defaultWgpuSketchEffectRunner, defaultWgpuSmaaEffectRunner, defaultWgpuSsaoEffectRunner, defaultWgpuTiltShiftEffectRunner, defaultWgpuToneMapEffectRunner, defaultWgpuVignetteEffectRunner, defaultWgpuWhiteBalanceEffectRunner, endWgpuRenderEffectPipeline, registerWgpuBlendEffectBackdrop, registerWgpuBevelEffect, registerWgpuBlurEffect, registerWgpuContactShadowsEffect, registerWgpuDropShadowEffect, registerWgpuGradientBevelEffect, registerWgpuGradientGlowEffect, registerWgpuInnerGlowEffect, registerWgpuInnerShadowEffect, registerWgpuOuterGlowEffect, registerWgpuBlendEffect, registerWgpuBloomEffect, registerWgpuCameraMotionBlurEffect, registerWgpuChromaticAberrationEffect, registerWgpuCompositeEffect, registerWgpuConvolutionEffect, registerWgpuCrtEffect, registerWgpuDirectionalBlurEffect, registerWgpuDisplacementEffect, registerWgpuDitherEffect, registerWgpuFilmGrainEffect, registerWgpuFxaaEffect, registerWgpuGlitchEffect, registerWgpuGodRaysEffect, registerWgpuHalftoneEffect, registerWgpuKuwaharaEffect, registerWgpuLensDirtEffect, registerWgpuLensDistortionEffect, registerWgpuLensFlareEffect, registerWgpuMedianEffect, registerWgpuMotionBlurEffect, registerWgpuOutlineEffect, registerWgpuPixelateEffect, registerWgpuPosterizeEffect, registerWgpuRadialBlurEffect, registerWgpuScanlinesEffect, registerWgpuScreenSpaceFogEffect, registerWgpuSharpenEffect, registerWgpuSketchEffect, registerWgpuSmaaEffect, registerWgpuSsaoEffect, registerWgpuTiltShiftEffect, registerWgpuToneMapEffect, registerWgpuVignetteEffect, registerWgpuWhiteBalanceEffect, registerWgpuRenderEffect, setWgpuRenderEffectVelocityTexture, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,4BAA4B,EAC5B,4BAA4B,EAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qCAAqC,EACrC,6BAA6B,EAC7B,8BAA8B,EAC9B,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,uCAAuC,EACvC,0CAA0C,EAC1C,gCAAgC,EAChC,qCAAqC,EACrC,kCAAkC,EAClC,0BAA0B,EAC1B,sCAAsC,EACtC,mCAAmC,EACnC,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,oCAAoC,EACpC,mCAAmC,EACnC,+BAA+B,EAC/B,gCAAgC,EAChC,kCAAkC,EAClC,+BAA+B,EAC/B,+BAA+B,EAC/B,qCAAqC,EACrC,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,mCAAmC,EACnC,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,EACtB,gCAAgC,EAChC,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,kCAAkC,EAClC,qCAAqC,EACrC,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,iCAAiC,EACjC,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,gCAAgC,EAChC,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,wBAAwB,EACxB,kCAAkC,GACnC,MAAM,YAAY,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BevelEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget, WgpuRenderTargetPool } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyBevelEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, pool: WgpuRenderTargetPool, effect: Readonly<BevelEffect>): void;
|
|
3
3
|
export declare const defaultWgpuBevelEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuBevelEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuBevelEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBevelEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBevelEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAgBlC,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAoDN;AAED,eAAO,MAAM,4BAA4B,EAAE,sBAE1C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEpE"}
|
package/dist/wgpuBevelEffect.js
CHANGED
|
@@ -3,6 +3,7 @@ import { applyWgpuEffectBlitPass, applyWgpuEffectErasePass } from './wgpuEffectB
|
|
|
3
3
|
import { applyWgpuEffectBoxBlur } from './wgpuEffectBoxBlur';
|
|
4
4
|
import { clearWgpuEffectTarget, createWgpuDualSourceEffectPipeline, drawWgpuDualSourceEffectPass, } from './wgpuEffectPass';
|
|
5
5
|
import { applyWgpuEffectTintPass } from './wgpuEffectTintShader';
|
|
6
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
6
7
|
// Bevel composite effect: the directional gradient of the blurred silhouette drives a highlight/shadow edge band, clipped by bevelType, then sourceMode decides source compositing.
|
|
7
8
|
// Full-frame realization: acquires the recipe's three scratch targets from the effect pool, runs the
|
|
8
9
|
// multi-pass recipe (neutral tint → box blur → directional-gradient composite), then releases them.
|
|
@@ -58,6 +59,9 @@ export function applyBevelEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
58
59
|
export const defaultWgpuBevelEffectRunner = (ctx, effect) => {
|
|
59
60
|
applyBevelEffectToWgpu(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
60
61
|
};
|
|
62
|
+
export function registerWgpuBevelEffect(state) {
|
|
63
|
+
registerWgpuRenderEffect(state, 'BevelEffect', defaultWgpuBevelEffectRunner);
|
|
64
|
+
}
|
|
61
65
|
// Reads the blurred alpha field (group 1) and source (group 2); writes the tinted, clipped bevel
|
|
62
66
|
// mask, premultiplied, blended over `dest` (which already holds the source when sourceMode is 'draw').
|
|
63
67
|
const BEVEL_COMPOSITE_WGSL = /* wgsl */ `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBevelEffect.js","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAUlG,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,qBAAqB,EACrB,kCAAkC,EAClC,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBevelEffect.js","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,8 @@ export declare function applyBlendEffectToWgpu(state: WgpuRenderState, source: R
|
|
|
3
3
|
export declare const defaultWgpuBlendEffectRunner: WgpuRenderEffectRunner;
|
|
4
4
|
export declare function getWgpuBlendEffectBackdrop(state: WgpuRenderState, backdropKey: string | null): WgpuRenderTarget | null;
|
|
5
5
|
export declare function getWgpuBlendEffectModeIndex(mode: AdvancedBlendMode): number;
|
|
6
|
+
export declare function registerWgpuBlendEffect(state: WgpuRenderState): void;
|
|
6
7
|
export declare function registerWgpuBlendEffectBackdrop(state: WgpuRenderState, backdropKey: string, target: WgpuRenderTarget): void;
|
|
7
8
|
export declare function unregisterWgpuBlendEffectBackdrop(state: WgpuRenderState, backdropKey: string): boolean;
|
|
8
|
-
export declare const WGPU_BLEND_FRAGMENT_WGSL = "\nstruct Uniforms {\n mode : i32,\n opacity : f32,\n hasBackdrop : i32,\n _pad0 : f32,\n}\n@group(0) @binding(0) var<uniform> uni : Uniforms;\n@group(1) @binding(0) var layerTexture : texture_2d<f32>;\n@group(1) @binding(1) var layerSampler : sampler;\n@group(2) @binding(0) var backdropTexture : texture_2d<f32>;\n@group(2) @binding(1) var backdropSampler : sampler;\n\nfn lum(c : vec3f) -> f32 {\n return dot(c, vec3f(0.3, 0.59, 0.11));\n}\n\nfn sat(c : vec3f) -> f32 {\n return max(max(c.r, c.g), c.b) - min(min(c.r, c.g), c.b);\n}\n\nfn clipColor(inputColor : vec3f) -> vec3f {\n var c = inputColor;\n let l = lum(c);\n let mn = min(min(c.r, c.g), c.b);\n let mx = max(max(c.r, c.g), c.b);\n if (mn < 0.0) {\n c = vec3f(l) + (c - vec3f(l)) * l / (l - mn);\n }\n if (mx > 1.0) {\n c = vec3f(l) + (c - vec3f(l)) * (1.0 - l) / (mx - l);\n }\n return c;\n}\n\nfn setLum(c : vec3f, l : f32) -> vec3f {\n return clipColor(c + vec3f(l - lum(c)));\n}\n\nfn setSat(c : vec3f, s : f32) -> vec3f {\n let mn = min(min(c.r, c.g), c.b);\n let mx = max(max(c.r, c.g), c.b);\n let md = c.r + c.g + c.b - mn - mx;\n let rmid = select(0.0, (md - mn) * s / (mx - mn), mx > mn);\n let rmax = select(0.0, s, mx > mn);\n var out = vec3f(0.0);\n out.r = select(select(rmid, 0.0, c.r == mn), rmax, c.r == mx);\n out.g = select(select(rmid, 0.0, c.g == mn), rmax, c.g == mx);\n out.b = select(select(rmid, 0.0, c.b == mn), rmax, c.b == mx);\n return out;\n}\n\nfn sepChannel(mode : i32, cb : f32, cs : f32) -> f32 {\n if (mode == 0) {\n return select(1.0 - 2.0 * (1.0 - cb) * (1.0 - cs), 2.0 * cb * cs, cb <= 0.5);\n }\n if (mode == 1) {\n return select(1.0 - 2.0 * (1.0 - cb) * (1.0 - cs), 2.0 * cb * cs, cs <= 0.5);\n }\n if (mode == 2) {\n let d = select(sqrt(cb), ((16.0 * cb - 12.0) * cb + 4.0) * cb, cb <= 0.25);\n return select(cb + (2.0 * cs - 1.0) * (d - cb), cb - (1.0 - 2.0 * cs) * cb * (1.0 - cb), cs <= 0.5);\n }\n if (mode == 3) { return abs(cb - cs); }\n if (mode == 4) { return cb + cs - 2.0 * cb * cs; }\n if (mode == 5) {\n if (cb <= 0.0) { return 0.0; }\n return select(min(1.0, cb / (1.0 - cs)), 1.0, cs >= 1.0);\n }\n if (mode == 6) {\n if (cb >= 1.0) { return 1.0; }\n return select(1.0 - min(1.0, (1.0 - cb) / cs), 0.0, cs <= 0.0);\n }\n return cs;\n}\n\nfn blendRgb(mode : i32, cb : vec3f, cs : vec3f) -> vec3f {\n if (mode == 7) { return setLum(setSat(cs, sat(cb)), lum(cb)); }\n if (mode == 8) { return setLum(setSat(cb, sat(cs)), lum(cb)); }\n if (mode == 9) { return setLum(cs, lum(cb)); }\n if (mode == 10) { return setLum(cb, lum(cs)); }\n return vec3f(\n sepChannel(mode, cb.r, cs.r),\n sepChannel(mode, cb.g, cs.g),\n sepChannel(mode, cb.b, cs.b),\n );\n}\n\n@fragment\nfn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {\n let layer = textureSampleLevel(layerTexture, layerSampler, uv, 0.0);\n if (uni.hasBackdrop == 0) {\n return layer;\n }\n let back = textureSampleLevel(backdropTexture, backdropSampler, uv, 0.0);\n let cs = select(vec3f(0.0), layer.rgb / layer.a, layer.a > 0.0);\n let cb = select(vec3f(0.0), back.rgb / back.a, back.a > 0.0);\n let sourceAlpha = layer.a * uni.opacity;\n let backdropAlpha = back.a;\n let blended = blendRgb(uni.mode, cb, cs);\n let mixed = (1.0 - backdropAlpha) * cs + backdropAlpha * blended;\n let outAlpha = sourceAlpha + backdropAlpha * (1.0 - sourceAlpha);\n let outRgb = mixed * sourceAlpha + cb * backdropAlpha * (1.0 - sourceAlpha);\n return vec4f(outRgb, outAlpha);\n}\n";
|
|
9
|
+
export declare const WGPU_BLEND_FRAGMENT_WGSL = "\nstruct Uniforms {\n mode : i32,\n opacity : f32,\n hasBackdrop : i32,\n _pad0 : f32,\n}\n@group(0) @binding(0) var<uniform> uni : Uniforms;\n@group(1) @binding(0) var layerTexture : texture_2d<f32>;\n@group(1) @binding(1) var layerSampler : sampler;\n@group(2) @binding(0) var backdropTexture : texture_2d<f32>;\n@group(2) @binding(1) var backdropSampler : sampler;\n\nfn lum(c : vec3f) -> f32 {\n return dot(c, vec3f(0.3, 0.59, 0.11));\n}\n\nfn sat(c : vec3f) -> f32 {\n return max(max(c.r, c.g), c.b) - min(min(c.r, c.g), c.b);\n}\n\nfn clipColor(inputColor : vec3f) -> vec3f {\n var c = inputColor;\n let l = lum(c);\n let mn = min(min(c.r, c.g), c.b);\n let mx = max(max(c.r, c.g), c.b);\n if (mn < 0.0) {\n c = vec3f(l) + (c - vec3f(l)) * l / (l - mn);\n }\n if (mx > 1.0) {\n c = vec3f(l) + (c - vec3f(l)) * (1.0 - l) / (mx - l);\n }\n return c;\n}\n\nfn setLum(c : vec3f, l : f32) -> vec3f {\n return clipColor(c + vec3f(l - lum(c)));\n}\n\nfn setSat(c : vec3f, s : f32) -> vec3f {\n let mn = min(min(c.r, c.g), c.b);\n let mx = max(max(c.r, c.g), c.b);\n let md = c.r + c.g + c.b - mn - mx;\n let rmid = select(0.0, (md - mn) * s / (mx - mn), mx > mn);\n let rmax = select(0.0, s, mx > mn);\n var out = vec3f(0.0);\n out.r = select(select(rmid, 0.0, c.r == mn), rmax, c.r == mx);\n out.g = select(select(rmid, 0.0, c.g == mn), rmax, c.g == mx);\n out.b = select(select(rmid, 0.0, c.b == mn), rmax, c.b == mx);\n return out;\n}\n\nfn sepChannel(mode : i32, cb : f32, cs : f32) -> f32 {\n if (mode == 0) {\n return select(1.0 - 2.0 * (1.0 - cb) * (1.0 - cs), 2.0 * cb * cs, cb <= 0.5);\n }\n if (mode == 1) {\n return select(1.0 - 2.0 * (1.0 - cb) * (1.0 - cs), 2.0 * cb * cs, cs <= 0.5);\n }\n if (mode == 2) {\n let d = select(sqrt(cb), ((16.0 * cb - 12.0) * cb + 4.0) * cb, cb <= 0.25);\n return select(cb + (2.0 * cs - 1.0) * (d - cb), cb - (1.0 - 2.0 * cs) * cb * (1.0 - cb), cs <= 0.5);\n }\n if (mode == 3) { return abs(cb - cs); }\n if (mode == 4) { return cb + cs - 2.0 * cb * cs; }\n if (mode == 5) {\n if (cb <= 0.0) { return 0.0; }\n return select(min(1.0, cb / (1.0 - cs)), 1.0, cs >= 1.0);\n }\n if (mode == 6) {\n if (cb >= 1.0) { return 1.0; }\n return select(1.0 - min(1.0, (1.0 - cb) / cs), 0.0, cs <= 0.0);\n }\n if (mode == 11) { return min(cb, cs); }\n if (mode == 12) { return max(cb, cs); }\n return cs;\n}\n\nfn blendRgb(mode : i32, cb : vec3f, cs : vec3f) -> vec3f {\n if (mode == 7) { return setLum(setSat(cs, sat(cb)), lum(cb)); }\n if (mode == 8) { return setLum(setSat(cb, sat(cs)), lum(cb)); }\n if (mode == 9) { return setLum(cs, lum(cb)); }\n if (mode == 10) { return setLum(cb, lum(cs)); }\n return vec3f(\n sepChannel(mode, cb.r, cs.r),\n sepChannel(mode, cb.g, cs.g),\n sepChannel(mode, cb.b, cs.b),\n );\n}\n\n@fragment\nfn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {\n let layer = textureSampleLevel(layerTexture, layerSampler, uv, 0.0);\n if (uni.hasBackdrop == 0) {\n return layer;\n }\n let back = textureSampleLevel(backdropTexture, backdropSampler, uv, 0.0);\n let cs = select(vec3f(0.0), layer.rgb / layer.a, layer.a > 0.0);\n let cb = select(vec3f(0.0), back.rgb / back.a, back.a > 0.0);\n let sourceAlpha = layer.a * uni.opacity;\n let backdropAlpha = back.a;\n let blended = blendRgb(uni.mode, cb, cs);\n let mixed = (1.0 - backdropAlpha) * cs + backdropAlpha * blended;\n let outAlpha = sourceAlpha + backdropAlpha * (1.0 - sourceAlpha);\n let outRgb = mixed * sourceAlpha + cb * backdropAlpha * (1.0 - sourceAlpha);\n return vec4f(outRgb, outAlpha);\n}\n";
|
|
9
10
|
//# sourceMappingURL=wgpuBlendEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBlendEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBlendEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EAEX,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBlendEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBlendEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EAEX,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAUlC,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,CAiBN;AAED,eAAO,MAAM,4BAA4B,EAAE,sBAE1C,CAAC;AAGF,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,gBAAgB,GAAG,IAAI,CAGzB;AAID,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAE3E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEpE;AAID,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,gBAAgB,GACvB,IAAI,CAON;AAGD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEtG;AAgCD,eAAO,MAAM,wBAAwB,8iHA2GpC,CAAC"}
|
package/dist/wgpuBlendEffect.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AdvancedBlendMode as AdvancedBlendModeValues } from '@flighthq/types/contract';
|
|
2
2
|
import { createWgpuDualSourceEffectPipeline, drawWgpuDualSourceEffectPass } from './wgpuEffectPass';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// Advanced-blend composite pass: reads the incoming layer and an explicitly registered backdrop,
|
|
4
5
|
// applies the same W3C straight-color blend math as glBlendEffect, then writes premultiplied
|
|
5
6
|
// source-over output. A missing backdrop uses the layer as a harmless second binding and the uniform
|
|
@@ -29,6 +30,9 @@ export function getWgpuBlendEffectBackdrop(state, backdropKey) {
|
|
|
29
30
|
export function getWgpuBlendEffectModeIndex(mode) {
|
|
30
31
|
return BLEND_MODE_INDEX[mode] ?? -1;
|
|
31
32
|
}
|
|
33
|
+
export function registerWgpuBlendEffect(state) {
|
|
34
|
+
registerWgpuRenderEffect(state, 'BlendEffect', defaultWgpuBlendEffectRunner);
|
|
35
|
+
}
|
|
32
36
|
// Registers a borrowed render target as a named backdrop. Last write wins; the registry never owns or
|
|
33
37
|
// destroys the target, so its caller must keep it alive until the BlendEffect pass completes.
|
|
34
38
|
export function registerWgpuBlendEffectBackdrop(state, backdropKey, target) {
|
|
@@ -63,6 +67,8 @@ const BLEND_MODE_INDEX = {
|
|
|
63
67
|
[AdvancedBlendModeValues.Saturation]: 8,
|
|
64
68
|
[AdvancedBlendModeValues.Color]: 9,
|
|
65
69
|
[AdvancedBlendModeValues.Luminosity]: 10,
|
|
70
|
+
[AdvancedBlendModeValues.Darken]: 11,
|
|
71
|
+
[AdvancedBlendModeValues.Lighten]: 12,
|
|
66
72
|
};
|
|
67
73
|
const backdrops = new WeakMap();
|
|
68
74
|
const pipelines = new WeakMap();
|
|
@@ -141,6 +147,8 @@ fn sepChannel(mode : i32, cb : f32, cs : f32) -> f32 {
|
|
|
141
147
|
if (cb >= 1.0) { return 1.0; }
|
|
142
148
|
return select(1.0 - min(1.0, (1.0 - cb) / cs), 0.0, cs <= 0.0);
|
|
143
149
|
}
|
|
150
|
+
if (mode == 11) { return min(cb, cs); }
|
|
151
|
+
if (mode == 12) { return max(cb, cs); }
|
|
144
152
|
return cs;
|
|
145
153
|
}
|
|
146
154
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBlendEffect.js","sourceRoot":"","sources":["../src/wgpuBlendEffect.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,IAAI,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EAAE,kCAAkC,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBlendEffect.js","sourceRoot":"","sources":["../src/wgpuBlendEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BloomEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget, WgpuRenderTargetPool } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyBloomEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, pool: WgpuRenderTargetPool, effect: Readonly<BloomEffect>): void;
|
|
3
3
|
export declare const defaultWgpuBloomEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuBloomEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuBloomEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBloomEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBloomEffect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBloomEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBloomEffect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAalC,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAgCN;AAED,eAAO,MAAM,4BAA4B,EAAE,sBAE1C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEpE"}
|
package/dist/wgpuBloomEffect.js
CHANGED
|
@@ -3,6 +3,7 @@ import { acquireWgpuRenderTarget, releaseWgpuRenderTarget } from '@flighthq/rend
|
|
|
3
3
|
import { applyGaussianBlurToWgpu } from './wgpuBlurEffect';
|
|
4
4
|
import { createWgpuDualSourceEffectPipeline, drawWgpuDualSourceEffectPass, drawWgpuEffectPass } from './wgpuEffectPass';
|
|
5
5
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
6
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
6
7
|
// Bloom: bright-pass → blur the bright branch (via the effects-owned separable gaussian blur) →
|
|
7
8
|
// additively composite back. The multi-pass reference recipe — it acquires intermediate targets from
|
|
8
9
|
// the pool and releases them, branches, and reuses the blur primitive, which is what makes it an effect.
|
|
@@ -32,6 +33,9 @@ export function applyBloomEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
32
33
|
export const defaultWgpuBloomEffectRunner = (ctx, effect) => {
|
|
33
34
|
applyBloomEffectToWgpu(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
34
35
|
};
|
|
36
|
+
export function registerWgpuBloomEffect(state) {
|
|
37
|
+
registerWgpuRenderEffect(state, 'BloomEffect', defaultWgpuBloomEffectRunner);
|
|
38
|
+
}
|
|
35
39
|
// The composite pipeline reads two textures (scene = group 1, blurred = group 2) so it uses the
|
|
36
40
|
// dual-source filter primitive; cached per state alongside the single-source pipelines.
|
|
37
41
|
function getBloomCompositePipeline(state) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBloomEffect.js","sourceRoot":"","sources":["../src/wgpuBloomEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAClH,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAUlG,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,kCAAkC,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxH,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBloomEffect.js","sourceRoot":"","sources":["../src/wgpuBloomEffect.ts"],"names":[],"mappings":"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"}
|
package/dist/wgpuBlurEffect.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export declare function applyGaussianBlurToWgpu(state: WgpuRenderState, source:
|
|
|
5
5
|
blurY?: number;
|
|
6
6
|
}>): void;
|
|
7
7
|
export declare const defaultWgpuBlurEffectRunner: WgpuRenderEffectRunner;
|
|
8
|
+
export declare function registerWgpuBlurEffect(state: WgpuRenderState): void;
|
|
8
9
|
//# sourceMappingURL=wgpuBlurEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBlurEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBlurEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBlurEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBlurEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AActH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC3B,IAAI,CAEN;AAMD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,OAAO,EAAE,QAAQ,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACpD,IAAI,CAON;AAED,eAAO,MAAM,2BAA2B,EAAE,sBAKzC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEnE"}
|
package/dist/wgpuBlurEffect.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { acquireWgpuRenderTarget, releaseWgpuRenderTarget } from '@flighthq/render-wgpu/contract';
|
|
2
2
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
3
3
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
4
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
4
5
|
// Plain separable Gaussian blur: two axis passes (source → temp horizontally, temp → dest vertically),
|
|
5
6
|
// each a single weighted fullscreen pass with radius ⌈3σ⌉. `blurX`/`blurY` are the Gaussian standard
|
|
6
7
|
// deviations (CSS `blur(Xpx)` uses sigma = X), matching the CSS and surface Gaussian references and the
|
|
@@ -29,6 +30,9 @@ export const defaultWgpuBlurEffectRunner = (ctx, effect) => {
|
|
|
29
30
|
applyBlurEffectToWgpu(ctx.state, ctx.source, ctx.dest, temp, effect);
|
|
30
31
|
releaseWgpuRenderTarget(ctx.pool, temp);
|
|
31
32
|
};
|
|
33
|
+
export function registerWgpuBlurEffect(state) {
|
|
34
|
+
registerWgpuRenderEffect(state, 'BlurEffect', defaultWgpuBlurEffectRunner);
|
|
35
|
+
}
|
|
32
36
|
function applyWgpuGaussianBlurPass(state, source, dest, sigma, radius, dirX, dirY) {
|
|
33
37
|
const pipeline = getWgpuEffectPipeline(state, 'blur.gaussian', GAUSSIAN_BLUR_WGSL, 'replace');
|
|
34
38
|
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBlurEffect.js","sourceRoot":"","sources":["../src/wgpuBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGlG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBlurEffect.js","sourceRoot":"","sources":["../src/wgpuBlurEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CameraMotionBlurEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyCameraMotionBlurEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<CameraMotionBlurEffect>): void;
|
|
3
3
|
export declare const defaultWgpuCameraMotionBlurEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuCameraMotionBlurEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuCameraMotionBlurEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCameraMotionBlurEffect.d.ts","sourceRoot":"","sources":["../src/wgpuCameraMotionBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuCameraMotionBlurEffect.d.ts","sourceRoot":"","sources":["../src/wgpuCameraMotionBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAWlC,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,CAQN;AAED,eAAO,MAAM,uCAAuC,EAAE,sBAErD,CAAC;AAEF,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE/E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// Camera3D motion blur: a real single-pass radial/zoom blur scaled by intensity — smears each sample
|
|
4
5
|
// toward the screen center. A legitimate 2D effect on its own, the Wgpu mirror of effects-gl's
|
|
5
6
|
// applyCameraMotionBlurEffectToGl. Two richer variants are 2D-native follow-ups, not 3D-gated:
|
|
@@ -17,6 +18,9 @@ export function applyCameraMotionBlurEffectToWgpu(state, source, dest, effect) {
|
|
|
17
18
|
export const defaultWgpuCameraMotionBlurEffectRunner = (ctx, effect) => {
|
|
18
19
|
applyCameraMotionBlurEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
19
20
|
};
|
|
21
|
+
export function registerWgpuCameraMotionBlurEffect(state) {
|
|
22
|
+
registerWgpuRenderEffect(state, 'CameraMotionBlurEffect', defaultWgpuCameraMotionBlurEffectRunner);
|
|
23
|
+
}
|
|
20
24
|
// Slot layout: [0]=intensity, [1]=samples. SAMPLES caps the loop; min(u_samples, 16.0) gates the taps.
|
|
21
25
|
const CAMERA_MOTION_BLUR_FRAGMENT_WGSL = /* wgsl */ `
|
|
22
26
|
struct Uniforms {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCameraMotionBlurEffect.js","sourceRoot":"","sources":["../src/wgpuCameraMotionBlurEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuCameraMotionBlurEffect.js","sourceRoot":"","sources":["../src/wgpuCameraMotionBlurEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,qGAAqG;AACrG,+FAA+F;AAC/F,+FAA+F;AAC/F,uGAAuG;AACvG,gFAAgF;AAChF,MAAM,UAAU,iCAAiC,CAC/C,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAwC;IAExC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,SAAS,CAAC,CAAC;IACtH,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACnB,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,MAAM,UAAU,kCAAkC,CAAC,KAAsB;IACvE,wBAAwB,CAAC,KAAK,EAAE,wBAAwB,EAAE,uCAAuC,CAAC,CAAC;AACrG,CAAC;AAED,uGAAuG;AACvG,MAAM,gCAAgC,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BlD,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ChromaticAberrationEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyChromaticAberrationEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<ChromaticAberrationEffect>): void;
|
|
3
3
|
export declare const defaultWgpuChromaticAberrationEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuChromaticAberrationEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuChromaticAberrationEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuChromaticAberrationEffect.d.ts","sourceRoot":"","sources":["../src/wgpuChromaticAberrationEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuChromaticAberrationEffect.d.ts","sourceRoot":"","sources":["../src/wgpuChromaticAberrationEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AASlC,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC1C,IAAI,CAaN;AAED,eAAO,MAAM,0CAA0C,EAAE,sBAExD,CAAC;AAEF,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAElF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// Chromatic aberration: sample the R/G/B channels at progressively larger offsets so colors fringe
|
|
4
5
|
// apart. When radial, the offset scales with distance from the optical center (true lens behavior);
|
|
5
6
|
// otherwise it is a uniform horizontal split.
|
|
@@ -15,6 +16,9 @@ export function applyChromaticAberrationEffectToWgpu(state, source, dest, effect
|
|
|
15
16
|
export const defaultWgpuChromaticAberrationEffectRunner = (ctx, effect) => {
|
|
16
17
|
applyChromaticAberrationEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
17
18
|
};
|
|
19
|
+
export function registerWgpuChromaticAberrationEffect(state) {
|
|
20
|
+
registerWgpuRenderEffect(state, 'ChromaticAberrationEffect', defaultWgpuChromaticAberrationEffectRunner);
|
|
21
|
+
}
|
|
18
22
|
// Slot layout: [0]=intensity, [1]=radial flag (1.0/0.0).
|
|
19
23
|
const CHROMATIC_ABERRATION_FRAGMENT_WGSL = /* wgsl */ `
|
|
20
24
|
struct Uniforms {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuChromaticAberrationEffect.js","sourceRoot":"","sources":["../src/wgpuChromaticAberrationEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuChromaticAberrationEffect.js","sourceRoot":"","sources":["../src/wgpuChromaticAberrationEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,mGAAmG;AACnG,oGAAoG;AACpG,8CAA8C;AAC9C,MAAM,UAAU,oCAAoC,CAClD,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA2C;IAE3C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAG,qBAAqB,CACpC,KAAK,EACL,0BAA0B,EAC1B,kCAAkC,EAClC,SAAS,CACV,CAAC;IACF,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,0CAA0C,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAChG,oCAAoC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAmC,CAAC,CAAC;AAC7G,CAAC,CAAC;AAEF,MAAM,UAAU,qCAAqC,CAAC,KAAsB;IAC1E,wBAAwB,CAAC,KAAK,EAAE,2BAA2B,EAAE,0CAA0C,CAAC,CAAC;AAC3G,CAAC;AAED,yDAAyD;AACzD,MAAM,kCAAkC,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;EAoBpD,CAAC"}
|
|
@@ -2,5 +2,6 @@ import type { CompositeEffect, CompositeOperator, WgpuRenderEffectRunner, WgpuRe
|
|
|
2
2
|
export declare function applyCompositeEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<CompositeEffect>): void;
|
|
3
3
|
export declare const defaultWgpuCompositeEffectRunner: WgpuRenderEffectRunner;
|
|
4
4
|
export declare function getWgpuCompositeEffectOperatorIndex(operator: CompositeOperator): number;
|
|
5
|
+
export declare function registerWgpuCompositeEffect(state: WgpuRenderState): void;
|
|
5
6
|
export declare const WGPU_COMPOSITE_FRAGMENT_WGSL = "\nstruct Uniforms {\n operatorIndex : i32,\n hasBackdrop : i32,\n _pad0 : vec2f,\n}\n@group(0) @binding(0) var<uniform> uni : Uniforms;\n@group(1) @binding(0) var layerTexture : texture_2d<f32>;\n@group(1) @binding(1) var layerSampler : sampler;\n@group(2) @binding(0) var backdropTexture : texture_2d<f32>;\n@group(2) @binding(1) var backdropSampler : sampler;\n\n@fragment\nfn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {\n let layer = textureSampleLevel(layerTexture, layerSampler, uv, 0.0);\n let back = select(vec4f(0.0), textureSampleLevel(backdropTexture, backdropSampler, uv, 0.0),\n uni.hasBackdrop == 1);\n let sourceAlpha = layer.a;\n let backdropAlpha = back.a;\n var sourceFactor = 1.0;\n var backdropFactor = 1.0 - sourceAlpha;\n if (uni.operatorIndex == 1) {\n sourceFactor = 1.0 - backdropAlpha; backdropFactor = 1.0;\n } else if (uni.operatorIndex == 2) {\n sourceFactor = backdropAlpha; backdropFactor = 0.0;\n } else if (uni.operatorIndex == 3) {\n sourceFactor = 0.0; backdropFactor = sourceAlpha;\n } else if (uni.operatorIndex == 4) {\n sourceFactor = 1.0 - backdropAlpha; backdropFactor = 0.0;\n } else if (uni.operatorIndex == 5) {\n sourceFactor = 0.0; backdropFactor = 1.0 - sourceAlpha;\n } else if (uni.operatorIndex == 6) {\n sourceFactor = backdropAlpha; backdropFactor = 1.0 - sourceAlpha;\n } else if (uni.operatorIndex == 7) {\n sourceFactor = 1.0 - backdropAlpha; backdropFactor = sourceAlpha;\n } else if (uni.operatorIndex == 8) {\n sourceFactor = 1.0 - backdropAlpha; backdropFactor = 1.0 - sourceAlpha;\n } else if (uni.operatorIndex == 9) {\n sourceFactor = 1.0; backdropFactor = 0.0;\n } else if (uni.operatorIndex == 10) {\n sourceFactor = 0.0; backdropFactor = 0.0;\n }\n return sourceFactor * layer + backdropFactor * back;\n}\n";
|
|
6
7
|
//# sourceMappingURL=wgpuCompositeEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCompositeEffect.d.ts","sourceRoot":"","sources":["../src/wgpuCompositeEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAEjB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuCompositeEffect.d.ts","sourceRoot":"","sources":["../src/wgpuCompositeEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAEjB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AASlC,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,CAcN;AAED,eAAO,MAAM,gCAAgC,EAAE,sBAE9C,CAAC;AAEF,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAEvF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAExE;AA2BD,eAAO,MAAM,4BAA4B,k0DA4CxC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CompositeOperator as CompositeOperatorValues } from '@flighthq/types/contract';
|
|
2
2
|
import { getWgpuBlendEffectBackdrop } from './wgpuBlendEffect';
|
|
3
3
|
import { createWgpuDualSourceEffectPipeline, drawWgpuDualSourceEffectPass } from './wgpuEffectPass';
|
|
4
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
4
5
|
// Porter-Duff coverage composite over the same named backdrop registry as BlendEffect. Both inputs are
|
|
5
6
|
// premultiplied, so one Fa/Fb pair applies to RGB and alpha exactly as compositeOperatorMath specifies.
|
|
6
7
|
export function applyCompositeEffectToWgpu(state, source, dest, effect) {
|
|
@@ -17,6 +18,9 @@ export const defaultWgpuCompositeEffectRunner = (context, effect) => {
|
|
|
17
18
|
export function getWgpuCompositeEffectOperatorIndex(operator) {
|
|
18
19
|
return COMPOSITE_OPERATOR_INDEX[operator] ?? 0;
|
|
19
20
|
}
|
|
21
|
+
export function registerWgpuCompositeEffect(state) {
|
|
22
|
+
registerWgpuRenderEffect(state, 'CompositeEffect', defaultWgpuCompositeEffectRunner);
|
|
23
|
+
}
|
|
20
24
|
function getWgpuCompositeEffectPipeline(state) {
|
|
21
25
|
let pipeline = pipelines.get(state);
|
|
22
26
|
if (pipeline === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCompositeEffect.js","sourceRoot":"","sources":["../src/wgpuCompositeEffect.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,IAAI,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,kCAAkC,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuCompositeEffect.js","sourceRoot":"","sources":["../src/wgpuCompositeEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ContactShadowsEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
|
+
export declare function applyContactShadowsEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<ContactShadowsEffect>): void;
|
|
3
|
+
export declare const defaultWgpuContactShadowsEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuContactShadowsEffect(state: WgpuRenderState): void;
|
|
5
|
+
//# sourceMappingURL=wgpuContactShadowsEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuContactShadowsEffect.d.ts","sourceRoot":"","sources":["../src/wgpuContactShadowsEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAOlC,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,CAON;AAED,eAAO,MAAM,qCAAqC,EAAE,sBAEnD,CAAC;AAEF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE7E"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
2
|
+
import { applySsaoEffectToWgpu } from './wgpuSsaoEffect';
|
|
3
|
+
// Mirrors the GL contact-shadow leaf through the existing local-occlusion realization. The runner
|
|
4
|
+
// remains independently replaceable when the WGPU effect context gains a sampleable depth target.
|
|
5
|
+
export function applyContactShadowsEffectToWgpu(state, source, dest, effect) {
|
|
6
|
+
applySsaoEffectToWgpu(state, source, dest, {
|
|
7
|
+
kind: 'SsaoEffect',
|
|
8
|
+
intensity: effect.opacity ?? 0.6,
|
|
9
|
+
radius: effect.distance ?? 0.5,
|
|
10
|
+
samples: effect.samples ?? 16,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
export const defaultWgpuContactShadowsEffectRunner = (ctx, effect) => {
|
|
14
|
+
applyContactShadowsEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
15
|
+
};
|
|
16
|
+
export function registerWgpuContactShadowsEffect(state) {
|
|
17
|
+
registerWgpuRenderEffect(state, 'ContactShadowsEffect', defaultWgpuContactShadowsEffectRunner);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=wgpuContactShadowsEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuContactShadowsEffect.js","sourceRoot":"","sources":["../src/wgpuContactShadowsEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,kGAAkG;AAClG,kGAAkG;AAClG,MAAM,UAAU,+BAA+B,CAC7C,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAsC;IAEtC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QACzC,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,GAAG;QAChC,MAAM,EAAE,MAAM,CAAC,QAAQ,IAAI,GAAG;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;KAC9B,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,MAAM,UAAU,gCAAgC,CAAC,KAAsB;IACrE,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,EAAE,qCAAqC,CAAC,CAAC;AACjG,CAAC"}
|
|
@@ -2,4 +2,5 @@ import type { ConvolutionEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRe
|
|
|
2
2
|
export declare const MAX_CONVOLUTION_EFFECT_WGPU_KERNEL_SIZE = 49;
|
|
3
3
|
export declare function applyConvolutionEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<ConvolutionEffect>): void;
|
|
4
4
|
export declare const defaultWgpuConvolutionEffectRunner: WgpuRenderEffectRunner;
|
|
5
|
+
export declare function registerWgpuConvolutionEffect(state: WgpuRenderState): void;
|
|
5
6
|
//# sourceMappingURL=wgpuConvolutionEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuConvolutionEffect.d.ts","sourceRoot":"","sources":["../src/wgpuConvolutionEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuConvolutionEffect.d.ts","sourceRoot":"","sources":["../src/wgpuConvolutionEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAQlC,eAAO,MAAM,uCAAuC,KAAK,CAAC;AAI1D,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAClC,IAAI,CAmCN;AAED,eAAO,MAAM,kCAAkC,EAAE,sBAEhD,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE1E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// Largest kernel the WebGPU path supports (a 7×7 = 49 elements). The uniform struct packs to 244
|
|
4
5
|
// bytes, within the effect-pass 256-byte slot.
|
|
5
6
|
export const MAX_CONVOLUTION_EFFECT_WGPU_KERNEL_SIZE = 49;
|
|
@@ -45,6 +46,9 @@ export function applyConvolutionEffectToWgpu(state, source, dest, effect) {
|
|
|
45
46
|
export const defaultWgpuConvolutionEffectRunner = (ctx, effect) => {
|
|
46
47
|
applyConvolutionEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
47
48
|
};
|
|
49
|
+
export function registerWgpuConvolutionEffect(state) {
|
|
50
|
+
registerWgpuRenderEffect(state, 'ConvolutionEffect', defaultWgpuConvolutionEffectRunner);
|
|
51
|
+
}
|
|
48
52
|
// Sums the kernel weights; returns 1 when the sum is 0 (e.g. an edge-detect kernel) so the divide is safe.
|
|
49
53
|
function getAutoDivisor(matrix, length) {
|
|
50
54
|
let sum = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuConvolutionEffect.js","sourceRoot":"","sources":["../src/wgpuConvolutionEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuConvolutionEffect.js","sourceRoot":"","sources":["../src/wgpuConvolutionEffect.ts"],"names":[],"mappings":"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"}
|