@flighthq/effects-wgpu 0.3.0-next.1220.6982c21 → 0.3.0-next.1272.222de94
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/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/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/wgpuRenderEffectRegistry.d.ts.map +1 -1
- package/dist/wgpuRenderEffectRegistry.js +5 -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/package.json +6 -6
- package/src/wgpuBlurEffect.test.ts +19 -1
- package/src/wgpuDropShadowEffect.test.ts +0 -9
- package/src/wgpuEffectBoxBlur.test.ts +0 -5
- package/src/wgpuEffectTintShader.test.ts +0 -5
- package/src/wgpuInnerGlowEffect.test.ts +0 -9
- package/src/wgpuInnerShadowEffect.test.ts +0 -9
- package/src/wgpuOuterGlowEffect.test.ts +0 -9
- package/src/wgpuRenderTextureEffect.test.ts +99 -0
package/dist/contract.d.ts
CHANGED
|
@@ -41,6 +41,7 @@ export * from './wgpuPosterizeEffect';
|
|
|
41
41
|
export * from './wgpuRadialBlurEffect';
|
|
42
42
|
export * from './wgpuRenderEffectPipeline';
|
|
43
43
|
export * from './wgpuRenderEffectRegistry';
|
|
44
|
+
export * from './wgpuRenderTextureEffect';
|
|
44
45
|
export * from './wgpuScanlinesEffect';
|
|
45
46
|
export * from './wgpuScreenSpaceFogEffect';
|
|
46
47
|
export * from './wgpuSharpenEffect';
|
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,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,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,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,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,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,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,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
|
package/dist/contract.js
CHANGED
|
@@ -41,6 +41,7 @@ export * from './wgpuPosterizeEffect';
|
|
|
41
41
|
export * from './wgpuRadialBlurEffect';
|
|
42
42
|
export * from './wgpuRenderEffectPipeline';
|
|
43
43
|
export * from './wgpuRenderEffectRegistry';
|
|
44
|
+
export * from './wgpuRenderTextureEffect';
|
|
44
45
|
export * from './wgpuScanlinesEffect';
|
|
45
46
|
export * from './wgpuScreenSpaceFogEffect';
|
|
46
47
|
export * from './wgpuSharpenEffect';
|
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,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,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,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,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,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,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,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { beginWgpuRenderEffectPipeline, createWgpuRenderEffectPipeline, defaultWgpuBlendEffectRunner, defaultWgpuBloomEffectRunner, defaultWgpuBokehDepthOfFieldEffectRunner, defaultWgpuCameraMotionBlurEffectRunner, defaultWgpuChromaticAberrationEffectRunner, defaultWgpuCompositeEffectRunner, defaultWgpuCrtEffectRunner, defaultWgpuDirectionalBlurEffectRunner, defaultWgpuDisplacementEffectRunner, defaultWgpuDitherEffectRunner, defaultWgpuFilmGrainEffectRunner, defaultWgpuFxaaEffectRunner, defaultWgpuGlitchEffectRunner, defaultWgpuGodRaysEffectRunner, defaultWgpuHalftoneEffectRunner, defaultWgpuKuwaharaEffectRunner, defaultWgpuLensDirtEffectRunner, defaultWgpuLensDistortionEffectRunner, defaultWgpuLensFlareEffectRunner, defaultWgpuMotionBlurEffectRunner, defaultWgpuOutlineEffectRunner, defaultWgpuPixelateEffectRunner, defaultWgpuPosterizeEffectRunner, defaultWgpuRadialBlurEffectRunner, defaultWgpuScanlinesEffectRunner, defaultWgpuScreenSpaceFogEffectRunner, defaultWgpuSharpenEffectRunner, defaultWgpuSketchEffectRunner, defaultWgpuSmaaEffectRunner, defaultWgpuSsaoEffectRunner, defaultWgpuSsrEffectRunner, defaultWgpuTaaEffectRunner, defaultWgpuTiltShiftEffectRunner, defaultWgpuToneMapEffectRunner, defaultWgpuVignetteEffectRunner, defaultWgpuWhiteBalanceEffectRunner, endWgpuRenderEffectPipeline, registerWgpuBlendEffectBackdrop, registerWgpuRenderEffect, setWgpuRenderEffectVelocityTexture, } from './contract';
|
|
1
|
+
export { applyWgpuRenderEffectsToRenderTexture, beginWgpuRenderEffectPipeline, createWgpuRenderEffectPipeline, defaultWgpuBlendEffectRunner, defaultWgpuBloomEffectRunner, defaultWgpuBokehDepthOfFieldEffectRunner, defaultWgpuCameraMotionBlurEffectRunner, defaultWgpuChromaticAberrationEffectRunner, defaultWgpuCompositeEffectRunner, defaultWgpuCrtEffectRunner, defaultWgpuDirectionalBlurEffectRunner, defaultWgpuDisplacementEffectRunner, defaultWgpuDitherEffectRunner, defaultWgpuFilmGrainEffectRunner, defaultWgpuFxaaEffectRunner, defaultWgpuGlitchEffectRunner, defaultWgpuGodRaysEffectRunner, defaultWgpuHalftoneEffectRunner, defaultWgpuKuwaharaEffectRunner, defaultWgpuLensDirtEffectRunner, defaultWgpuLensDistortionEffectRunner, defaultWgpuLensFlareEffectRunner, defaultWgpuMotionBlurEffectRunner, defaultWgpuOutlineEffectRunner, defaultWgpuPixelateEffectRunner, defaultWgpuPosterizeEffectRunner, defaultWgpuRadialBlurEffectRunner, defaultWgpuScanlinesEffectRunner, defaultWgpuScreenSpaceFogEffectRunner, defaultWgpuSharpenEffectRunner, defaultWgpuSketchEffectRunner, defaultWgpuSmaaEffectRunner, defaultWgpuSsaoEffectRunner, defaultWgpuSsrEffectRunner, defaultWgpuTaaEffectRunner, defaultWgpuTiltShiftEffectRunner, defaultWgpuToneMapEffectRunner, defaultWgpuVignetteEffectRunner, defaultWgpuWhiteBalanceEffectRunner, endWgpuRenderEffectPipeline, registerWgpuBlendEffectBackdrop, registerWgpuBlurEffect, registerWgpuRenderEffect, setWgpuRenderEffectVelocityTexture, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,4BAA4B,EAC5B,4BAA4B,EAC5B,wCAAwC,EACxC,uCAAuC,EACvC,0CAA0C,EAC1C,gCAAgC,EAChC,0BAA0B,EAC1B,sCAAsC,EACtC,mCAAmC,EACnC,6BAA6B,EAC7B,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,EAC/B,+BAA+B,EAC/B,+BAA+B,EAC/B,qCAAqC,EACrC,gCAAgC,EAChC,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,mCAAmC,EACnC,2BAA2B,EAC3B,+BAA+B,EAC/B,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,4BAA4B,EAC5B,4BAA4B,EAC5B,wCAAwC,EACxC,uCAAuC,EACvC,0CAA0C,EAC1C,gCAAgC,EAChC,0BAA0B,EAC1B,sCAAsC,EACtC,mCAAmC,EACnC,6BAA6B,EAC7B,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,EAC/B,+BAA+B,EAC/B,+BAA+B,EAC/B,qCAAqC,EACrC,gCAAgC,EAChC,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,mCAAmC,EACnC,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,kCAAkC,GACnC,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { beginWgpuRenderEffectPipeline, createWgpuRenderEffectPipeline, defaultWgpuBlendEffectRunner, defaultWgpuBloomEffectRunner, defaultWgpuBokehDepthOfFieldEffectRunner, defaultWgpuCameraMotionBlurEffectRunner, defaultWgpuChromaticAberrationEffectRunner, defaultWgpuCompositeEffectRunner, defaultWgpuCrtEffectRunner, defaultWgpuDirectionalBlurEffectRunner, defaultWgpuDisplacementEffectRunner, defaultWgpuDitherEffectRunner, defaultWgpuFilmGrainEffectRunner, defaultWgpuFxaaEffectRunner, defaultWgpuGlitchEffectRunner, defaultWgpuGodRaysEffectRunner, defaultWgpuHalftoneEffectRunner, defaultWgpuKuwaharaEffectRunner, defaultWgpuLensDirtEffectRunner, defaultWgpuLensDistortionEffectRunner, defaultWgpuLensFlareEffectRunner, defaultWgpuMotionBlurEffectRunner, defaultWgpuOutlineEffectRunner, defaultWgpuPixelateEffectRunner, defaultWgpuPosterizeEffectRunner, defaultWgpuRadialBlurEffectRunner, defaultWgpuScanlinesEffectRunner, defaultWgpuScreenSpaceFogEffectRunner, defaultWgpuSharpenEffectRunner, defaultWgpuSketchEffectRunner, defaultWgpuSmaaEffectRunner, defaultWgpuSsaoEffectRunner, defaultWgpuSsrEffectRunner, defaultWgpuTaaEffectRunner, defaultWgpuTiltShiftEffectRunner, defaultWgpuToneMapEffectRunner, defaultWgpuVignetteEffectRunner, defaultWgpuWhiteBalanceEffectRunner, endWgpuRenderEffectPipeline, registerWgpuBlendEffectBackdrop, registerWgpuRenderEffect, setWgpuRenderEffectVelocityTexture, } from './contract';
|
|
1
|
+
export { applyWgpuRenderEffectsToRenderTexture, beginWgpuRenderEffectPipeline, createWgpuRenderEffectPipeline, defaultWgpuBlendEffectRunner, defaultWgpuBloomEffectRunner, defaultWgpuBokehDepthOfFieldEffectRunner, defaultWgpuCameraMotionBlurEffectRunner, defaultWgpuChromaticAberrationEffectRunner, defaultWgpuCompositeEffectRunner, defaultWgpuCrtEffectRunner, defaultWgpuDirectionalBlurEffectRunner, defaultWgpuDisplacementEffectRunner, defaultWgpuDitherEffectRunner, defaultWgpuFilmGrainEffectRunner, defaultWgpuFxaaEffectRunner, defaultWgpuGlitchEffectRunner, defaultWgpuGodRaysEffectRunner, defaultWgpuHalftoneEffectRunner, defaultWgpuKuwaharaEffectRunner, defaultWgpuLensDirtEffectRunner, defaultWgpuLensDistortionEffectRunner, defaultWgpuLensFlareEffectRunner, defaultWgpuMotionBlurEffectRunner, defaultWgpuOutlineEffectRunner, defaultWgpuPixelateEffectRunner, defaultWgpuPosterizeEffectRunner, defaultWgpuRadialBlurEffectRunner, defaultWgpuScanlinesEffectRunner, defaultWgpuScreenSpaceFogEffectRunner, defaultWgpuSharpenEffectRunner, defaultWgpuSketchEffectRunner, defaultWgpuSmaaEffectRunner, defaultWgpuSsaoEffectRunner, defaultWgpuSsrEffectRunner, defaultWgpuTaaEffectRunner, defaultWgpuTiltShiftEffectRunner, defaultWgpuToneMapEffectRunner, defaultWgpuVignetteEffectRunner, defaultWgpuWhiteBalanceEffectRunner, endWgpuRenderEffectPipeline, registerWgpuBlendEffectBackdrop, registerWgpuBlurEffect, registerWgpuRenderEffect, setWgpuRenderEffectVelocityTexture, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,4BAA4B,EAC5B,4BAA4B,EAC5B,wCAAwC,EACxC,uCAAuC,EACvC,0CAA0C,EAC1C,gCAAgC,EAChC,0BAA0B,EAC1B,sCAAsC,EACtC,mCAAmC,EACnC,6BAA6B,EAC7B,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,EAC/B,+BAA+B,EAC/B,+BAA+B,EAC/B,qCAAqC,EACrC,gCAAgC,EAChC,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,mCAAmC,EACnC,2BAA2B,EAC3B,+BAA+B,EAC/B,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,4BAA4B,EAC5B,4BAA4B,EAC5B,wCAAwC,EACxC,uCAAuC,EACvC,0CAA0C,EAC1C,gCAAgC,EAChC,0BAA0B,EAC1B,sCAAsC,EACtC,mCAAmC,EACnC,6BAA6B,EAC7B,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,EAC/B,+BAA+B,EAC/B,+BAA+B,EAC/B,qCAAqC,EACrC,gCAAgC,EAChC,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,mCAAmC,EACnC,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,kCAAkC,GACnC,MAAM,YAAY,CAAC"}
|
package/dist/wgpuBlurEffect.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export declare function applyGaussianBlurToWgpu(state: WgpuRenderState, source:
|
|
|
5
5
|
blurY?: number;
|
|
6
6
|
}>): void;
|
|
7
7
|
export declare const defaultWgpuBlurEffectRunner: WgpuRenderEffectRunner;
|
|
8
|
+
export declare function registerWgpuBlurEffect(state: WgpuRenderState): void;
|
|
8
9
|
//# sourceMappingURL=wgpuBlurEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBlurEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBlurEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBlurEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBlurEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AActH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC3B,IAAI,CAEN;AAMD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,OAAO,EAAE,QAAQ,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACpD,IAAI,CAON;AAED,eAAO,MAAM,2BAA2B,EAAE,sBAKzC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEnE"}
|
package/dist/wgpuBlurEffect.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { acquireWgpuRenderTarget, releaseWgpuRenderTarget } from '@flighthq/render-wgpu/contract';
|
|
2
2
|
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
3
3
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
4
|
+
import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
4
5
|
// Plain separable Gaussian blur: two axis passes (source → temp horizontally, temp → dest vertically),
|
|
5
6
|
// each a single weighted fullscreen pass with radius ⌈3σ⌉. `blurX`/`blurY` are the Gaussian standard
|
|
6
7
|
// deviations (CSS `blur(Xpx)` uses sigma = X), matching the CSS and surface Gaussian references and the
|
|
@@ -29,6 +30,9 @@ export const defaultWgpuBlurEffectRunner = (ctx, effect) => {
|
|
|
29
30
|
applyBlurEffectToWgpu(ctx.state, ctx.source, ctx.dest, temp, effect);
|
|
30
31
|
releaseWgpuRenderTarget(ctx.pool, temp);
|
|
31
32
|
};
|
|
33
|
+
export function registerWgpuBlurEffect(state) {
|
|
34
|
+
registerWgpuRenderEffect(state, 'BlurEffect', defaultWgpuBlurEffectRunner);
|
|
35
|
+
}
|
|
32
36
|
function applyWgpuGaussianBlurPass(state, source, dest, sigma, radius, dirX, dirY) {
|
|
33
37
|
const pipeline = getWgpuEffectPipeline(state, 'blur.gaussian', GAUSSIAN_BLUR_WGSL, 'replace');
|
|
34
38
|
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBlurEffect.js","sourceRoot":"","sources":["../src/wgpuBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGlG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBlurEffect.js","sourceRoot":"","sources":["../src/wgpuBlurEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderEffectRegistry.d.ts","sourceRoot":"","sources":["../src/wgpuRenderEffectRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuRenderEffectRegistry.d.ts","sourceRoot":"","sources":["../src/wgpuRenderEffectRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAQxF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAE7G;AAMD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAGnH"}
|
|
@@ -1,25 +1,21 @@
|
|
|
1
|
+
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
1
2
|
// Per-state registry mapping an effect `kind` string to its Wgpu runner — the material-renderer
|
|
2
3
|
// pattern one tier up. Registration is opt-in (import a runner only to register it) and dispatch is a
|
|
3
4
|
// Map lookup, so there is no monolithic switch and unused effect recipes tree-shake away. Register an
|
|
4
5
|
// alternative runner under the same key to swap algorithms. The Wgpu mirror of the effects-gl
|
|
5
6
|
// renderEffectRegistry — the same agnostic RenderEffect[] drives both backends through their registries.
|
|
6
7
|
export function getWgpuRenderEffectRunner(state, kind) {
|
|
7
|
-
return
|
|
8
|
+
return getWgpuRenderStateRuntime(state).wgpuRenderEffectRegistry?.get(kind) ?? null;
|
|
8
9
|
}
|
|
9
10
|
// Returns true if a runner is registered for the given kind in this state. Symmetric with
|
|
10
11
|
// hasGlRenderEffectRunner. Use to validate an effect chain before dispatching — the pipeline
|
|
11
12
|
// silently skips unregistered kinds; check up front to apply your own policy (warn, filter)
|
|
12
13
|
// rather than relying on silent no-ops.
|
|
13
14
|
export function hasWgpuRenderEffectRunner(state, kind) {
|
|
14
|
-
return
|
|
15
|
+
return getWgpuRenderStateRuntime(state).wgpuRenderEffectRegistry?.has(kind) ?? false;
|
|
15
16
|
}
|
|
16
17
|
export function registerWgpuRenderEffect(state, kind, runner) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
registry = new Map();
|
|
20
|
-
_registries.set(state, registry);
|
|
21
|
-
}
|
|
22
|
-
registry.set(kind, runner);
|
|
18
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
19
|
+
(runtime.wgpuRenderEffectRegistry ??= new Map()).set(kind, runner);
|
|
23
20
|
}
|
|
24
|
-
const _registries = new WeakMap();
|
|
25
21
|
//# sourceMappingURL=wgpuRenderEffectRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderEffectRegistry.js","sourceRoot":"","sources":["../src/wgpuRenderEffectRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuRenderEffectRegistry.js","sourceRoot":"","sources":["../src/wgpuRenderEffectRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,gGAAgG;AAChG,sGAAsG;AACtG,sGAAsG;AACtG,8FAA8F;AAC9F,yGAAyG;AAEzG,MAAM,UAAU,yBAAyB,CAAC,KAAsB,EAAE,IAAY;IAC5E,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC,wBAAwB,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACtF,CAAC;AAED,0FAA0F;AAC1F,6FAA6F;AAC7F,4FAA4F;AAC5F,wCAAwC;AACxC,MAAM,UAAU,yBAAyB,CAAC,KAAsB,EAAE,IAAY;IAC5E,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC,wBAAwB,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAsB,EAAE,IAAY,EAAE,MAA8B;IAC3G,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,OAAO,CAAC,wBAAwB,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RenderEffect, RenderTexture, WgpuRenderState, WgpuRenderTexturePool } from '@flighthq/types/contract';
|
|
2
|
+
export declare function applyWgpuRenderEffectsToRenderTexture(state: WgpuRenderState, pool: WgpuRenderTexturePool, source: Readonly<RenderTexture>, dest: RenderTexture, scratch: RenderTexture, effects: ReadonlyArray<Readonly<RenderEffect>>): boolean;
|
|
3
|
+
//# sourceMappingURL=wgpuRenderTextureEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuRenderTextureEffect.d.ts","sourceRoot":"","sources":["../src/wgpuRenderTextureEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAOpH,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,qBAAqB,EAC3B,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC/B,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAC7C,OAAO,CAiCT"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { getWgpuRenderTextureTarget, writeWgpuRenderTextureTarget } from '@flighthq/render-wgpu/contract';
|
|
2
|
+
import { getWgpuRenderEffectRunner } from './wgpuRenderEffectRegistry';
|
|
3
|
+
// Encodes the registered members of a chain from one completed RenderTexture into another. The
|
|
4
|
+
// caller owns an active command encoder and supplies one distinct scratch lease. Parity chooses the
|
|
5
|
+
// first destination so the final registered operation always publishes `dest`.
|
|
6
|
+
export function applyWgpuRenderEffectsToRenderTexture(state, pool, source, dest, scratch, effects) {
|
|
7
|
+
if (source === dest || source === scratch || dest === scratch) {
|
|
8
|
+
throw new Error('applyWgpuRenderEffectsToRenderTexture: source, destination, and scratch must be distinct');
|
|
9
|
+
}
|
|
10
|
+
const sourceTarget = getWgpuRenderTextureTarget(state, source);
|
|
11
|
+
if (sourceTarget === null)
|
|
12
|
+
return false;
|
|
13
|
+
const operations = effects.flatMap((effect) => {
|
|
14
|
+
const runner = getWgpuRenderEffectRunner(state, effect.kind);
|
|
15
|
+
return runner === null ? [] : [{ effect, runner }];
|
|
16
|
+
});
|
|
17
|
+
if (operations.length === 0)
|
|
18
|
+
return false;
|
|
19
|
+
let current = sourceTarget;
|
|
20
|
+
for (let index = 0; index < operations.length; index++) {
|
|
21
|
+
const operation = operations[index];
|
|
22
|
+
const remaining = operations.length - index;
|
|
23
|
+
const output = remaining % 2 === 1 ? dest : scratch;
|
|
24
|
+
writeWgpuRenderTextureTarget(state, output, (target) => {
|
|
25
|
+
operation.runner({
|
|
26
|
+
state,
|
|
27
|
+
source: current,
|
|
28
|
+
dest: target,
|
|
29
|
+
pool: pool.effectTargets,
|
|
30
|
+
sceneDepthTexture: null,
|
|
31
|
+
sceneVelocityTexture: null,
|
|
32
|
+
}, operation.effect);
|
|
33
|
+
});
|
|
34
|
+
current = getWgpuRenderTextureTarget(state, output);
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=wgpuRenderTextureEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuRenderTextureEffect.js","sourceRoot":"","sources":["../src/wgpuRenderTextureEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAG1G,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,+FAA+F;AAC/F,oGAAoG;AACpG,+EAA+E;AAC/E,MAAM,UAAU,qCAAqC,CACnD,KAAsB,EACtB,IAA2B,EAC3B,MAA+B,EAC/B,IAAmB,EACnB,OAAsB,EACtB,OAA8C;IAE9C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;IAC9G,CAAC;IACD,MAAM,YAAY,GAAG,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1C,IAAI,OAAO,GAAG,YAAY,CAAC;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;QAC5C,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACpD,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YACrD,SAAS,CAAC,MAAM,CACd;gBACE,KAAK;gBACL,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,aAAa;gBACxB,iBAAiB,EAAE,IAAI;gBACvB,oBAAoB,EAAE,IAAI;aAC3B,EACD,SAAS,CAAC,MAAM,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAE,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/effects-wgpu",
|
|
3
|
-
"version": "0.3.0-next.
|
|
3
|
+
"version": "0.3.0-next.1272.222de94",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/flighthq/flight.git",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@flighthq/adjustments": "0.3.0-next.
|
|
40
|
-
"@flighthq/effects": "0.3.0-next.
|
|
41
|
-
"@flighthq/geometry": "0.3.0-next.
|
|
42
|
-
"@flighthq/render-wgpu": "0.3.0-next.
|
|
43
|
-
"@flighthq/types": "0.3.0-next.
|
|
39
|
+
"@flighthq/adjustments": "0.3.0-next.1272.222de94",
|
|
40
|
+
"@flighthq/effects": "0.3.0-next.1272.222de94",
|
|
41
|
+
"@flighthq/geometry": "0.3.0-next.1272.222de94",
|
|
42
|
+
"@flighthq/render-wgpu": "0.3.0-next.1272.222de94",
|
|
43
|
+
"@flighthq/types": "0.3.0-next.1272.222de94"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"typescript": "^5.3.0"
|
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createWgpuRenderStateForTest, installWgpuMock } from '@flighthq/render-wgpu/contract';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
applyBlurEffectToWgpu,
|
|
5
|
+
applyGaussianBlurToWgpu,
|
|
6
|
+
defaultWgpuBlurEffectRunner,
|
|
7
|
+
registerWgpuBlurEffect,
|
|
8
|
+
} from './wgpuBlurEffect';
|
|
9
|
+
import { getWgpuRenderEffectRunner } from './wgpuRenderEffectRegistry';
|
|
10
|
+
|
|
11
|
+
beforeAll(() => installWgpuMock());
|
|
2
12
|
|
|
3
13
|
describe('applyBlurEffectToWgpu', () => {
|
|
4
14
|
it('is a function', () => {
|
|
@@ -17,3 +27,11 @@ describe('defaultWgpuBlurEffectRunner', () => {
|
|
|
17
27
|
expect(typeof defaultWgpuBlurEffectRunner).toBe('function');
|
|
18
28
|
});
|
|
19
29
|
});
|
|
30
|
+
|
|
31
|
+
describe('registerWgpuBlurEffect', () => {
|
|
32
|
+
it('registers the default runner under BlurEffect', async () => {
|
|
33
|
+
const state = await createWgpuRenderStateForTest();
|
|
34
|
+
registerWgpuBlurEffect(state);
|
|
35
|
+
expect(getWgpuRenderEffectRunner(state, 'BlurEffect')).toBe(defaultWgpuBlurEffectRunner);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -87,15 +87,6 @@ beforeEach(() => {
|
|
|
87
87
|
vi.clearAllMocks();
|
|
88
88
|
});
|
|
89
89
|
|
|
90
|
-
afterAll(() => {
|
|
91
|
-
vi.doUnmock('@flighthq/render-wgpu');
|
|
92
|
-
vi.doUnmock('./wgpuEffectBlitShader');
|
|
93
|
-
vi.doUnmock('./wgpuEffectBoxBlur');
|
|
94
|
-
vi.doUnmock('./wgpuEffectPass');
|
|
95
|
-
vi.doUnmock('./wgpuEffectTintShader');
|
|
96
|
-
vi.resetModules();
|
|
97
|
-
});
|
|
98
|
-
|
|
99
90
|
function createState(): never {
|
|
100
91
|
return {} as never;
|
|
101
92
|
}
|
|
@@ -115,15 +115,6 @@ beforeEach(() => {
|
|
|
115
115
|
vi.clearAllMocks();
|
|
116
116
|
});
|
|
117
117
|
|
|
118
|
-
afterAll(() => {
|
|
119
|
-
vi.doUnmock('@flighthq/render-wgpu');
|
|
120
|
-
vi.doUnmock('./wgpuEffectBlitShader');
|
|
121
|
-
vi.doUnmock('./wgpuEffectBoxBlur');
|
|
122
|
-
vi.doUnmock('./wgpuEffectPass');
|
|
123
|
-
vi.doUnmock('./wgpuEffectTintShader');
|
|
124
|
-
vi.resetModules();
|
|
125
|
-
});
|
|
126
|
-
|
|
127
118
|
function createState(): never {
|
|
128
119
|
return {} as never;
|
|
129
120
|
}
|
|
@@ -115,15 +115,6 @@ beforeEach(() => {
|
|
|
115
115
|
vi.clearAllMocks();
|
|
116
116
|
});
|
|
117
117
|
|
|
118
|
-
afterAll(() => {
|
|
119
|
-
vi.doUnmock('@flighthq/render-wgpu');
|
|
120
|
-
vi.doUnmock('./wgpuEffectBlitShader');
|
|
121
|
-
vi.doUnmock('./wgpuEffectBoxBlur');
|
|
122
|
-
vi.doUnmock('./wgpuEffectPass');
|
|
123
|
-
vi.doUnmock('./wgpuEffectTintShader');
|
|
124
|
-
vi.resetModules();
|
|
125
|
-
});
|
|
126
|
-
|
|
127
118
|
function createState(): never {
|
|
128
119
|
return {} as never;
|
|
129
120
|
}
|
|
@@ -86,15 +86,6 @@ beforeEach(() => {
|
|
|
86
86
|
vi.clearAllMocks();
|
|
87
87
|
});
|
|
88
88
|
|
|
89
|
-
afterAll(() => {
|
|
90
|
-
vi.doUnmock('@flighthq/render-wgpu');
|
|
91
|
-
vi.doUnmock('./wgpuEffectBlitShader');
|
|
92
|
-
vi.doUnmock('./wgpuEffectBoxBlur');
|
|
93
|
-
vi.doUnmock('./wgpuEffectPass');
|
|
94
|
-
vi.doUnmock('./wgpuEffectTintShader');
|
|
95
|
-
vi.resetModules();
|
|
96
|
-
});
|
|
97
|
-
|
|
98
89
|
function createState(): never {
|
|
99
90
|
return {} as never;
|
|
100
91
|
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { createBlurEffect } from '@flighthq/effects/contract';
|
|
2
|
+
import {
|
|
3
|
+
acquireWgpuRenderTexture,
|
|
4
|
+
beginWgpuFrame,
|
|
5
|
+
copyWgpuRenderStateRegistrations,
|
|
6
|
+
createWgpuOffscreenRenderState,
|
|
7
|
+
createWgpuRenderStateForTest,
|
|
8
|
+
createWgpuRenderTexturePool,
|
|
9
|
+
getWgpuRenderTextureTarget,
|
|
10
|
+
installWgpuMock,
|
|
11
|
+
isWgpuRenderTextureReady,
|
|
12
|
+
writeWgpuRenderTextureTarget,
|
|
13
|
+
} from '@flighthq/render-wgpu/contract';
|
|
14
|
+
import type { WgpuRenderEffectRunner } from '@flighthq/types/contract';
|
|
15
|
+
|
|
16
|
+
import { defaultWgpuBlurEffectRunner } from './wgpuBlurEffect';
|
|
17
|
+
import { getWgpuRenderEffectRunner, registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
|
|
18
|
+
import { applyWgpuRenderEffectsToRenderTexture } from './wgpuRenderTextureEffect';
|
|
19
|
+
|
|
20
|
+
beforeAll(() => installWgpuMock());
|
|
21
|
+
|
|
22
|
+
describe('applyWgpuRenderEffectsToRenderTexture', () => {
|
|
23
|
+
it('ping-pongs an even registered chain so the last operation publishes destination', async () => {
|
|
24
|
+
const state = await createWgpuRenderStateForTest();
|
|
25
|
+
const pool = createWgpuRenderTexturePool();
|
|
26
|
+
const source = acquireWgpuRenderTexture(state, pool, { width: 8, height: 8 });
|
|
27
|
+
const dest = acquireWgpuRenderTexture(state, pool, { width: 8, height: 8 });
|
|
28
|
+
const scratch = acquireWgpuRenderTexture(state, pool, { width: 8, height: 8 });
|
|
29
|
+
writeWgpuRenderTextureTarget(state, source, () => {});
|
|
30
|
+
const first: WgpuRenderEffectRunner = vi.fn();
|
|
31
|
+
const second: WgpuRenderEffectRunner = vi.fn();
|
|
32
|
+
registerWgpuRenderEffect(state, 'acme.First', first);
|
|
33
|
+
registerWgpuRenderEffect(state, 'acme.Second', second);
|
|
34
|
+
|
|
35
|
+
expect(
|
|
36
|
+
applyWgpuRenderEffectsToRenderTexture(state, pool, source, dest, scratch, [
|
|
37
|
+
{ kind: 'acme.First' },
|
|
38
|
+
{ kind: 'acme.Second' },
|
|
39
|
+
]),
|
|
40
|
+
).toBe(true);
|
|
41
|
+
|
|
42
|
+
expect(first).toHaveBeenCalledOnce();
|
|
43
|
+
expect(second).toHaveBeenCalledOnce();
|
|
44
|
+
expect(vi.mocked(first).mock.calls[0][0].dest).toBe(getWgpuRenderTextureTarget(state, scratch));
|
|
45
|
+
expect(vi.mocked(second).mock.calls[0][0].dest).toBe(getWgpuRenderTextureTarget(state, dest));
|
|
46
|
+
expect(isWgpuRenderTextureReady(state, dest)).toBe(true);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('runs a real multi-pass blur with one released raw scratch target', async () => {
|
|
50
|
+
const state = await createWgpuRenderStateForTest();
|
|
51
|
+
const pool = createWgpuRenderTexturePool();
|
|
52
|
+
const source = acquireWgpuRenderTexture(state, pool, { width: 16, height: 12 });
|
|
53
|
+
const dest = acquireWgpuRenderTexture(state, pool, { width: 16, height: 12 });
|
|
54
|
+
const scratch = acquireWgpuRenderTexture(state, pool, { width: 16, height: 12 });
|
|
55
|
+
writeWgpuRenderTextureTarget(state, source, () => {});
|
|
56
|
+
registerWgpuRenderEffect(state, 'BlurEffect', defaultWgpuBlurEffectRunner);
|
|
57
|
+
beginWgpuFrame(state);
|
|
58
|
+
|
|
59
|
+
expect(
|
|
60
|
+
applyWgpuRenderEffectsToRenderTexture(state, pool, source, dest, scratch, [
|
|
61
|
+
createBlurEffect({ blurX: 2, blurY: 3 }),
|
|
62
|
+
]),
|
|
63
|
+
).toBe(true);
|
|
64
|
+
|
|
65
|
+
expect(isWgpuRenderTextureReady(state, dest)).toBe(true);
|
|
66
|
+
expect(pool.effectTargets.free).toHaveLength(1);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('leaves destination unpublished when no effect kind is registered', async () => {
|
|
70
|
+
const state = await createWgpuRenderStateForTest();
|
|
71
|
+
const pool = createWgpuRenderTexturePool();
|
|
72
|
+
const source = acquireWgpuRenderTexture(state, pool, { width: 8, height: 8 });
|
|
73
|
+
const dest = acquireWgpuRenderTexture(state, pool, { width: 8, height: 8 });
|
|
74
|
+
const scratch = acquireWgpuRenderTexture(state, pool, { width: 8, height: 8 });
|
|
75
|
+
writeWgpuRenderTextureTarget(state, source, () => {});
|
|
76
|
+
|
|
77
|
+
expect(applyWgpuRenderEffectsToRenderTexture(state, pool, source, dest, scratch, [{ kind: 'acme.Missing' }])).toBe(
|
|
78
|
+
false,
|
|
79
|
+
);
|
|
80
|
+
expect(isWgpuRenderTextureReady(state, dest)).toBe(false);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
describe('offscreen effect registration snapshots', () => {
|
|
85
|
+
it('copies runners at derivation and requires explicit re-copy for later runners', async () => {
|
|
86
|
+
const screen = await createWgpuRenderStateForTest();
|
|
87
|
+
const first: WgpuRenderEffectRunner = vi.fn();
|
|
88
|
+
const later: WgpuRenderEffectRunner = vi.fn();
|
|
89
|
+
registerWgpuRenderEffect(screen, 'acme.First', first);
|
|
90
|
+
const offscreen = createWgpuOffscreenRenderState(screen);
|
|
91
|
+
registerWgpuRenderEffect(screen, 'acme.Later', later);
|
|
92
|
+
|
|
93
|
+
expect(getWgpuRenderEffectRunner(offscreen, 'acme.First')).toBe(first);
|
|
94
|
+
expect(getWgpuRenderEffectRunner(offscreen, 'acme.Later')).toBeNull();
|
|
95
|
+
|
|
96
|
+
copyWgpuRenderStateRegistrations(offscreen, screen);
|
|
97
|
+
expect(getWgpuRenderEffectRunner(offscreen, 'acme.Later')).toBe(later);
|
|
98
|
+
});
|
|
99
|
+
});
|