@flighthq/effects 0.3.0-next.906.07cea63 → 0.3.0

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 (108) hide show
  1. package/dist/bevelEffect.d.ts +3 -1
  2. package/dist/bevelEffect.d.ts.map +1 -1
  3. package/dist/bevelEffect.js +12 -0
  4. package/dist/bevelEffect.js.map +1 -1
  5. package/dist/blendModeMath.d.ts.map +1 -1
  6. package/dist/blendModeMath.js +4 -0
  7. package/dist/blendModeMath.js.map +1 -1
  8. package/dist/bloomEffect.d.ts +3 -1
  9. package/dist/bloomEffect.d.ts.map +1 -1
  10. package/dist/bloomEffect.js +11 -0
  11. package/dist/bloomEffect.js.map +1 -1
  12. package/dist/blurEffect.d.ts +3 -1
  13. package/dist/blurEffect.d.ts.map +1 -1
  14. package/dist/blurEffect.js +10 -0
  15. package/dist/blurEffect.js.map +1 -1
  16. package/dist/bokehDepthOfFieldEffect.d.ts +3 -1
  17. package/dist/bokehDepthOfFieldEffect.d.ts.map +1 -1
  18. package/dist/bokehDepthOfFieldEffect.js +11 -0
  19. package/dist/bokehDepthOfFieldEffect.js.map +1 -1
  20. package/dist/contactShadowsEffect.d.ts +3 -1
  21. package/dist/contactShadowsEffect.d.ts.map +1 -1
  22. package/dist/contactShadowsEffect.js +11 -0
  23. package/dist/contactShadowsEffect.js.map +1 -1
  24. package/dist/contract.d.ts +1 -0
  25. package/dist/contract.d.ts.map +1 -1
  26. package/dist/contract.js +1 -0
  27. package/dist/contract.js.map +1 -1
  28. package/dist/convolutionEffect.d.ts +3 -1
  29. package/dist/convolutionEffect.d.ts.map +1 -1
  30. package/dist/convolutionEffect.js +17 -0
  31. package/dist/convolutionEffect.js.map +1 -1
  32. package/dist/directionalBlurEffect.d.ts +3 -1
  33. package/dist/directionalBlurEffect.d.ts.map +1 -1
  34. package/dist/directionalBlurEffect.js +16 -0
  35. package/dist/directionalBlurEffect.js.map +1 -1
  36. package/dist/displacementEffect.d.ts +3 -1
  37. package/dist/displacementEffect.d.ts.map +1 -1
  38. package/dist/displacementEffect.js +13 -0
  39. package/dist/displacementEffect.js.map +1 -1
  40. package/dist/dropShadowEffect.d.ts +3 -1
  41. package/dist/dropShadowEffect.d.ts.map +1 -1
  42. package/dist/dropShadowEffect.js +12 -0
  43. package/dist/dropShadowEffect.js.map +1 -1
  44. package/dist/glitchEffect.d.ts +3 -1
  45. package/dist/glitchEffect.d.ts.map +1 -1
  46. package/dist/glitchEffect.js +13 -0
  47. package/dist/glitchEffect.js.map +1 -1
  48. package/dist/gradientBevelEffect.d.ts +3 -1
  49. package/dist/gradientBevelEffect.d.ts.map +1 -1
  50. package/dist/gradientBevelEffect.js +12 -0
  51. package/dist/gradientBevelEffect.js.map +1 -1
  52. package/dist/gradientGlowEffect.d.ts +3 -1
  53. package/dist/gradientGlowEffect.d.ts.map +1 -1
  54. package/dist/gradientGlowEffect.js +10 -0
  55. package/dist/gradientGlowEffect.js.map +1 -1
  56. package/dist/index.d.ts +1 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +1 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/innerGlowEffect.d.ts +3 -1
  61. package/dist/innerGlowEffect.d.ts.map +1 -1
  62. package/dist/innerGlowEffect.js +10 -0
  63. package/dist/innerGlowEffect.js.map +1 -1
  64. package/dist/innerShadowEffect.d.ts +3 -1
  65. package/dist/innerShadowEffect.d.ts.map +1 -1
  66. package/dist/innerShadowEffect.js +12 -0
  67. package/dist/innerShadowEffect.js.map +1 -1
  68. package/dist/medianEffect.d.ts +3 -1
  69. package/dist/medianEffect.d.ts.map +1 -1
  70. package/dist/medianEffect.js +11 -0
  71. package/dist/medianEffect.js.map +1 -1
  72. package/dist/outerGlowEffect.d.ts +3 -1
  73. package/dist/outerGlowEffect.d.ts.map +1 -1
  74. package/dist/outerGlowEffect.js +10 -0
  75. package/dist/outerGlowEffect.js.map +1 -1
  76. package/dist/outlineEffect.d.ts +3 -1
  77. package/dist/outlineEffect.d.ts.map +1 -1
  78. package/dist/outlineEffect.js +11 -0
  79. package/dist/outlineEffect.js.map +1 -1
  80. package/dist/renderEffectPadding.d.ts +7 -0
  81. package/dist/renderEffectPadding.d.ts.map +1 -0
  82. package/dist/renderEffectPadding.js +70 -0
  83. package/dist/renderEffectPadding.js.map +1 -0
  84. package/dist/tiltShiftEffect.d.ts +3 -1
  85. package/dist/tiltShiftEffect.d.ts.map +1 -1
  86. package/dist/tiltShiftEffect.js +11 -0
  87. package/dist/tiltShiftEffect.js.map +1 -1
  88. package/package.json +6 -2
  89. package/src/bevelEffect.test.ts +24 -1
  90. package/src/blendModeMath.test.ts +15 -0
  91. package/src/bloomEffect.test.ts +31 -1
  92. package/src/blurEffect.test.ts +26 -1
  93. package/src/bokehDepthOfFieldEffect.test.ts +28 -1
  94. package/src/contactShadowsEffect.test.ts +28 -1
  95. package/src/convolutionEffect.test.ts +28 -1
  96. package/src/directionalBlurEffect.test.ts +28 -1
  97. package/src/displacementEffect.test.ts +28 -1
  98. package/src/dropShadowEffect.test.ts +28 -1
  99. package/src/glitchEffect.test.ts +24 -1
  100. package/src/gradientBevelEffect.test.ts +32 -1
  101. package/src/gradientGlowEffect.test.ts +27 -1
  102. package/src/innerGlowEffect.test.ts +28 -1
  103. package/src/innerShadowEffect.test.ts +30 -1
  104. package/src/medianEffect.test.ts +24 -1
  105. package/src/outerGlowEffect.test.ts +28 -1
  106. package/src/outlineEffect.test.ts +24 -1
  107. package/src/renderEffectPadding.test.ts +114 -0
  108. package/src/tiltShiftEffect.test.ts +28 -1
