@flighthq/effects-wgpu 0.3.1-next.975.01aea94 → 0.4.0-edge.1908.751021c
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 +1 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +1 -0
- package/dist/contract.js.map +1 -1
- package/dist/enableWgpuRenderEffectGuards.d.ts +5 -0
- package/dist/enableWgpuRenderEffectGuards.d.ts.map +1 -0
- package/dist/enableWgpuRenderEffectGuards.js +75 -0
- package/dist/enableWgpuRenderEffectGuards.js.map +1 -0
- 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.map +1 -1
- package/dist/wgpuBevelEffect.js +11 -5
- package/dist/wgpuBevelEffect.js.map +1 -1
- package/dist/wgpuBlurEffect.d.ts +1 -0
- package/dist/wgpuBlurEffect.d.ts.map +1 -1
- package/dist/wgpuBlurEffect.js +21 -6
- package/dist/wgpuBlurEffect.js.map +1 -1
- package/dist/wgpuConvolutionEffect.d.ts.map +1 -1
- package/dist/wgpuConvolutionEffect.js +8 -4
- package/dist/wgpuConvolutionEffect.js.map +1 -1
- package/dist/wgpuCrtEffect.d.ts.map +1 -1
- package/dist/wgpuCrtEffect.js +4 -2
- package/dist/wgpuCrtEffect.js.map +1 -1
- package/dist/wgpuDirectionalBlurEffect.d.ts.map +1 -1
- package/dist/wgpuDirectionalBlurEffect.js +5 -3
- package/dist/wgpuDirectionalBlurEffect.js.map +1 -1
- package/dist/wgpuDisplacementEffect.d.ts.map +1 -1
- package/dist/wgpuDisplacementEffect.js +4 -2
- package/dist/wgpuDisplacementEffect.js.map +1 -1
- package/dist/wgpuDitherEffect.d.ts.map +1 -1
- package/dist/wgpuDitherEffect.js +4 -2
- package/dist/wgpuDitherEffect.js.map +1 -1
- package/dist/wgpuDropShadowEffect.d.ts.map +1 -1
- package/dist/wgpuDropShadowEffect.js +3 -1
- package/dist/wgpuDropShadowEffect.js.map +1 -1
- package/dist/wgpuEffectTexelScale.d.ts +18 -0
- package/dist/wgpuEffectTexelScale.d.ts.map +1 -0
- package/dist/wgpuEffectTexelScale.js +22 -0
- package/dist/wgpuEffectTexelScale.js.map +1 -0
- package/dist/wgpuEffectTintShader.d.ts.map +1 -1
- package/dist/wgpuEffectTintShader.js +13 -13
- package/dist/wgpuEffectTintShader.js.map +1 -1
- package/dist/wgpuFxaaEffect.d.ts.map +1 -1
- package/dist/wgpuFxaaEffect.js +3 -0
- package/dist/wgpuFxaaEffect.js.map +1 -1
- package/dist/wgpuGlitchEffect.d.ts.map +1 -1
- package/dist/wgpuGlitchEffect.js +4 -2
- package/dist/wgpuGlitchEffect.js.map +1 -1
- package/dist/wgpuGodRaysEffect.d.ts.map +1 -1
- package/dist/wgpuGodRaysEffect.js +4 -0
- package/dist/wgpuGodRaysEffect.js.map +1 -1
- package/dist/wgpuGradientBevelEffect.js +1 -1
- package/dist/wgpuGradientBevelEffect.js.map +1 -1
- package/dist/wgpuGradientGlowEffect.js +1 -1
- package/dist/wgpuGradientGlowEffect.js.map +1 -1
- package/dist/wgpuHalftoneEffect.js +4 -2
- package/dist/wgpuHalftoneEffect.js.map +1 -1
- package/dist/wgpuInnerGlowEffect.d.ts.map +1 -1
- package/dist/wgpuInnerGlowEffect.js +8 -8
- package/dist/wgpuInnerGlowEffect.js.map +1 -1
- package/dist/wgpuInnerShadowEffect.d.ts.map +1 -1
- package/dist/wgpuInnerShadowEffect.js +8 -8
- package/dist/wgpuInnerShadowEffect.js.map +1 -1
- package/dist/wgpuKuwaharaEffect.d.ts.map +1 -1
- package/dist/wgpuKuwaharaEffect.js +13 -5
- package/dist/wgpuKuwaharaEffect.js.map +1 -1
- package/dist/wgpuLensDirtEffect.d.ts +2 -2
- package/dist/wgpuLensDirtEffect.d.ts.map +1 -1
- package/dist/wgpuLensDirtEffect.js +64 -16
- package/dist/wgpuLensDirtEffect.js.map +1 -1
- package/dist/wgpuMotionBlurEffect.d.ts.map +1 -1
- package/dist/wgpuMotionBlurEffect.js +6 -4
- package/dist/wgpuMotionBlurEffect.js.map +1 -1
- package/dist/wgpuOuterGlowEffect.js +1 -1
- package/dist/wgpuOuterGlowEffect.js.map +1 -1
- package/dist/wgpuPixelateEffect.d.ts.map +1 -1
- package/dist/wgpuPixelateEffect.js +4 -2
- package/dist/wgpuPixelateEffect.js.map +1 -1
- package/dist/wgpuRadialBlurEffect.d.ts.map +1 -1
- package/dist/wgpuRadialBlurEffect.js +3 -0
- package/dist/wgpuRadialBlurEffect.js.map +1 -1
- package/dist/wgpuRenderEffectPipeline.d.ts +4 -2
- package/dist/wgpuRenderEffectPipeline.d.ts.map +1 -1
- package/dist/wgpuRenderEffectPipeline.js +37 -5
- package/dist/wgpuRenderEffectPipeline.js.map +1 -1
- package/dist/wgpuRenderTextureEffect.d.ts +4 -1
- package/dist/wgpuRenderTextureEffect.d.ts.map +1 -1
- package/dist/wgpuRenderTextureEffect.js +60 -3
- package/dist/wgpuRenderTextureEffect.js.map +1 -1
- package/dist/wgpuSharpenEffect.d.ts.map +1 -1
- package/dist/wgpuSharpenEffect.js +4 -2
- package/dist/wgpuSharpenEffect.js.map +1 -1
- package/dist/wgpuSmaaEffect.d.ts.map +1 -1
- package/dist/wgpuSmaaEffect.js +3 -0
- package/dist/wgpuSmaaEffect.js.map +1 -1
- package/dist/wgpuSsaoEffect.d.ts.map +1 -1
- package/dist/wgpuSsaoEffect.js +4 -2
- package/dist/wgpuSsaoEffect.js.map +1 -1
- package/dist/wgpuTiltShiftEffect.d.ts.map +1 -1
- package/dist/wgpuTiltShiftEffect.js +4 -2
- package/dist/wgpuTiltShiftEffect.js.map +1 -1
- package/package.json +9 -7
- package/src/enableWgpuRenderEffectGuards.test.ts +206 -0
- package/src/wgpuBevelEffect.test.ts +214 -6
- package/src/wgpuBlurEffect.test.ts +28 -0
- package/src/wgpuColorLutPass.test.ts +247 -2
- package/src/wgpuColorMatrixPass.test.ts +100 -2
- package/src/wgpuDropShadowEffect.test.ts +0 -4
- package/src/wgpuEffectBlitShader.test.ts +137 -6
- package/src/wgpuEffectBoxBlur.test.ts +0 -4
- package/src/wgpuEffectGradientRamp.test.ts +145 -2
- package/src/wgpuEffectPass.test.ts +310 -14
- package/src/wgpuEffectProgramCache.test.ts +103 -2
- package/src/wgpuEffectTexelScale.test.ts +47 -0
- package/src/wgpuEffectTintShader.test.ts +0 -4
- package/src/wgpuGodRaysEffect.test.ts +126 -6
- package/src/wgpuGradientBevelEffect.test.ts +239 -6
- package/src/wgpuHalftoneEffect.test.ts +172 -6
- package/src/wgpuInnerGlowEffect.test.ts +1 -5
- package/src/wgpuInnerShadowEffect.test.ts +1 -5
- package/src/wgpuLensDirtEffect.test.ts +90 -0
- package/src/wgpuLogicalEffectResolution.test.ts +247 -0
- package/src/wgpuOuterGlowEffect.test.ts +0 -4
- package/src/wgpuRadialBlurEffect.test.ts +119 -6
- package/src/wgpuRenderEffectPipeline.test.ts +229 -8
- package/src/wgpuRenderTextureEffect.test.ts +57 -2
package/dist/contract.d.ts
CHANGED
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,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"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,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
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,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"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { WgpuRenderState } from '@flighthq/types/contract';
|
|
2
|
+
export declare function areWgpuRenderEffectGuardsEnabled(state: WgpuRenderState): boolean;
|
|
3
|
+
export declare function disableWgpuRenderEffectGuards(state: WgpuRenderState): void;
|
|
4
|
+
export declare function enableWgpuRenderEffectGuards(state: WgpuRenderState): void;
|
|
5
|
+
//# sourceMappingURL=enableWgpuRenderEffectGuards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enableWgpuRenderEffectGuards.d.ts","sourceRoot":"","sources":["../src/enableWgpuRenderEffectGuards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA0C,eAAe,EAAE,MAAM,0BAA0B,CAAC;AASxG,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAEhF;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAK1E;AAWD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAKzE"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { logOnce } from '@flighthq/log/contract';
|
|
2
|
+
import { LogLevel } from '@flighthq/types/contract';
|
|
3
|
+
import { setWgpuRenderEffectPipelineSampleCountGuard, setWgpuRenderEffectPipelineSkipGuard, } from './wgpuRenderEffectPipeline';
|
|
4
|
+
import { setWgpuRenderEffectApplicationGuard } from './wgpuRenderTextureEffect';
|
|
5
|
+
export function areWgpuRenderEffectGuardsEnabled(state) {
|
|
6
|
+
return _guardedStates.has(state);
|
|
7
|
+
}
|
|
8
|
+
export function disableWgpuRenderEffectGuards(state) {
|
|
9
|
+
setWgpuRenderEffectApplicationGuard(state, null);
|
|
10
|
+
setWgpuRenderEffectPipelineSampleCountGuard(state, null);
|
|
11
|
+
setWgpuRenderEffectPipelineSkipGuard(state, null);
|
|
12
|
+
_guardedStates.delete(state);
|
|
13
|
+
}
|
|
14
|
+
// Installs diagnostics for the effect-chain sentinels that are indistinguishable from working code: an
|
|
15
|
+
// unregistered chain returns false having never written `dest`, so a sprite sampling that texture shows
|
|
16
|
+
// whatever was last in it, and a partially registered chain succeeds while silently dropping the effects
|
|
17
|
+
// it could not run. Both are correct by contract and neither surfaces anywhere.
|
|
18
|
+
//
|
|
19
|
+
// The WGPU sibling of enableGlRenderEffectGuards, and deliberately narrower: GL additionally guards
|
|
20
|
+
// per-instance resolvability and re-registered custom-shader source, and WGPU has neither a resolver half
|
|
21
|
+
// to registration nor a custom-shader effect. Guarding what this backend cannot observe would be a
|
|
22
|
+
// warning that can never fire, so the absence is the honest shape rather than an oversight.
|
|
23
|
+
export function enableWgpuRenderEffectGuards(state) {
|
|
24
|
+
setWgpuRenderEffectApplicationGuard(state, warnWgpuRenderEffectApplication);
|
|
25
|
+
setWgpuRenderEffectPipelineSampleCountGuard(state, warnWgpuRenderEffectPipelineSampleCount);
|
|
26
|
+
setWgpuRenderEffectPipelineSkipGuard(state, warnWgpuRenderEffectPipelineSkip);
|
|
27
|
+
_guardedStates.add(state);
|
|
28
|
+
}
|
|
29
|
+
// WGPU effect targets support one or four coverage samples. Counts outside that set are substituted
|
|
30
|
+
// rather than rejected so module-scope pipeline construction remains loadable; the guard makes the
|
|
31
|
+
// applied count explicit. Warn once per requested count.
|
|
32
|
+
function warnWgpuRenderEffectPipelineSampleCount(_state, requestedSampleCount, appliedSampleCount) {
|
|
33
|
+
logOnce(`effects-wgpu:pipeline-sample-count-substituted:${requestedSampleCount}`, LogLevel.Warn, {
|
|
34
|
+
appliedSampleCount,
|
|
35
|
+
message: `createWgpuRenderEffectPipeline: sampleCount ${requestedSampleCount} requested, but WGPU effect targets support 1 or 4 — continuing with sampleCount ${appliedSampleCount}`,
|
|
36
|
+
requestedSampleCount,
|
|
37
|
+
}, 'effects-wgpu');
|
|
38
|
+
}
|
|
39
|
+
function getWgpuRenderEffectApplicationMessage(explanation) {
|
|
40
|
+
switch (explanation.status) {
|
|
41
|
+
case 'partial-registration':
|
|
42
|
+
return `applyWgpuRenderEffectsToRenderTexture: ${explanation.unregisteredKinds.length} of ${explanation.requestedCount} effect kinds have no registered runner and were SKIPPED — the destination was written without them; call registerWgpuRenderEffect(state, kind, runner) for ${explanation.unregisteredKinds.join(', ')}`;
|
|
43
|
+
case 'source-unavailable':
|
|
44
|
+
return 'applyWgpuRenderEffectsToRenderTexture: the source render Texture has no realized WGPU target, so the call returned false and the destination was NOT written — render into the source before applying effects';
|
|
45
|
+
case 'stale-destination':
|
|
46
|
+
return 'applyWgpuRenderEffectsToRenderTexture: the call returned false before replacing the destination, so its previously published pixels are a STALE DESTINATION — handle the false return before sampling dest, and make the source and runners available before retrying';
|
|
47
|
+
default:
|
|
48
|
+
return `applyWgpuRenderEffectsToRenderTexture: no registered runner for any of ${explanation.unregisteredKinds.join(', ')}, so the call returned false and the destination was NEVER WRITTEN — anything sampling it reads a stale or empty texture; call registerWgpuRenderEffect(state, kind, runner)`;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function warnWgpuRenderEffectApplication(_state, explanation) {
|
|
52
|
+
// Keyed by status plus the kinds involved: a chain missing a different effect is a different
|
|
53
|
+
// observation worth reporting, while the same miss every frame is not.
|
|
54
|
+
logOnce(`effects-wgpu:effect-application:${explanation.status}:${explanation.unregisteredKinds.join(',')}`, LogLevel.Warn, {
|
|
55
|
+
message: getWgpuRenderEffectApplicationMessage(explanation),
|
|
56
|
+
registeredCount: explanation.registeredCount,
|
|
57
|
+
requestedCount: explanation.requestedCount,
|
|
58
|
+
status: explanation.status,
|
|
59
|
+
unregisteredKinds: explanation.unregisteredKinds,
|
|
60
|
+
}, 'effects-wgpu');
|
|
61
|
+
}
|
|
62
|
+
// A pipeline pass drops an effect whose kind has no runner with a bare `continue`: no draw, no error, no
|
|
63
|
+
// artifact. Seven effect kinds ship a descriptor and a constructor with no runner on ANY backend
|
|
64
|
+
// (AutoExposure, BarrelDistortion, FilmEmulation, PanniniProjection, Ssr, Taa, VolumetricLight), so a
|
|
65
|
+
// caller can build one into a chain and watch nothing happen with nothing to grep for.
|
|
66
|
+
function warnWgpuRenderEffectPipelineSkip(_state, kind) {
|
|
67
|
+
// Keyed by kind, not by frame: the same missing kind every frame is one observation, and a second kind
|
|
68
|
+
// going missing is a new one worth reporting.
|
|
69
|
+
logOnce(`effects-wgpu:pipeline-effect-skipped:${kind}`, LogLevel.Warn, {
|
|
70
|
+
kind,
|
|
71
|
+
message: `endWgpuRenderEffectPipeline: effect kind "${kind}" has no registered runner, so the pass was SKIPPED — the frame was written without it and nothing else reports this; call registerWgpuRenderEffect(state, "${kind}", runner), or check whether this kind has a runner on this backend at all`,
|
|
72
|
+
}, 'effects-wgpu');
|
|
73
|
+
}
|
|
74
|
+
const _guardedStates = new WeakSet();
|
|
75
|
+
//# sourceMappingURL=enableWgpuRenderEffectGuards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enableWgpuRenderEffectGuards.js","sourceRoot":"","sources":["../src/enableWgpuRenderEffectGuards.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
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';
|
|
1
|
+
export { applyWgpuRenderEffectsToRenderTexture, beginWgpuRenderEffectPipeline, createWgpuRenderEffectPipeline, disableWgpuRenderEffectGuards, enableWgpuRenderEffectGuards, 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,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
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qCAAqC,EACrC,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,4BAA4B,EAC5B,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 { 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';
|
|
1
|
+
export { applyWgpuRenderEffectsToRenderTexture, beginWgpuRenderEffectPipeline, createWgpuRenderEffectPipeline, disableWgpuRenderEffectGuards, enableWgpuRenderEffectGuards, 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,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
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qCAAqC,EACrC,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,4BAA4B,EAC5B,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBevelEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuBevelEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"AAEA,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,CAyDN;AAED,eAAO,MAAM,4BAA4B,EAAE,sBAE1C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEpE"}
|
package/dist/wgpuBevelEffect.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getColorAlpha, getColorRgb } from '@flighthq/color/contract';
|
|
1
2
|
import { acquireWgpuRenderTarget, releaseWgpuRenderTarget } from '@flighthq/render-wgpu/contract';
|
|
2
3
|
import { applyWgpuEffectBlitPass, applyWgpuEffectErasePass } from './wgpuEffectBlitShader';
|
|
3
4
|
import { applyWgpuEffectBoxBlur } from './wgpuEffectBoxBlur';
|
|
@@ -19,17 +20,22 @@ export function applyBevelEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
19
20
|
// Match the surface reference, which snaps the light offset to whole pixels.
|
|
20
21
|
const offsetX = Math.round(Math.cos(angle) * distance);
|
|
21
22
|
const offsetY = Math.round(Math.sin(angle) * distance);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
23
|
+
// The color is packed RGBA and its alpha multiplies the separate *Alpha field, matching what
|
|
24
|
+
// BitmapBevelOptions does offscreen. The composite still wants RGB plus one alpha, so the split
|
|
25
|
+
// happens here rather than in the shader.
|
|
26
|
+
const shadowPacked = effect.shadowColor ?? 0x000000ff;
|
|
27
|
+
const shadowColor = getColorRgb(shadowPacked);
|
|
28
|
+
const shadowAlpha = (effect.shadowAlpha ?? 1) * getColorAlpha(shadowPacked);
|
|
29
|
+
const highlightPacked = effect.highlightColor ?? 0xffffffff;
|
|
30
|
+
const highlightColor = getColorRgb(highlightPacked);
|
|
31
|
+
const highlightAlpha = (effect.highlightAlpha ?? 1) * getColorAlpha(highlightPacked);
|
|
26
32
|
const strength = effect.strength ?? 1;
|
|
27
33
|
const quality = Math.max(1, Math.round(effect.quality ?? 1));
|
|
28
34
|
const sourceMode = effect.sourceMode ?? 'draw';
|
|
29
35
|
const bevelType = effect.bevelType ?? 'inner';
|
|
30
36
|
// Blurred alpha field (neutral white tint, strength 1 — strength is the gradient
|
|
31
37
|
// intensity applied per-pixel in the composite, not baked into the field).
|
|
32
|
-
applyWgpuEffectTintPass(state, src, tinted,
|
|
38
|
+
applyWgpuEffectTintPass(state, src, tinted, 0xffffffff, 1, 1);
|
|
33
39
|
applyWgpuEffectBoxBlur(state, tinted, blurred, blurTemp, {
|
|
34
40
|
blurX: effect.blurX ?? 4,
|
|
35
41
|
blurY: effect.blurY ?? 4,
|
|
@@ -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;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,oLAAoL;AACpL,qGAAqG;AACrG,oGAAoG;AACpG,MAAM,UAAU,sBAAsB,CACpC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,IAA0B,EAC1B,MAA6B;IAE7B,MAAM,GAAG,GAAG,MAA0B,CAAC;IACvC,MAAM,GAAG,GAAG,IAAwB,CAAC;IACrC,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACzF,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAElE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,6EAA6E;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;IACvD,MAAM,
|
|
1
|
+
{"version":3,"file":"wgpuBevelEffect.js","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACtE,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;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,oLAAoL;AACpL,qGAAqG;AACrG,oGAAoG;AACpG,MAAM,UAAU,sBAAsB,CACpC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,IAA0B,EAC1B,MAA6B;IAE7B,MAAM,GAAG,GAAG,MAA0B,CAAC;IACvC,MAAM,GAAG,GAAG,IAAwB,CAAC;IACrC,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACzF,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAElE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,6EAA6E;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;IACvD,6FAA6F;IAC7F,gGAAgG;IAChG,0CAA0C;IAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,IAAI,UAAU,CAAC;IACtD,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,IAAI,UAAU,CAAC;IAC5D,MAAM,cAAc,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC;IAE9C,iFAAiF;IACjF,2EAA2E;IAC3E,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;QACvD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;QACxB,MAAM,EAAE,OAAO;KAChB,CAAC,CAAC;IAEH,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,IAAI,UAAU,KAAK,MAAM;QAAE,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEpE,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE;QACpD,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,KAAK;QAC/B,sFAAsF;QACtF,kFAAkF;QAClF,OAAO,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM;QACjC,cAAc;QACd,cAAc;QACd,WAAW;QACX,WAAW;QACX,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACpE,CAAC,CAAC;IAEH,IAAI,UAAU,KAAK,UAAU;QAAE,wBAAwB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEzE,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAClF,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAqB,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,KAAsB;IAC5D,wBAAwB,CAAC,KAAK,EAAE,aAAa,EAAE,4BAA4B,CAAC,CAAC;AAC/E,CAAC;AAED,iGAAiG;AACjG,uGAAuG;AACvG,MAAM,oBAAoB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCtC,CAAC;AAaH,SAAS,2BAA2B,CAClC,KAAsB,EACtB,KAAuB,EACvB,MAAwB,EACxB,IAAsB,EACtB,MAA4B;IAE5B,MAAM,QAAQ,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACpD,4BAA4B,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QACzE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QACtD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QACrD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QAC9C,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;QAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QACnD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QAClD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QACxB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QAC3B,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAsB;IACzD,IAAI,CAAC,GAAG,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,CAAC,GAAG,kCAAkC,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QACpE,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAI,OAAO,EAAiD,CAAC"}
|
package/dist/wgpuBlurEffect.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BlurEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
|
+
export { getWgpuRenderTargetTexelScale } from './wgpuEffectTexelScale';
|
|
2
3
|
export declare function applyBlurEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, temp: Readonly<WgpuRenderTarget>, effect: Readonly<BlurEffect>): void;
|
|
3
4
|
export declare function applyGaussianBlurToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, temp: Readonly<WgpuRenderTarget>, options: Readonly<{
|
|
4
5
|
blurX?: number;
|
|
@@ -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;AAOtH,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAUvE,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;AAED,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,CAwBN;AAED,eAAO,MAAM,2BAA2B,EAAE,sBAKzC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEnE"}
|
package/dist/wgpuBlurEffect.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { acquireWgpuRenderTarget, releaseWgpuRenderTarget } from '@flighthq/render-wgpu/contract';
|
|
2
2
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
3
3
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
4
|
+
import { getWgpuRenderTargetTexelScale } from './wgpuEffectTexelScale';
|
|
4
5
|
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
6
|
+
export { getWgpuRenderTargetTexelScale } from './wgpuEffectTexelScale';
|
|
5
7
|
// Plain separable Gaussian blur: two axis passes (source → temp horizontally, temp → dest vertically),
|
|
6
8
|
// each a single weighted fullscreen pass with radius ⌈3σ⌉. `blurX`/`blurY` are the Gaussian standard
|
|
7
9
|
// deviations (CSS `blur(Xpx)` uses sigma = X), matching the CSS and surface Gaussian references and the
|
|
@@ -12,13 +14,26 @@ import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
|
12
14
|
export function applyBlurEffectToWgpu(state, source, dest, temp, effect) {
|
|
13
15
|
applyGaussianBlurToWgpu(state, source, dest, temp, { blurX: effect.blurX, blurY: effect.blurY });
|
|
14
16
|
}
|
|
15
|
-
// Applies a faithful separable Gaussian blur to `source`, writing to `dest`. `blurX`/`blurY` are the
|
|
16
|
-
// Gaussian standard deviations in pixels (default 4). Runs two unconditional separable passes,
|
|
17
|
-
// source → temp (X) then temp → dest (Y); a zero-radius axis copies through unchanged, so the result
|
|
18
|
-
// always lands in `dest` without a separate blit. `temp` is a ping-pong scratch distinct from both.
|
|
19
17
|
export function applyGaussianBlurToWgpu(state, source, dest, temp, options) {
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
// ★ SIGMA IS IN LOGICAL PIXELS; THE PASS STEPS IN TEXELS. On a supersampled target those are not the
|
|
19
|
+
// same unit — a `sampleCount: 4` effect target is allocated at 2x per axis, so a sigma of 8 spanned
|
|
20
|
+
// only 4 logical pixels and every blur-based effect came out half as wide as its Gl twin. Bloom showed
|
|
21
|
+
// it most plainly: cores and background matched exactly while the halo ran 15.9 luminance short, with
|
|
22
|
+
// ZERO halo pixels brighter on Wgpu — a one-directional deficit, which is what a too-narrow blur looks
|
|
23
|
+
// like, not what a different blur looks like.
|
|
24
|
+
//
|
|
25
|
+
// Measured on effect-bloom: halo mean wgpu-webgl was -15.87 at sampleCount 4 and +1.02 with the same
|
|
26
|
+
// scene at sampleCount 1, where logical and texel units coincide. Scaling sigma by the supersample
|
|
27
|
+
// factor makes the two agree at any sample count, which is the contract the doc comment above states.
|
|
28
|
+
//
|
|
29
|
+
// ★ THE FACTOR IS MEASURED FROM THE TARGET, NOT READ OFF ITS sampleCount. The blur runs on POOL
|
|
30
|
+
// targets, and those are allocated from a descriptor that already carries the supersampled WIDTH while
|
|
31
|
+
// their own sampleCount is 1 — so asking `getWgpuRenderTargetSupersampleScale` gave 1 and the first
|
|
32
|
+
// version of this fix changed nothing at all. Texel density against the canvas is the thing that
|
|
33
|
+
// actually matters here, and it is true of any target however it was obtained.
|
|
34
|
+
const scale = getWgpuRenderTargetTexelScale(source.width, state.canvas.width);
|
|
35
|
+
const sigmaX = (options.blurX ?? 4) * scale;
|
|
36
|
+
const sigmaY = (options.blurY ?? 4) * scale;
|
|
22
37
|
const radiusX = sigmaX > 0 ? Math.ceil(sigmaX * 3) : 0;
|
|
23
38
|
const radiusY = sigmaY > 0 ? Math.ceil(sigmaY * 3) : 0;
|
|
24
39
|
applyWgpuGaussianBlurPass(state, source, temp, sigmaX, radiusX, 1, 0);
|
|
@@ -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;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,uGAAuG;AACvG,qGAAqG;AACrG,wGAAwG;AACxG,yGAAyG;AACzG,8GAA8G;AAE9G,kGAAkG;AAClG,iDAAiD;AACjD,MAAM,UAAU,qBAAqB,CACnC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,IAAgC,EAChC,MAA4B;IAE5B,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACnG,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"wgpuBlurEffect.js","sourceRoot":"","sources":["../src/wgpuBlurEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuConvolutionEffect.d.ts","sourceRoot":"","sources":["../src/wgpuConvolutionEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuConvolutionEffect.d.ts","sourceRoot":"","sources":["../src/wgpuConvolutionEffect.ts"],"names":[],"mappings":"AACA,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,CAoCN;AAED,eAAO,MAAM,kCAAkC,EAAE,sBAEhD,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE1E"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { unpackColorRgba } from '@flighthq/color/contract';
|
|
1
2
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
3
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
4
|
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
@@ -34,10 +35,11 @@ export function applyConvolutionEffectToWgpu(state, source, dest, effect) {
|
|
|
34
35
|
i32[6] = clampEdge ? 1 : 0;
|
|
35
36
|
i32[7] = preserveAlpha ? 1 : 0;
|
|
36
37
|
// edgeColor at offset 32 (f32[8..11])
|
|
37
|
-
|
|
38
|
-
f32[
|
|
39
|
-
f32[
|
|
40
|
-
f32[
|
|
38
|
+
unpackColorRgba(scratchEdgeColor, edgeColor);
|
|
39
|
+
f32[8] = scratchEdgeColor[0];
|
|
40
|
+
f32[9] = scratchEdgeColor[1];
|
|
41
|
+
f32[10] = scratchEdgeColor[2];
|
|
42
|
+
f32[11] = scratchEdgeColor[3];
|
|
41
43
|
// matrix at offset 48 (f32[12..60])
|
|
42
44
|
for (let i = 0; i < matrixX * matrixY; i++)
|
|
43
45
|
f32[12 + i] = matrix[i];
|
|
@@ -109,4 +111,6 @@ fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
|
|
|
109
111
|
}
|
|
110
112
|
return sum;
|
|
111
113
|
}`;
|
|
114
|
+
// Reused across passes: the unpack writes into it on every draw, so it never escapes this module.
|
|
115
|
+
const scratchEdgeColor = [0, 0, 0, 0];
|
|
112
116
|
//# sourceMappingURL=wgpuConvolutionEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuConvolutionEffect.js","sourceRoot":"","sources":["../src/wgpuConvolutionEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuConvolutionEffect.js","sourceRoot":"","sources":["../src/wgpuConvolutionEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AASrH,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,CAeN;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 { getWgpuEffectLogicalResolution } from './wgpuEffectTexelScale';
|
|
3
4
|
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
4
5
|
// CRT: barrel-distort the uv (curvature), darken alternating scanlines, vignette the edges, and split
|
|
5
6
|
// the channels outward (chromatic aberration) for a tube-monitor look.
|
|
@@ -8,14 +9,15 @@ export function applyCrtEffectToWgpu(state, source, dest, effect) {
|
|
|
8
9
|
const scanlineIntensity = effect.scanlineIntensity ?? 0.3;
|
|
9
10
|
const vignette = effect.vignette ?? 0.3;
|
|
10
11
|
const aberration = effect.aberration ?? 0.005;
|
|
12
|
+
const resolution = getWgpuEffectLogicalResolution(state, source);
|
|
11
13
|
const pipeline = getWgpuEffectPipeline(state, 'stylization.crt', CRT_FRAGMENT_WGSL, 'replace');
|
|
12
14
|
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
13
15
|
f32[0] = curvature;
|
|
14
16
|
f32[1] = scanlineIntensity;
|
|
15
17
|
f32[2] = vignette;
|
|
16
18
|
f32[3] = aberration;
|
|
17
|
-
f32[4] =
|
|
18
|
-
f32[5] =
|
|
19
|
+
f32[4] = resolution.width;
|
|
20
|
+
f32[5] = resolution.height;
|
|
19
21
|
});
|
|
20
22
|
}
|
|
21
23
|
export const defaultWgpuCrtEffectRunner = (ctx, effect) => {
|
|
@@ -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;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,
|
|
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,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,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,UAAU,GAAG,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjE,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,UAAU,CAAC,KAAK,CAAC;QAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAC7B,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 +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;AAUlC,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,CAaN;AAED,eAAO,MAAM,sCAAsC,EAAE,sBAEpD,CAAC;AAEF,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE9E"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { getWgpuEffectLogicalResolution } from './wgpuEffectTexelScale';
|
|
3
4
|
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
4
5
|
// Directional blur: accumulate samples stepped along `angle` over `length` texels, normalized by the
|
|
5
6
|
// sample count. Single-pass reference recipe, the Wgpu mirror of effects-gl's
|
|
6
7
|
// applyDirectionalBlurEffectToGl. u_resolution converts the texel length into UV space.
|
|
7
8
|
export function applyDirectionalBlurEffectToWgpu(state, source, dest, effect) {
|
|
8
|
-
const angle = effect.angle ?? 0;
|
|
9
|
+
const angle = ((effect.angle ?? 0) * Math.PI) / 180;
|
|
9
10
|
const length = effect.length ?? 8;
|
|
10
11
|
const samples = effect.samples ?? 16;
|
|
12
|
+
const resolution = getWgpuEffectLogicalResolution(state, source);
|
|
11
13
|
const pipeline = getWgpuEffectPipeline(state, 'motion.directionalBlur', DIRECTIONAL_BLUR_FRAGMENT_WGSL, 'replace');
|
|
12
14
|
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
13
15
|
f32[0] = angle;
|
|
14
16
|
f32[1] = length;
|
|
15
17
|
f32[2] = samples;
|
|
16
|
-
f32[4] =
|
|
17
|
-
f32[5] =
|
|
18
|
+
f32[4] = resolution.width;
|
|
19
|
+
f32[5] = resolution.height;
|
|
18
20
|
});
|
|
19
21
|
}
|
|
20
22
|
export const defaultWgpuDirectionalBlurEffectRunner = (ctx, effect) => {
|
|
@@ -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;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;
|
|
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,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,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,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjE,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,UAAU,CAAC,KAAK,CAAC;QAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAC7B,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 +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;AAQlC,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,CAcN;AAED,eAAO,MAAM,mCAAmC,EAAE,sBAEjD,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE3E"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { getWgpuEffectLogicalResolution } from './wgpuEffectTexelScale';
|
|
3
4
|
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
4
5
|
// Displacement / heat-haze: warp the sample uv by an animated sine field for a refractive wobble.
|
|
5
6
|
export function applyDisplacementEffectToWgpu(state, source, dest, effect) {
|
|
6
7
|
const intensity = effect.intensity ?? 8;
|
|
7
8
|
const frequency = effect.frequency ?? 12;
|
|
8
9
|
const seed = effect.seed ?? 0;
|
|
10
|
+
const resolution = getWgpuEffectLogicalResolution(state, source);
|
|
9
11
|
const pipeline = getWgpuEffectPipeline(state, 'lens.displacement', DISPLACEMENT_FRAGMENT_WGSL, 'replace');
|
|
10
12
|
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
11
13
|
f32[0] = intensity;
|
|
12
14
|
f32[1] = frequency;
|
|
13
15
|
f32[2] = seed;
|
|
14
16
|
// u_resolution (vec2f) aligns to slot [4].
|
|
15
|
-
f32[4] =
|
|
16
|
-
f32[5] =
|
|
17
|
+
f32[4] = resolution.width;
|
|
18
|
+
f32[5] = resolution.height;
|
|
17
19
|
});
|
|
18
20
|
}
|
|
19
21
|
export const defaultWgpuDisplacementEffectRunner = (ctx, effect) => {
|
|
@@ -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;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,
|
|
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,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,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,UAAU,GAAG,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjE,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,UAAU,CAAC,KAAK,CAAC;QAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAC7B,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 +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;AASxH,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,CAUN;AAED,eAAO,MAAM,6BAA6B,EAAE,sBAE3C,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAErE"}
|
package/dist/wgpuDitherEffect.js
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
|
+
import { getWgpuEffectLogicalResolution } from './wgpuEffectTexelScale';
|
|
3
4
|
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
4
5
|
// Dither: quantize each channel to `levels` steps with a 4x4 ordered Bayer threshold for a retro
|
|
5
6
|
// banded-but-textured look.
|
|
6
7
|
export function applyDitherEffectToWgpu(state, source, dest, effect) {
|
|
7
8
|
const levels = effect.levels ?? 4;
|
|
9
|
+
const resolution = getWgpuEffectLogicalResolution(state, source);
|
|
8
10
|
const pipeline = getWgpuEffectPipeline(state, 'stylization.dither', DITHER_FRAGMENT_WGSL, 'replace');
|
|
9
11
|
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
10
12
|
f32[0] = Math.max(2, levels);
|
|
11
13
|
// u_resolution (vec2f) aligns to slot [2].
|
|
12
|
-
f32[2] =
|
|
13
|
-
f32[3] =
|
|
14
|
+
f32[2] = resolution.width;
|
|
15
|
+
f32[3] = resolution.height;
|
|
14
16
|
});
|
|
15
17
|
}
|
|
16
18
|
export const defaultWgpuDitherEffectRunner = (ctx, effect) => {
|
|
@@ -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;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,
|
|
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,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,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,UAAU,GAAG,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjE,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,UAAU,CAAC,KAAK,CAAC;QAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAC7B,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 +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;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,
|
|
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,CA4CN;AAED,eAAO,MAAM,iCAAiC,EAAE,sBAE/C,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEzE"}
|
|
@@ -18,7 +18,9 @@ export function applyDropShadowEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
18
18
|
const distance = effect.distance ?? 4;
|
|
19
19
|
const dx = Math.cos(angle) * distance;
|
|
20
20
|
const dy = Math.sin(angle) * distance;
|
|
21
|
-
|
|
21
|
+
// Packed RGBA, matching BitmapDropShadowOptions.color offscreen. The tint pass folds this color's own
|
|
22
|
+
// alpha into the effect-level one, so nothing splits the value here.
|
|
23
|
+
const color = effect.color ?? 0x000000ff;
|
|
22
24
|
const alpha = effect.alpha ?? 1;
|
|
23
25
|
const strength = effect.strength ?? 1;
|
|
24
26
|
const quality = Math.max(1, Math.round(effect.quality ?? 1));
|
|
@@ -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;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,oIAAoI;AACpI,qGAAqG;AACrG,gFAAgF;AAChF,MAAM,UAAU,2BAA2B,CACzC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,IAA0B,EAC1B,MAAkC;IAElC,MAAM,GAAG,GAAG,MAA0B,CAAC;IACvC,MAAM,GAAG,GAAG,IAAwB,CAAC;IACrC,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACzF,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAElE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACtC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"wgpuDropShadowEffect.js","sourceRoot":"","sources":["../src/wgpuDropShadowEffect.ts"],"names":[],"mappings":"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"}
|