@flighthq/effects-canvas 0.5.0-next.1944.cd6b6e7 → 0.5.1-edge.638.d4dbd4e
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/README.md +2 -2
- package/dist/canvasBevelEffect.d.ts.map +1 -1
- package/dist/canvasBevelEffect.js +3 -1
- package/dist/canvasBevelEffect.js.map +1 -1
- package/dist/canvasDropShadowEffect.d.ts.map +1 -1
- package/dist/canvasDropShadowEffect.js +3 -1
- package/dist/canvasDropShadowEffect.js.map +1 -1
- package/dist/canvasEffectTestSupport.d.ts +6 -0
- package/dist/canvasEffectTestSupport.d.ts.map +1 -0
- package/dist/canvasEffectTestSupport.js +30 -0
- package/dist/canvasEffectTestSupport.js.map +1 -0
- package/dist/canvasGradientBevelEffect.d.ts.map +1 -1
- package/dist/canvasGradientBevelEffect.js +3 -1
- package/dist/canvasGradientBevelEffect.js.map +1 -1
- package/dist/canvasGradientGlowEffect.d.ts.map +1 -1
- package/dist/canvasGradientGlowEffect.js +3 -1
- package/dist/canvasGradientGlowEffect.js.map +1 -1
- package/dist/canvasInnerGlowEffect.d.ts.map +1 -1
- package/dist/canvasInnerGlowEffect.js +3 -1
- package/dist/canvasInnerGlowEffect.js.map +1 -1
- package/dist/canvasInnerShadowEffect.d.ts.map +1 -1
- package/dist/canvasInnerShadowEffect.js +3 -1
- package/dist/canvasInnerShadowEffect.js.map +1 -1
- package/dist/canvasOuterGlowEffect.d.ts.map +1 -1
- package/dist/canvasOuterGlowEffect.js +3 -1
- package/dist/canvasOuterGlowEffect.js.map +1 -1
- package/dist/canvasRenderEffectPipeline.d.ts +3 -3
- package/dist/canvasRenderEffectPipeline.d.ts.map +1 -1
- package/dist/canvasRenderEffectPipeline.js +6 -6
- package/dist/canvasRenderEffectPipeline.js.map +1 -1
- package/dist/canvasRenderTextureEffect.d.ts +1 -1
- package/dist/canvasRenderTextureEffect.d.ts.map +1 -1
- package/dist/canvasRenderTextureEffect.js +6 -6
- package/dist/canvasRenderTextureEffect.js.map +1 -1
- package/package.json +8 -8
- package/src/canvasBevelEffect.test.ts +2 -2
- package/src/canvasBlendEffect.test.ts +2 -2
- package/src/canvasBloomEffect.test.ts +6 -2
- package/src/canvasBlurEffect.test.ts +1 -2
- package/src/canvasCompositeEffect.test.ts +2 -2
- package/src/canvasDropShadowEffect.test.ts +2 -1
- package/src/canvasEffectRegistration.test.ts +1 -2
- package/src/canvasEffectTestSupport.test.ts +31 -0
- package/src/canvasGradientBevelEffect.test.ts +2 -2
- package/src/canvasGradientGlowEffect.test.ts +2 -2
- package/src/canvasGradientRamp.test.ts +1 -2
- package/src/canvasInnerGlowEffect.test.ts +2 -2
- package/src/canvasInnerShadowEffect.test.ts +2 -2
- package/src/canvasLensDistortionEffect.test.ts +5 -2
- package/src/canvasOuterGlowEffect.test.ts +2 -1
- package/src/canvasPosterizeEffect.test.ts +8 -5
- package/src/canvasRealizedEffectRegistration.test.ts +1 -2
- package/src/canvasRenderEffectPipeline.test.ts +3 -3
- package/src/canvasRenderEffectRegistry.test.ts +1 -1
- package/src/canvasRenderTextureEffect.test.ts +18 -13
- package/src/canvasSourceModeCompositing.test.ts +1 -2
- package/src/canvasTiltShiftEffect.test.ts +8 -5
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/effects-canvas`. The
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/effects-canvas@0.5.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/effects-canvas@0.5.1-edge.638.d4dbd4e](https://github.com/flighthq/flight/tree/d4dbd4e347dc8be10b180c85a766ab50333dcb51/packages/effects-canvas)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/d4dbd4e347dc8be10b180c85a766ab50333dcb51/LICENSE.md)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasBevelEffect.d.ts","sourceRoot":"","sources":["../src/canvasBevelEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AA0BlC,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAAC;AACR,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"canvasBevelEffect.d.ts","sourceRoot":"","sources":["../src/canvasBevelEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AA0BlC,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAAC;AACR,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAAC;AAkBR,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,GAClC,IAAI,CAON;AAED,eAAO,MAAM,8BAA8B,EAAE,wBAE5C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAExE"}
|
|
@@ -5,7 +5,9 @@ import { registerCanvasRenderEffect } from './canvasRenderEffectRegistry';
|
|
|
5
5
|
import { clearCanvasTarget, compositeCanvasImage, drawCanvasTintedAlphaMask } from './canvasSourceModeCompositing';
|
|
6
6
|
export function applyBevelEffectToCanvas(source, dest, poolOrEffect, maybeEffect) {
|
|
7
7
|
const effect = maybeEffect ?? poolOrEffect;
|
|
8
|
-
const pool = maybeEffect === undefined
|
|
8
|
+
const pool = maybeEffect === undefined
|
|
9
|
+
? createCanvasRenderTargetPool(source.surface.creator)
|
|
10
|
+
: poolOrEffect;
|
|
9
11
|
applyBevelEffectToCanvasWithPool(source, dest, pool, effect);
|
|
10
12
|
}
|
|
11
13
|
// Clips the assembled band to the region `bevelType` keeps: inside the shape for 'inner', outside it for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasBevelEffect.js","sourceRoot":"","sources":["../src/canvasBevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAStE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AA4BnH,MAAM,UAAU,wBAAwB,CACtC,MAAoC,EACpC,IAAkC,EAClC,YAA4D,EAC5D,WAAmC;IAEnC,MAAM,MAAM,GAAG,WAAW,IAAK,YAAsC,CAAC;IACtE,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"canvasBevelEffect.js","sourceRoot":"","sources":["../src/canvasBevelEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasDropShadowEffect.d.ts","sourceRoot":"","sources":["../src/canvasDropShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAoBlC,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACjC,IAAI,CAAC;AACR,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACjC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"canvasDropShadowEffect.d.ts","sourceRoot":"","sources":["../src/canvasDropShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAoBlC,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACjC,IAAI,CAAC;AACR,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACjC,IAAI,CAAC;AAqBR,eAAO,MAAM,mCAAmC,EAAE,wBAEjD,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAE7E"}
|
|
@@ -10,7 +10,9 @@ export function applyDropShadowEffectToCanvas(source, dest, poolOrEffect, maybeE
|
|
|
10
10
|
drawCanvasEffectPass(dest, source, css);
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
|
-
const pool = maybeEffect === undefined
|
|
13
|
+
const pool = maybeEffect === undefined
|
|
14
|
+
? createCanvasRenderTargetPool(source.surface.creator)
|
|
15
|
+
: poolOrEffect;
|
|
14
16
|
applyDropShadowEffectToCanvasWithPool(source, dest, pool, effect);
|
|
15
17
|
}
|
|
16
18
|
export const defaultCanvasDropShadowEffectRunner = (ctx, effect) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasDropShadowEffect.js","sourceRoot":"","sources":["../src/canvasDropShadowEffect.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AAgBvC,MAAM,UAAU,6BAA6B,CAC3C,MAAoC,EACpC,IAAkC,EAClC,YAAiE,EACjE,WAAwC;IAExC,MAAM,MAAM,GAAG,WAAW,IAAK,YAA2C,CAAC;IAC3E,MAAM,GAAG,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"canvasDropShadowEffect.js","sourceRoot":"","sources":["../src/canvasDropShadowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CanvasRenderOptions, CanvasRenderState, CanvasRenderSurface, CanvasRenderSurfaceCreator, CanvasRenderTarget } from '@flighthq/types/contract';
|
|
2
|
+
export declare const canvasTestSurfaceCreator: CanvasRenderSurfaceCreator;
|
|
3
|
+
export declare function acquireTestCanvasRenderSurface(width?: number, height?: number): CanvasRenderSurface;
|
|
4
|
+
export declare function createCanvasRenderState(canvas: HTMLCanvasElement, options?: Partial<CanvasRenderOptions>): CanvasRenderState;
|
|
5
|
+
export declare function createCanvasRenderTarget(width: number, height: number): CanvasRenderTarget;
|
|
6
|
+
//# sourceMappingURL=canvasEffectTestSupport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvasEffectTestSupport.d.ts","sourceRoot":"","sources":["../src/canvasEffectTestSupport.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAGlC,eAAO,MAAM,wBAAwB,EAAE,0BActC,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,KAAK,SAAI,EAAE,MAAM,SAAI,GAAG,mBAAmB,CAIzF;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACzC,iBAAiB,CAOnB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAE1F"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createCanvasRenderState as createExplicitCanvasRenderState, acquireCanvasRenderSurface, createCanvasRenderSurface, createCanvasRenderTarget as createExplicitCanvasRenderTarget, createCanvasTextureResolvers, scene2dCanvasPipeline, } from '@flighthq/scene2d-canvas/contract';
|
|
2
|
+
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
3
|
+
export const canvasTestSurfaceCreator = {
|
|
4
|
+
[EntityRuntimeKey]: { binding: null },
|
|
5
|
+
createRenderSurface(width, height, pixelRatio) {
|
|
6
|
+
const canvas = globalThis.document.createElement('canvas');
|
|
7
|
+
canvas.style.width = `${width}px`;
|
|
8
|
+
canvas.style.height = `${height}px`;
|
|
9
|
+
canvas.width = width * pixelRatio;
|
|
10
|
+
canvas.height = height * pixelRatio;
|
|
11
|
+
return canvas;
|
|
12
|
+
},
|
|
13
|
+
destroyRenderSurface(canvas) {
|
|
14
|
+
canvas.width = 0;
|
|
15
|
+
canvas.height = 0;
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
export function acquireTestCanvasRenderSurface(width = 1, height = 1) {
|
|
19
|
+
const surface = acquireCanvasRenderSurface(canvasTestSurfaceCreator, { height, pixelRatio: 1, width });
|
|
20
|
+
if (surface === null)
|
|
21
|
+
throw new Error('Failed to acquire test Canvas surface.');
|
|
22
|
+
return surface;
|
|
23
|
+
}
|
|
24
|
+
export function createCanvasRenderState(canvas, options = {}) {
|
|
25
|
+
return createExplicitCanvasRenderState(createCanvasRenderSurface(canvasTestSurfaceCreator, canvas), scene2dCanvasPipeline, createCanvasTextureResolvers(canvasTestSurfaceCreator), options);
|
|
26
|
+
}
|
|
27
|
+
export function createCanvasRenderTarget(width, height) {
|
|
28
|
+
return createExplicitCanvasRenderTarget(canvasTestSurfaceCreator, width, height);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=canvasEffectTestSupport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvasEffectTestSupport.js","sourceRoot":"","sources":["../src/canvasEffectTestSupport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,IAAI,+BAA+B,EAC1D,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,IAAI,gCAAgC,EAC5D,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAQ3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,CAAC,MAAM,wBAAwB,GAA+B;IAClE,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACrC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU;QAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;QACpC,MAAM,CAAC,KAAK,GAAG,KAAK,GAAG,UAAU,CAAC;QAClC,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;QACpC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,oBAAoB,CAAC,MAAM;QACzB,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QACjB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,8BAA8B,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC;IAClE,MAAM,OAAO,GAAG,0BAA0B,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACvG,IAAI,OAAO,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAChF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAyB,EACzB,UAAwC,EAAE;IAE1C,OAAO,+BAA+B,CACpC,yBAAyB,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAC3D,qBAAqB,EACrB,4BAA4B,CAAC,wBAAwB,CAAC,EACtD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,MAAc;IACpE,OAAO,gCAAgC,CAAC,wBAAwB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasGradientBevelEffect.d.ts","sourceRoot":"","sources":["../src/canvasGradientBevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAwBlC,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACpC,IAAI,CAAC;AACR,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACpC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"canvasGradientBevelEffect.d.ts","sourceRoot":"","sources":["../src/canvasGradientBevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAwBlC,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACpC,IAAI,CAAC;AACR,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACpC,IAAI,CAAC;AAeR,eAAO,MAAM,sCAAsC,EAAE,wBAEpD,CAAC;AAEF,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAEhF"}
|
|
@@ -6,7 +6,9 @@ import { registerCanvasRenderEffect } from './canvasRenderEffectRegistry';
|
|
|
6
6
|
import { clearCanvasTarget, compositeCanvasImage } from './canvasSourceModeCompositing';
|
|
7
7
|
export function applyGradientBevelEffectToCanvas(source, dest, poolOrEffect, maybeEffect) {
|
|
8
8
|
const effect = maybeEffect ?? poolOrEffect;
|
|
9
|
-
const pool = maybeEffect === undefined
|
|
9
|
+
const pool = maybeEffect === undefined
|
|
10
|
+
? createCanvasRenderTargetPool(source.surface.creator)
|
|
11
|
+
: poolOrEffect;
|
|
10
12
|
applyGradientBevelEffectToCanvasWithPool(source, dest, pool, effect);
|
|
11
13
|
}
|
|
12
14
|
export const defaultCanvasGradientBevelEffectRunner = (ctx, effect) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasGradientBevelEffect.js","sourceRoot":"","sources":["../src/canvasGradientBevelEffect.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAwBxF,MAAM,UAAU,gCAAgC,CAC9C,MAAoC,EACpC,IAAkC,EAClC,YAAoE,EACpE,WAA2C;IAE3C,MAAM,MAAM,GAAG,WAAW,IAAK,YAA8C,CAAC;IAC9E,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"canvasGradientBevelEffect.js","sourceRoot":"","sources":["../src/canvasGradientBevelEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasGradientGlowEffect.d.ts","sourceRoot":"","sources":["../src/canvasGradientGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAmBlC,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACnC,IAAI,CAAC;AACR,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACnC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"canvasGradientGlowEffect.d.ts","sourceRoot":"","sources":["../src/canvasGradientGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAmBlC,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACnC,IAAI,CAAC;AACR,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACnC,IAAI,CAAC;AAeR,eAAO,MAAM,qCAAqC,EAAE,wBAEnD,CAAC;AAEF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAE/E"}
|
|
@@ -5,7 +5,9 @@ import { registerCanvasRenderEffect } from './canvasRenderEffectRegistry';
|
|
|
5
5
|
import { clearCanvasTarget, compositeCanvasImage } from './canvasSourceModeCompositing';
|
|
6
6
|
export function applyGradientGlowEffectToCanvas(source, dest, poolOrEffect, maybeEffect) {
|
|
7
7
|
const effect = maybeEffect ?? poolOrEffect;
|
|
8
|
-
const pool = maybeEffect === undefined
|
|
8
|
+
const pool = maybeEffect === undefined
|
|
9
|
+
? createCanvasRenderTargetPool(source.surface.creator)
|
|
10
|
+
: poolOrEffect;
|
|
9
11
|
applyGradientGlowEffectToCanvasWithPool(source, dest, pool, effect);
|
|
10
12
|
}
|
|
11
13
|
export const defaultCanvasGradientGlowEffectRunner = (ctx, effect) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasGradientGlowEffect.js","sourceRoot":"","sources":["../src/canvasGradientGlowEffect.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAoBxF,MAAM,UAAU,+BAA+B,CAC7C,MAAoC,EACpC,IAAkC,EAClC,YAAmE,EACnE,WAA0C;IAE1C,MAAM,MAAM,GAAG,WAAW,IAAK,YAA6C,CAAC;IAC7E,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"canvasGradientGlowEffect.js","sourceRoot":"","sources":["../src/canvasGradientGlowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasInnerGlowEffect.d.ts","sourceRoot":"","sources":["../src/canvasInnerGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AA4BlC,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAAC;AACR,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"canvasInnerGlowEffect.d.ts","sourceRoot":"","sources":["../src/canvasInnerGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AA4BlC,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAAC;AACR,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAAC;AAeR,eAAO,MAAM,kCAAkC,EAAE,wBAEhD,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAE5E"}
|
|
@@ -4,7 +4,9 @@ import { registerCanvasRenderEffect } from './canvasRenderEffectRegistry';
|
|
|
4
4
|
import { clearCanvasTarget, compositeCanvasImage, drawCanvasInvertedTintedAlphaMask, } from './canvasSourceModeCompositing';
|
|
5
5
|
export function applyInnerGlowEffectToCanvas(source, dest, poolOrEffect, maybeEffect) {
|
|
6
6
|
const effect = maybeEffect ?? poolOrEffect;
|
|
7
|
-
const pool = maybeEffect === undefined
|
|
7
|
+
const pool = maybeEffect === undefined
|
|
8
|
+
? createCanvasRenderTargetPool(source.surface.creator)
|
|
9
|
+
: poolOrEffect;
|
|
8
10
|
applyInnerGlowEffectToCanvasWithPool(source, dest, pool, effect);
|
|
9
11
|
}
|
|
10
12
|
export const defaultCanvasInnerGlowEffectRunner = (ctx, effect) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasInnerGlowEffect.js","sourceRoot":"","sources":["../src/canvasInnerGlowEffect.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iCAAiC,GAClC,MAAM,+BAA+B,CAAC;AA0BvC,MAAM,UAAU,4BAA4B,CAC1C,MAAoC,EACpC,IAAkC,EAClC,YAAgE,EAChE,WAAuC;IAEvC,MAAM,MAAM,GAAG,WAAW,IAAK,YAA0C,CAAC;IAC1E,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"canvasInnerGlowEffect.js","sourceRoot":"","sources":["../src/canvasInnerGlowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasInnerShadowEffect.d.ts","sourceRoot":"","sources":["../src/canvasInnerShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAwBlC,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAClC,IAAI,CAAC;AACR,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAClC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"canvasInnerShadowEffect.d.ts","sourceRoot":"","sources":["../src/canvasInnerShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAwBlC,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAClC,IAAI,CAAC;AACR,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAClC,IAAI,CAAC;AAeR,eAAO,MAAM,oCAAoC,EAAE,wBAElD,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAE9E"}
|
|
@@ -4,7 +4,9 @@ import { registerCanvasRenderEffect } from './canvasRenderEffectRegistry';
|
|
|
4
4
|
import { clearCanvasTarget, compositeCanvasImage, drawCanvasInvertedTintedAlphaMask, } from './canvasSourceModeCompositing';
|
|
5
5
|
export function applyInnerShadowEffectToCanvas(source, dest, poolOrEffect, maybeEffect) {
|
|
6
6
|
const effect = maybeEffect ?? poolOrEffect;
|
|
7
|
-
const pool = maybeEffect === undefined
|
|
7
|
+
const pool = maybeEffect === undefined
|
|
8
|
+
? createCanvasRenderTargetPool(source.surface.creator)
|
|
9
|
+
: poolOrEffect;
|
|
8
10
|
applyInnerShadowEffectToCanvasWithPool(source, dest, pool, effect);
|
|
9
11
|
}
|
|
10
12
|
export const defaultCanvasInnerShadowEffectRunner = (ctx, effect) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasInnerShadowEffect.js","sourceRoot":"","sources":["../src/canvasInnerShadowEffect.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iCAAiC,GAClC,MAAM,+BAA+B,CAAC;AAsBvC,MAAM,UAAU,8BAA8B,CAC5C,MAAoC,EACpC,IAAkC,EAClC,YAAkE,EAClE,WAAyC;IAEzC,MAAM,MAAM,GAAG,WAAW,IAAK,YAA4C,CAAC;IAC5E,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"canvasInnerShadowEffect.js","sourceRoot":"","sources":["../src/canvasInnerShadowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasOuterGlowEffect.d.ts","sourceRoot":"","sources":["../src/canvasOuterGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAoBlC,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAAC;AACR,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"canvasOuterGlowEffect.d.ts","sourceRoot":"","sources":["../src/canvasOuterGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAoBlC,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAAC;AACR,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAAC;AAqBR,eAAO,MAAM,kCAAkC,EAAE,wBAEhD,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAE5E"}
|
|
@@ -10,7 +10,9 @@ export function applyOuterGlowEffectToCanvas(source, dest, poolOrEffect, maybeEf
|
|
|
10
10
|
drawCanvasEffectPass(dest, source, css);
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
|
-
const pool = maybeEffect === undefined
|
|
13
|
+
const pool = maybeEffect === undefined
|
|
14
|
+
? createCanvasRenderTargetPool(source.surface.creator)
|
|
15
|
+
: poolOrEffect;
|
|
14
16
|
applyOuterGlowEffectToCanvasWithPool(source, dest, pool, effect);
|
|
15
17
|
}
|
|
16
18
|
export const defaultCanvasOuterGlowEffectRunner = (ctx, effect) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasOuterGlowEffect.js","sourceRoot":"","sources":["../src/canvasOuterGlowEffect.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AAgBvC,MAAM,UAAU,4BAA4B,CAC1C,MAAoC,EACpC,IAAkC,EAClC,YAAgE,EAChE,WAAuC;IAEvC,MAAM,MAAM,GAAG,WAAW,IAAK,YAA0C,CAAC;IAC1E,MAAM,GAAG,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"canvasOuterGlowEffect.js","sourceRoot":"","sources":["../src/canvasOuterGlowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { Adjustment, CanvasRenderEffectPipeline, CanvasRenderState, CanvasRenderTarget, CanvasRenderTargetPool, RenderEffect, RenderEffectPipelineOptions } from '@flighthq/types/contract';
|
|
1
|
+
import type { Adjustment, CanvasRenderEffectPipeline, CanvasRenderState, CanvasRenderSurfaceCreator, CanvasRenderTarget, CanvasRenderTargetPool, RenderEffect, RenderEffectPipelineOptions } from '@flighthq/types/contract';
|
|
2
2
|
export declare function acquireCanvasRenderTarget(pool: CanvasRenderTargetPool, width: number, height: number): CanvasRenderTarget;
|
|
3
3
|
export declare function beginCanvasRenderEffectPipeline(state: CanvasRenderState, pipeline: CanvasRenderEffectPipeline): void;
|
|
4
|
-
export declare function createCanvasRenderEffectPipeline(
|
|
5
|
-
export declare function createCanvasRenderTargetPool(): CanvasRenderTargetPool;
|
|
4
|
+
export declare function createCanvasRenderEffectPipeline(state: CanvasRenderState, options?: Readonly<RenderEffectPipelineOptions>): CanvasRenderEffectPipeline;
|
|
5
|
+
export declare function createCanvasRenderTargetPool(creator: Readonly<CanvasRenderSurfaceCreator>): CanvasRenderTargetPool;
|
|
6
6
|
export declare function destroyCanvasRenderEffectPipeline(_state: CanvasRenderState, pipeline: CanvasRenderEffectPipeline): void;
|
|
7
7
|
export declare function endCanvasRenderEffectPipeline(state: CanvasRenderState, pipeline: CanvasRenderEffectPipeline, operations: ReadonlyArray<RenderEffect | Adjustment>): void;
|
|
8
8
|
export declare function releaseCanvasRenderTarget(pool: CanvasRenderTargetPool, target: CanvasRenderTarget): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasRenderEffectPipeline.d.ts","sourceRoot":"","sources":["../src/canvasRenderEffectPipeline.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,UAAU,EACV,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAiBlC,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,kBAAkB,CAOpB;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,0BAA0B,GAAG,IAAI,CAYpH;AAED,wBAAgB,gCAAgC,CAC9C,
|
|
1
|
+
{"version":3,"file":"canvasRenderEffectPipeline.d.ts","sourceRoot":"","sources":["../src/canvasRenderEffectPipeline.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,UAAU,EACV,0BAA0B,EAC1B,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAiBlC,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,kBAAkB,CAOpB;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,0BAA0B,GAAG,IAAI,CAYpH;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,iBAAiB,EACxB,OAAO,GAAE,QAAQ,CAAC,2BAA2B,CAAM,GAClD,0BAA0B,CAO5B;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAAG,sBAAsB,CAElH;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,0BAA0B,GACnC,IAAI,CAQN;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,0BAA0B,EACpC,UAAU,EAAE,aAAa,CAAC,YAAY,GAAG,UAAU,CAAC,GACnD,IAAI,CA6DN;AAID,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAIxG"}
|
|
@@ -16,7 +16,7 @@ import { getCanvasRenderEffectRunner } from './canvasRenderEffectRegistry';
|
|
|
16
16
|
export function acquireCanvasRenderTarget(pool, width, height) {
|
|
17
17
|
const w = Math.max(1, Math.ceil(width));
|
|
18
18
|
const h = Math.max(1, Math.ceil(height));
|
|
19
|
-
const target = pool.free.pop() ?? createCanvasRenderTarget(w, h);
|
|
19
|
+
const target = pool.free.pop() ?? createCanvasRenderTarget(pool.creator, w, h);
|
|
20
20
|
if (target.width !== w || target.height !== h)
|
|
21
21
|
resizeCanvasRenderTarget(target, w, h);
|
|
22
22
|
pool.inUse.push(target);
|
|
@@ -26,7 +26,7 @@ export function beginCanvasRenderEffectPipeline(state, pipeline) {
|
|
|
26
26
|
const w = state.canvas.width;
|
|
27
27
|
const h = state.canvas.height;
|
|
28
28
|
if (pipeline.sceneTarget === null) {
|
|
29
|
-
pipeline.sceneTarget = createCanvasRenderTarget(w, h);
|
|
29
|
+
pipeline.sceneTarget = createCanvasRenderTarget(state.surface.creator, w, h);
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
32
32
|
resizeCanvasRenderTarget(pipeline.sceneTarget, w, h);
|
|
@@ -35,16 +35,16 @@ export function beginCanvasRenderEffectPipeline(state, pipeline) {
|
|
|
35
35
|
// frame's pixels otherwise); the current 2D transform is inherited rather than passed.
|
|
36
36
|
beginCanvasRenderPass(state, pipeline.sceneTarget);
|
|
37
37
|
}
|
|
38
|
-
export function createCanvasRenderEffectPipeline(
|
|
38
|
+
export function createCanvasRenderEffectPipeline(state, options = {}) {
|
|
39
39
|
return {
|
|
40
40
|
options: { ...options },
|
|
41
41
|
sceneTarget: null,
|
|
42
|
-
pool: createCanvasRenderTargetPool(),
|
|
42
|
+
pool: createCanvasRenderTargetPool(state.surface.creator),
|
|
43
43
|
lutCache: createColorLutCache(),
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
|
-
export function createCanvasRenderTargetPool() {
|
|
47
|
-
return { free: [], inUse: [] };
|
|
46
|
+
export function createCanvasRenderTargetPool(creator) {
|
|
47
|
+
return { creator, free: [], inUse: [] };
|
|
48
48
|
}
|
|
49
49
|
export function destroyCanvasRenderEffectPipeline(_state, pipeline) {
|
|
50
50
|
// Canvas elements are plain GC-managed memory with no GPU handles to free; drop references so the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasRenderEffectPipeline.js","sourceRoot":"","sources":["../src/canvasRenderEffectPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"canvasRenderEffectPipeline.js","sourceRoot":"","sources":["../src/canvasRenderEffectPipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { CanvasRenderState, CanvasRenderTexturePool, RenderEffect, RenderTexture } from '@flighthq/types/contract';
|
|
2
|
-
export declare function applyCanvasRenderEffectsToRenderTexture(
|
|
2
|
+
export declare function applyCanvasRenderEffectsToRenderTexture(ownerState: CanvasRenderState, effectState: CanvasRenderState, pool: CanvasRenderTexturePool, source: Readonly<RenderTexture>, dest: RenderTexture, scratch: RenderTexture, effects: ReadonlyArray<Readonly<RenderEffect>>): boolean;
|
|
3
3
|
//# sourceMappingURL=canvasRenderTextureEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasRenderTextureEffect.d.ts","sourceRoot":"","sources":["../src/canvasRenderTextureEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAOxH,wBAAgB,uCAAuC,CACrD,
|
|
1
|
+
{"version":3,"file":"canvasRenderTextureEffect.d.ts","sourceRoot":"","sources":["../src/canvasRenderTextureEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAOxH,wBAAgB,uCAAuC,CACrD,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,iBAAiB,EAC9B,IAAI,EAAE,uBAAuB,EAC7B,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,CA0BT"}
|
|
@@ -3,15 +3,15 @@ import { getCanvasRenderEffectRunner } from './canvasRenderEffectRegistry';
|
|
|
3
3
|
// Applies registered Canvas effect runners from one completed RenderTexture into another. The
|
|
4
4
|
// caller supplies one distinct scratch lease; parity chooses the first destination so the final
|
|
5
5
|
// registered operation always publishes `dest`.
|
|
6
|
-
export function applyCanvasRenderEffectsToRenderTexture(
|
|
6
|
+
export function applyCanvasRenderEffectsToRenderTexture(ownerState, effectState, pool, source, dest, scratch, effects) {
|
|
7
7
|
if (source === dest || source === scratch || dest === scratch) {
|
|
8
8
|
throw new Error('applyCanvasRenderEffectsToRenderTexture: source, destination, and scratch must be distinct');
|
|
9
9
|
}
|
|
10
|
-
const sourceTarget = getCanvasRenderTextureTarget(
|
|
10
|
+
const sourceTarget = getCanvasRenderTextureTarget(ownerState, source);
|
|
11
11
|
if (sourceTarget === null)
|
|
12
12
|
return false;
|
|
13
13
|
const operations = effects.flatMap((effect) => {
|
|
14
|
-
const runner = getCanvasRenderEffectRunner(
|
|
14
|
+
const runner = getCanvasRenderEffectRunner(effectState, effect.kind);
|
|
15
15
|
return runner === null ? [] : [{ effect, runner }];
|
|
16
16
|
});
|
|
17
17
|
if (operations.length === 0)
|
|
@@ -21,10 +21,10 @@ export function applyCanvasRenderEffectsToRenderTexture(state, pool, source, des
|
|
|
21
21
|
const operation = operations[index];
|
|
22
22
|
const remaining = operations.length - index;
|
|
23
23
|
const output = remaining % 2 === 1 ? dest : scratch;
|
|
24
|
-
writeCanvasRenderTextureTarget(
|
|
25
|
-
operation.runner({ state, source: current, dest: target, pool: pool.effectTargets }, operation.effect);
|
|
24
|
+
writeCanvasRenderTextureTarget(ownerState, output, (target) => {
|
|
25
|
+
operation.runner({ state: effectState, source: current, dest: target, pool: pool.effectTargets }, operation.effect);
|
|
26
26
|
});
|
|
27
|
-
current = getCanvasRenderTextureTarget(
|
|
27
|
+
current = getCanvasRenderTextureTarget(ownerState, output);
|
|
28
28
|
}
|
|
29
29
|
return true;
|
|
30
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasRenderTextureEffect.js","sourceRoot":"","sources":["../src/canvasRenderTextureEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAGjH,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAE3E,8FAA8F;AAC9F,gGAAgG;AAChG,gDAAgD;AAChD,MAAM,UAAU,uCAAuC,CACrD,
|
|
1
|
+
{"version":3,"file":"canvasRenderTextureEffect.js","sourceRoot":"","sources":["../src/canvasRenderTextureEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAGjH,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAE3E,8FAA8F;AAC9F,gGAAgG;AAChG,gDAAgD;AAChD,MAAM,UAAU,uCAAuC,CACrD,UAA6B,EAC7B,WAA8B,EAC9B,IAA6B,EAC7B,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,4FAA4F,CAAC,CAAC;IAChH,CAAC;IACD,MAAM,YAAY,GAAG,4BAA4B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACtE,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,2BAA2B,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACrE,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,8BAA8B,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YAC5D,SAAS,CAAC,MAAM,CACd,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,EAC/E,SAAS,CAAC,MAAM,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,4BAA4B,CAAC,UAAU,EAAE,MAAM,CAAE,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/effects-canvas",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1-edge.638.d4dbd4e",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/color": "0.5.
|
|
42
|
-
"@flighthq/adjustments": "0.5.
|
|
43
|
-
"@flighthq/scene2d-canvas": "0.5.
|
|
44
|
-
"@flighthq/effects": "0.5.
|
|
45
|
-
"@flighthq/geometry": "0.5.
|
|
46
|
-
"@flighthq/registry": "0.5.
|
|
47
|
-
"@flighthq/types": "0.5.
|
|
41
|
+
"@flighthq/color": "0.5.1-edge.638.d4dbd4e",
|
|
42
|
+
"@flighthq/adjustments": "0.5.1-edge.638.d4dbd4e",
|
|
43
|
+
"@flighthq/scene2d-canvas": "0.5.1-edge.638.d4dbd4e",
|
|
44
|
+
"@flighthq/effects": "0.5.1-edge.638.d4dbd4e",
|
|
45
|
+
"@flighthq/geometry": "0.5.1-edge.638.d4dbd4e",
|
|
46
|
+
"@flighthq/registry": "0.5.1-edge.638.d4dbd4e",
|
|
47
|
+
"@flighthq/types": "0.5.1-edge.638.d4dbd4e"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"typescript": "^5.3.0"
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { createCanvasRenderState, createCanvasRenderTarget } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { BevelEffect, CanvasRenderTarget, CanvasRenderTargetPool } from '@flighthq/types/contract';
|
|
3
2
|
|
|
4
3
|
import {
|
|
@@ -7,6 +6,7 @@ import {
|
|
|
7
6
|
defaultCanvasBevelEffectRunner,
|
|
8
7
|
registerCanvasBevelEffect,
|
|
9
8
|
} from './canvasBevelEffect';
|
|
9
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState, createCanvasRenderTarget } from './canvasEffectTestSupport';
|
|
10
10
|
import { getCanvasRenderEffectRunner } from './canvasRenderEffectRegistry';
|
|
11
11
|
|
|
12
12
|
// Recipe assertions rather than pixels — see canvasBlendEffect.test.ts. Scratch targets are pre-seeded so
|
|
@@ -17,7 +17,7 @@ function seededPool(ids: readonly string[]): { pool: CanvasRenderTargetPool; tar
|
|
|
17
17
|
target.canvas.id = id;
|
|
18
18
|
return target;
|
|
19
19
|
});
|
|
20
|
-
return { pool: { free: [...targets].reverse(), inUse: [] }, targets };
|
|
20
|
+
return { pool: { creator: canvasTestSurfaceCreator, free: [...targets].reverse(), inUse: [] }, targets };
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
const SCRATCH = ['blurred', 'lit', 'shade', 'side', 'tinted', 'band'];
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { createCanvasRenderState, createCanvasRenderTarget } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { BlendEffect, CanvasRenderState, CanvasRenderTarget } from '@flighthq/types/contract';
|
|
3
2
|
|
|
4
3
|
import {
|
|
@@ -10,6 +9,7 @@ import {
|
|
|
10
9
|
registerCanvasBlendEffectBackdrop,
|
|
11
10
|
unregisterCanvasBlendEffectBackdrop,
|
|
12
11
|
} from './canvasBlendEffect';
|
|
12
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState, createCanvasRenderTarget } from './canvasEffectTestSupport';
|
|
13
13
|
import { getCanvasRenderEffectRunner } from './canvasRenderEffectRegistry';
|
|
14
14
|
|
|
15
15
|
// These tests assert the DRAW CONTRACT, not pixels, and that is deliberate rather than a shortcut.
|
|
@@ -110,7 +110,7 @@ describe('defaultCanvasBlendEffectRunner', () => {
|
|
|
110
110
|
const drawn = recordDraws(dest);
|
|
111
111
|
|
|
112
112
|
defaultCanvasBlendEffectRunner(
|
|
113
|
-
{ state, source, dest, pool: { free: [], inUse: [] } },
|
|
113
|
+
{ state, source, dest, pool: { creator: canvasTestSurfaceCreator, free: [], inUse: [] } },
|
|
114
114
|
blendEffect({ mode: 'Screen', backdropKey: 'scene' }),
|
|
115
115
|
);
|
|
116
116
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { createCanvasRenderState } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { BloomEffect, CanvasRenderTarget, CanvasRenderTargetPool } from '@flighthq/types/contract';
|
|
3
2
|
|
|
4
3
|
import {
|
|
@@ -6,6 +5,7 @@ import {
|
|
|
6
5
|
defaultCanvasBloomEffectRunner,
|
|
7
6
|
registerCanvasBloomEffect,
|
|
8
7
|
} from './canvasBloomEffect';
|
|
8
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState } from './canvasEffectTestSupport';
|
|
9
9
|
import { getCanvasRenderEffectRunner } from './canvasRenderEffectRegistry';
|
|
10
10
|
|
|
11
11
|
// A target whose ImageData is a real buffer, so the bright pass and the composite run their actual
|
|
@@ -51,7 +51,11 @@ function createTarget(pixels: ReadonlyArray<number>): CanvasRenderTarget {
|
|
|
51
51
|
// never ran.
|
|
52
52
|
function createPool(width: number): CanvasRenderTargetPool {
|
|
53
53
|
const blank = (): CanvasRenderTarget => createTarget(new Array(width * 4).fill(0));
|
|
54
|
-
return {
|
|
54
|
+
return {
|
|
55
|
+
creator: canvasTestSurfaceCreator,
|
|
56
|
+
free: [blank(), blank()],
|
|
57
|
+
inUse: [],
|
|
58
|
+
} as unknown as CanvasRenderTargetPool;
|
|
55
59
|
}
|
|
56
60
|
|
|
57
61
|
const read = (target: CanvasRenderTarget): number[] => [...target.context.getImageData(0, 0, 1, 1).data];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { createCanvasRenderState } from '@flighthq/scene2d-canvas/contract';
|
|
2
|
-
|
|
3
1
|
import { applyBlurEffectToCanvas, defaultCanvasBlurEffectRunner, registerCanvasBlurEffect } from './canvasBlurEffect';
|
|
2
|
+
import { createCanvasRenderState } from './canvasEffectTestSupport';
|
|
4
3
|
import { getCanvasRenderEffectRunner } from './canvasRenderEffectRegistry';
|
|
5
4
|
|
|
6
5
|
describe('applyBlurEffectToCanvas', () => {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { createCanvasRenderState, createCanvasRenderTarget } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { CanvasRenderState, CanvasRenderTarget, CompositeEffect } from '@flighthq/types/contract';
|
|
3
2
|
|
|
4
3
|
import { registerCanvasBlendEffectBackdrop } from './canvasBlendEffect';
|
|
@@ -8,6 +7,7 @@ import {
|
|
|
8
7
|
getCanvasCompositeEffectOperation,
|
|
9
8
|
registerCanvasCompositeEffect,
|
|
10
9
|
} from './canvasCompositeEffect';
|
|
10
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState, createCanvasRenderTarget } from './canvasEffectTestSupport';
|
|
11
11
|
import { getCanvasRenderEffectRunner } from './canvasRenderEffectRegistry';
|
|
12
12
|
|
|
13
13
|
// Draw-contract assertions rather than pixels, for the reason spelled out in canvasBlendEffect.test.ts:
|
|
@@ -121,7 +121,7 @@ describe('defaultCanvasCompositeEffectRunner', () => {
|
|
|
121
121
|
const drawn = recordDraws(dest);
|
|
122
122
|
|
|
123
123
|
defaultCanvasCompositeEffectRunner(
|
|
124
|
-
{ state, source, dest, pool: { free: [], inUse: [] } },
|
|
124
|
+
{ state, source, dest, pool: { creator: canvasTestSurfaceCreator, free: [], inUse: [] } },
|
|
125
125
|
compositeEffect({ operator: 'DestinationOver', backdropKey: 'scene' }),
|
|
126
126
|
);
|
|
127
127
|
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
registerCanvasDropShadowEffect,
|
|
31
31
|
} from './canvasDropShadowEffect';
|
|
32
32
|
import { drawCanvasEffectPass } from './canvasEffectCompositing';
|
|
33
|
+
import { canvasTestSurfaceCreator } from './canvasEffectTestSupport';
|
|
33
34
|
import { compositeCanvasSourceMode } from './canvasSourceModeCompositing';
|
|
34
35
|
|
|
35
36
|
describe('applyDropShadowEffectToCanvas', () => {
|
|
@@ -81,7 +82,7 @@ beforeEach(() => {
|
|
|
81
82
|
});
|
|
82
83
|
|
|
83
84
|
function createTarget(id: string, width = 32, height = 16): never {
|
|
84
|
-
return { id, canvas: {}, context: {}, width, height } as never;
|
|
85
|
+
return { id, canvas: {}, context: {}, surface: { creator: canvasTestSurfaceCreator }, width, height } as never;
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
describe('registerCanvasDropShadowEffect', () => {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { createCanvasRenderState } from '
|
|
2
|
-
|
|
1
|
+
import { createCanvasRenderState } from './canvasEffectTestSupport';
|
|
3
2
|
import { getCanvasRenderEffectRunner } from './canvasRenderEffectRegistry';
|
|
4
3
|
import * as contractEffects from './contract';
|
|
5
4
|
import * as publicEffects from './index';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {
|
|
2
|
+
acquireTestCanvasRenderSurface,
|
|
3
|
+
createCanvasRenderState,
|
|
4
|
+
createCanvasRenderTarget,
|
|
5
|
+
} from './canvasEffectTestSupport';
|
|
6
|
+
|
|
7
|
+
describe('acquireTestCanvasRenderSurface', () => {
|
|
8
|
+
it('returns an owned effect-test surface', () => {
|
|
9
|
+
const surface = acquireTestCanvasRenderSurface(12, 8);
|
|
10
|
+
|
|
11
|
+
expect(surface.canvas.width).toBe(12);
|
|
12
|
+
expect(surface.canvas.height).toBe(8);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
describe('createCanvasRenderState', () => {
|
|
17
|
+
it('wraps the supplied effect-test canvas', () => {
|
|
18
|
+
const canvas = document.createElement('canvas');
|
|
19
|
+
|
|
20
|
+
expect(createCanvasRenderState(canvas).canvas).toBe(canvas);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
describe('createCanvasRenderTarget', () => {
|
|
25
|
+
it('creates a sized effect-test target', () => {
|
|
26
|
+
const target = createCanvasRenderTarget(12, 8);
|
|
27
|
+
|
|
28
|
+
expect(target.width).toBe(12);
|
|
29
|
+
expect(target.height).toBe(8);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createCanvasRenderState, createCanvasRenderTarget } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { CanvasRenderTarget, CanvasRenderTargetPool, GradientBevelEffect } from '@flighthq/types/contract';
|
|
3
2
|
|
|
3
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState, createCanvasRenderTarget } from './canvasEffectTestSupport';
|
|
4
4
|
import {
|
|
5
5
|
applyGradientBevelEffectToCanvas,
|
|
6
6
|
defaultCanvasGradientBevelEffectRunner,
|
|
@@ -16,7 +16,7 @@ function seededPool(ids: readonly string[]): { pool: CanvasRenderTargetPool; tar
|
|
|
16
16
|
target.canvas.id = id;
|
|
17
17
|
return target;
|
|
18
18
|
});
|
|
19
|
-
return { pool: { free: [...targets].reverse(), inUse: [] }, targets };
|
|
19
|
+
return { pool: { creator: canvasTestSurfaceCreator, free: [...targets].reverse(), inUse: [] }, targets };
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
function recordAll(log: string[], targets: readonly Readonly<CanvasRenderTarget>[]): void {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createCanvasRenderState, createCanvasRenderTarget } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { CanvasRenderTarget, CanvasRenderTargetPool, GradientGlowEffect } from '@flighthq/types/contract';
|
|
3
2
|
|
|
3
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState, createCanvasRenderTarget } from './canvasEffectTestSupport';
|
|
4
4
|
import {
|
|
5
5
|
applyGradientGlowEffectToCanvas,
|
|
6
6
|
defaultCanvasGradientGlowEffectRunner,
|
|
@@ -16,7 +16,7 @@ function seededPool(ids: readonly string[]): { pool: CanvasRenderTargetPool; tar
|
|
|
16
16
|
target.canvas.id = id;
|
|
17
17
|
return target;
|
|
18
18
|
});
|
|
19
|
-
return { pool: { free: [...targets].reverse(), inUse: [] }, targets };
|
|
19
|
+
return { pool: { creator: canvasTestSurfaceCreator, free: [...targets].reverse(), inUse: [] }, targets };
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
function recordAll(log: string[], targets: readonly Readonly<CanvasRenderTarget>[]): void {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { createCanvasRenderTarget } from '
|
|
2
|
-
|
|
1
|
+
import { createCanvasRenderTarget } from './canvasEffectTestSupport';
|
|
3
2
|
import { applyCanvasGradientRampLookup, buildCanvasGradientRamp } from './canvasGradientRamp';
|
|
4
3
|
|
|
5
4
|
function entry(ramp: Readonly<Uint8ClampedArray>, index: number): number[] {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createCanvasRenderState, createCanvasRenderTarget } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { CanvasRenderTarget, CanvasRenderTargetPool, InnerGlowEffect } from '@flighthq/types/contract';
|
|
3
2
|
|
|
3
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState, createCanvasRenderTarget } from './canvasEffectTestSupport';
|
|
4
4
|
import {
|
|
5
5
|
applyInnerGlowEffectToCanvas,
|
|
6
6
|
defaultCanvasInnerGlowEffectRunner,
|
|
@@ -18,7 +18,7 @@ function seededPool(ids: readonly string[]): { pool: CanvasRenderTargetPool; tar
|
|
|
18
18
|
target.canvas.id = id;
|
|
19
19
|
return target;
|
|
20
20
|
});
|
|
21
|
-
return { pool: { free: [...targets].reverse(), inUse: [] }, targets };
|
|
21
|
+
return { pool: { creator: canvasTestSurfaceCreator, free: [...targets].reverse(), inUse: [] }, targets };
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
// One transcript across every target, so ordering between passes is visible and not just within one.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createCanvasRenderState, createCanvasRenderTarget } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { CanvasRenderTarget, CanvasRenderTargetPool, InnerShadowEffect } from '@flighthq/types/contract';
|
|
3
2
|
|
|
3
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState, createCanvasRenderTarget } from './canvasEffectTestSupport';
|
|
4
4
|
import {
|
|
5
5
|
applyInnerShadowEffectToCanvas,
|
|
6
6
|
defaultCanvasInnerShadowEffectRunner,
|
|
@@ -17,7 +17,7 @@ function seededPool(ids: readonly string[]): { pool: CanvasRenderTargetPool; tar
|
|
|
17
17
|
target.canvas.id = id;
|
|
18
18
|
return target;
|
|
19
19
|
});
|
|
20
|
-
return { pool: { free: [...targets].reverse(), inUse: [] }, targets };
|
|
20
|
+
return { pool: { creator: canvasTestSurfaceCreator, free: [...targets].reverse(), inUse: [] }, targets };
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
interface Draw {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createCanvasRenderState } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { CanvasRenderTarget, LensDistortionEffect } from '@flighthq/types/contract';
|
|
3
2
|
|
|
3
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState } from './canvasEffectTestSupport';
|
|
4
4
|
import {
|
|
5
5
|
applyLensDistortionEffectToCanvas,
|
|
6
6
|
defaultCanvasLensDistortionEffectRunner,
|
|
@@ -126,7 +126,10 @@ describe('applyLensDistortionEffectToCanvas', () => {
|
|
|
126
126
|
|
|
127
127
|
describe('defaultCanvasLensDistortionEffectRunner', () => {
|
|
128
128
|
it('routes the runner context through to the pass', () => {
|
|
129
|
-
const { dest, pool, source, written } = {
|
|
129
|
+
const { dest, pool, source, written } = {
|
|
130
|
+
...createTargets(8, 8),
|
|
131
|
+
pool: { creator: canvasTestSurfaceCreator, free: [], inUse: [] },
|
|
132
|
+
};
|
|
130
133
|
|
|
131
134
|
defaultCanvasLensDistortionEffectRunner({ dest, pool, source, state: {} as never }, {
|
|
132
135
|
amount: 0,
|
|
@@ -25,6 +25,7 @@ vi.mock('./canvasSourceModeCompositing', () => ({
|
|
|
25
25
|
}));
|
|
26
26
|
|
|
27
27
|
import { drawCanvasEffectPass } from './canvasEffectCompositing';
|
|
28
|
+
import { canvasTestSurfaceCreator } from './canvasEffectTestSupport';
|
|
28
29
|
import {
|
|
29
30
|
applyOuterGlowEffectToCanvas,
|
|
30
31
|
defaultCanvasOuterGlowEffectRunner,
|
|
@@ -81,7 +82,7 @@ beforeEach(() => {
|
|
|
81
82
|
});
|
|
82
83
|
|
|
83
84
|
function createTarget(id: string, width = 32, height = 16): never {
|
|
84
|
-
return { id, canvas: {}, context: {}, width, height } as never;
|
|
85
|
+
return { id, canvas: {}, context: {}, surface: { creator: canvasTestSurfaceCreator }, width, height } as never;
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
describe('registerCanvasOuterGlowEffect', () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createCanvasRenderState } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { CanvasRenderTarget, PosterizeEffect } from '@flighthq/types/contract';
|
|
3
2
|
|
|
3
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState } from './canvasEffectTestSupport';
|
|
4
4
|
import {
|
|
5
5
|
applyPosterizeEffectToCanvas,
|
|
6
6
|
defaultCanvasPosterizeEffectRunner,
|
|
@@ -114,10 +114,13 @@ describe('defaultCanvasPosterizeEffectRunner', () => {
|
|
|
114
114
|
it('routes the runner context through to the pass', () => {
|
|
115
115
|
const { dest, source, written } = createStubTargets([255, 0, 0, 255]);
|
|
116
116
|
|
|
117
|
-
defaultCanvasPosterizeEffectRunner(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
117
|
+
defaultCanvasPosterizeEffectRunner(
|
|
118
|
+
{ dest, pool: { creator: canvasTestSurfaceCreator, free: [], inUse: [] }, source, state: {} as never },
|
|
119
|
+
{
|
|
120
|
+
kind: 'PosterizeEffect',
|
|
121
|
+
levels: 2,
|
|
122
|
+
} as PosterizeEffect,
|
|
123
|
+
);
|
|
121
124
|
|
|
122
125
|
expect(written.data![0]).toBe(expected(255, 2));
|
|
123
126
|
});
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { createCanvasRenderState } from '@flighthq/scene2d-canvas/contract';
|
|
2
|
-
|
|
3
1
|
import { defaultCanvasBloomEffectRunner, registerCanvasBloomEffect } from './canvasBloomEffect';
|
|
4
2
|
import { defaultCanvasBlurEffectRunner, registerCanvasBlurEffect } from './canvasBlurEffect';
|
|
5
3
|
import { defaultCanvasDropShadowEffectRunner, registerCanvasDropShadowEffect } from './canvasDropShadowEffect';
|
|
4
|
+
import { createCanvasRenderState } from './canvasEffectTestSupport';
|
|
6
5
|
import { defaultCanvasFilmGrainEffectRunner, registerCanvasFilmGrainEffect } from './canvasFilmGrainEffect';
|
|
7
6
|
import { defaultCanvasOuterGlowEffectRunner, registerCanvasOuterGlowEffect } from './canvasOuterGlowEffect';
|
|
8
7
|
import { defaultCanvasPixelateEffectRunner, registerCanvasPixelateEffect } from './canvasPixelateEffect';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { createCanvasRenderState } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { CanvasRenderEffectRunner, RenderEffect } from '@flighthq/types/contract';
|
|
3
2
|
|
|
4
3
|
import { drawCanvasEffectPass } from './canvasEffectCompositing';
|
|
4
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState } from './canvasEffectTestSupport';
|
|
5
5
|
import {
|
|
6
6
|
acquireCanvasRenderTarget,
|
|
7
7
|
beginCanvasRenderEffectPipeline,
|
|
@@ -37,7 +37,7 @@ describe('createCanvasRenderTargetPool', () => {
|
|
|
37
37
|
});
|
|
38
38
|
|
|
39
39
|
it('returns a pool with empty free and inUse lists', () => {
|
|
40
|
-
const pool = createCanvasRenderTargetPool();
|
|
40
|
+
const pool = createCanvasRenderTargetPool(canvasTestSurfaceCreator);
|
|
41
41
|
expect(pool.free).toEqual([]);
|
|
42
42
|
expect(pool.inUse).toEqual([]);
|
|
43
43
|
});
|
|
@@ -94,7 +94,7 @@ describe('releaseCanvasRenderTarget', () => {
|
|
|
94
94
|
});
|
|
95
95
|
|
|
96
96
|
it('moves an acquired target back to the free list', () => {
|
|
97
|
-
const pool = createCanvasRenderTargetPool();
|
|
97
|
+
const pool = createCanvasRenderTargetPool(canvasTestSurfaceCreator);
|
|
98
98
|
const target = acquireCanvasRenderTarget(pool, 16, 16);
|
|
99
99
|
expect(pool.inUse).toContain(target);
|
|
100
100
|
releaseCanvasRenderTarget(pool, target);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { createCanvasRenderState } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import { getCanvasRenderStateRuntime } from '@flighthq/scene2d-canvas/contract';
|
|
3
2
|
import type { CanvasRenderEffectRunner } from '@flighthq/types/contract';
|
|
4
3
|
|
|
4
|
+
import { createCanvasRenderState } from './canvasEffectTestSupport';
|
|
5
5
|
import {
|
|
6
6
|
getCanvasRenderEffectRunner,
|
|
7
7
|
hasCanvasRenderEffectRunner,
|
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
acquireCanvasRenderTexture,
|
|
3
3
|
createCanvasOffscreenRenderState,
|
|
4
|
-
createCanvasRenderState,
|
|
5
4
|
createCanvasRenderTexturePool,
|
|
6
|
-
|
|
5
|
+
createCanvasTextureResolvers,
|
|
7
6
|
getCanvasRenderTextureTarget,
|
|
8
7
|
isCanvasRenderTextureReady,
|
|
9
8
|
writeCanvasRenderTextureTarget,
|
|
10
9
|
} from '@flighthq/scene2d-canvas/contract';
|
|
11
10
|
import type { CanvasRenderEffectRunner } from '@flighthq/types/contract';
|
|
12
11
|
|
|
12
|
+
import {
|
|
13
|
+
acquireTestCanvasRenderSurface,
|
|
14
|
+
canvasTestSurfaceCreator,
|
|
15
|
+
createCanvasRenderState,
|
|
16
|
+
} from './canvasEffectTestSupport';
|
|
13
17
|
import { getCanvasRenderEffectRunner, registerCanvasRenderEffect } from './canvasRenderEffectRegistry';
|
|
14
18
|
import { applyCanvasRenderEffectsToRenderTexture } from './canvasRenderTextureEffect';
|
|
15
19
|
|
|
16
20
|
describe('applyCanvasRenderEffectsToRenderTexture', () => {
|
|
17
21
|
it('ping-pongs an even registered chain so the last operation publishes destination', () => {
|
|
18
22
|
const state = createCanvasRenderState(document.createElement('canvas'));
|
|
19
|
-
const pool = createCanvasRenderTexturePool();
|
|
23
|
+
const pool = createCanvasRenderTexturePool(canvasTestSurfaceCreator);
|
|
20
24
|
const source = acquireCanvasRenderTexture(state, pool, { width: 8, height: 8 });
|
|
21
25
|
const dest = acquireCanvasRenderTexture(state, pool, { width: 8, height: 8 });
|
|
22
26
|
const scratch = acquireCanvasRenderTexture(state, pool, { width: 8, height: 8 });
|
|
@@ -27,7 +31,7 @@ describe('applyCanvasRenderEffectsToRenderTexture', () => {
|
|
|
27
31
|
registerCanvasRenderEffect(state, 'acme.Second', second);
|
|
28
32
|
|
|
29
33
|
expect(
|
|
30
|
-
applyCanvasRenderEffectsToRenderTexture(state, pool, source, dest, scratch, [
|
|
34
|
+
applyCanvasRenderEffectsToRenderTexture(state, state, pool, source, dest, scratch, [
|
|
31
35
|
{ kind: 'acme.First' },
|
|
32
36
|
{ kind: 'acme.Second' },
|
|
33
37
|
]),
|
|
@@ -42,32 +46,33 @@ describe('applyCanvasRenderEffectsToRenderTexture', () => {
|
|
|
42
46
|
|
|
43
47
|
it('leaves destination unpublished when no effect kind is registered', () => {
|
|
44
48
|
const state = createCanvasRenderState(document.createElement('canvas'));
|
|
45
|
-
const pool = createCanvasRenderTexturePool();
|
|
49
|
+
const pool = createCanvasRenderTexturePool(canvasTestSurfaceCreator);
|
|
46
50
|
const source = acquireCanvasRenderTexture(state, pool, { width: 8, height: 8 });
|
|
47
51
|
const dest = acquireCanvasRenderTexture(state, pool, { width: 8, height: 8 });
|
|
48
52
|
const scratch = acquireCanvasRenderTexture(state, pool, { width: 8, height: 8 });
|
|
49
53
|
writeCanvasRenderTextureTarget(state, source, () => {});
|
|
50
54
|
|
|
51
55
|
expect(
|
|
52
|
-
applyCanvasRenderEffectsToRenderTexture(state, pool, source, dest, scratch, [{ kind: 'acme.Missing' }]),
|
|
56
|
+
applyCanvasRenderEffectsToRenderTexture(state, state, pool, source, dest, scratch, [{ kind: 'acme.Missing' }]),
|
|
53
57
|
).toBe(false);
|
|
54
58
|
expect(isCanvasRenderTextureReady(state, dest)).toBe(false);
|
|
55
59
|
});
|
|
56
60
|
});
|
|
57
61
|
|
|
58
|
-
describe('offscreen effect registration
|
|
59
|
-
it('
|
|
62
|
+
describe('offscreen effect registration policy', () => {
|
|
63
|
+
it('does not copy per-state mutations through a hidden parent link', () => {
|
|
60
64
|
const screen = createCanvasRenderState(document.createElement('canvas'));
|
|
61
65
|
const first: CanvasRenderEffectRunner = vi.fn();
|
|
62
66
|
const later: CanvasRenderEffectRunner = vi.fn();
|
|
63
67
|
registerCanvasRenderEffect(screen, 'acme.First', first);
|
|
64
|
-
const offscreen = createCanvasOffscreenRenderState(
|
|
68
|
+
const offscreen = createCanvasOffscreenRenderState(
|
|
69
|
+
acquireTestCanvasRenderSurface(),
|
|
70
|
+
screen.pipeline,
|
|
71
|
+
createCanvasTextureResolvers(canvasTestSurfaceCreator),
|
|
72
|
+
);
|
|
65
73
|
registerCanvasRenderEffect(screen, 'acme.Later', later);
|
|
66
74
|
|
|
67
|
-
expect(getCanvasRenderEffectRunner(offscreen, 'acme.First')).
|
|
75
|
+
expect(getCanvasRenderEffectRunner(offscreen, 'acme.First')).toBeNull();
|
|
68
76
|
expect(getCanvasRenderEffectRunner(offscreen, 'acme.Later')).toBeNull();
|
|
69
|
-
|
|
70
|
-
copyCanvasRenderStateRegistrations(offscreen, screen);
|
|
71
|
-
expect(getCanvasRenderEffectRunner(offscreen, 'acme.Later')).toBe(later);
|
|
72
77
|
});
|
|
73
78
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createCanvasRenderState } from '@flighthq/scene2d-canvas/contract';
|
|
2
1
|
import type { CanvasRenderTarget, TiltShiftEffect } from '@flighthq/types/contract';
|
|
3
2
|
|
|
3
|
+
import { canvasTestSurfaceCreator, createCanvasRenderState } from './canvasEffectTestSupport';
|
|
4
4
|
import { getCanvasRenderEffectRunner } from './canvasRenderEffectRegistry';
|
|
5
5
|
import {
|
|
6
6
|
applyTiltShiftEffectToCanvas,
|
|
@@ -133,10 +133,13 @@ describe('defaultCanvasTiltShiftEffectRunner', () => {
|
|
|
133
133
|
it('routes the runner context through to the pass', () => {
|
|
134
134
|
const { dest, source, written } = createImpulseTargets(2, 16, [4]);
|
|
135
135
|
|
|
136
|
-
defaultCanvasTiltShiftEffectRunner(
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
136
|
+
defaultCanvasTiltShiftEffectRunner(
|
|
137
|
+
{ dest, pool: { creator: canvasTestSurfaceCreator, free: [], inUse: [] }, source, state: {} as never },
|
|
138
|
+
{
|
|
139
|
+
blur: 0,
|
|
140
|
+
kind: 'TiltShiftEffect',
|
|
141
|
+
} as TiltShiftEffect,
|
|
142
|
+
);
|
|
140
143
|
|
|
141
144
|
expect(written.data).not.toBeNull();
|
|
142
145
|
});
|