@flighthq/effects 0.2.0 → 0.2.1-next.423.3350e53

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.
Files changed (57) hide show
  1. package/dist/bevelEffect.js +1 -1
  2. package/dist/bevelEffect.js.map +1 -1
  3. package/dist/blendEffect.d.ts +3 -0
  4. package/dist/blendEffect.d.ts.map +1 -0
  5. package/dist/blendEffect.js +10 -0
  6. package/dist/blendEffect.js.map +1 -0
  7. package/dist/blendModeMath.d.ts +6 -0
  8. package/dist/blendModeMath.d.ts.map +1 -0
  9. package/dist/blendModeMath.js +172 -0
  10. package/dist/blendModeMath.js.map +1 -0
  11. package/dist/compositeEffect.d.ts +3 -0
  12. package/dist/compositeEffect.d.ts.map +1 -0
  13. package/dist/compositeEffect.js +10 -0
  14. package/dist/compositeEffect.js.map +1 -0
  15. package/dist/compositeOperatorMath.d.ts +3 -0
  16. package/dist/compositeOperatorMath.d.ts.map +1 -0
  17. package/dist/compositeOperatorMath.js +65 -0
  18. package/dist/compositeOperatorMath.js.map +1 -0
  19. package/dist/dropShadowEffect.js +1 -1
  20. package/dist/dropShadowEffect.js.map +1 -1
  21. package/dist/gradientBevelEffect.js +1 -1
  22. package/dist/gradientBevelEffect.js.map +1 -1
  23. package/dist/gradientGlowEffect.js +1 -1
  24. package/dist/gradientGlowEffect.js.map +1 -1
  25. package/dist/index.d.ts +4 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +4 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/innerGlowEffect.js +1 -1
  30. package/dist/innerGlowEffect.js.map +1 -1
  31. package/dist/innerShadowEffect.js +1 -1
  32. package/dist/innerShadowEffect.js.map +1 -1
  33. package/dist/outerGlowEffect.js +1 -1
  34. package/dist/outerGlowEffect.js.map +1 -1
  35. package/dist/renderEffectDefaults.js +35 -6
  36. package/dist/renderEffectDefaults.js.map +1 -1
  37. package/dist/renderEffectInputs.d.ts.map +1 -1
  38. package/dist/renderEffectInputs.js +1 -0
  39. package/dist/renderEffectInputs.js.map +1 -1
  40. package/package.json +2 -2
  41. package/src/bevelEffect.test.ts +4 -1
  42. package/src/blendEffect.test.ts +23 -0
  43. package/src/blendModeMath.test.ts +160 -0
  44. package/src/compositeEffect.test.ts +21 -0
  45. package/src/compositeOperatorMath.test.ts +45 -0
  46. package/src/dropShadowEffect.test.ts +4 -1
  47. package/src/gradientBevelEffect.test.ts +8 -2
  48. package/src/gradientGlowEffect.test.ts +8 -2
  49. package/src/innerGlowEffect.test.ts +4 -0
  50. package/src/innerShadowEffect.test.ts +4 -0
  51. package/src/outerGlowEffect.test.ts +4 -1
  52. package/src/renderEffectDefaults.test.ts +9 -0
  53. package/dist/colorScienceMath.d.ts +0 -9
  54. package/dist/colorScienceMath.d.ts.map +0 -1
  55. package/dist/colorScienceMath.js +0 -135
  56. package/dist/colorScienceMath.js.map +0 -1
  57. package/src/colorScienceMath.test.ts +0 -160
