@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/wgpuCrtEffect.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CrtEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyCrtEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<CrtEffect>): void;
|
|
3
3
|
export declare const defaultWgpuCrtEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuCrtEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuCrtEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCrtEffect.d.ts","sourceRoot":"","sources":["../src/wgpuCrtEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuCrtEffect.d.ts","sourceRoot":"","sources":["../src/wgpuCrtEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQrH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC1B,IAAI,CAcN;AAED,eAAO,MAAM,0BAA0B,EAAE,sBAExC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAElE"}
|
package/dist/wgpuCrtEffect.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// CRT: barrel-distort the uv (curvature), darken alternating scanlines, vignette the edges, and split
|
|
4
5
|
// the channels outward (chromatic aberration) for a tube-monitor look.
|
|
5
6
|
export function applyCrtEffectToWgpu(state, source, dest, effect) {
|
|
@@ -20,6 +21,9 @@ export function applyCrtEffectToWgpu(state, source, dest, effect) {
|
|
|
20
21
|
export const defaultWgpuCrtEffectRunner = (ctx, effect) => {
|
|
21
22
|
applyCrtEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
22
23
|
};
|
|
24
|
+
export function registerWgpuCrtEffect(state) {
|
|
25
|
+
registerWgpuRenderEffect(state, 'CrtEffect', defaultWgpuCrtEffectRunner);
|
|
26
|
+
}
|
|
23
27
|
// Slot layout: [0]=curvature, [1]=scanlineIntensity, [2]=vignette, [3]=aberration, [4..5]=resolution.
|
|
24
28
|
const CRT_FRAGMENT_WGSL = /* wgsl */ `
|
|
25
29
|
struct Uniforms {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCrtEffect.js","sourceRoot":"","sources":["../src/wgpuCrtEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuCrtEffect.js","sourceRoot":"","sources":["../src/wgpuCrtEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,sGAAsG;AACtG,uEAAuE;AACvE,MAAM,UAAU,oBAAoB,CAClC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA2B;IAE3B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,GAAG,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC;IAC9C,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,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;QAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAClB,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;QACpB,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,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,UAAU,qBAAqB,CAAC,KAAsB;IAC1D,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,0BAA0B,CAAC,CAAC;AAC3E,CAAC;AAED,sGAAsG;AACtG,MAAM,iBAAiB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCnC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DirectionalBlurEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyDirectionalBlurEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<DirectionalBlurEffect>): void;
|
|
3
3
|
export declare const defaultWgpuDirectionalBlurEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuDirectionalBlurEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuDirectionalBlurEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDirectionalBlurEffect.d.ts","sourceRoot":"","sources":["../src/wgpuDirectionalBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuDirectionalBlurEffect.d.ts","sourceRoot":"","sources":["../src/wgpuDirectionalBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AASlC,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GACtC,IAAI,CAYN;AAED,eAAO,MAAM,sCAAsC,EAAE,sBAEpD,CAAC;AAEF,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE9E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// Directional blur: accumulate samples stepped along `angle` over `length` texels, normalized by the
|
|
4
5
|
// sample count. Single-pass reference recipe, the Wgpu mirror of effects-gl's
|
|
5
6
|
// applyDirectionalBlurEffectToGl. u_resolution converts the texel length into UV space.
|
|
@@ -19,6 +20,9 @@ export function applyDirectionalBlurEffectToWgpu(state, source, dest, effect) {
|
|
|
19
20
|
export const defaultWgpuDirectionalBlurEffectRunner = (ctx, effect) => {
|
|
20
21
|
applyDirectionalBlurEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
21
22
|
};
|
|
23
|
+
export function registerWgpuDirectionalBlurEffect(state) {
|
|
24
|
+
registerWgpuRenderEffect(state, 'DirectionalBlurEffect', defaultWgpuDirectionalBlurEffectRunner);
|
|
25
|
+
}
|
|
22
26
|
// Slot layout: [0]=angle, [1]=length, [2]=samples, [3]=pad, [4]=resolution.x, [5]=resolution.y.
|
|
23
27
|
const DIRECTIONAL_BLUR_FRAGMENT_WGSL = /* wgsl */ `
|
|
24
28
|
struct Uniforms {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDirectionalBlurEffect.js","sourceRoot":"","sources":["../src/wgpuDirectionalBlurEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuDirectionalBlurEffect.js","sourceRoot":"","sources":["../src/wgpuDirectionalBlurEffect.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,8EAA8E;AAC9E,wFAAwF;AACxF,MAAM,UAAU,gCAAgC,CAC9C,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAuC;IAEvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,SAAS,CAAC,CAAC;IACnH,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACf,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAChB,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QACjB,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,sCAAsC,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC5F,gCAAgC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA+B,CAAC,CAAC;AACrG,CAAC,CAAC;AAEF,MAAM,UAAU,iCAAiC,CAAC,KAAsB;IACtE,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,EAAE,sCAAsC,CAAC,CAAC;AACnG,CAAC;AAED,gGAAgG;AAChG,MAAM,8BAA8B,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BhD,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DisplacementEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyDisplacementEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<DisplacementEffect>): void;
|
|
3
3
|
export declare const defaultWgpuDisplacementEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuDisplacementEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuDisplacementEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDisplacementEffect.d.ts","sourceRoot":"","sources":["../src/wgpuDisplacementEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuDisplacementEffect.d.ts","sourceRoot":"","sources":["../src/wgpuDisplacementEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAOlC,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACnC,IAAI,CAaN;AAED,eAAO,MAAM,mCAAmC,EAAE,sBAEjD,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE3E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// Displacement / heat-haze: warp the sample uv by an animated sine field for a refractive wobble.
|
|
4
5
|
export function applyDisplacementEffectToWgpu(state, source, dest, effect) {
|
|
5
6
|
const intensity = effect.intensity ?? 8;
|
|
@@ -18,6 +19,9 @@ export function applyDisplacementEffectToWgpu(state, source, dest, effect) {
|
|
|
18
19
|
export const defaultWgpuDisplacementEffectRunner = (ctx, effect) => {
|
|
19
20
|
applyDisplacementEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
20
21
|
};
|
|
22
|
+
export function registerWgpuDisplacementEffect(state) {
|
|
23
|
+
registerWgpuRenderEffect(state, 'DisplacementEffect', defaultWgpuDisplacementEffectRunner);
|
|
24
|
+
}
|
|
21
25
|
// Slot layout: [0]=amount, [1]=scale.
|
|
22
26
|
// Slot layout: [0]=intensity, [1]=frequency, [2]=seed, [4..5]=resolution.
|
|
23
27
|
const DISPLACEMENT_FRAGMENT_WGSL = /* wgsl */ `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDisplacementEffect.js","sourceRoot":"","sources":["../src/wgpuDisplacementEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuDisplacementEffect.js","sourceRoot":"","sources":["../src/wgpuDisplacementEffect.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,kGAAkG;AAClG,MAAM,UAAU,6BAA6B,CAC3C,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAoC;IAEpC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,SAAS,CAAC,CAAC;IAC1G,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACd,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,mCAAmC,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACzF,6BAA6B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA4B,CAAC,CAAC;AAC/F,CAAC,CAAC;AAEF,MAAM,UAAU,8BAA8B,CAAC,KAAsB;IACnE,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,EAAE,mCAAmC,CAAC,CAAC;AAC7F,CAAC;AAED,sCAAsC;AACtC,0EAA0E;AAC1E,MAAM,0BAA0B,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;EAoB5C,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DitherEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyDitherEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<DitherEffect>): void;
|
|
3
3
|
export declare const defaultWgpuDitherEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuDitherEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuDitherEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDitherEffect.d.ts","sourceRoot":"","sources":["../src/wgpuDitherEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuDitherEffect.d.ts","sourceRoot":"","sources":["../src/wgpuDitherEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQxH,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;AAEF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAErE"}
|
package/dist/wgpuDitherEffect.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// Dither: quantize each channel to `levels` steps with a 4x4 ordered Bayer threshold for a retro
|
|
4
5
|
// banded-but-textured look.
|
|
5
6
|
export function applyDitherEffectToWgpu(state, source, dest, effect) {
|
|
@@ -15,6 +16,9 @@ export function applyDitherEffectToWgpu(state, source, dest, effect) {
|
|
|
15
16
|
export const defaultWgpuDitherEffectRunner = (ctx, effect) => {
|
|
16
17
|
applyDitherEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
17
18
|
};
|
|
19
|
+
export function registerWgpuDitherEffect(state) {
|
|
20
|
+
registerWgpuRenderEffect(state, 'DitherEffect', defaultWgpuDitherEffectRunner);
|
|
21
|
+
}
|
|
18
22
|
// Slot layout: [0]=levels, [1]=pad, [2..3]=resolution.
|
|
19
23
|
const DITHER_FRAGMENT_WGSL = /* wgsl */ `
|
|
20
24
|
struct Uniforms {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDitherEffect.js","sourceRoot":"","sources":["../src/wgpuDitherEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuDitherEffect.js","sourceRoot":"","sources":["../src/wgpuDitherEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,iGAAiG;AACjG,4BAA4B;AAC5B,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAClC,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,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7B,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,MAAM,UAAU,wBAAwB,CAAC,KAAsB;IAC7D,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,6BAA6B,CAAC,CAAC;AACjF,CAAC;AAED,uDAAuD;AACvD,MAAM,oBAAoB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;EAyBtC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DropShadowEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget, WgpuRenderTargetPool } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyDropShadowEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, pool: WgpuRenderTargetPool, effect: Readonly<DropShadowEffect>): void;
|
|
3
3
|
export declare const defaultWgpuDropShadowEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuDropShadowEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuDropShadowEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDropShadowEffect.d.ts","sourceRoot":"","sources":["../src/wgpuDropShadowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuDropShadowEffect.d.ts","sourceRoot":"","sources":["../src/wgpuDropShadowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAelC,wBAAgB,2BAA2B,CACzC,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,gBAAgB,CAAC,GACjC,IAAI,CA0CN;AAED,eAAO,MAAM,iCAAiC,EAAE,sBAE/C,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEzE"}
|
|
@@ -3,6 +3,7 @@ import { applyWgpuEffectBlitOffsetPass, applyWgpuEffectBlitPass, applyWgpuEffect
|
|
|
3
3
|
import { applyWgpuEffectBoxBlur } from './wgpuEffectBoxBlur';
|
|
4
4
|
import { clearWgpuEffectTarget } from './wgpuEffectPass';
|
|
5
5
|
import { applyWgpuEffectTintPass } from './wgpuEffectTintShader';
|
|
6
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
6
7
|
// Drop-shadow composite effect: tint the scene silhouette, blur it, offset it by angle/distance, then apply sourceMode compositing.
|
|
7
8
|
// Full-frame realization: acquires the recipe's three scratch targets from the effect pool, runs the
|
|
8
9
|
// multi-pass recipe (tint → box blur → offset → composite), then releases them.
|
|
@@ -47,4 +48,7 @@ export function applyDropShadowEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
47
48
|
export const defaultWgpuDropShadowEffectRunner = (ctx, effect) => {
|
|
48
49
|
applyDropShadowEffectToWgpu(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
49
50
|
};
|
|
51
|
+
export function registerWgpuDropShadowEffect(state) {
|
|
52
|
+
registerWgpuRenderEffect(state, 'DropShadowEffect', defaultWgpuDropShadowEffectRunner);
|
|
53
|
+
}
|
|
50
54
|
//# sourceMappingURL=wgpuDropShadowEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDropShadowEffect.js","sourceRoot":"","sources":["../src/wgpuDropShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AASlG,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuDropShadowEffect.js","sourceRoot":"","sources":["../src/wgpuDropShadowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { FilmGrainEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyFilmGrainEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<FilmGrainEffect>): void;
|
|
3
3
|
export declare const defaultWgpuFilmGrainEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuFilmGrainEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuFilmGrainEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuFilmGrainEffect.d.ts","sourceRoot":"","sources":["../src/wgpuFilmGrainEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuFilmGrainEffect.d.ts","sourceRoot":"","sources":["../src/wgpuFilmGrainEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAQlC,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,CAUN;AAED,eAAO,MAAM,gCAAgC,EAAE,sBAE9C,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAExE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// Film grain: add per-pixel hash noise scaled by intensity, with grain cell size and a seed so the
|
|
4
5
|
// noise can be animated frame to frame.
|
|
5
6
|
export function applyFilmGrainEffectToWgpu(state, source, dest, effect) {
|
|
@@ -16,6 +17,9 @@ export function applyFilmGrainEffectToWgpu(state, source, dest, effect) {
|
|
|
16
17
|
export const defaultWgpuFilmGrainEffectRunner = (ctx, effect) => {
|
|
17
18
|
applyFilmGrainEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
18
19
|
};
|
|
20
|
+
export function registerWgpuFilmGrainEffect(state) {
|
|
21
|
+
registerWgpuRenderEffect(state, 'FilmGrainEffect', defaultWgpuFilmGrainEffectRunner);
|
|
22
|
+
}
|
|
19
23
|
// Slot layout: [0]=intensity, [1]=size, [2]=seed.
|
|
20
24
|
const FILM_GRAIN_FRAGMENT_WGSL = /* wgsl */ `
|
|
21
25
|
struct Uniforms {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuFilmGrainEffect.js","sourceRoot":"","sources":["../src/wgpuFilmGrainEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuFilmGrainEffect.js","sourceRoot":"","sources":["../src/wgpuFilmGrainEffect.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,wCAAwC;AACxC,MAAM,UAAU,0BAA0B,CACxC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAiC;IAEjC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,SAAS,CAAC,CAAC;IAC5G,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,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAChB,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,MAAM,UAAU,2BAA2B,CAAC,KAAsB;IAChE,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;AACvF,CAAC;AAED,kDAAkD;AAClD,MAAM,wBAAwB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;EAoB1C,CAAC"}
|
package/dist/wgpuFxaaEffect.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { FxaaEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyFxaaEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<FxaaEffect>): void;
|
|
3
3
|
export declare const defaultWgpuFxaaEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuFxaaEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuFxaaEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuFxaaEffect.d.ts","sourceRoot":"","sources":["../src/wgpuFxaaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuFxaaEffect.d.ts","sourceRoot":"","sources":["../src/wgpuFxaaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQtH,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;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEnE"}
|
package/dist/wgpuFxaaEffect.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// FXAA: luminance edge detection + directional blend along the detected edge. Single-pass reference
|
|
4
5
|
// recipe. Reads `tex`; u_resolution gives the texel size; u_edgeThreshold gates edge detection.
|
|
5
6
|
export function applyFxaaEffectToWgpu(state, source, dest, effect) {
|
|
@@ -16,6 +17,9 @@ export function applyFxaaEffectToWgpu(state, source, dest, effect) {
|
|
|
16
17
|
export const defaultWgpuFxaaEffectRunner = (ctx, effect) => {
|
|
17
18
|
applyFxaaEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
18
19
|
};
|
|
20
|
+
export function registerWgpuFxaaEffect(state) {
|
|
21
|
+
registerWgpuRenderEffect(state, 'FxaaEffect', defaultWgpuFxaaEffectRunner);
|
|
22
|
+
}
|
|
19
23
|
// Slots [0..1]=resolution (vec2f), [2]=edgeThreshold; the trailing scalar fits in the same 16-byte block.
|
|
20
24
|
const FXAA_FRAGMENT_WGSL = /* wgsl */ `
|
|
21
25
|
struct Uniforms { u_resolution : vec2f, u_edgeThreshold : f32, _pad0 : f32, }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuFxaaEffect.js","sourceRoot":"","sources":["../src/wgpuFxaaEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuFxaaEffect.js","sourceRoot":"","sources":["../src/wgpuFxaaEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,oGAAoG;AACpG,gGAAgG;AAChG,MAAM,UAAU,qBAAqB,CACnC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA4B;IAE5B,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC;IACrD,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,aAAa,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,MAAM,UAAU,sBAAsB,CAAC,KAAsB;IAC3D,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,2BAA2B,CAAC,CAAC;AAC7E,CAAC;AAED,0GAA0G;AAC1G,MAAM,kBAAkB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CpC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GlitchEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyGlitchEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<GlitchEffect>): void;
|
|
3
3
|
export declare const defaultWgpuGlitchEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuGlitchEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuGlitchEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuGlitchEffect.d.ts","sourceRoot":"","sources":["../src/wgpuGlitchEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuGlitchEffect.d.ts","sourceRoot":"","sources":["../src/wgpuGlitchEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQxH,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,CAeN;AAED,eAAO,MAAM,6BAA6B,EAAE,sBAE3C,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAErE"}
|
package/dist/wgpuGlitchEffect.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// Glitch: split the frame into horizontal blocks, displace each by a per-block hash (data-mosh tear),
|
|
4
5
|
// separate the RGB channels, and corrupt the occasional block to white. `seed` animates it.
|
|
5
6
|
export function applyGlitchEffectToWgpu(state, source, dest, effect) {
|
|
@@ -21,6 +22,9 @@ export function applyGlitchEffectToWgpu(state, source, dest, effect) {
|
|
|
21
22
|
export const defaultWgpuGlitchEffectRunner = (ctx, effect) => {
|
|
22
23
|
applyGlitchEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
23
24
|
};
|
|
25
|
+
export function registerWgpuGlitchEffect(state) {
|
|
26
|
+
registerWgpuRenderEffect(state, 'GlitchEffect', defaultWgpuGlitchEffectRunner);
|
|
27
|
+
}
|
|
24
28
|
// Slot layout: [0]=intensity, [1]=blockSize, [2]=colorShift, [3]=seed, [4..5]=resolution.
|
|
25
29
|
const GLITCH_FRAGMENT_WGSL = /* wgsl */ `
|
|
26
30
|
struct Uniforms {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuGlitchEffect.js","sourceRoot":"","sources":["../src/wgpuGlitchEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuGlitchEffect.js","sourceRoot":"","sources":["../src/wgpuGlitchEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,sGAAsG;AACtG,4FAA4F;AAC5F,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA8B;IAE9B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,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,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACd,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,MAAM,UAAU,wBAAwB,CAAC,KAAsB;IAC7D,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,6BAA6B,CAAC,CAAC;AACjF,CAAC;AAED,0FAA0F;AAC1F,MAAM,oBAAoB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCtC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GodRaysEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyGodRaysEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<GodRaysEffect>): void;
|
|
3
3
|
export declare const defaultWgpuGodRaysEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuGodRaysEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuGodRaysEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuGodRaysEffect.d.ts","sourceRoot":"","sources":["../src/wgpuGodRaysEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuGodRaysEffect.d.ts","sourceRoot":"","sources":["../src/wgpuGodRaysEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAWlC,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,CAsBN;AAED,eAAO,MAAM,8BAA8B,EAAE,sBAE5C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEtE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// God rays: radial light scattering from a screen-space light position (centerX, centerY). Marches
|
|
4
5
|
// SAMPLES steps along the ray from each fragment toward the light, accumulating color with per-step
|
|
5
6
|
// decay and weight, then scales by exposure. A true single-pass recipe — no depth needed. The sample
|
|
@@ -26,6 +27,9 @@ export function applyGodRaysEffectToWgpu(state, source, dest, effect) {
|
|
|
26
27
|
export const defaultWgpuGodRaysEffectRunner = (ctx, effect) => {
|
|
27
28
|
applyGodRaysEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
28
29
|
};
|
|
30
|
+
export function registerWgpuGodRaysEffect(state) {
|
|
31
|
+
registerWgpuRenderEffect(state, 'GodRaysEffect', defaultWgpuGodRaysEffectRunner);
|
|
32
|
+
}
|
|
29
33
|
function buildGodRaysFragment(samples) {
|
|
30
34
|
return GOD_RAYS_FRAGMENT_HEAD + samples.toString() + GOD_RAYS_FRAGMENT_TAIL;
|
|
31
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuGodRaysEffect.js","sourceRoot":"","sources":["../src/wgpuGodRaysEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuGodRaysEffect.js","sourceRoot":"","sources":["../src/wgpuGodRaysEffect.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,qGAAqG;AACrG,qGAAqG;AACrG,uCAAuC;AACvC,MAAM,UAAU,wBAAwB,CACtC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA+B;IAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,qBAAqB,CACpC,KAAK,EACL,uBAAuB,OAAO,EAAE,EAChC,oBAAoB,CAAC,OAAO,CAAC,EAC7B,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,OAAO,CAAC;QACjB,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QACjB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACf,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAChB,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;IACpB,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,MAAM,UAAU,yBAAyB,CAAC,KAAsB;IAC9D,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,8BAA8B,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAC3C,OAAO,sBAAsB,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,sBAAsB,CAAC;AAC9E,CAAC;AAED,uGAAuG;AACvG,iEAAiE;AACjE,MAAM,sBAAsB,GAAG,UAAU,CAAC;;;;;;;;;;;;;uBAanB,CAAC;AAExB,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;EAkB7B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GradientBevelEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget, WgpuRenderTargetPool } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyGradientBevelEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, pool: WgpuRenderTargetPool, effect: Readonly<GradientBevelEffect>): void;
|
|
3
3
|
export declare const defaultWgpuGradientBevelEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuGradientBevelEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuGradientBevelEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuGradientBevelEffect.d.ts","sourceRoot":"","sources":["../src/wgpuGradientBevelEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuGradientBevelEffect.d.ts","sourceRoot":"","sources":["../src/wgpuGradientBevelEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAgBlC,wBAAgB,8BAA8B,CAC5C,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,mBAAmB,CAAC,GACpC,IAAI,CAiGN;AAED,eAAO,MAAM,oCAAoC,EAAE,sBAElD,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE5E"}
|
|
@@ -4,6 +4,7 @@ import { applyWgpuEffectBoxBlur } from './wgpuEffectBoxBlur';
|
|
|
4
4
|
import { getWgpuEffectGradientRampTexture } from './wgpuEffectGradientRamp';
|
|
5
5
|
import { clearWgpuEffectTarget, EFFECT_VERTEX_WGSL, getWgpuEffectPassState } from './wgpuEffectPass';
|
|
6
6
|
import { applyWgpuEffectTintPass } from './wgpuEffectTintShader';
|
|
7
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
7
8
|
// Gradient-bevel composite effect: a bevel whose highlight→shadow band color is looked up from a colors/alphas/ratios gradient ramp indexed by the encoded bevel depth, then sourceMode decides source compositing.
|
|
8
9
|
// Full-frame realization: acquires the recipe's three scratch targets from the effect pool, runs the
|
|
9
10
|
// multi-pass recipe (neutral tint → box blur → bevel encode → gradient lookup + clip → composite), then releases them.
|
|
@@ -101,6 +102,9 @@ export function applyGradientBevelEffectToWgpu(state, source, dest, pool, effect
|
|
|
101
102
|
export const defaultWgpuGradientBevelEffectRunner = (ctx, effect) => {
|
|
102
103
|
applyGradientBevelEffectToWgpu(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
103
104
|
};
|
|
105
|
+
export function registerWgpuGradientBevelEffect(state) {
|
|
106
|
+
registerWgpuRenderEffect(state, 'GradientBevelEffect', defaultWgpuGradientBevelEffectRunner);
|
|
107
|
+
}
|
|
104
108
|
// Samples the blurred alpha at +offset and -offset to compute a bevel value
|
|
105
109
|
// in [-1, 1], mapped to [0, 1] for gradient lookup. Outputs the encoded value
|
|
106
110
|
// in the red channel; alpha=1 (will be clipped later).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuGradientBevelEffect.js","sourceRoot":"","sources":["../src/wgpuGradientBevelEffect.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,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuGradientBevelEffect.js","sourceRoot":"","sources":["../src/wgpuGradientBevelEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GradientGlowEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget, WgpuRenderTargetPool } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyGradientGlowEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, pool: WgpuRenderTargetPool, effect: Readonly<GradientGlowEffect>): void;
|
|
3
3
|
export declare const defaultWgpuGradientGlowEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuGradientGlowEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuGradientGlowEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuGradientGlowEffect.d.ts","sourceRoot":"","sources":["../src/wgpuGradientGlowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuGradientGlowEffect.d.ts","sourceRoot":"","sources":["../src/wgpuGradientGlowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAalC,wBAAgB,6BAA6B,CAC3C,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,kBAAkB,CAAC,GACnC,IAAI,CA6DN;AAED,eAAO,MAAM,mCAAmC,EAAE,sBAEjD,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE3E"}
|
|
@@ -4,6 +4,7 @@ import { applyWgpuEffectBoxBlur } from './wgpuEffectBoxBlur';
|
|
|
4
4
|
import { getWgpuEffectGradientRampTexture } from './wgpuEffectGradientRamp';
|
|
5
5
|
import { clearWgpuEffectTarget, EFFECT_VERTEX_WGSL, getWgpuEffectPassState } from './wgpuEffectPass';
|
|
6
6
|
import { applyWgpuEffectTintPass } from './wgpuEffectTintShader';
|
|
7
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
7
8
|
// Gradient-glow composite effect: an outer glow whose color is looked up from a colors/alphas/ratios gradient ramp indexed by the blurred silhouette alpha, then sourceMode decides source compositing.
|
|
8
9
|
// Full-frame realization: acquires the recipe's three scratch targets from the effect pool, runs the
|
|
9
10
|
// multi-pass recipe (neutral tint → box blur → gradient lookup → composite), then releases them.
|
|
@@ -65,6 +66,9 @@ export function applyGradientGlowEffectToWgpu(state, source, dest, pool, effect)
|
|
|
65
66
|
export const defaultWgpuGradientGlowEffectRunner = (ctx, effect) => {
|
|
66
67
|
applyGradientGlowEffectToWgpu(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
67
68
|
};
|
|
69
|
+
export function registerWgpuGradientGlowEffect(state) {
|
|
70
|
+
registerWgpuRenderEffect(state, 'GradientGlowEffect', defaultWgpuGradientGlowEffectRunner);
|
|
71
|
+
}
|
|
68
72
|
// Uses the blurred alpha (group 1) to index into a gradient ramp texture (group 2).
|
|
69
73
|
const GRADIENT_LOOKUP_FRAGMENT_WGSL = /* wgsl */ `
|
|
70
74
|
struct Uniforms { _u : f32, _pad0 : f32, _pad1 : f32, _pad2 : f32, }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuGradientGlowEffect.js","sourceRoot":"","sources":["../src/wgpuGradientGlowEffect.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,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuGradientGlowEffect.js","sourceRoot":"","sources":["../src/wgpuGradientGlowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { HalftoneEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyHalftoneEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, effect: Readonly<HalftoneEffect>): void;
|
|
3
3
|
export declare const defaultWgpuHalftoneEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuHalftoneEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuHalftoneEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuHalftoneEffect.d.ts","sourceRoot":"","sources":["../src/wgpuHalftoneEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuHalftoneEffect.d.ts","sourceRoot":"","sources":["../src/wgpuHalftoneEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAQlC,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAC/B,IAAI,CAWN;AAED,eAAO,MAAM,+BAA+B,EAAE,sBAE7C,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEvE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
3
4
|
// Halftone: sample luminance, then carve a rotated dot grid whose dot radius tracks darkness — the
|
|
4
5
|
// classic print/comic screen. `scale` sets the cell size, `angle` rotates the grid.
|
|
5
6
|
export function applyHalftoneEffectToWgpu(state, source, dest, effect) {
|
|
@@ -17,6 +18,9 @@ export function applyHalftoneEffectToWgpu(state, source, dest, effect) {
|
|
|
17
18
|
export const defaultWgpuHalftoneEffectRunner = (ctx, effect) => {
|
|
18
19
|
applyHalftoneEffectToWgpu(ctx.state, ctx.source, ctx.dest, effect);
|
|
19
20
|
};
|
|
21
|
+
export function registerWgpuHalftoneEffect(state) {
|
|
22
|
+
registerWgpuRenderEffect(state, 'HalftoneEffect', defaultWgpuHalftoneEffectRunner);
|
|
23
|
+
}
|
|
20
24
|
// Slot layout: [0]=scale, [1]=angle, [2..3]=resolution.
|
|
21
25
|
const HALFTONE_FRAGMENT_WGSL = /* wgsl */ `
|
|
22
26
|
struct Uniforms {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuHalftoneEffect.js","sourceRoot":"","sources":["../src/wgpuHalftoneEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuHalftoneEffect.js","sourceRoot":"","sources":["../src/wgpuHalftoneEffect.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,oFAAoF;AACpF,MAAM,UAAU,yBAAyB,CACvC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAgC;IAEhC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC;IAClC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,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,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACf,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,+BAA+B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACrF,yBAAyB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAwB,CAAC,CAAC;AACvF,CAAC,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAsB;IAC/D,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;AACrF,CAAC;AAED,wDAAwD;AACxD,MAAM,sBAAsB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;EAuBxC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { InnerGlowEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget, WgpuRenderTargetPool } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyInnerGlowEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, pool: WgpuRenderTargetPool, effect: Readonly<InnerGlowEffect>): void;
|
|
3
3
|
export declare const defaultWgpuInnerGlowEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
export declare function registerWgpuInnerGlowEffect(state: WgpuRenderState): void;
|
|
4
5
|
//# sourceMappingURL=wgpuInnerGlowEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuInnerGlowEffect.d.ts","sourceRoot":"","sources":["../src/wgpuInnerGlowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuInnerGlowEffect.d.ts","sourceRoot":"","sources":["../src/wgpuInnerGlowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAWlC,wBAAgB,0BAA0B,CACxC,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,eAAe,CAAC,GAChC,IAAI,CAgCN;AAED,eAAO,MAAM,gCAAgC,EAAE,sBAE9C,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAExE"}
|
|
@@ -3,6 +3,7 @@ import { applyWgpuEffectBlitPass } from './wgpuEffectBlitShader';
|
|
|
3
3
|
import { applyWgpuEffectBoxBlur } from './wgpuEffectBoxBlur';
|
|
4
4
|
import { clearWgpuEffectTarget } from './wgpuEffectPass';
|
|
5
5
|
import { applyWgpuEffectInnerClipPass, applyWgpuEffectInvertTintPass } from './wgpuEffectTintShader';
|
|
6
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
6
7
|
// Inner-glow composite effect: tint the inverted silhouette, blur inward, clip to the source alpha, then apply draw/hide 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 (invert-tint → box blur → inner clip → composite), then releases them.
|
|
@@ -38,6 +39,9 @@ export function applyInnerGlowEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
38
39
|
export const defaultWgpuInnerGlowEffectRunner = (ctx, effect) => {
|
|
39
40
|
applyInnerGlowEffectToWgpu(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
40
41
|
};
|
|
42
|
+
export function registerWgpuInnerGlowEffect(state) {
|
|
43
|
+
registerWgpuRenderEffect(state, 'InnerGlowEffect', defaultWgpuInnerGlowEffectRunner);
|
|
44
|
+
}
|
|
41
45
|
function getInvertTintEdgeColor(color, alpha, strength) {
|
|
42
46
|
const edgeAlpha = Math.min(1, alpha * strength);
|
|
43
47
|
return [
|