@@ -1,3 +1,5 @@
1
- import type { BevelEffect } from '@flighthq/types/contract';
1
+ import type { BevelEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function createBevelEffect(options?: Readonly<Omit<BevelEffect, 'kind'>>): BevelEffect;
3
+ export declare function getBevelEffectPadding(effect: Readonly<BevelEffect>): RenderEffectPadding;
4
+ export declare function registerBevelEffectPaddingResolver(state: RenderState): void;
3
5
  //# sourceMappingURL=bevelEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bevelEffect.d.ts","sourceRoot":"","sources":["../src/bevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAM,GAAG,WAAW,CAEhG"}
1
+ {"version":3,"file":"bevelEffect.d.ts","sourceRoot":"","sources":["../src/bevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5G,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAM,GAAG,WAAW,CAEhG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,mBAAmB,CASxF;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE3E"}
@@ -1,5 +1,17 @@
1
+ import { getDirectionalRenderEffectPadding, registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  // Bevel composite effect: the directional gradient of the blurred silhouette drives a highlight/shadow edge band, clipped by bevelType, then applies sourceMode compositing.
2
3
  export function createBevelEffect(options = {}) {
3
4
  return { kind: 'BevelEffect', ...options };
4
5
  }
6
+ export function getBevelEffectPadding(effect) {
7
+ const angle = ((effect.angle ?? 45) * Math.PI) / 180;
8
+ const distance = effect.distance ?? 4;
9
+ return getDirectionalRenderEffectPadding(effect.blurX ?? 4, effect.blurY ?? 4, Math.cos(angle) * distance, Math.sin(angle) * distance);
10
+ }
11
+ export function registerBevelEffectPaddingResolver(state) {
12
+ registerRenderEffectPaddingResolver(state, 'BevelEffect', resolveBevelEffectPadding);
13
+ }
14
+ function resolveBevelEffectPadding(effect) {
15
+ return getBevelEffectPadding(effect);
16
+ }
5
17
  //# sourceMappingURL=bevelEffect.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"bevelEffect.js","sourceRoot":"","sources":["../src/bevelEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE/G,6KAA6K;AAC7K,MAAM,UAAU,iBAAiB,CAAC,UAA+C,EAAE;IACjF,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,OAAO,iCAAiC,CACtC,MAAM,CAAC,KAAK,IAAI,CAAC,EACjB,MAAM,CAAC,KAAK,IAAI,CAAC,EACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,EAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,KAAkB;IACnE,mCAAmC,CAAC,KAAK,EAAE,aAAa,EAAE,yBAAyB,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,yBAAyB,CAAC,MAA8B;IAC/D,OAAO,qBAAqB,CAAC,MAA+B,CAAC,CAAC;AAChE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"blendModeMath.d.ts","sourceRoot":"","sources":["../src/blendModeMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAiB7D,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"}
1
+ {"version":3,"file":"blendModeMath.d.ts","sourceRoot":"","sources":["../src/blendModeMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAiB7D,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,CAgChG;AAID,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAOxE"}
@@ -74,6 +74,8 @@ export function getSeparableBlendChannel(mode, cb, cs) {
74
74
  const d = cb <= 0.25 ? ((16 * cb - 12) * cb + 4) * cb : Math.sqrt(cb);
75
75
  return cs <= 0.5 ? cb - (1 - 2 * cs) * cb * (1 - cb) : cb + (2 * cs - 1) * (d - cb);
76
76
  }
77
+ case AdvancedBlendMode.Darken:
78
+ return Math.min(cb, cs);
77
79
  case AdvancedBlendMode.Difference:
78
80
  return Math.abs(cb - cs);
79
81
  case AdvancedBlendMode.Exclusion:
@@ -85,6 +87,8 @@ export function getSeparableBlendChannel(mode, cb, cs) {
85
87
  if (cs >= 1)
86
88
  return 1;
87
89
  return Math.min(1, cb / (1 - cs));
90
+ case AdvancedBlendMode.Lighten:
91
+ return Math.max(cb, cs);
88
92
  case AdvancedBlendMode.ColorBurn:
89
93
  // W3C: 1→1, source==0→0, else 1 - min(1, (1 - backdrop) / source).
90
94
  if (cb >= 1)
@@ -1 +1 @@
1
- {"version":3,"file":"blendModeMath.js","sourceRoot":"","sources":["../src/blendModeMath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blendModeMath.js","sourceRoot":"","sources":["../src/blendModeMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,qGAAqG;AACrG,wGAAwG;AACxG,qGAAqG;AACrG,wGAAwG;AACxG,sFAAsF;AACtF,kGAAkG;AAClG,EAAE;AACF,qGAAqG;AACrG,sGAAsG;AACtG,iGAAiG;AAEjG,iGAAiG;AACjG,mGAAmG;AACnG,oGAAoG;AACpG,8CAA8C;AAC9C,MAAM,UAAU,oBAAoB,CAClC,IAAuB,EACvB,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAuD;IAEvD,IAAI,CAAS,CAAC;IACd,IAAI,CAAS,CAAC;IACd,IAAI,CAAS,CAAC;IACd,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,iBAAiB,CAAC,GAAG;YACxB,wDAAwD;YACxD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACxE,MAAM;QACR,KAAK,iBAAiB,CAAC,UAAU;YAC/B,wDAAwD;YACxD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACxE,MAAM;QACR,KAAK,iBAAiB,CAAC,KAAK;YAC1B,gDAAgD;YAChD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9E,MAAM;QACR,KAAK,iBAAiB,CAAC,UAAU;YAC/B,gDAAgD;YAChD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9E,MAAM;QACR;YACE,CAAC,GAAG,GAAG,CAAC;YACR,CAAC,GAAG,GAAG,CAAC;YACR,CAAC,GAAG,GAAG,CAAC;YACR,MAAM;IACV,CAAC;IACD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACb,CAAC;AAED,wGAAwG;AACxG,wGAAwG;AACxG,kFAAkF;AAClF,MAAM,UAAU,mBAAmB,CACjC,IAAuB,EACvB,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAuD;IAEvD,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IACD,MAAM,CAAC,GAAG,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACb,CAAC;AAED,sGAAsG;AACtG,oGAAoG;AACpG,MAAM,UAAU,wBAAwB,CAAC,IAAuB,EAAE,EAAU,EAAE,EAAU;IACtF,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,iBAAiB,CAAC,OAAO;YAC5B,oFAAoF;YACpF,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/D,KAAK,iBAAiB,CAAC,SAAS;YAC9B,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/D,KAAK,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtE,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,KAAK,iBAAiB,CAAC,MAAM;YAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,KAAK,iBAAiB,CAAC,UAAU;YAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3B,KAAK,iBAAiB,CAAC,SAAS;YAC9B,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QAC/B,KAAK,iBAAiB,CAAC,UAAU;YAC/B,+DAA+D;YAC/D,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpC,KAAK,iBAAiB,CAAC,OAAO;YAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,KAAK,iBAAiB,CAAC,SAAS;YAC9B,mEAAmE;YACnE,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QACxC;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,qGAAqG;AACrG,mGAAmG;AACnG,MAAM,UAAU,uBAAuB,CAAC,IAAuB;IAC7D,OAAO,CACL,IAAI,KAAK,iBAAiB,CAAC,GAAG;QAC9B,IAAI,KAAK,iBAAiB,CAAC,UAAU;QACrC,IAAI,KAAK,iBAAiB,CAAC,KAAK;QAChC,IAAI,KAAK,iBAAiB,CAAC,UAAU,CACtC,CAAC;AACJ,CAAC;AAED,gDAAgD;AAChD,SAAS,eAAe,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACtD,OAAO,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACvC,CAAC;AAED,4DAA4D;AAC5D,SAAS,eAAe,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,wGAAwG;AACxG,iDAAiD;AACjD,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACrD,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;QACtB,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAChC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAChC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAClC,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;QACtB,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACtC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACtC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,yFAAyF;AACzF,SAAS,kBAAkB,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,MAAc;IACzE,MAAM,CAAC,GAAG,MAAM,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,OAAO,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,oGAAoG;AACpG,gGAAgG;AAChG,SAAS,kBAAkB,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,MAAc;IACzE,MAAM,GAAG,GAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,2CAA2C;IAC3C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,sFAAsF;QACtF,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7B,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,6 +1,8 @@
1
- import type { BloomEffect } from '@flighthq/types/contract';
1
+ import type { BloomEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function computeBloomBlurRadius(effect: Readonly<BloomEffect>): number;
3
3
  export declare function computeBloomIntensity(effect: Readonly<BloomEffect>): number;
4
4
  export declare function computeBloomThreshold(effect: Readonly<BloomEffect>): number;
5
5
  export declare function createBloomEffect(options?: Readonly<Omit<BloomEffect, 'kind'>>): BloomEffect;
6
+ export declare function getBloomEffectPadding(effect: Readonly<BloomEffect>): RenderEffectPadding;
7
+ export declare function registerBloomEffectPaddingResolver(state: RenderState): void;
6
8
  //# sourceMappingURL=bloomEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bloomEffect.d.ts","sourceRoot":"","sources":["../src/bloomEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAM5D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAE5E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAE3E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAE3E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAM,GAAG,WAAW,CAEhG"}
1
+ {"version":3,"file":"bloomEffect.d.ts","sourceRoot":"","sources":["../src/bloomEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQ5G,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAE5E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAE3E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAE3E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAM,GAAG,WAAW,CAEhG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,mBAAmB,CAGxF;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE3E"}
@@ -1,3 +1,4 @@
1
+ import { getGaussianRenderEffectPadding, registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  // HDR bloom intent and its shared recipe math. The parameter math is substrate-agnostic so the Gl and
2
3
  // Wgpu bloom recipes derive identical bright-pass cutoff, additive strength, and blur radius from the
3
4
  // same intent.
@@ -13,4 +14,14 @@ export function computeBloomThreshold(effect) {
13
14
  export function createBloomEffect(options = {}) {
14
15
  return { kind: 'BloomEffect', ...options };
15
16
  }
17
+ export function getBloomEffectPadding(effect) {
18
+ const radius = computeBloomBlurRadius(effect);
19
+ return getGaussianRenderEffectPadding(radius, radius);
20
+ }
21
+ export function registerBloomEffectPaddingResolver(state) {
22
+ registerRenderEffectPaddingResolver(state, 'BloomEffect', resolveBloomEffectPadding);
23
+ }
24
+ function resolveBloomEffectPadding(effect) {
25
+ return getBloomEffectPadding(effect);
26
+ }
16
27
  //# sourceMappingURL=bloomEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bloomEffect.js","sourceRoot":"","sources":["../src/bloomEffect.ts"],"names":[],"mappings":"AAEA,sGAAsG;AACtG,sGAAsG;AACtG,eAAe;AAEf,MAAM,UAAU,sBAAsB,CAAC,MAA6B;IAClE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,OAAO,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,OAAO,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAA+C,EAAE;IACjF,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"bloomEffect.js","sourceRoot":"","sources":["../src/bloomEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5G,sGAAsG;AACtG,sGAAsG;AACtG,eAAe;AAEf,MAAM,UAAU,sBAAsB,CAAC,MAA6B;IAClE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,OAAO,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,OAAO,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAA+C,EAAE;IACjF,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,8BAA8B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,KAAkB;IACnE,mCAAmC,CAAC,KAAK,EAAE,aAAa,EAAE,yBAAyB,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,yBAAyB,CAAC,MAA8B;IAC/D,OAAO,qBAAqB,CAAC,MAA+B,CAAC,CAAC;AAChE,CAAC"}
@@ -1,3 +1,5 @@
1
- import type { BlurEffect } from '@flighthq/types/contract';
1
+ import type { BlurEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function createBlurEffect(options?: Readonly<Omit<BlurEffect, 'kind'>>): BlurEffect;
3
+ export declare function getBlurEffectPadding(effect: Readonly<BlurEffect>): RenderEffectPadding;
4
+ export declare function registerBlurEffectPaddingResolver(state: RenderState): void;
3
5
  //# sourceMappingURL=blurEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blurEffect.d.ts","sourceRoot":"","sources":["../src/blurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAK3D,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAM,GAAG,UAAU,CAE7F"}
1
+ {"version":3,"file":"blurEffect.d.ts","sourceRoot":"","sources":["../src/blurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAO3G,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAM,GAAG,UAAU,CAE7F;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAEtF;AAED,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE1E"}
@@ -1,7 +1,17 @@
1
+ import { getGaussianRenderEffectPadding, registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  // Plain separable Gaussian blur intent. `blurX`/`blurY` are the per-axis Gaussian standard deviations
2
3
  // in pixels; the backends realize them as a two-pass separable blur bouncing through an offscreen
3
4
  // target. The spatial-effect sibling of the directional/radial/motion blur variants.
4
5
  export function createBlurEffect(options = {}) {
5
6
  return { kind: 'BlurEffect', ...options };
6
7
  }
8
+ export function getBlurEffectPadding(effect) {
9
+ return getGaussianRenderEffectPadding(effect.blurX ?? 4, effect.blurY ?? 4);
10
+ }
11
+ export function registerBlurEffectPaddingResolver(state) {
12
+ registerRenderEffectPaddingResolver(state, 'BlurEffect', resolveBlurEffectPadding);
13
+ }
14
+ function resolveBlurEffectPadding(effect) {
15
+ return getBlurEffectPadding(effect);
16
+ }
7
17
  //# sourceMappingURL=blurEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blurEffect.js","sourceRoot":"","sources":["../src/blurEffect.ts"],"names":[],"mappings":"AAEA,sGAAsG;AACtG,kGAAkG;AAClG,qFAAqF;AACrF,MAAM,UAAU,gBAAgB,CAAC,UAA8C,EAAE;IAC/E,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"blurEffect.js","sourceRoot":"","sources":["../src/blurEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5G,sGAAsG;AACtG,kGAAkG;AAClG,qFAAqF;AACrF,MAAM,UAAU,gBAAgB,CAAC,UAA8C,EAAE;IAC/E,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAA4B;IAC/D,OAAO,8BAA8B,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,KAAkB;IAClE,mCAAmC,CAAC,KAAK,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,wBAAwB,CAAC,MAA8B;IAC9D,OAAO,oBAAoB,CAAC,MAA8B,CAAC,CAAC;AAC9D,CAAC"}
@@ -1,3 +1,5 @@
1
- import type { BokehDepthOfFieldEffect } from '@flighthq/types/contract';
1
+ import type { BokehDepthOfFieldEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function createBokehDepthOfFieldEffect(options?: Readonly<Omit<BokehDepthOfFieldEffect, 'kind'>>): BokehDepthOfFieldEffect;
3
+ export declare function getBokehDepthOfFieldEffectPadding(effect: Readonly<BokehDepthOfFieldEffect>): RenderEffectPadding;
4
+ export declare function registerBokehDepthOfFieldEffectPaddingResolver(state: RenderState): void;
3
5
  //# sourceMappingURL=bokehDepthOfFieldEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bokehDepthOfFieldEffect.d.ts","sourceRoot":"","sources":["../src/bokehDepthOfFieldEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAM,GAC5D,uBAAuB,CAEzB"}
1
+ {"version":3,"file":"bokehDepthOfFieldEffect.d.ts","sourceRoot":"","sources":["../src/bokehDepthOfFieldEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIxH,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAM,GAC5D,uBAAuB,CAEzB;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,mBAAmB,CAGhH;AAED,wBAAgB,8CAA8C,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAEvF"}
@@ -1,4 +1,15 @@
1
+ import { registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  export function createBokehDepthOfFieldEffect(options = {}) {
2
3
  return { kind: 'BokehDepthOfFieldEffect', ...options };
3
4
  }
5
+ export function getBokehDepthOfFieldEffectPadding(effect) {
6
+ const radius = Math.ceil(Math.max(0, effect.maxBlur ?? 4));
7
+ return { bottom: radius, left: radius, right: radius, top: radius };
8
+ }
9
+ export function registerBokehDepthOfFieldEffectPaddingResolver(state) {
10
+ registerRenderEffectPaddingResolver(state, 'BokehDepthOfFieldEffect', resolveBokehDepthOfFieldEffectPadding);
11
+ }
12
+ function resolveBokehDepthOfFieldEffectPadding(effect) {
13
+ return getBokehDepthOfFieldEffectPadding(effect);
14
+ }
4
15
  //# sourceMappingURL=bokehDepthOfFieldEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bokehDepthOfFieldEffect.js","sourceRoot":"","sources":["../src/bokehDepthOfFieldEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,6BAA6B,CAC3C,UAA2D,EAAE;IAE7D,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"bokehDepthOfFieldEffect.js","sourceRoot":"","sources":["../src/bokehDepthOfFieldEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,6BAA6B,CAC3C,UAA2D,EAAE;IAE7D,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,MAAyC;IACzF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,8CAA8C,CAAC,KAAkB;IAC/E,mCAAmC,CAAC,KAAK,EAAE,yBAAyB,EAAE,qCAAqC,CAAC,CAAC;AAC/G,CAAC;AAED,SAAS,qCAAqC,CAAC,MAA8B;IAC3E,OAAO,iCAAiC,CAAC,MAA2C,CAAC,CAAC;AACxF,CAAC"}
@@ -1,3 +1,5 @@
1
- import type { ContactShadowsEffect } from '@flighthq/types/contract';
1
+ import type { ContactShadowsEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function createContactShadowsEffect(options?: Readonly<Omit<ContactShadowsEffect, 'kind'>>): ContactShadowsEffect;
3
+ export declare function getContactShadowsEffectPadding(_effect: Readonly<ContactShadowsEffect>): RenderEffectPadding;
4
+ export declare function registerContactShadowsEffectPaddingResolver(state: RenderState): void;
3
5
  //# sourceMappingURL=contactShadowsEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contactShadowsEffect.d.ts","sourceRoot":"","sources":["../src/contactShadowsEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAM,GACzD,oBAAoB,CAEtB"}
1
+ {"version":3,"file":"contactShadowsEffect.d.ts","sourceRoot":"","sources":["../src/contactShadowsEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIrH,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAM,GACzD,oBAAoB,CAEtB;AAGD,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,mBAAmB,CAE3G;AAED,wBAAgB,2CAA2C,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAEpF"}
@@ -1,4 +1,15 @@
1
+ import { registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  export function createContactShadowsEffect(options = {}) {
2
3
  return { kind: 'ContactShadowsEffect', ...options };
3
4
  }
5
+ // Contact shadows are a screen-space depth treatment and do not expand a node-local silhouette.
6
+ export function getContactShadowsEffectPadding(_effect) {
7
+ return { bottom: 0, left: 0, right: 0, top: 0 };
8
+ }
9
+ export function registerContactShadowsEffectPaddingResolver(state) {
10
+ registerRenderEffectPaddingResolver(state, 'ContactShadowsEffect', resolveContactShadowsEffectPadding);
11
+ }
12
+ function resolveContactShadowsEffectPadding(effect) {
13
+ return getContactShadowsEffectPadding(effect);
14
+ }
4
15
  //# sourceMappingURL=contactShadowsEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contactShadowsEffect.js","sourceRoot":"","sources":["../src/contactShadowsEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,0BAA0B,CACxC,UAAwD,EAAE;IAE1D,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,OAAO,EAAE,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"contactShadowsEffect.js","sourceRoot":"","sources":["../src/contactShadowsEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,0BAA0B,CACxC,UAAwD,EAAE;IAE1D,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,OAAO,EAAE,CAAC;AACtD,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,8BAA8B,CAAC,OAAuC;IACpF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,2CAA2C,CAAC,KAAkB;IAC5E,mCAAmC,CAAC,KAAK,EAAE,sBAAsB,EAAE,kCAAkC,CAAC,CAAC;AACzG,CAAC;AAED,SAAS,kCAAkC,CAAC,MAA8B;IACxE,OAAO,8BAA8B,CAAC,MAAwC,CAAC,CAAC;AAClF,CAAC"}
@@ -53,6 +53,7 @@ export * from './radialBlurEffect';
53
53
  export * from './renderEffectDefaults';
54
54
  export * from './renderEffectInputs';
55
55
  export * from './renderEffectInterpolation';
56
+ export * from './renderEffectPadding';
56
57
  export * from './renderEffectValidation';
57
58
  export * from './scanlinesEffect';
58
59
  export * from './screenSpaceFogEffect';
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.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
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.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,uBAAuB,CAAC;AACtC,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/contract.js CHANGED
@@ -53,6 +53,7 @@ export * from './radialBlurEffect';
53
53
  export * from './renderEffectDefaults';
54
54
  export * from './renderEffectInputs';
55
55
  export * from './renderEffectInterpolation';
56
+ export * from './renderEffectPadding';
56
57
  export * from './renderEffectValidation';
57
58
  export * from './scanlinesEffect';
58
59
  export * from './screenSpaceFogEffect';
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.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
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.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,uBAAuB,CAAC;AACtC,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,3 +1,5 @@
1
- import type { ConvolutionEffect } from '@flighthq/types/contract';
1
+ import type { ConvolutionEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function createConvolutionEffect(options: Readonly<Omit<ConvolutionEffect, 'kind'>>): ConvolutionEffect;
3
+ export declare function getConvolutionEffectPadding(effect: Readonly<ConvolutionEffect>): RenderEffectPadding;
4
+ export declare function registerConvolutionEffectPaddingResolver(state: RenderState): void;
3
5
  //# sourceMappingURL=convolutionEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convolutionEffect.d.ts","sourceRoot":"","sources":["../src/convolutionEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,GAAG,iBAAiB,CAE7G"}
1
+ {"version":3,"file":"convolutionEffect.d.ts","sourceRoot":"","sources":["../src/convolutionEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIlH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,GAAG,iBAAiB,CAE7G;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CASpG;AAED,wBAAgB,wCAAwC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAEjF"}
@@ -1,4 +1,21 @@
1
+ import { registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  export function createConvolutionEffect(options) {
2
3
  return { kind: 'ConvolutionEffect', ...options };
3
4
  }
5
+ export function getConvolutionEffectPadding(effect) {
6
+ const offsetX = Math.floor(Math.max(0, effect.matrixX) * 0.5);
7
+ const offsetY = Math.floor(Math.max(0, effect.matrixY) * 0.5);
8
+ return {
9
+ bottom: offsetY,
10
+ left: Math.max(0, effect.matrixX - 1 - offsetX),
11
+ right: offsetX,
12
+ top: Math.max(0, effect.matrixY - 1 - offsetY),
13
+ };
14
+ }
15
+ export function registerConvolutionEffectPaddingResolver(state) {
16
+ registerRenderEffectPaddingResolver(state, 'ConvolutionEffect', resolveConvolutionEffectPadding);
17
+ }
18
+ function resolveConvolutionEffectPadding(effect) {
19
+ return getConvolutionEffectPadding(effect);
20
+ }
4
21
  //# sourceMappingURL=convolutionEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convolutionEffect.js","sourceRoot":"","sources":["../src/convolutionEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,OAAkD;IACxF,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,OAAO,EAAE,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"convolutionEffect.js","sourceRoot":"","sources":["../src/convolutionEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,uBAAuB,CAAC,OAAkD;IACxF,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,OAAO,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAmC;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9D,OAAO;QACL,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC;QAC/C,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wCAAwC,CAAC,KAAkB;IACzE,mCAAmC,CAAC,KAAK,EAAE,mBAAmB,EAAE,+BAA+B,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,+BAA+B,CAAC,MAA8B;IACrE,OAAO,2BAA2B,CAAC,MAAqC,CAAC,CAAC;AAC5E,CAAC"}
@@ -1,3 +1,5 @@
1
- import type { DirectionalBlurEffect } from '@flighthq/types/contract';
1
+ import type { DirectionalBlurEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function createDirectionalBlurEffect(options?: Readonly<Omit<DirectionalBlurEffect, 'kind'>>): DirectionalBlurEffect;
3
+ export declare function getDirectionalBlurEffectPadding(effect: Readonly<DirectionalBlurEffect>): RenderEffectPadding;
4
+ export declare function registerDirectionalBlurEffectPaddingResolver(state: RenderState): void;
3
5
  //# sourceMappingURL=directionalBlurEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directionalBlurEffect.d.ts","sourceRoot":"","sources":["../src/directionalBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,wBAAgB,2BAA2B,CACzC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAM,GAC1D,qBAAqB,CAEvB"}
1
+ {"version":3,"file":"directionalBlurEffect.d.ts","sourceRoot":"","sources":["../src/directionalBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAItH,wBAAgB,2BAA2B,CACzC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAM,GAC1D,qBAAqB,CAEvB;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,mBAAmB,CAQ5G;AAED,wBAAgB,4CAA4C,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAErF"}
@@ -1,4 +1,20 @@
1
+ import { registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  export function createDirectionalBlurEffect(options = {}) {
2
3
  return { kind: 'DirectionalBlurEffect', ...options };
3
4
  }
5
+ export function getDirectionalBlurEffectPadding(effect) {
6
+ const angle = effect.angle ?? 0;
7
+ const halfLength = Math.max(0, effect.length ?? 8) * 0.5;
8
+ const projectedX = Math.abs(Math.cos(angle) * halfLength);
9
+ const projectedY = Math.abs(Math.sin(angle) * halfLength);
10
+ const horizontal = projectedX < 1e-10 ? 0 : Math.ceil(projectedX);
11
+ const vertical = projectedY < 1e-10 ? 0 : Math.ceil(projectedY);
12
+ return { bottom: vertical, left: horizontal, right: horizontal, top: vertical };
13
+ }
14
+ export function registerDirectionalBlurEffectPaddingResolver(state) {
15
+ registerRenderEffectPaddingResolver(state, 'DirectionalBlurEffect', resolveDirectionalBlurEffectPadding);
16
+ }
17
+ function resolveDirectionalBlurEffectPadding(effect) {
18
+ return getDirectionalBlurEffectPadding(effect);
19
+ }
4
20
  //# sourceMappingURL=directionalBlurEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directionalBlurEffect.js","sourceRoot":"","sources":["../src/directionalBlurEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,2BAA2B,CACzC,UAAyD,EAAE;IAE3D,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,OAAO,EAAE,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"directionalBlurEffect.js","sourceRoot":"","sources":["../src/directionalBlurEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,2BAA2B,CACzC,UAAyD,EAAE;IAE3D,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,OAAO,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAuC;IACrF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,4CAA4C,CAAC,KAAkB;IAC7E,mCAAmC,CAAC,KAAK,EAAE,uBAAuB,EAAE,mCAAmC,CAAC,CAAC;AAC3G,CAAC;AAED,SAAS,mCAAmC,CAAC,MAA8B;IACzE,OAAO,+BAA+B,CAAC,MAAyC,CAAC,CAAC;AACpF,CAAC"}
@@ -1,3 +1,5 @@
1
- import type { DisplacementEffect } from '@flighthq/types/contract';
1
+ import type { DisplacementEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function createDisplacementEffect(options?: Readonly<Omit<DisplacementEffect, 'kind'>>): DisplacementEffect;
3
+ export declare function getDisplacementEffectPadding(effect: Readonly<DisplacementEffect>): RenderEffectPadding;
4
+ export declare function registerDisplacementEffectPaddingResolver(state: RenderState): void;
3
5
  //# sourceMappingURL=displacementEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"displacementEffect.d.ts","sourceRoot":"","sources":["../src/displacementEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAM,GAAG,kBAAkB,CAErH"}
1
+ {"version":3,"file":"displacementEffect.d.ts","sourceRoot":"","sources":["../src/displacementEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAInH,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAM,GAAG,kBAAkB,CAErH;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,mBAAmB,CAKtG;AAED,wBAAgB,yCAAyC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAElF"}
@@ -1,4 +1,17 @@
1
+ import { registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  export function createDisplacementEffect(options = {}) {
2
3
  return { kind: 'DisplacementEffect', ...options };
3
4
  }
5
+ export function getDisplacementEffectPadding(effect) {
6
+ const intensity = Math.abs(effect.intensity ?? 8);
7
+ const horizontal = Math.ceil(intensity * 1.5);
8
+ const vertical = Math.ceil(intensity);
9
+ return { bottom: vertical, left: horizontal, right: horizontal, top: vertical };
10
+ }
11
+ export function registerDisplacementEffectPaddingResolver(state) {
12
+ registerRenderEffectPaddingResolver(state, 'DisplacementEffect', resolveDisplacementEffectPadding);
13
+ }
14
+ function resolveDisplacementEffectPadding(effect) {
15
+ return getDisplacementEffectPadding(effect);
16
+ }
4
17
  //# sourceMappingURL=displacementEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"displacementEffect.js","sourceRoot":"","sources":["../src/displacementEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,wBAAwB,CAAC,UAAsD,EAAE;IAC/F,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"displacementEffect.js","sourceRoot":"","sources":["../src/displacementEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,wBAAwB,CAAC,UAAsD,EAAE;IAC/F,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAoC;IAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,yCAAyC,CAAC,KAAkB;IAC1E,mCAAmC,CAAC,KAAK,EAAE,oBAAoB,EAAE,gCAAgC,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,gCAAgC,CAAC,MAA8B;IACtE,OAAO,4BAA4B,CAAC,MAAsC,CAAC,CAAC;AAC9E,CAAC"}
@@ -1,3 +1,5 @@
1
- import type { DropShadowEffect } from '@flighthq/types/contract';
1
+ import type { DropShadowEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function createDropShadowEffect(options?: Readonly<Omit<DropShadowEffect, 'kind'>>): DropShadowEffect;
3
+ export declare function getDropShadowEffectPadding(effect: Readonly<DropShadowEffect>): RenderEffectPadding;
4
+ export declare function registerDropShadowEffectPaddingResolver(state: RenderState): void;
3
5
  //# sourceMappingURL=dropShadowEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropShadowEffect.d.ts","sourceRoot":"","sources":["../src/dropShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAM,GAAG,gBAAgB,CAE/G"}
1
+ {"version":3,"file":"dropShadowEffect.d.ts","sourceRoot":"","sources":["../src/dropShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKjH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAM,GAAG,gBAAgB,CAE/G;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,CASlG;AAED,wBAAgB,uCAAuC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAEhF"}
@@ -1,5 +1,17 @@
1
+ import { getDirectionalRenderEffectPadding, registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  // Drop-shadow composite effect: tint the scene silhouette, blur it, offset it by angle/distance, then apply sourceMode compositing.
2
3
  export function createDropShadowEffect(options = {}) {
3
4
  return { kind: 'DropShadowEffect', ...options };
4
5
  }
6
+ export function getDropShadowEffectPadding(effect) {
7
+ const angle = ((effect.angle ?? 45) * Math.PI) / 180;
8
+ const distance = effect.distance ?? 4;
9
+ return getDirectionalRenderEffectPadding(effect.blurX ?? 4, effect.blurY ?? 4, Math.cos(angle) * distance, Math.sin(angle) * distance);
10
+ }
11
+ export function registerDropShadowEffectPaddingResolver(state) {
12
+ registerRenderEffectPaddingResolver(state, 'DropShadowEffect', resolveDropShadowEffectPadding);
13
+ }
14
+ function resolveDropShadowEffectPadding(effect) {
15
+ return getDropShadowEffectPadding(effect);
16
+ }
5
17
  //# sourceMappingURL=dropShadowEffect.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"dropShadowEffect.js","sourceRoot":"","sources":["../src/dropShadowEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE/G,oIAAoI;AACpI,MAAM,UAAU,sBAAsB,CAAC,UAAoD,EAAE;IAC3F,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAkC;IAC3E,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,OAAO,iCAAiC,CACtC,MAAM,CAAC,KAAK,IAAI,CAAC,EACjB,MAAM,CAAC,KAAK,IAAI,CAAC,EACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,EAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uCAAuC,CAAC,KAAkB;IACxE,mCAAmC,CAAC,KAAK,EAAE,kBAAkB,EAAE,8BAA8B,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,8BAA8B,CAAC,MAA8B;IACpE,OAAO,0BAA0B,CAAC,MAAoC,CAAC,CAAC;AAC1E,CAAC"}
@@ -1,3 +1,5 @@
1
- import type { GlitchEffect } from '@flighthq/types/contract';
1
+ import type { GlitchEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function createGlitchEffect(options?: Readonly<Omit<GlitchEffect, 'kind'>>): GlitchEffect;
3
+ export declare function getGlitchEffectPadding(effect: Readonly<GlitchEffect>): RenderEffectPadding;
4
+ export declare function registerGlitchEffectPaddingResolver(state: RenderState): void;
3
5
  //# sourceMappingURL=glitchEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glitchEffect.d.ts","sourceRoot":"","sources":["../src/glitchEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAM,GAAG,YAAY,CAEnG"}
1
+ {"version":3,"file":"glitchEffect.d.ts","sourceRoot":"","sources":["../src/glitchEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI7G,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAM,GAAG,YAAY,CAEnG;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAK1F;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE5E"}
@@ -1,4 +1,17 @@
1
+ import { registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  export function createGlitchEffect(options = {}) {
2
3
  return { kind: 'GlitchEffect', ...options };
3
4
  }
5
+ export function getGlitchEffectPadding(effect) {
6
+ const tear = Math.abs(effect.intensity ?? 0.5) * 40;
7
+ const channelShift = Math.abs(effect.colorShift ?? 8) * 1.4;
8
+ const horizontal = Math.ceil(tear + channelShift);
9
+ return { bottom: 0, left: horizontal, right: horizontal, top: 0 };
10
+ }
11
+ export function registerGlitchEffectPaddingResolver(state) {
12
+ registerRenderEffectPaddingResolver(state, 'GlitchEffect', resolveGlitchEffectPadding);
13
+ }
14
+ function resolveGlitchEffectPadding(effect) {
15
+ return getGlitchEffectPadding(effect);
16
+ }
4
17
  //# sourceMappingURL=glitchEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glitchEffect.js","sourceRoot":"","sources":["../src/glitchEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,UAAgD,EAAE;IACnF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"glitchEffect.js","sourceRoot":"","sources":["../src/glitchEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,kBAAkB,CAAC,UAAgD,EAAE;IACnF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAA8B;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,KAAkB;IACpE,mCAAmC,CAAC,KAAK,EAAE,cAAc,EAAE,0BAA0B,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,0BAA0B,CAAC,MAA8B;IAChE,OAAO,sBAAsB,CAAC,MAAgC,CAAC,CAAC;AAClE,CAAC"}
@@ -1,3 +1,5 @@
1
- import type { GradientBevelEffect } from '@flighthq/types/contract';
1
+ import type { GradientBevelEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function createGradientBevelEffect(options: Readonly<Omit<GradientBevelEffect, 'kind'>>): GradientBevelEffect;
3
+ export declare function getGradientBevelEffectPadding(effect: Readonly<GradientBevelEffect>): RenderEffectPadding;
4
+ export declare function registerGradientBevelEffectPaddingResolver(state: RenderState): void;
3
5
  //# sourceMappingURL=gradientBevelEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gradientBevelEffect.d.ts","sourceRoot":"","sources":["../src/gradientBevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpE,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,GAAG,mBAAmB,CAEnH"}
1
+ {"version":3,"file":"gradientBevelEffect.d.ts","sourceRoot":"","sources":["../src/gradientBevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKpH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,GAAG,mBAAmB,CAEnH;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CASxG;AAED,wBAAgB,0CAA0C,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAEnF"}
@@ -1,5 +1,17 @@
1
+ import { getDirectionalRenderEffectPadding, registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  // 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
3
  export function createGradientBevelEffect(options) {
3
4
  return { kind: 'GradientBevelEffect', ...options };
4
5
  }
6
+ export function getGradientBevelEffectPadding(effect) {
7
+ const angle = ((effect.angle ?? 45) * Math.PI) / 180;
8
+ const distance = effect.distance ?? 4;
9
+ return getDirectionalRenderEffectPadding(effect.blurX ?? 4, effect.blurY ?? 4, Math.cos(angle) * distance, Math.sin(angle) * distance);
10
+ }
11
+ export function registerGradientBevelEffectPaddingResolver(state) {
12
+ registerRenderEffectPaddingResolver(state, 'GradientBevelEffect', resolveGradientBevelEffectPadding);
13
+ }
14
+ function resolveGradientBevelEffectPadding(effect) {
15
+ return getGradientBevelEffectPadding(effect);
16
+ }
5
17
  //# sourceMappingURL=gradientBevelEffect.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"gradientBevelEffect.js","sourceRoot":"","sources":["../src/gradientBevelEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE/G,oNAAoN;AACpN,MAAM,UAAU,yBAAyB,CAAC,OAAoD;IAC5F,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,OAAO,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAqC;IACjF,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,OAAO,iCAAiC,CACtC,MAAM,CAAC,KAAK,IAAI,CAAC,EACjB,MAAM,CAAC,KAAK,IAAI,CAAC,EACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,EAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0CAA0C,CAAC,KAAkB;IAC3E,mCAAmC,CAAC,KAAK,EAAE,qBAAqB,EAAE,iCAAiC,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,iCAAiC,CAAC,MAA8B;IACvE,OAAO,6BAA6B,CAAC,MAAuC,CAAC,CAAC;AAChF,CAAC"}
@@ -1,3 +1,5 @@
1
- import type { GradientGlowEffect } from '@flighthq/types/contract';
1
+ import type { GradientGlowEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
2
2
  export declare function createGradientGlowEffect(options: Readonly<Omit<GradientGlowEffect, 'kind'>>): GradientGlowEffect;
3
+ export declare function getGradientGlowEffectPadding(effect: Readonly<GradientGlowEffect>): RenderEffectPadding;
4
+ export declare function registerGradientGlowEffectPaddingResolver(state: RenderState): void;
3
5
  //# sourceMappingURL=gradientGlowEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gradientGlowEffect.d.ts","sourceRoot":"","sources":["../src/gradientGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGnE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,GAAG,kBAAkB,CAEhH"}
1
+ {"version":3,"file":"gradientGlowEffect.d.ts","sourceRoot":"","sources":["../src/gradientGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKnH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,GAAG,kBAAkB,CAEhH;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,mBAAmB,CAEtG;AAED,wBAAgB,yCAAyC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAElF"}
@@ -1,5 +1,15 @@
1
+ import { getGaussianRenderEffectPadding, registerRenderEffectPaddingResolver } from './renderEffectPadding';
1
2
  // 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
3
  export function createGradientGlowEffect(options) {
3
4
  return { kind: 'GradientGlowEffect', ...options };
4
5
  }
6
+ export function getGradientGlowEffectPadding(effect) {
7
+ return getGaussianRenderEffectPadding(effect.blurX ?? 6, effect.blurY ?? 6);
8
+ }
9
+ export function registerGradientGlowEffectPaddingResolver(state) {
10
+ registerRenderEffectPaddingResolver(state, 'GradientGlowEffect', resolveGradientGlowEffectPadding);
11
+ }
12
+ function resolveGradientGlowEffectPadding(effect) {
13
+ return getGradientGlowEffectPadding(effect);
14
+ }
5
15
  //# sourceMappingURL=gradientGlowEffect.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"gradientGlowEffect.js","sourceRoot":"","sources":["../src/gradientGlowEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5G,wMAAwM;AACxM,MAAM,UAAU,wBAAwB,CAAC,OAAmD;IAC1F,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAoC;IAC/E,OAAO,8BAA8B,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,yCAAyC,CAAC,KAAkB;IAC1E,mCAAmC,CAAC,KAAK,EAAE,oBAAoB,EAAE,gCAAgC,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,gCAAgC,CAAC,MAA8B;IACtE,OAAO,4BAA4B,CAAC,MAAsC,CAAC,CAAC;AAC9E,CAAC"}