@@ -1,4 +1,4 @@
1
- // Bevel composite effect: the directional gradient of the blurred silhouette drives a highlight/shadow edge band, clipped by bevelType and composited over the source.
1
+ // Bevel composite effect: the directional gradient of the blurred silhouette drives a highlight/shadow edge band, clipped by bevelType, then applies sourceMode compositing.
2
2
  export function createBevelEffect(options = {}) {
3
3
  return { kind: 'BevelEffect', ...options };
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bevelEffect.js","sourceRoot":"","sources":["../src/bevelEffect.ts"],"names":[],"mappings":"AAEA,uKAAuK;AACvK,MAAM,UAAU,iBAAiB,CAAC,UAA+C,EAAE;IACjF,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"bevelEffect.js","sourceRoot":"","sources":["../src/bevelEffect.ts"],"names":[],"mappings":"AAEA,6KAA6K;AAC7K,MAAM,UAAU,iBAAiB,CAAC,UAA+C,EAAE;IACjF,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AdvancedBlendMode, BlendEffect } from '@flighthq/types';
2
+ export declare function createBlendEffect(mode: AdvancedBlendMode, options?: Readonly<Omit<BlendEffect, 'kind' | 'mode'>>): BlendEffect;
3
+ //# sourceMappingURL=blendEffect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blendEffect.d.ts","sourceRoot":"","sources":["../src/blendEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQtE,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,EACvB,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,CAAM,GACzD,WAAW,CAEb"}
@@ -0,0 +1,10 @@
1
+ // Advanced-blend composite effect: blends the incoming pipeline layer over a registered backdrop using
2
+ // a destination-reading / non-separable mode (the AdvancedBlendMode vocabulary the fixed-function
3
+ // BlendMode enum deliberately excludes). `mode` is required; `backdropKey` names the per-state backdrop
4
+ // texture the backend samples (registerGlBlendEffectBackdrop), and `opacity` scales the layer's
5
+ // contribution 0..1 (default 1). The backend bounces this through an offscreen and samples layer +
6
+ // backdrop — it is an effect you apply explicitly, not a cheap node property.
7
+ export function createBlendEffect(mode, options = {}) {
8
+ return { kind: 'BlendEffect', mode, ...options };
9
+ }
10
+ //# sourceMappingURL=blendEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blendEffect.js","sourceRoot":"","sources":["../src/blendEffect.ts"],"names":[],"mappings":"AAEA,uGAAuG;AACvG,kGAAkG;AAClG,wGAAwG;AACxG,gGAAgG;AAChG,mGAAmG;AACnG,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAC/B,IAAuB,EACvB,UAAwD,EAAE;IAE1D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACnD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { AdvancedBlendMode } from '@flighthq/types';
2
+ export declare function blendNonSeparableRgb(mode: AdvancedBlendMode, cbR: number, cbG: number, cbB: number, csR: number, csG: number, csB: number, out: [number, number, number] | Float32Array | number[]): void;
3
+ export declare function getAdvancedBlendRgb(mode: AdvancedBlendMode, cbR: number, cbG: number, cbB: number, csR: number, csG: number, csB: number, out: [number, number, number] | Float32Array | number[]): void;
4
+ export declare function getSeparableBlendChannel(mode: AdvancedBlendMode, cb: number, cs: number): number;
5
+ export declare function isNonSeparableBlendMode(mode: AdvancedBlendMode): boolean;
6
+ //# sourceMappingURL=blendModeMath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blendModeMath.d.ts","sourceRoot":"","sources":["../src/blendModeMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAiBpD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,iBAAiB,EACvB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,GAAG,MAAM,EAAE,GACtD,IAAI,CAgCN;AAKD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,iBAAiB,EACvB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,GAAG,MAAM,EAAE,GACtD,IAAI,CAWN;AAID,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CA4BhG;AAID,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAOxE"}
@@ -0,0 +1,172 @@
1
+ import { AdvancedBlendMode } from '@flighthq/types';
2
+ // Pure blend-mode math — the substrate-agnostic ground truth the GL (and any future) backend shaders
3
+ // mirror, so the composite-recipe fragment source can be verified against plain numbers. All values are
4
+ // normalized 0..1 (backdrop `cb`, source `cs`). The formulas follow the W3C Compositing and Blending
5
+ // spec: the seven separable modes blend each channel independently (getSeparableBlendChannel); the four
6
+ // non-separable HSL modes blend a whole RGB triple by transplanting one HSL attribute
7
+ // (blendNonSeparableRgb). getAdvancedBlendRgb dispatches either path by mode, writing into `out`.
8
+ //
9
+ // This is the blend function B(cb, cs) alone — the caller composites B into the final pixel with the
10
+ // backdrop/source alphas (Porter-Duff source-over of the blended color), which is a separate step the
11
+ // backend's alpha compositing performs. Unknown modes fall through to Normal (the source color).
12
+ // The four non-separable HSL blend modes on 0..1 RGB, following the W3C spec's Hue/Sat/Color/Lum
13
+ // primitives (Lum via a luminosity-preserving clip, Sat via setSat on sorted channels). Writes the
14
+ // blended triple into `out[0..2]`. Alias-safe: reads all inputs before writing `out`. Unknown modes
15
+ // fall through to the source triple (Normal).
16
+ export function blendNonSeparableRgb(mode, cbR, cbG, cbB, csR, csG, csB, out) {
17
+ let r;
18
+ let g;
19
+ let b;
20
+ switch (mode) {
21
+ case AdvancedBlendMode.Hue:
22
+ // Source hue, backdrop saturation, backdrop luminosity.
23
+ [r, g, b] = setBlendSaturation(csR, csG, csB, blendSaturation(cbR, cbG, cbB));
24
+ [r, g, b] = setBlendLuminosity(r, g, b, blendLuminosity(cbR, cbG, cbB));
25
+ break;
26
+ case AdvancedBlendMode.Saturation:
27
+ // Backdrop hue, source saturation, backdrop luminosity.
28
+ [r, g, b] = setBlendSaturation(cbR, cbG, cbB, blendSaturation(csR, csG, csB));
29
+ [r, g, b] = setBlendLuminosity(r, g, b, blendLuminosity(cbR, cbG, cbB));
30
+ break;
31
+ case AdvancedBlendMode.Color:
32
+ // Source hue + saturation, backdrop luminosity.
33
+ [r, g, b] = setBlendLuminosity(csR, csG, csB, blendLuminosity(cbR, cbG, cbB));
34
+ break;
35
+ case AdvancedBlendMode.Luminosity:
36
+ // Backdrop hue + saturation, source luminosity.
37
+ [r, g, b] = setBlendLuminosity(cbR, cbG, cbB, blendLuminosity(csR, csG, csB));
38
+ break;
39
+ default:
40
+ r = csR;
41
+ g = csG;
42
+ b = csB;
43
+ break;
44
+ }
45
+ out[0] = r;
46
+ out[1] = g;
47
+ out[2] = b;
48
+ }
49
+ // Dispatches the advanced blend for a whole RGB triple, writing the blended (pre-alpha-composite) color
50
+ // into `out[0..2]`. Separable modes reduce to three getSeparableBlendChannel calls; the HSL modes route
51
+ // to blendNonSeparableRgb. Alias-safe: reads all six inputs before writing `out`.
52
+ export function getAdvancedBlendRgb(mode, cbR, cbG, cbB, csR, csG, csB, out) {
53
+ if (isNonSeparableBlendMode(mode)) {
54
+ blendNonSeparableRgb(mode, cbR, cbG, cbB, csR, csG, csB, out);
55
+ return;
56
+ }
57
+ const r = getSeparableBlendChannel(mode, cbR, csR);
58
+ const g = getSeparableBlendChannel(mode, cbG, csG);
59
+ const b = getSeparableBlendChannel(mode, cbB, csB);
60
+ out[0] = r;
61
+ out[1] = g;
62
+ out[2] = b;
63
+ }
64
+ // Separable per-channel blend on 0..1 values (backdrop `cb`, source `cs`). Covers the seven separable
65
+ // AdvancedBlendMode members; any non-separable or unknown mode returns the source channel (Normal).
66
+ export function getSeparableBlendChannel(mode, cb, cs) {
67
+ switch (mode) {
68
+ case AdvancedBlendMode.Overlay:
69
+ // Overlay = HardLight with operands swapped: hard-light the backdrop by the source.
70
+ return cb <= 0.5 ? 2 * cb * cs : 1 - 2 * (1 - cb) * (1 - cs);
71
+ case AdvancedBlendMode.HardLight:
72
+ return cs <= 0.5 ? 2 * cb * cs : 1 - 2 * (1 - cb) * (1 - cs);
73
+ case AdvancedBlendMode.SoftLight: {
74
+ const d = cb <= 0.25 ? ((16 * cb - 12) * cb + 4) * cb : Math.sqrt(cb);
75
+ return cs <= 0.5 ? cb - (1 - 2 * cs) * cb * (1 - cb) : cb + (2 * cs - 1) * (d - cb);
76
+ }
77
+ case AdvancedBlendMode.Difference:
78
+ return Math.abs(cb - cs);
79
+ case AdvancedBlendMode.Exclusion:
80
+ return cb + cs - 2 * cb * cs;
81
+ case AdvancedBlendMode.ColorDodge:
82
+ // W3C: 0→0, source==1→1, else min(1, backdrop / (1 - source)).
83
+ if (cb <= 0)
84
+ return 0;
85
+ if (cs >= 1)
86
+ return 1;
87
+ return Math.min(1, cb / (1 - cs));
88
+ case AdvancedBlendMode.ColorBurn:
89
+ // W3C: 1→1, source==0→0, else 1 - min(1, (1 - backdrop) / source).
90
+ if (cb >= 1)
91
+ return 1;
92
+ if (cs <= 0)
93
+ return 0;
94
+ return 1 - Math.min(1, (1 - cb) / cs);
95
+ default:
96
+ return cs;
97
+ }
98
+ }
99
+ // True for the four non-separable HSL blend modes (Hue/Saturation/Color/Luminosity), which cannot be
100
+ // computed per channel because they transplant a whole HSL attribute from one triple to the other.
101
+ export function isNonSeparableBlendMode(mode) {
102
+ return (mode === AdvancedBlendMode.Hue ||
103
+ mode === AdvancedBlendMode.Saturation ||
104
+ mode === AdvancedBlendMode.Color ||
105
+ mode === AdvancedBlendMode.Luminosity);
106
+ }
107
+ // W3C lum(): the Rec.601 luma of an RGB triple.
108
+ function blendLuminosity(r, g, b) {
109
+ return 0.3 * r + 0.59 * g + 0.11 * b;
110
+ }
111
+ // W3C sat(): the chroma range (max - min) of an RGB triple.
112
+ function blendSaturation(r, g, b) {
113
+ return Math.max(r, g, b) - Math.min(r, g, b);
114
+ }
115
+ // W3C ClipColor(): pull any out-of-gamut channel back toward the color's luminosity so the result stays
116
+ // in 0..1 without shifting perceived brightness.
117
+ function clipBlendColor(r, g, b) {
118
+ const l = blendLuminosity(r, g, b);
119
+ const min = Math.min(r, g, b);
120
+ const max = Math.max(r, g, b);
121
+ let cr = r;
122
+ let cg = g;
123
+ let cb = b;
124
+ if (min < 0) {
125
+ const denom = l - min;
126
+ cr = l + ((cr - l) * l) / denom;
127
+ cg = l + ((cg - l) * l) / denom;
128
+ cb = l + ((cb - l) * l) / denom;
129
+ }
130
+ if (max > 1) {
131
+ const denom = max - l;
132
+ cr = l + ((cr - l) * (1 - l)) / denom;
133
+ cg = l + ((cg - l) * (1 - l)) / denom;
134
+ cb = l + ((cb - l) * (1 - l)) / denom;
135
+ }
136
+ return [cr, cg, cb];
137
+ }
138
+ // W3C SetLum(): shift an RGB triple to the target luminosity, then clip back into gamut.
139
+ function setBlendLuminosity(r, g, b, target) {
140
+ const d = target - blendLuminosity(r, g, b);
141
+ return clipBlendColor(r + d, g + d, b + d);
142
+ }
143
+ // W3C SetSat(): rescale an RGB triple's mid/max channels to the target saturation while pinning its
144
+ // minimum to black, preserving hue. Operates by resolving the sorted (min, mid, max) positions.
145
+ function setBlendSaturation(r, g, b, target) {
146
+ const out = [r, g, b];
147
+ // Indices of the min / mid / max channels.
148
+ let iMin = 0;
149
+ let iMax = 0;
150
+ for (let i = 1; i < 3; i++) {
151
+ if (out[i] < out[iMin])
152
+ iMin = i;
153
+ if (out[i] > out[iMax])
154
+ iMax = i;
155
+ }
156
+ if (iMin === iMax) {
157
+ // All channels equal after a degenerate sort — pick a distinct mid deterministically.
158
+ iMax = (iMin + 1) % 3;
159
+ }
160
+ const iMid = 3 - iMin - iMax;
161
+ if (out[iMax] > out[iMin]) {
162
+ out[iMid] = ((out[iMid] - out[iMin]) * target) / (out[iMax] - out[iMin]);
163
+ out[iMax] = target;
164
+ }
165
+ else {
166
+ out[iMid] = 0;
167
+ out[iMax] = 0;
168
+ }
169
+ out[iMin] = 0;
170
+ return out;
171
+ }
172
+ //# sourceMappingURL=blendModeMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blendModeMath.js","sourceRoot":"","sources":["../src/blendModeMath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CompositeEffect, CompositeOperator } from '@flighthq/types';
2
+ export declare function createCompositeEffect(operator: CompositeOperator, options?: Readonly<Omit<CompositeEffect, 'kind' | 'operator'>>): CompositeEffect;
3
+ //# sourceMappingURL=compositeEffect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compositeEffect.d.ts","sourceRoot":"","sources":["../src/compositeEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAQ1E,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU,CAAC,CAAM,GACjE,eAAe,CAEjB"}
@@ -0,0 +1,10 @@
1
+ // Porter-Duff composite effect: merges the incoming pipeline layer over a registered backdrop with a
2
+ // coverage operator (the CompositeOperator vocabulary — Erase = DestinationOut, Alpha = DestinationIn,
3
+ // and the rest of the set). `operator` is required; `backdropKey` names the per-state backdrop texture the
4
+ // backend samples. It is the cheap sibling of createBlendEffect: a fixed-function coverage combine rather
5
+ // than a shader blend, but still an explicit effect because a non-source-over operator is only meaningful
6
+ // against an isolated layer.
7
+ export function createCompositeEffect(operator, options = {}) {
8
+ return { kind: 'CompositeEffect', operator, ...options };
9
+ }
10
+ //# sourceMappingURL=compositeEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compositeEffect.js","sourceRoot":"","sources":["../src/compositeEffect.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,uGAAuG;AACvG,2GAA2G;AAC3G,0GAA0G;AAC1G,0GAA0G;AAC1G,6BAA6B;AAC7B,MAAM,UAAU,qBAAqB,CACnC,QAA2B,EAC3B,UAAgE,EAAE;IAElE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CompositeOperator } from '@flighthq/types';
2
+ export declare function getCompositeOperatorFactors(operator: CompositeOperator, sourceAlpha: number, backdropAlpha: number, out: [number, number] | Float32Array | number[]): void;
3
+ //# sourceMappingURL=compositeOperatorMath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compositeOperatorMath.d.ts","sourceRoot":"","sources":["../src/compositeOperatorMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAUpD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,GAAG,MAAM,EAAE,GAC9C,IAAI,CAsDN"}
@@ -0,0 +1,65 @@
1
+ import { CompositeOperator } from '@flighthq/types';
2
+ // Premultiplied Porter-Duff coverage factors — the substrate-agnostic ground truth for how an isolated
3
+ // layer (`source`) merges into its backdrop. The composited pixel is `Fa*source + Fb*backdrop` applied to
4
+ // premultiplied color (rgb and a alike), where Fa/Fb depend only on the operator and the two coverage
5
+ // alphas (`sourceAlpha` = as, `backdropAlpha` = ab). The GL fixed-function blendFunc factor pairs and the
6
+ // Canvas globalCompositeOperation names both mirror these, so every backend is verifiable against plain
7
+ // numbers. This is a closed set (the eleven Porter-Duff operators); custom operators are wired per-backend
8
+ // (registerGlCompositeOperator) with their own factors, so an unknown operator here falls through to
9
+ // SourceOver. Writes [Fa, Fb] into `out`; alias-safe (reads inputs before writing).
10
+ export function getCompositeOperatorFactors(operator, sourceAlpha, backdropAlpha, out) {
11
+ const as = sourceAlpha;
12
+ const ab = backdropAlpha;
13
+ let fa;
14
+ let fb;
15
+ switch (operator) {
16
+ case CompositeOperator.Clear:
17
+ fa = 0;
18
+ fb = 0;
19
+ break;
20
+ case CompositeOperator.Copy:
21
+ fa = 1;
22
+ fb = 0;
23
+ break;
24
+ case CompositeOperator.DestinationAtop:
25
+ fa = 1 - ab;
26
+ fb = as;
27
+ break;
28
+ case CompositeOperator.DestinationIn:
29
+ fa = 0;
30
+ fb = as;
31
+ break;
32
+ case CompositeOperator.DestinationOut:
33
+ fa = 0;
34
+ fb = 1 - as;
35
+ break;
36
+ case CompositeOperator.DestinationOver:
37
+ fa = 1 - ab;
38
+ fb = 1;
39
+ break;
40
+ case CompositeOperator.SourceAtop:
41
+ fa = ab;
42
+ fb = 1 - as;
43
+ break;
44
+ case CompositeOperator.SourceIn:
45
+ fa = ab;
46
+ fb = 0;
47
+ break;
48
+ case CompositeOperator.SourceOut:
49
+ fa = 1 - ab;
50
+ fb = 0;
51
+ break;
52
+ case CompositeOperator.Xor:
53
+ fa = 1 - ab;
54
+ fb = 1 - as;
55
+ break;
56
+ default:
57
+ // SourceOver: source over backdrop.
58
+ fa = 1;
59
+ fb = 1 - as;
60
+ break;
61
+ }
62
+ out[0] = fa;
63
+ out[1] = fb;
64
+ }
65
+ //# sourceMappingURL=compositeOperatorMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compositeOperatorMath.js","sourceRoot":"","sources":["../src/compositeOperatorMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,uGAAuG;AACvG,0GAA0G;AAC1G,sGAAsG;AACtG,0GAA0G;AAC1G,wGAAwG;AACxG,2GAA2G;AAC3G,qGAAqG;AACrG,oFAAoF;AACpF,MAAM,UAAU,2BAA2B,CACzC,QAA2B,EAC3B,WAAmB,EACnB,aAAqB,EACrB,GAA+C;IAE/C,MAAM,EAAE,GAAG,WAAW,CAAC;IACvB,MAAM,EAAE,GAAG,aAAa,CAAC;IACzB,IAAI,EAAU,CAAC;IACf,IAAI,EAAU,CAAC;IACf,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,iBAAiB,CAAC,KAAK;YAC1B,EAAE,GAAG,CAAC,CAAC;YACP,EAAE,GAAG,CAAC,CAAC;YACP,MAAM;QACR,KAAK,iBAAiB,CAAC,IAAI;YACzB,EAAE,GAAG,CAAC,CAAC;YACP,EAAE,GAAG,CAAC,CAAC;YACP,MAAM;QACR,KAAK,iBAAiB,CAAC,eAAe;YACpC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,EAAE,GAAG,EAAE,CAAC;YACR,MAAM;QACR,KAAK,iBAAiB,CAAC,aAAa;YAClC,EAAE,GAAG,CAAC,CAAC;YACP,EAAE,GAAG,EAAE,CAAC;YACR,MAAM;QACR,KAAK,iBAAiB,CAAC,cAAc;YACnC,EAAE,GAAG,CAAC,CAAC;YACP,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,MAAM;QACR,KAAK,iBAAiB,CAAC,eAAe;YACpC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,EAAE,GAAG,CAAC,CAAC;YACP,MAAM;QACR,KAAK,iBAAiB,CAAC,UAAU;YAC/B,EAAE,GAAG,EAAE,CAAC;YACR,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,MAAM;QACR,KAAK,iBAAiB,CAAC,QAAQ;YAC7B,EAAE,GAAG,EAAE,CAAC;YACR,EAAE,GAAG,CAAC,CAAC;YACP,MAAM;QACR,KAAK,iBAAiB,CAAC,SAAS;YAC9B,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,EAAE,GAAG,CAAC,CAAC;YACP,MAAM;QACR,KAAK,iBAAiB,CAAC,GAAG;YACxB,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,MAAM;QACR;YACE,oCAAoC;YACpC,EAAE,GAAG,CAAC,CAAC;YACP,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,MAAM;IACV,CAAC;IACD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACZ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,CAAC"}
@@ -1,4 +1,4 @@
1
- // Drop-shadow composite effect: tint the scene silhouette, blur it, offset it by angle/distance, then composite the source over the shadow.
1
+ // Drop-shadow composite effect: tint the scene silhouette, blur it, offset it by angle/distance, then apply sourceMode compositing.
2
2
  export function createDropShadowEffect(options = {}) {
3
3
  return { kind: 'DropShadowEffect', ...options };
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dropShadowEffect.js","sourceRoot":"","sources":["../src/dropShadowEffect.ts"],"names":[],"mappings":"AAEA,4IAA4I;AAC5I,MAAM,UAAU,sBAAsB,CAAC,UAAoD,EAAE;IAC3F,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"dropShadowEffect.js","sourceRoot":"","sources":["../src/dropShadowEffect.ts"],"names":[],"mappings":"AAEA,oIAAoI;AACpI,MAAM,UAAU,sBAAsB,CAAC,UAAoD,EAAE;IAC3F,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,CAAC;AAClD,CAAC"}
@@ -1,4 +1,4 @@
1
- // 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.
1
+ // 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.
2
2
  export function createGradientBevelEffect(options) {
3
3
  return { kind: 'GradientBevelEffect', ...options };
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gradientBevelEffect.js","sourceRoot":"","sources":["../src/gradientBevelEffect.ts"],"names":[],"mappings":"AAEA,wKAAwK;AACxK,MAAM,UAAU,yBAAyB,CAAC,OAAoD;IAC5F,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,OAAO,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"gradientBevelEffect.js","sourceRoot":"","sources":["../src/gradientBevelEffect.ts"],"names":[],"mappings":"AAEA,oNAAoN;AACpN,MAAM,UAAU,yBAAyB,CAAC,OAAoD;IAC5F,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,OAAO,EAAE,CAAC;AACrD,CAAC"}
@@ -1,4 +1,4 @@
1
- // Gradient-glow composite effect: an outer glow whose color is looked up from a colors/alphas/ratios gradient ramp indexed by the blurred silhouette alpha.
1
+ // Gradient-glow composite effect: an outer glow whose color is looked up from a colors/alphas/ratios gradient ramp indexed by the blurred silhouette alpha, then sourceMode decides source compositing.
2
2
  export function createGradientGlowEffect(options) {
3
3
  return { kind: 'GradientGlowEffect', ...options };
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gradientGlowEffect.js","sourceRoot":"","sources":["../src/gradientGlowEffect.ts"],"names":[],"mappings":"AAEA,4JAA4J;AAC5J,MAAM,UAAU,wBAAwB,CAAC,OAAmD;IAC1F,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"gradientGlowEffect.js","sourceRoot":"","sources":["../src/gradientGlowEffect.ts"],"names":[],"mappings":"AAEA,wMAAwM;AACxM,MAAM,UAAU,wBAAwB,CAAC,OAAmD;IAC1F,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;AACpD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export * from './autoExposureEffect';
2
2
  export * from './barrelDistortionEffect';
3
3
  export * from './bevelEffect';
4
+ export * from './blendEffect';
5
+ export * from './blendModeMath';
4
6
  export * from './bloomEffect';
5
7
  export * from './blurDownsample';
6
8
  export * from './blurEffect';
@@ -8,8 +10,9 @@ export * from './bokehDepthOfFieldEffect';
8
10
  export * from './boxBlurMath';
9
11
  export * from './cameraMotionBlurEffect';
10
12
  export * from './chromaticAberrationEffect';
11
- export * from './colorScienceMath';
12
13
  export * from './colorTemperatureMath';
14
+ export * from './compositeEffect';
15
+ export * from './compositeOperatorMath';
13
16
  export * from './contactShadowsEffect';
14
17
  export * from './convolutionEffect';
15
18
  export * from './crtEffect';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  export * from './autoExposureEffect';
2
2
  export * from './barrelDistortionEffect';
3
3
  export * from './bevelEffect';
4
+ export * from './blendEffect';
5
+ export * from './blendModeMath';
4
6
  export * from './bloomEffect';
5
7
  export * from './blurDownsample';
6
8
  export * from './blurEffect';
@@ -8,8 +10,9 @@ export * from './bokehDepthOfFieldEffect';
8
10
  export * from './boxBlurMath';
9
11
  export * from './cameraMotionBlurEffect';
10
12
  export * from './chromaticAberrationEffect';
11
- export * from './colorScienceMath';
12
13
  export * from './colorTemperatureMath';
14
+ export * from './compositeEffect';
15
+ export * from './compositeOperatorMath';
13
16
  export * from './contactShadowsEffect';
14
17
  export * from './convolutionEffect';
15
18
  export * from './crtEffect';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
@@ -1,4 +1,4 @@
1
- // Inner-glow composite effect: tint the inverted silhouette, blur inward, clip to the source alpha, then composite over the source.
1
+ // Inner-glow composite effect: tint the inverted silhouette, blur inward, clip to the source alpha, then draw or hide the source.
2
2
  export function createInnerGlowEffect(options = {}) {
3
3
  return { kind: 'InnerGlowEffect', ...options };
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"innerGlowEffect.js","sourceRoot":"","sources":["../src/innerGlowEffect.ts"],"names":[],"mappings":"AAEA,oIAAoI;AACpI,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"innerGlowEffect.js","sourceRoot":"","sources":["../src/innerGlowEffect.ts"],"names":[],"mappings":"AAEA,kIAAkI;AAClI,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC"}
@@ -1,4 +1,4 @@
1
- // Inner-shadow composite effect: tint the inverted silhouette, blur, offset by angle/distance, clip to the source alpha, then composite over the source.
1
+ // Inner-shadow composite effect: tint the inverted silhouette, blur, offset by angle/distance, clip to the source alpha, then draw or hide the source.
2
2
  export function createInnerShadowEffect(options = {}) {
3
3
  return { kind: 'InnerShadowEffect', ...options };
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"innerShadowEffect.js","sourceRoot":"","sources":["../src/innerShadowEffect.ts"],"names":[],"mappings":"AAEA,yJAAyJ;AACzJ,MAAM,UAAU,uBAAuB,CAAC,UAAqD,EAAE;IAC7F,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,OAAO,EAAE,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"innerShadowEffect.js","sourceRoot":"","sources":["../src/innerShadowEffect.ts"],"names":[],"mappings":"AAEA,uJAAuJ;AACvJ,MAAM,UAAU,uBAAuB,CAAC,UAAqD,EAAE;IAC7F,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,OAAO,EAAE,CAAC;AACnD,CAAC"}
@@ -1,4 +1,4 @@
1
- // Outer-glow composite effect: tint the scene silhouette, blur it centered (no offset), then composite the source over the glow.
1
+ // Outer-glow composite effect: tint the scene silhouette, blur it centered (no offset), then apply sourceMode compositing.
2
2
  export function createOuterGlowEffect(options = {}) {
3
3
  return { kind: 'OuterGlowEffect', ...options };
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"outerGlowEffect.js","sourceRoot":"","sources":["../src/outerGlowEffect.ts"],"names":[],"mappings":"AAEA,iIAAiI;AACjI,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"outerGlowEffect.js","sourceRoot":"","sources":["../src/outerGlowEffect.ts"],"names":[],"mappings":"AAEA,2HAA2H;AAC3H,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC"}
@@ -53,8 +53,10 @@ const DEFAULTS = {
53
53
  quality: 1,
54
54
  shadowAlpha: 1,
55
55
  shadowColor: 0x000000,
56
+ sourceMode: 'draw',
56
57
  strength: 1,
57
58
  },
59
+ BlendEffect: { opacity: 1 },
58
60
  BloomEffect: { brightness: 1, mipCount: 0, passes: 1, radius: 8, threshold: 0.8, thresholdKnee: 0.5 },
59
61
  BlurEffect: { blurX: 4, blurY: 4 },
60
62
  BokehDepthOfFieldEffect: { apertureBlades: 6, maxBlurRadius: 16, samples: 16 },
@@ -66,24 +68,51 @@ const DEFAULTS = {
66
68
  DirectionalBlurEffect: { angle: 0, samples: 8 },
67
69
  DisplacementEffect: { frequency: 12, intensity: 8 },
68
70
  DitherEffect: { levels: 16 },
69
- DropShadowEffect: { alpha: 1, angle: 45, blurX: 4, blurY: 4, distance: 4, quality: 1, strength: 1 },
71
+ DropShadowEffect: {
72
+ alpha: 1,
73
+ angle: 45,
74
+ blurX: 4,
75
+ blurY: 4,
76
+ distance: 4,
77
+ quality: 1,
78
+ sourceMode: 'draw',
79
+ strength: 1,
80
+ },
70
81
  FilmEmulationEffect: { gateWeave: 0, grainIntensity: 0.1, halationRadius: 4, halationStrength: 0.3 },
71
82
  FilmGrainEffect: { intensity: 0.2, size: 1, seed: 0 },
72
83
  FxaaEffect: { edgeThreshold: 0.0312, subpixel: 0.75 },
73
84
  GlitchEffect: { blockSize: 24, colorShift: 8, intensity: 0.5, seed: 0 },
74
85
  GodRaysEffect: { centerX: 0.5, centerY: 0.5, decay: 0.96, density: 0.96, exposure: 0.1, samples: 100, weight: 0.4 },
75
- GradientBevelEffect: { angle: 45, bevelType: 'inner', blurX: 4, blurY: 4, distance: 4, quality: 1, strength: 1 },
76
- GradientGlowEffect: { blurX: 6, blurY: 6, quality: 1, strength: 1 },
86
+ GradientBevelEffect: {
87
+ angle: 45,
88
+ bevelType: 'inner',
89
+ blurX: 4,
90
+ blurY: 4,
91
+ distance: 4,
92
+ quality: 1,
93
+ sourceMode: 'draw',
94
+ strength: 1,
95
+ },
96
+ GradientGlowEffect: { blurX: 6, blurY: 6, quality: 1, sourceMode: 'draw', strength: 1 },
77
97
  HalftoneEffect: { angle: 0.785, scale: 8 }, // 0.785 ≈ π/4 = 45°
78
- InnerGlowEffect: { alpha: 1, blurX: 6, blurY: 6, color: 0xff0000, quality: 1, strength: 1 },
79
- InnerShadowEffect: { alpha: 1, angle: 45, blurX: 4, blurY: 4, distance: 4, quality: 1, strength: 1 },
98
+ InnerGlowEffect: { alpha: 1, blurX: 6, blurY: 6, color: 0xff0000, quality: 1, sourceMode: 'draw', strength: 1 },
99
+ InnerShadowEffect: {
100
+ alpha: 1,
101
+ angle: 45,
102
+ blurX: 4,
103
+ blurY: 4,
104
+ distance: 4,
105
+ quality: 1,
106
+ sourceMode: 'draw',
107
+ strength: 1,
108
+ },
80
109
  KuwaharaEffect: { radius: 3 },
81
110
  LensDirtEffect: { intensity: 1, threshold: 0.55 },
82
111
  LensDistortionEffect: { amount: 0.5, scale: 0.9 },
83
112
  LensFlareEffect: { ghosts: 4, halo: 0.5, intensity: 1, threshold: 0.9 },
84
113
  MedianEffect: { radius: 1 },
85
114
  MotionBlurEffect: { intensity: 1, samples: 8, shutterAngle: 180, target: 'both' },
86
- OuterGlowEffect: { alpha: 1, blurX: 6, blurY: 6, color: 0xff0000, quality: 1, strength: 1 },
115
+ OuterGlowEffect: { alpha: 1, blurX: 6, blurY: 6, color: 0xff0000, quality: 1, sourceMode: 'draw', strength: 1 },
87
116
  OutlineEffect: { color: 0x000000ff, thickness: 1, threshold: 0.1 },
88
117
  PanniniProjectionEffect: { compression: 0.5, crop: 0 },
89
118
  PixelateEffect: { size: 8 },
@@ -1 +1 @@
1
- {"version":3,"file":"renderEffectDefaults.js","sourceRoot":"","sources":["../src/renderEffectDefaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderEffectDefaults.js","sourceRoot":"","sources":["../src/renderEffectDefaults.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderEffectInputs.d.ts","sourceRoot":"","sources":["../src/renderEffectInputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKvE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,iBAAiB,EAAE,CAElG;AAID,wBAAgB,oBAAoB,IAAI,SAAS,MAAM,EAAE,CAExD;AAwBD,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAoDhD,CAAC"}
1
+ {"version":3,"file":"renderEffectInputs.d.ts","sourceRoot":"","sources":["../src/renderEffectInputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKvE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,iBAAiB,EAAE,CAElG;AAID,wBAAgB,oBAAoB,IAAI,SAAS,MAAM,EAAE,CAExD;AAwBD,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAqDhD,CAAC"}
@@ -34,6 +34,7 @@ export const RENDER_EFFECT_KINDS = [
34
34
  'AutoExposureEffect',
35
35
  'BarrelDistortionEffect',
36
36
  'BevelEffect',
37
+ 'BlendEffect',
37
38
  'BloomEffect',
38
39
  'BlurEffect',
39
40
  'BokehDepthOfFieldEffect',
@@ -1 +1 @@
1
- {"version":3,"file":"renderEffectInputs.js","sourceRoot":"","sources":["../src/renderEffectInputs.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,wFAAwF;AACxF,0EAA0E;AAC1E,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,OAAO,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,4FAA4F;AAC5F,6FAA6F;AAC7F,MAAM,UAAU,oBAAoB;IAClC,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,+FAA+F;AAC/F,+FAA+F;AAC/F,mGAAmG;AACnG,mFAAmF;AACnF,MAAM,oBAAoB,GAA2D;IACnF,kBAAkB,EAAE,CAAC,KAAK,CAAC;IAC3B,WAAW,EAAE,CAAC,KAAK,CAAC;IACpB,uBAAuB,EAAE,CAAC,OAAO,CAAC;IAClC,sBAAsB,EAAE,CAAC,QAAQ,CAAC;IAClC,oBAAoB,EAAE,CAAC,OAAO,CAAC;IAC/B,gBAAgB,EAAE,CAAC,QAAQ,CAAC;IAC5B,oBAAoB,EAAE,CAAC,OAAO,CAAC;IAC/B,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,eAAe,EAAE,CAAC,OAAO,CAAC;IAC1B,aAAa,EAAE,CAAC,KAAK,CAAC;IACtB,qBAAqB,EAAE,CAAC,OAAO,CAAC;CACjC,CAAC;AAEF,8FAA8F;AAC9F,iFAAiF;AACjF,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,oBAAoB;IACpB,wBAAwB;IACxB,aAAa;IACb,aAAa;IACb,YAAY;IACZ,yBAAyB;IACzB,wBAAwB;IACxB,2BAA2B;IAC3B,sBAAsB;IACtB,mBAAmB;IACnB,WAAW;IACX,oBAAoB;IACpB,uBAAuB;IACvB,oBAAoB;IACpB,cAAc;IACd,kBAAkB;IAClB,qBAAqB;IACrB,iBAAiB;IACjB,YAAY;IACZ,cAAc;IACd,eAAe;IACf,qBAAqB;IACrB,oBAAoB;IACpB,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,sBAAsB;IACtB,iBAAiB;IACjB,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,yBAAyB;IACzB,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,sBAAsB;IACtB,eAAe;IACf,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,oBAAoB;CACrB,CAAC"}
1
+ {"version":3,"file":"renderEffectInputs.js","sourceRoot":"","sources":["../src/renderEffectInputs.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,wFAAwF;AACxF,0EAA0E;AAC1E,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,OAAO,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,4FAA4F;AAC5F,6FAA6F;AAC7F,MAAM,UAAU,oBAAoB;IAClC,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,+FAA+F;AAC/F,+FAA+F;AAC/F,mGAAmG;AACnG,mFAAmF;AACnF,MAAM,oBAAoB,GAA2D;IACnF,kBAAkB,EAAE,CAAC,KAAK,CAAC;IAC3B,WAAW,EAAE,CAAC,KAAK,CAAC;IACpB,uBAAuB,EAAE,CAAC,OAAO,CAAC;IAClC,sBAAsB,EAAE,CAAC,QAAQ,CAAC;IAClC,oBAAoB,EAAE,CAAC,OAAO,CAAC;IAC/B,gBAAgB,EAAE,CAAC,QAAQ,CAAC;IAC5B,oBAAoB,EAAE,CAAC,OAAO,CAAC;IAC/B,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,eAAe,EAAE,CAAC,OAAO,CAAC;IAC1B,aAAa,EAAE,CAAC,KAAK,CAAC;IACtB,qBAAqB,EAAE,CAAC,OAAO,CAAC;CACjC,CAAC;AAEF,8FAA8F;AAC9F,iFAAiF;AACjF,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,oBAAoB;IACpB,wBAAwB;IACxB,aAAa;IACb,aAAa;IACb,aAAa;IACb,YAAY;IACZ,yBAAyB;IACzB,wBAAwB;IACxB,2BAA2B;IAC3B,sBAAsB;IACtB,mBAAmB;IACnB,WAAW;IACX,oBAAoB;IACpB,uBAAuB;IACvB,oBAAoB;IACpB,cAAc;IACd,kBAAkB;IAClB,qBAAqB;IACrB,iBAAiB;IACjB,YAAY;IACZ,cAAc;IACd,eAAe;IACf,qBAAqB;IACrB,oBAAoB;IACpB,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,sBAAsB;IACtB,iBAAiB;IACjB,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,yBAAyB;IACzB,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,sBAAsB;IACtB,eAAe;IACf,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,oBAAoB;CACrB,CAAC"}