@flighthq/effects-wgpu 0.2.0 → 0.2.1-next.410.a23f189
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/wgpuBevelEffect.d.ts.map +1 -1
- package/dist/wgpuBevelEffect.js +7 -5
- package/dist/wgpuBevelEffect.js.map +1 -1
- package/dist/wgpuDropShadowEffect.d.ts.map +1 -1
- package/dist/wgpuDropShadowEffect.js +7 -6
- package/dist/wgpuDropShadowEffect.js.map +1 -1
- package/dist/wgpuEffectBlitShader.d.ts +2 -0
- package/dist/wgpuEffectBlitShader.d.ts.map +1 -1
- package/dist/wgpuEffectBlitShader.js +26 -0
- package/dist/wgpuEffectBlitShader.js.map +1 -1
- package/dist/wgpuEffectBoxBlur.d.ts +1 -0
- package/dist/wgpuEffectBoxBlur.d.ts.map +1 -1
- package/dist/wgpuEffectBoxBlur.js +36 -11
- package/dist/wgpuEffectBoxBlur.js.map +1 -1
- package/dist/wgpuEffectPass.d.ts +4 -3
- package/dist/wgpuEffectPass.d.ts.map +1 -1
- package/dist/wgpuEffectPass.js +14 -2
- package/dist/wgpuEffectPass.js.map +1 -1
- package/dist/wgpuEffectTintShader.js +3 -3
- package/dist/wgpuEffectTintShader.js.map +1 -1
- package/dist/wgpuGradientBevelEffect.js +6 -4
- package/dist/wgpuGradientBevelEffect.js.map +1 -1
- package/dist/wgpuGradientGlowEffect.d.ts.map +1 -1
- package/dist/wgpuGradientGlowEffect.js +9 -3
- package/dist/wgpuGradientGlowEffect.js.map +1 -1
- package/dist/wgpuInnerGlowEffect.d.ts.map +1 -1
- package/dist/wgpuInnerGlowEffect.js +15 -2
- package/dist/wgpuInnerGlowEffect.js.map +1 -1
- package/dist/wgpuInnerShadowEffect.d.ts.map +1 -1
- package/dist/wgpuInnerShadowEffect.js +15 -2
- package/dist/wgpuInnerShadowEffect.js.map +1 -1
- package/dist/wgpuOuterGlowEffect.d.ts.map +1 -1
- package/dist/wgpuOuterGlowEffect.js +7 -4
- package/dist/wgpuOuterGlowEffect.js.map +1 -1
- package/dist/wgpuRenderEffectPipeline.d.ts.map +1 -1
- package/dist/wgpuRenderEffectPipeline.js +15 -6
- package/dist/wgpuRenderEffectPipeline.js.map +1 -1
- package/package.json +6 -6
- package/src/wgpuDropShadowEffect.test.ts +96 -0
- package/src/wgpuEffectBlitShader.test.ts +11 -1
- package/src/wgpuEffectBoxBlur.test.ts +68 -0
- package/src/wgpuEffectTintShader.test.ts +43 -0
- package/src/wgpuInnerGlowEffect.test.ts +124 -0
- package/src/wgpuInnerShadowEffect.test.ts +124 -0
- package/src/wgpuOuterGlowEffect.test.ts +95 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBevelEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAezB,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,
|
|
1
|
+
{"version":3,"file":"wgpuBevelEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAezB,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAoDN;AAED,eAAO,MAAM,4BAA4B,EAAE,sBAE1C,CAAC"}
|
package/dist/wgpuBevelEffect.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { acquireWgpuRenderTarget, releaseWgpuRenderTarget } from '@flighthq/render-wgpu';
|
|
2
|
-
import { applyWgpuEffectBlitPass } from './wgpuEffectBlitShader';
|
|
2
|
+
import { applyWgpuEffectBlitPass, applyWgpuEffectErasePass } from './wgpuEffectBlitShader';
|
|
3
3
|
import { applyWgpuEffectBoxBlur } from './wgpuEffectBoxBlur';
|
|
4
4
|
import { clearWgpuEffectTarget, createWgpuDualSourceEffectPipeline, drawWgpuDualSourceEffectPass, } from './wgpuEffectPass';
|
|
5
5
|
import { applyWgpuEffectTintPass } from './wgpuEffectTintShader';
|
|
6
|
-
// Bevel composite effect: the directional gradient of the blurred silhouette drives a highlight/shadow edge band, clipped by bevelType
|
|
6
|
+
// Bevel composite effect: the directional gradient of the blurred silhouette drives a highlight/shadow edge band, clipped by bevelType, then sourceMode decides source compositing.
|
|
7
7
|
// Full-frame realization: acquires the recipe's three scratch targets from the effect pool, runs the
|
|
8
8
|
// multi-pass recipe (neutral tint → box blur → directional-gradient composite), then releases them.
|
|
9
9
|
export function applyBevelEffectToWgpu(state, source, dest, pool, effect) {
|
|
@@ -24,7 +24,7 @@ export function applyBevelEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
24
24
|
const highlightAlpha = effect.highlightAlpha ?? 1;
|
|
25
25
|
const strength = effect.strength ?? 1;
|
|
26
26
|
const quality = Math.max(1, Math.round(effect.quality ?? 1));
|
|
27
|
-
const
|
|
27
|
+
const sourceMode = effect.sourceMode ?? 'draw';
|
|
28
28
|
const bevelType = effect.bevelType ?? 'inner';
|
|
29
29
|
// Blurred alpha field (neutral white tint, strength 1 — strength is the gradient
|
|
30
30
|
// intensity applied per-pixel in the composite, not baked into the field).
|
|
@@ -35,7 +35,7 @@ export function applyBevelEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
35
35
|
passes: quality,
|
|
36
36
|
});
|
|
37
37
|
clearWgpuEffectTarget(state, dst);
|
|
38
|
-
if (
|
|
38
|
+
if (sourceMode === 'draw')
|
|
39
39
|
applyWgpuEffectBlitPass(state, src, dst);
|
|
40
40
|
applyWgpuBevelCompositePass(state, blurred, src, dst, {
|
|
41
41
|
offsetX: offsetX / source.width,
|
|
@@ -49,6 +49,8 @@ export function applyBevelEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
49
49
|
intensity: strength,
|
|
50
50
|
clipMode: bevelType === 'inner' ? 1 : bevelType === 'outer' ? 2 : 0,
|
|
51
51
|
});
|
|
52
|
+
if (sourceMode === 'knockout')
|
|
53
|
+
applyWgpuEffectErasePass(state, src, dst);
|
|
52
54
|
releaseWgpuRenderTarget(pool, tinted);
|
|
53
55
|
releaseWgpuRenderTarget(pool, blurred);
|
|
54
56
|
releaseWgpuRenderTarget(pool, blurTemp);
|
|
@@ -57,7 +59,7 @@ export const defaultWgpuBevelEffectRunner = (ctx, effect) => {
|
|
|
57
59
|
applyBevelEffectToWgpu(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
58
60
|
};
|
|
59
61
|
// Reads the blurred alpha field (group 1) and source (group 2); writes the tinted, clipped bevel
|
|
60
|
-
// mask, premultiplied, blended over `dest` (which already holds the source
|
|
62
|
+
// mask, premultiplied, blended over `dest` (which already holds the source when sourceMode is 'draw').
|
|
61
63
|
const BEVEL_COMPOSITE_WGSL = /* wgsl */ `
|
|
62
64
|
struct Uniforms {
|
|
63
65
|
highlight : vec4f,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBevelEffect.js","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AASzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBevelEffect.js","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDropShadowEffect.d.ts","sourceRoot":"","sources":["../src/wgpuDropShadowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuDropShadowEffect.d.ts","sourceRoot":"","sources":["../src/wgpuDropShadowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAczB,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACjC,IAAI,CA0CN;AAED,eAAO,MAAM,iCAAiC,EAAE,sBAE/C,CAAC"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { acquireWgpuRenderTarget, releaseWgpuRenderTarget } from '@flighthq/render-wgpu';
|
|
2
|
-
import { applyWgpuEffectBlitOffsetPass, applyWgpuEffectBlitPass } from './wgpuEffectBlitShader';
|
|
2
|
+
import { applyWgpuEffectBlitOffsetPass, applyWgpuEffectBlitPass, applyWgpuEffectErasePass, } from './wgpuEffectBlitShader';
|
|
3
3
|
import { applyWgpuEffectBoxBlur } from './wgpuEffectBoxBlur';
|
|
4
4
|
import { clearWgpuEffectTarget } from './wgpuEffectPass';
|
|
5
5
|
import { applyWgpuEffectTintPass } from './wgpuEffectTintShader';
|
|
6
|
-
// Drop-shadow composite effect: tint the scene silhouette, blur it, offset it by angle/distance, then
|
|
6
|
+
// Drop-shadow composite effect: tint the scene silhouette, blur it, offset it by angle/distance, then apply sourceMode compositing.
|
|
7
7
|
// Full-frame realization: acquires the recipe's three scratch targets from the effect pool, runs the
|
|
8
8
|
// multi-pass recipe (tint → box blur → offset → composite), then releases them.
|
|
9
9
|
export function applyDropShadowEffectToWgpu(state, source, dest, pool, effect) {
|
|
10
|
-
if (effect.knockout)
|
|
11
|
-
return;
|
|
12
10
|
const src = source;
|
|
13
11
|
const dst = dest;
|
|
14
12
|
const descriptor = { width: source.width, height: source.height, format: source.format };
|
|
@@ -23,7 +21,7 @@ export function applyDropShadowEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
23
21
|
const alpha = effect.alpha ?? 1;
|
|
24
22
|
const strength = effect.strength ?? 1;
|
|
25
23
|
const quality = Math.max(1, Math.round(effect.quality ?? 1));
|
|
26
|
-
const
|
|
24
|
+
const sourceMode = effect.sourceMode ?? 'draw';
|
|
27
25
|
const tintStrength = Math.min(1, strength);
|
|
28
26
|
const shadowPasses = Math.max(1, Math.floor(strength));
|
|
29
27
|
applyWgpuEffectTintPass(state, src, mask, color, alpha, tintStrength);
|
|
@@ -36,7 +34,10 @@ export function applyDropShadowEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
36
34
|
for (let i = 0; i < shadowPasses; i++) {
|
|
37
35
|
applyWgpuEffectBlitOffsetPass(state, blurred, dst, dx, dy);
|
|
38
36
|
}
|
|
39
|
-
if (
|
|
37
|
+
if (sourceMode === 'knockout') {
|
|
38
|
+
applyWgpuEffectErasePass(state, src, dst);
|
|
39
|
+
}
|
|
40
|
+
else if (sourceMode === 'draw') {
|
|
40
41
|
applyWgpuEffectBlitPass(state, src, dst);
|
|
41
42
|
}
|
|
42
43
|
releaseWgpuRenderTarget(pool, mask);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDropShadowEffect.js","sourceRoot":"","sources":["../src/wgpuDropShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AASzF,OAAO,
|
|
1
|
+
{"version":3,"file":"wgpuDropShadowEffect.js","sourceRoot":"","sources":["../src/wgpuDropShadowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,4 +12,6 @@ import type { WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
|
|
|
12
12
|
export declare function applyWgpuEffectBlitOffsetPass(state: WgpuRenderState, source: WgpuRenderTarget, dest: WgpuRenderTarget, dx: number, dy: number): void;
|
|
13
13
|
/** Blits source directly into dest without modification. */
|
|
14
14
|
export declare function applyWgpuEffectBlitPass(state: WgpuRenderState, source: WgpuRenderTarget, dest: WgpuRenderTarget): void;
|
|
15
|
+
/** Erases dest by the source alpha mask, equivalent to destination-out compositing. */
|
|
16
|
+
export declare function applyWgpuEffectErasePass(state: WgpuRenderState, source: WgpuRenderTarget, dest: WgpuRenderTarget): void;
|
|
15
17
|
//# sourceMappingURL=wgpuEffectBlitShader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuEffectBlitShader.d.ts","sourceRoot":"","sources":["../src/wgpuEffectBlitShader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuEffectBlitShader.d.ts","sourceRoot":"","sources":["../src/wgpuEffectBlitShader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAiDzE;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CAMN;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,gBAAgB,GACrB,IAAI,CAGN;AAED,uFAAuF;AACvF,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,gBAAgB,GACrB,IAAI,CAGN"}
|
|
@@ -28,6 +28,18 @@ struct Uniforms { _u : f32, _pad0 : f32, _pad1 : f32, _pad2 : f32, }
|
|
|
28
28
|
fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
|
|
29
29
|
return textureSampleLevel(tex, smp, uv, 0.0);
|
|
30
30
|
}`;
|
|
31
|
+
// Emits source alpha for a destination-out erase pass; blend state supplies the coverage operator.
|
|
32
|
+
const ERASE_WGSL = /* wgsl */ `
|
|
33
|
+
struct Uniforms { _u : f32, _pad0 : f32, _pad1 : f32, _pad2 : f32, }
|
|
34
|
+
@group(0) @binding(0) var<uniform> uni : Uniforms;
|
|
35
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
36
|
+
@group(1) @binding(1) var smp : sampler;
|
|
37
|
+
|
|
38
|
+
@fragment
|
|
39
|
+
fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
|
|
40
|
+
let a = textureSampleLevel(tex, smp, uv, 0.0).a;
|
|
41
|
+
return vec4f(0.0, 0.0, 0.0, a);
|
|
42
|
+
}`;
|
|
31
43
|
/**
|
|
32
44
|
* Blits source into dest at a pixel offset (dx, dy in screen-space Y-down).
|
|
33
45
|
* Pixels sampling outside the source bounds produce transparent output.
|
|
@@ -50,6 +62,11 @@ export function applyWgpuEffectBlitPass(state, source, dest) {
|
|
|
50
62
|
const pipeline = getWgpuBlitShader(state);
|
|
51
63
|
drawWgpuEffectPass(state, source, dest, pipeline, () => { });
|
|
52
64
|
}
|
|
65
|
+
/** Erases dest by the source alpha mask, equivalent to destination-out compositing. */
|
|
66
|
+
export function applyWgpuEffectErasePass(state, source, dest) {
|
|
67
|
+
const pipeline = getWgpuEraseShader(state);
|
|
68
|
+
drawWgpuEffectPass(state, source, dest, pipeline, () => { });
|
|
69
|
+
}
|
|
53
70
|
function getWgpuBlitOffsetShader(state) {
|
|
54
71
|
let p = blitOffsetPipelines.get(state);
|
|
55
72
|
if (p === undefined) {
|
|
@@ -66,6 +83,15 @@ function getWgpuBlitShader(state) {
|
|
|
66
83
|
}
|
|
67
84
|
return p;
|
|
68
85
|
}
|
|
86
|
+
function getWgpuEraseShader(state) {
|
|
87
|
+
let p = erasePipelines.get(state);
|
|
88
|
+
if (p === undefined) {
|
|
89
|
+
p = createWgpuEffectPipeline(state, ERASE_WGSL, 'erase');
|
|
90
|
+
erasePipelines.set(state, p);
|
|
91
|
+
}
|
|
92
|
+
return p;
|
|
93
|
+
}
|
|
69
94
|
const blitOffsetPipelines = new WeakMap();
|
|
70
95
|
const blitPipelines = new WeakMap();
|
|
96
|
+
const erasePipelines = new WeakMap();
|
|
71
97
|
//# sourceMappingURL=wgpuEffectBlitShader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuEffectBlitShader.js","sourceRoot":"","sources":["../src/wgpuEffectBlitShader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,oFAAoF;AACpF,MAAM,gBAAgB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;EAgBlC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,SAAS,GAAG,UAAU,CAAC;;;;;;;;;EAS3B,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAsB,EACtB,MAAwB,EACxB,IAAsB,EACtB,EAAU,EACV,EAAU;IAEV,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAChD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QACxD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAwB,EACxB,IAAsB;IAEtB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC1C,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAsB;IACrD,IAAI,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,CAAC,GAAG,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACtD,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAsB;IAC/C,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,CAAC,GAAG,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAuC,CAAC;AAC/E,MAAM,aAAa,GAAG,IAAI,OAAO,EAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"wgpuEffectBlitShader.js","sourceRoot":"","sources":["../src/wgpuEffectBlitShader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuEffectBoxBlur.d.ts","sourceRoot":"","sources":["../src/wgpuEffectBoxBlur.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuEffectBoxBlur.d.ts","sourceRoot":"","sources":["../src/wgpuEffectBoxBlur.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AA8CzE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACvD,CAAC,GACD,IAAI,CA2BN"}
|
|
@@ -1,30 +1,40 @@
|
|
|
1
1
|
import { computeBoxBlurPassRadius } from '@flighthq/effects';
|
|
2
|
-
import { applyWgpuEffectBlitPass } from './wgpuEffectBlitShader';
|
|
3
2
|
import { createWgpuEffectPipeline, drawWgpuEffectPass } from './wgpuEffectPass';
|
|
4
3
|
// Uniforms layout:
|
|
5
4
|
// offset 0: texelSize (vec2f)
|
|
6
5
|
// offset 8: direction (vec2f)
|
|
7
|
-
// offset 16:
|
|
8
|
-
// offset
|
|
6
|
+
// offset 16: edgeColor (vec4f)
|
|
7
|
+
// offset 32: radius (f32)
|
|
8
|
+
// offset 36: useEdgeColor (f32)
|
|
9
|
+
// offset 40-47: padding
|
|
9
10
|
const BOX_BLUR_WGSL = /* wgsl */ `
|
|
10
11
|
struct Uniforms {
|
|
11
12
|
texelSize : vec2f,
|
|
12
13
|
direction : vec2f,
|
|
14
|
+
edgeColor : vec4f,
|
|
13
15
|
radius : f32,
|
|
14
|
-
|
|
16
|
+
useEdgeColor : f32,
|
|
17
|
+
_pad0 : f32, _pad1 : f32,
|
|
15
18
|
}
|
|
16
19
|
@group(0) @binding(0) var<uniform> uni : Uniforms;
|
|
17
20
|
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
18
21
|
@group(1) @binding(1) var smp : sampler;
|
|
19
22
|
|
|
23
|
+
fn sampleBlur(uv : vec2f) -> vec4f {
|
|
24
|
+
if (uni.useEdgeColor > 0.5 && (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)) {
|
|
25
|
+
return uni.edgeColor;
|
|
26
|
+
}
|
|
27
|
+
return textureSampleLevel(tex, smp, uv, 0.0);
|
|
28
|
+
}
|
|
29
|
+
|
|
20
30
|
@fragment
|
|
21
31
|
fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
|
|
22
32
|
let r = i32(uni.radius);
|
|
23
|
-
if (r == 0) { return
|
|
33
|
+
if (r == 0) { return sampleBlur(uv); }
|
|
24
34
|
var sum = vec4f(0.0);
|
|
25
35
|
let count = f32(2 * r + 1);
|
|
26
36
|
for (var i = -r; i <= r; i++) {
|
|
27
|
-
sum +=
|
|
37
|
+
sum += sampleBlur(uv + f32(i) * uni.texelSize * uni.direction);
|
|
28
38
|
}
|
|
29
39
|
return sum / count;
|
|
30
40
|
}`;
|
|
@@ -39,34 +49,49 @@ export function applyWgpuEffectBoxBlur(state, source, dest, temp, options) {
|
|
|
39
49
|
const passes = Math.max(1, Math.round(options.passes ?? 1));
|
|
40
50
|
const blurX = options.blurX ?? 4;
|
|
41
51
|
const blurY = options.blurY ?? 4;
|
|
52
|
+
const edgeColor = options.edgeColor;
|
|
42
53
|
let read = source;
|
|
43
54
|
let write = temp;
|
|
44
55
|
for (let pass = 0; pass < passes; pass++) {
|
|
45
56
|
const radiusX = computeBoxBlurPassRadius(blurX, passes, pass);
|
|
46
57
|
if (radiusX > 0) {
|
|
47
|
-
applyBoxBlurPass(state, read, write, radiusX, 1, 0);
|
|
58
|
+
applyBoxBlurPass(state, read, write, radiusX, 1, 0, edgeColor);
|
|
48
59
|
read = write;
|
|
49
60
|
write = write === temp ? dest : temp;
|
|
50
61
|
}
|
|
51
62
|
const radiusY = computeBoxBlurPassRadius(blurY, passes, pass);
|
|
52
63
|
if (radiusY > 0) {
|
|
53
|
-
applyBoxBlurPass(state, read, write, radiusY, 0, 1);
|
|
64
|
+
applyBoxBlurPass(state, read, write, radiusY, 0, 1, edgeColor);
|
|
54
65
|
read = write;
|
|
55
66
|
write = write === temp ? dest : temp;
|
|
56
67
|
}
|
|
57
68
|
}
|
|
58
69
|
if (read !== dest) {
|
|
59
|
-
|
|
70
|
+
applyBoxBlurPass(state, read, dest, 0, 0, 0, undefined);
|
|
60
71
|
}
|
|
61
72
|
}
|
|
62
|
-
function applyBoxBlurPass(state, source, dest, radius, dirX, dirY) {
|
|
73
|
+
function applyBoxBlurPass(state, source, dest, radius, dirX, dirY, edgeColor) {
|
|
63
74
|
const pipeline = getBoxBlurPipeline(state);
|
|
64
75
|
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
65
76
|
f32[0] = 1 / source.width;
|
|
66
77
|
f32[1] = 1 / source.height;
|
|
67
78
|
f32[2] = dirX;
|
|
68
79
|
f32[3] = dirY;
|
|
69
|
-
|
|
80
|
+
if (edgeColor === undefined) {
|
|
81
|
+
f32[4] = 0;
|
|
82
|
+
f32[5] = 0;
|
|
83
|
+
f32[6] = 0;
|
|
84
|
+
f32[7] = 0;
|
|
85
|
+
f32[9] = 0;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
f32[4] = edgeColor[0];
|
|
89
|
+
f32[5] = edgeColor[1];
|
|
90
|
+
f32[6] = edgeColor[2];
|
|
91
|
+
f32[7] = edgeColor[3];
|
|
92
|
+
f32[9] = 1;
|
|
93
|
+
}
|
|
94
|
+
f32[8] = radius;
|
|
70
95
|
});
|
|
71
96
|
}
|
|
72
97
|
function getBoxBlurPipeline(state) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuEffectBoxBlur.js","sourceRoot":"","sources":["../src/wgpuEffectBoxBlur.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuEffectBoxBlur.js","sourceRoot":"","sources":["../src/wgpuEffectBoxBlur.ts"],"names":[],"mappings":"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"}
|
package/dist/wgpuEffectPass.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
|
|
2
2
|
export declare const EFFECT_VERTEX_WGSL = "\nstruct VertexOut {\n @builtin(position) position : vec4f,\n @location(0) uv : vec2f,\n}\n\n@vertex\nfn vs_main(@builtin(vertex_index) vi : u32) -> VertexOut {\n let xi = vi == 1u || vi == 2u || vi == 4u;\n let yi = vi == 2u || vi == 4u || vi == 5u;\n var out : VertexOut;\n out.position = vec4f(select(-1.0, 1.0, xi), select(-1.0, 1.0, yi), 0.0, 1.0);\n out.uv = vec2f(select(0.0, 1.0, xi), select(1.0, 0.0, yi));\n return out;\n}\n";
|
|
3
|
+
export type WgpuEffectBlendMode = 'premul' | 'replace' | 'erase';
|
|
3
4
|
export type WgpuEffectPipeline = {
|
|
4
5
|
pipeline: GPURenderPipeline;
|
|
5
|
-
blendMode:
|
|
6
|
+
blendMode: WgpuEffectBlendMode;
|
|
6
7
|
compileForFormat?: (format: GPUTextureFormat) => GPURenderPipeline;
|
|
7
8
|
variants?: Map<GPUTextureFormat, GPURenderPipeline>;
|
|
8
9
|
};
|
|
@@ -10,9 +11,9 @@ export type WgpuDualSourceEffectPipeline = WgpuEffectPipeline;
|
|
|
10
11
|
/** Clears a render target to fully transparent. Ends any active render pass. */
|
|
11
12
|
export declare function clearWgpuEffectTarget(state: WgpuRenderState, target: WgpuRenderTarget): void;
|
|
12
13
|
/** Compiles a dual-source WGSL effect pipeline (source0 = group 1, source1 = group 2). */
|
|
13
|
-
export declare function createWgpuDualSourceEffectPipeline(state: WgpuRenderState, fragmentWGSL: string, blend?:
|
|
14
|
+
export declare function createWgpuDualSourceEffectPipeline(state: WgpuRenderState, fragmentWGSL: string, blend?: WgpuEffectBlendMode): WgpuDualSourceEffectPipeline;
|
|
14
15
|
/** Compiles a WGSL effect pipeline, creating the combined vertex+fragment shader module. */
|
|
15
|
-
export declare function createWgpuEffectPipeline(state: WgpuRenderState, fragmentWGSL: string, blend?:
|
|
16
|
+
export declare function createWgpuEffectPipeline(state: WgpuRenderState, fragmentWGSL: string, blend?: WgpuEffectBlendMode): WgpuEffectPipeline;
|
|
16
17
|
/**
|
|
17
18
|
* Draws a full-screen pass reading from two source textures.
|
|
18
19
|
* source0 binds to group 1, source1 to group 2.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuEffectPass.d.ts","sourceRoot":"","sources":["../src/wgpuEffectPass.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKzE,eAAO,MAAM,kBAAkB,+bAe9B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuEffectPass.d.ts","sourceRoot":"","sources":["../src/wgpuEffectPass.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKzE,eAAO,MAAM,kBAAkB,+bAe9B,CAAC;AAoBF,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG;IAE/B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,mBAAmB,CAAC;IAK/B,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,iBAAiB,CAAC;IACnE,QAAQ,CAAC,EAAE,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,kBAAkB,CAAC;AA8K9D,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAG5F;AAED,0FAA0F;AAC1F,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,mBAA8B,GACpC,4BAA4B,CAsB9B;AAED,4FAA4F;AAC5F,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,mBAA8B,GACpC,kBAAkB,CAsBpB;AAQD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,gBAAgB,GAAG,IAAI,EAC7B,QAAQ,EAAE,4BAA4B,EACtC,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,KAAK,IAAI,GACxD,IAAI,CAiBN;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,gBAAgB,GAAG,IAAI,EAC7B,QAAQ,EAAE,kBAAkB,EAC5B,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,KAAK,IAAI,GACxD,IAAI,CAeN;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG;IAC9D,SAAS,EAAE,YAAY,CAAC;IACxB,eAAe,EAAE,kBAAkB,CAAC;IACpC,eAAe,EAAE,kBAAkB,CAAC;IACpC,OAAO,EAAE,UAAU,CAAC;IACpB,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,KAAK,IAAI,KAAK,IAAI,CAAC;IACtF,SAAS,EAAE,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,EAAE,MAAM,EAAE,SAAS,KAAK,oBAAoB,CAAC;CACvF,CAWA"}
|
package/dist/wgpuEffectPass.js
CHANGED
|
@@ -28,6 +28,11 @@ const REPLACE_BLEND = {
|
|
|
28
28
|
color: { srcFactor: 'one', dstFactor: 'zero', operation: 'add' },
|
|
29
29
|
alpha: { srcFactor: 'one', dstFactor: 'zero', operation: 'add' },
|
|
30
30
|
};
|
|
31
|
+
// Destination-out erase blend: dst.rgb/a *= (1 - src.a).
|
|
32
|
+
const ERASE_BLEND = {
|
|
33
|
+
color: { srcFactor: 'zero', dstFactor: 'one-minus-src-alpha', operation: 'add' },
|
|
34
|
+
alpha: { srcFactor: 'zero', dstFactor: 'one-minus-src-alpha', operation: 'add' },
|
|
35
|
+
};
|
|
31
36
|
const effectPassStates = new WeakMap();
|
|
32
37
|
function getOrCreateEffectPassState(state) {
|
|
33
38
|
let fs = effectPassStates.get(state);
|
|
@@ -176,7 +181,7 @@ export function createWgpuDualSourceEffectPipeline(state, fragmentWGSL, blend =
|
|
|
176
181
|
fragment: {
|
|
177
182
|
module: shaderModule,
|
|
178
183
|
entryPoint: 'fs_main',
|
|
179
|
-
targets: [{ format, blend: blend
|
|
184
|
+
targets: [{ format, blend: getBlendState(blend) }],
|
|
180
185
|
},
|
|
181
186
|
primitive: { topology: 'triangle-list' },
|
|
182
187
|
});
|
|
@@ -196,12 +201,19 @@ export function createWgpuEffectPipeline(state, fragmentWGSL, blend = 'premul')
|
|
|
196
201
|
fragment: {
|
|
197
202
|
module: shaderModule,
|
|
198
203
|
entryPoint: 'fs_main',
|
|
199
|
-
targets: [{ format, blend: blend
|
|
204
|
+
targets: [{ format, blend: getBlendState(blend) }],
|
|
200
205
|
},
|
|
201
206
|
primitive: { topology: 'triangle-list' },
|
|
202
207
|
});
|
|
203
208
|
return { pipeline: compileForFormat(fs.format), blendMode: blend, compileForFormat, variants: new Map() };
|
|
204
209
|
}
|
|
210
|
+
function getBlendState(blend) {
|
|
211
|
+
if (blend === 'replace')
|
|
212
|
+
return REPLACE_BLEND;
|
|
213
|
+
if (blend === 'erase')
|
|
214
|
+
return ERASE_BLEND;
|
|
215
|
+
return PREMUL_BLEND;
|
|
216
|
+
}
|
|
205
217
|
/**
|
|
206
218
|
* Draws a full-screen pass reading from two source textures.
|
|
207
219
|
* source0 binds to group 1, source1 to group 2.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuEffectPass.js","sourceRoot":"","sources":["../src/wgpuEffectPass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,oFAAoF;AACpF,iFAAiF;AACjF,uDAAuD;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;CAe5C,CAAC;AAEF,wFAAwF;AACxF,MAAM,YAAY,GAAkB;IAClC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,KAAK,EAAE;IAC/E,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,KAAK,EAAE;CAChF,CAAC;AAEF,iFAAiF;AACjF,MAAM,aAAa,GAAkB;IACnC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE;IAChE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE;CACjE,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuEffectPass.js","sourceRoot":"","sources":["../src/wgpuEffectPass.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,7 +63,7 @@ export function applyWgpuEffectTintPass(state, source, dest, color, alpha, stren
|
|
|
63
63
|
function getWgpuInnerClipShader(state) {
|
|
64
64
|
let p = innerClipPipelines.get(state);
|
|
65
65
|
if (p === undefined) {
|
|
66
|
-
p = createWgpuDualSourceEffectPipeline(state, INNER_CLIP_WGSL);
|
|
66
|
+
p = createWgpuDualSourceEffectPipeline(state, INNER_CLIP_WGSL, 'replace');
|
|
67
67
|
innerClipPipelines.set(state, p);
|
|
68
68
|
}
|
|
69
69
|
return p;
|
|
@@ -71,7 +71,7 @@ function getWgpuInnerClipShader(state) {
|
|
|
71
71
|
function getWgpuInvertTintShader(state) {
|
|
72
72
|
let p = invertTintPipelines.get(state);
|
|
73
73
|
if (p === undefined) {
|
|
74
|
-
p = createWgpuEffectPipeline(state, INVERT_TINT_WGSL);
|
|
74
|
+
p = createWgpuEffectPipeline(state, INVERT_TINT_WGSL, 'replace');
|
|
75
75
|
invertTintPipelines.set(state, p);
|
|
76
76
|
}
|
|
77
77
|
return p;
|
|
@@ -79,7 +79,7 @@ function getWgpuInvertTintShader(state) {
|
|
|
79
79
|
function getWgpuTintShader(state) {
|
|
80
80
|
let p = tintPipelines.get(state);
|
|
81
81
|
if (p === undefined) {
|
|
82
|
-
p = createWgpuEffectPipeline(state, TINT_WGSL);
|
|
82
|
+
p = createWgpuEffectPipeline(state, TINT_WGSL, 'replace');
|
|
83
83
|
tintPipelines.set(state, p);
|
|
84
84
|
}
|
|
85
85
|
return p;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuEffectTintShader.js","sourceRoot":"","sources":["../src/wgpuEffectTintShader.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kCAAkC,EAClC,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,sFAAsF;AACtF,MAAM,SAAS,GAAG,UAAU,CAAC;;;;;;;;;;;;;;EAc3B,CAAC;AAEH,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;EAclC,CAAC;AAEH,iEAAiE;AACjE,MAAM,UAAU,4BAA4B,CAC1C,KAAsB,EACtB,IAAsB,EACtB,MAAwB,EACxB,IAAsB;IAEtB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC/C,4BAA4B,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,6BAA6B,CAC3C,KAAsB,EACtB,MAAwB,EACxB,IAAsB,EACtB,KAAa,EACb,KAAa,EACb,QAAgB;IAEhB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAChD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QACxD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACf,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAwB,EACxB,IAAsB,EACtB,KAAa,EACb,KAAa,EACb,QAAgB;IAEhB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC1C,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QACxD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACf,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAsB;IACpD,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,CAAC,GAAG,kCAAkC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuEffectTintShader.js","sourceRoot":"","sources":["../src/wgpuEffectTintShader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { acquireWgpuRenderTarget, releaseWgpuRenderTarget } from '@flighthq/render-wgpu';
|
|
2
|
-
import { applyWgpuEffectBlitPass } from './wgpuEffectBlitShader';
|
|
2
|
+
import { applyWgpuEffectBlitPass, applyWgpuEffectErasePass } from './wgpuEffectBlitShader';
|
|
3
3
|
import { applyWgpuEffectBoxBlur } from './wgpuEffectBoxBlur';
|
|
4
4
|
import { getWgpuEffectGradientRampTexture } from './wgpuEffectGradientRamp';
|
|
5
5
|
import { clearWgpuEffectTarget, EFFECT_VERTEX_WGSL, getWgpuEffectPassState } from './wgpuEffectPass';
|
|
6
6
|
import { applyWgpuEffectTintPass } from './wgpuEffectTintShader';
|
|
7
|
-
// Gradient-bevel composite effect: a bevel whose highlight→shadow band color is looked up from a colors/alphas/ratios gradient ramp indexed by the encoded bevel depth.
|
|
7
|
+
// Gradient-bevel composite effect: a bevel whose highlight→shadow band color is looked up from a colors/alphas/ratios gradient ramp indexed by the encoded bevel depth, then sourceMode decides source compositing.
|
|
8
8
|
// Full-frame realization: acquires the recipe's three scratch targets from the effect pool, runs the
|
|
9
9
|
// multi-pass recipe (neutral tint → box blur → bevel encode → gradient lookup + clip → composite), then releases them.
|
|
10
10
|
//
|
|
@@ -21,6 +21,7 @@ export function applyGradientBevelEffectToWgpu(state, source, dest, pool, effect
|
|
|
21
21
|
const distance = effect.distance ?? 4;
|
|
22
22
|
const quality = Math.max(1, Math.round(effect.quality ?? 1));
|
|
23
23
|
const strength = effect.strength ?? 1;
|
|
24
|
+
const sourceMode = effect.sourceMode ?? 'draw';
|
|
24
25
|
const { device } = state;
|
|
25
26
|
const fs = getWgpuEffectPassState(state);
|
|
26
27
|
// Build blur basis → s1
|
|
@@ -88,10 +89,11 @@ export function applyGradientBevelEffectToWgpu(state, source, dest, pool, effect
|
|
|
88
89
|
applyPass.draw(6);
|
|
89
90
|
applyPass.end();
|
|
90
91
|
clearWgpuEffectTarget(state, dst);
|
|
91
|
-
if (
|
|
92
|
+
if (sourceMode === 'draw')
|
|
92
93
|
applyWgpuEffectBlitPass(state, src, dst);
|
|
93
|
-
}
|
|
94
94
|
applyWgpuEffectBlitPass(state, s1, dst);
|
|
95
|
+
if (sourceMode === 'knockout')
|
|
96
|
+
applyWgpuEffectErasePass(state, src, dst);
|
|
95
97
|
releaseWgpuRenderTarget(pool, s0);
|
|
96
98
|
releaseWgpuRenderTarget(pool, s1);
|
|
97
99
|
releaseWgpuRenderTarget(pool, s2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuGradientBevelEffect.js","sourceRoot":"","sources":["../src/wgpuGradientBevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AASzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuGradientBevelEffect.js","sourceRoot":"","sources":["../src/wgpuGradientBevelEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuGradientGlowEffect.d.ts","sourceRoot":"","sources":["../src/wgpuGradientGlowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAYzB,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACnC,IAAI,
|
|
1
|
+
{"version":3,"file":"wgpuGradientGlowEffect.d.ts","sourceRoot":"","sources":["../src/wgpuGradientGlowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAYzB,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACnC,IAAI,CA6DN;AAED,eAAO,MAAM,mCAAmC,EAAE,sBAEjD,CAAC"}
|