@flighthq/effects-gl 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 (278) hide show
  1. package/dist/contract.d.ts +3 -2
  2. package/dist/contract.d.ts.map +1 -1
  3. package/dist/contract.js +3 -2
  4. package/dist/contract.js.map +1 -1
  5. package/dist/enableGlRenderEffectGuards.d.ts +5 -0
  6. package/dist/enableGlRenderEffectGuards.d.ts.map +1 -0
  7. package/dist/enableGlRenderEffectGuards.js +43 -0
  8. package/dist/enableGlRenderEffectGuards.js.map +1 -0
  9. package/dist/glBevelEffect.d.ts +1 -0
  10. package/dist/glBevelEffect.d.ts.map +1 -1
  11. package/dist/glBevelEffect.js +7 -3
  12. package/dist/glBevelEffect.js.map +1 -1
  13. package/dist/glBlendEffect.d.ts +2 -0
  14. package/dist/glBlendEffect.d.ts.map +1 -1
  15. package/dist/glBlendEffect.js +13 -2
  16. package/dist/glBlendEffect.js.map +1 -1
  17. package/dist/glBloomEffect.d.ts +1 -0
  18. package/dist/glBloomEffect.d.ts.map +1 -1
  19. package/dist/glBloomEffect.js +4 -0
  20. package/dist/glBloomEffect.js.map +1 -1
  21. package/dist/glBlurEffect.d.ts +7 -1
  22. package/dist/glBlurEffect.d.ts.map +1 -1
  23. package/dist/glBlurEffect.js +34 -6
  24. package/dist/glBlurEffect.js.map +1 -1
  25. package/dist/glBokehDepthOfFieldEffect.d.ts +1 -0
  26. package/dist/glBokehDepthOfFieldEffect.d.ts.map +1 -1
  27. package/dist/glBokehDepthOfFieldEffect.js +4 -0
  28. package/dist/glBokehDepthOfFieldEffect.js.map +1 -1
  29. package/dist/glCameraMotionBlurEffect.d.ts +1 -0
  30. package/dist/glCameraMotionBlurEffect.d.ts.map +1 -1
  31. package/dist/glCameraMotionBlurEffect.js +4 -0
  32. package/dist/glCameraMotionBlurEffect.js.map +1 -1
  33. package/dist/glChromaticAberrationEffect.d.ts +1 -0
  34. package/dist/glChromaticAberrationEffect.d.ts.map +1 -1
  35. package/dist/glChromaticAberrationEffect.js +4 -0
  36. package/dist/glChromaticAberrationEffect.js.map +1 -1
  37. package/dist/glCompositeEffect.d.ts +1 -0
  38. package/dist/glCompositeEffect.d.ts.map +1 -1
  39. package/dist/glCompositeEffect.js +4 -0
  40. package/dist/glCompositeEffect.js.map +1 -1
  41. package/dist/glContactShadowsEffect.d.ts +5 -0
  42. package/dist/glContactShadowsEffect.d.ts.map +1 -0
  43. package/dist/glContactShadowsEffect.js +20 -0
  44. package/dist/glContactShadowsEffect.js.map +1 -0
  45. package/dist/glConvolutionEffect.d.ts +1 -0
  46. package/dist/glConvolutionEffect.d.ts.map +1 -1
  47. package/dist/glConvolutionEffect.js +4 -0
  48. package/dist/glConvolutionEffect.js.map +1 -1
  49. package/dist/glCrtEffect.d.ts +1 -0
  50. package/dist/glCrtEffect.d.ts.map +1 -1
  51. package/dist/glCrtEffect.js +4 -0
  52. package/dist/glCrtEffect.js.map +1 -1
  53. package/dist/glCustomShaderEffect.d.ts +1 -0
  54. package/dist/glCustomShaderEffect.d.ts.map +1 -1
  55. package/dist/glCustomShaderEffect.js +4 -0
  56. package/dist/glCustomShaderEffect.js.map +1 -1
  57. package/dist/glDirectionalBlurEffect.d.ts +1 -0
  58. package/dist/glDirectionalBlurEffect.d.ts.map +1 -1
  59. package/dist/glDirectionalBlurEffect.js +4 -0
  60. package/dist/glDirectionalBlurEffect.js.map +1 -1
  61. package/dist/glDisplacementEffect.d.ts +1 -0
  62. package/dist/glDisplacementEffect.d.ts.map +1 -1
  63. package/dist/glDisplacementEffect.js +4 -0
  64. package/dist/glDisplacementEffect.js.map +1 -1
  65. package/dist/glDitherEffect.d.ts +1 -0
  66. package/dist/glDitherEffect.d.ts.map +1 -1
  67. package/dist/glDitherEffect.js +4 -0
  68. package/dist/glDitherEffect.js.map +1 -1
  69. package/dist/glDropShadowEffect.d.ts +1 -0
  70. package/dist/glDropShadowEffect.d.ts.map +1 -1
  71. package/dist/glDropShadowEffect.js +4 -0
  72. package/dist/glDropShadowEffect.js.map +1 -1
  73. package/dist/glEffectBlitShader.js +6 -6
  74. package/dist/glEffectBlitShader.js.map +1 -1
  75. package/dist/glEffectBoxBlur.js +2 -2
  76. package/dist/glEffectBoxBlur.js.map +1 -1
  77. package/dist/glEffectProgramCache.js +5 -5
  78. package/dist/glEffectProgramCache.js.map +1 -1
  79. package/dist/glEffectTintShader.js +4 -4
  80. package/dist/glEffectTintShader.js.map +1 -1
  81. package/dist/glFilmGrainEffect.d.ts +1 -0
  82. package/dist/glFilmGrainEffect.d.ts.map +1 -1
  83. package/dist/glFilmGrainEffect.js +4 -0
  84. package/dist/glFilmGrainEffect.js.map +1 -1
  85. package/dist/glFxaaEffect.d.ts +1 -0
  86. package/dist/glFxaaEffect.d.ts.map +1 -1
  87. package/dist/glFxaaEffect.js +4 -0
  88. package/dist/glFxaaEffect.js.map +1 -1
  89. package/dist/glGlitchEffect.d.ts +1 -0
  90. package/dist/glGlitchEffect.d.ts.map +1 -1
  91. package/dist/glGlitchEffect.js +4 -0
  92. package/dist/glGlitchEffect.js.map +1 -1
  93. package/dist/glGodRaysEffect.d.ts +1 -0
  94. package/dist/glGodRaysEffect.d.ts.map +1 -1
  95. package/dist/glGodRaysEffect.js +4 -0
  96. package/dist/glGodRaysEffect.js.map +1 -1
  97. package/dist/glGradientBevelEffect.d.ts +1 -0
  98. package/dist/glGradientBevelEffect.d.ts.map +1 -1
  99. package/dist/glGradientBevelEffect.js +8 -4
  100. package/dist/glGradientBevelEffect.js.map +1 -1
  101. package/dist/glGradientGlowEffect.d.ts +1 -0
  102. package/dist/glGradientGlowEffect.d.ts.map +1 -1
  103. package/dist/glGradientGlowEffect.js +6 -2
  104. package/dist/glGradientGlowEffect.js.map +1 -1
  105. package/dist/glHalftoneEffect.d.ts +1 -0
  106. package/dist/glHalftoneEffect.d.ts.map +1 -1
  107. package/dist/glHalftoneEffect.js +4 -0
  108. package/dist/glHalftoneEffect.js.map +1 -1
  109. package/dist/glInnerGlowEffect.d.ts +1 -0
  110. package/dist/glInnerGlowEffect.d.ts.map +1 -1
  111. package/dist/glInnerGlowEffect.js +6 -2
  112. package/dist/glInnerGlowEffect.js.map +1 -1
  113. package/dist/glInnerShadowEffect.d.ts +1 -0
  114. package/dist/glInnerShadowEffect.d.ts.map +1 -1
  115. package/dist/glInnerShadowEffect.js +6 -2
  116. package/dist/glInnerShadowEffect.js.map +1 -1
  117. package/dist/glKuwaharaEffect.d.ts +1 -0
  118. package/dist/glKuwaharaEffect.d.ts.map +1 -1
  119. package/dist/glKuwaharaEffect.js +4 -0
  120. package/dist/glKuwaharaEffect.js.map +1 -1
  121. package/dist/glLensDirtEffect.d.ts +1 -0
  122. package/dist/glLensDirtEffect.d.ts.map +1 -1
  123. package/dist/glLensDirtEffect.js +4 -0
  124. package/dist/glLensDirtEffect.js.map +1 -1
  125. package/dist/glLensDistortionEffect.d.ts +1 -0
  126. package/dist/glLensDistortionEffect.d.ts.map +1 -1
  127. package/dist/glLensDistortionEffect.js +4 -0
  128. package/dist/glLensDistortionEffect.js.map +1 -1
  129. package/dist/glLensFlareEffect.d.ts +1 -0
  130. package/dist/glLensFlareEffect.d.ts.map +1 -1
  131. package/dist/glLensFlareEffect.js +4 -0
  132. package/dist/glLensFlareEffect.js.map +1 -1
  133. package/dist/glMedianEffect.d.ts +1 -0
  134. package/dist/glMedianEffect.d.ts.map +1 -1
  135. package/dist/glMedianEffect.js +4 -0
  136. package/dist/glMedianEffect.js.map +1 -1
  137. package/dist/glMotionBlurEffect.d.ts +1 -0
  138. package/dist/glMotionBlurEffect.d.ts.map +1 -1
  139. package/dist/glMotionBlurEffect.js +4 -0
  140. package/dist/glMotionBlurEffect.js.map +1 -1
  141. package/dist/glOuterGlowEffect.d.ts +1 -0
  142. package/dist/glOuterGlowEffect.d.ts.map +1 -1
  143. package/dist/glOuterGlowEffect.js +4 -0
  144. package/dist/glOuterGlowEffect.js.map +1 -1
  145. package/dist/glOutlineEffect.d.ts +1 -0
  146. package/dist/glOutlineEffect.d.ts.map +1 -1
  147. package/dist/glOutlineEffect.js +4 -0
  148. package/dist/glOutlineEffect.js.map +1 -1
  149. package/dist/glPixelateEffect.d.ts +1 -0
  150. package/dist/glPixelateEffect.d.ts.map +1 -1
  151. package/dist/glPixelateEffect.js +4 -0
  152. package/dist/glPixelateEffect.js.map +1 -1
  153. package/dist/glPosterizeEffect.d.ts +1 -0
  154. package/dist/glPosterizeEffect.d.ts.map +1 -1
  155. package/dist/glPosterizeEffect.js +4 -0
  156. package/dist/glPosterizeEffect.js.map +1 -1
  157. package/dist/glRadialBlurEffect.d.ts +1 -0
  158. package/dist/glRadialBlurEffect.d.ts.map +1 -1
  159. package/dist/glRadialBlurEffect.js +4 -0
  160. package/dist/glRadialBlurEffect.js.map +1 -1
  161. package/dist/glRenderEffectPipeline.d.ts +2 -2
  162. package/dist/glRenderEffectPipeline.d.ts.map +1 -1
  163. package/dist/glRenderEffectPipeline.js +14 -7
  164. package/dist/glRenderEffectPipeline.js.map +1 -1
  165. package/dist/glRenderEffectRegistry.d.ts.map +1 -1
  166. package/dist/glRenderEffectRegistry.js +8 -10
  167. package/dist/glRenderEffectRegistry.js.map +1 -1
  168. package/dist/glRenderTextureEffect.d.ts +5 -0
  169. package/dist/glRenderTextureEffect.d.ts.map +1 -0
  170. package/dist/glRenderTextureEffect.js +83 -0
  171. package/dist/glRenderTextureEffect.js.map +1 -0
  172. package/dist/glScanlinesEffect.d.ts +1 -0
  173. package/dist/glScanlinesEffect.d.ts.map +1 -1
  174. package/dist/glScanlinesEffect.js +4 -0
  175. package/dist/glScanlinesEffect.js.map +1 -1
  176. package/dist/glScreenSpaceFogEffect.d.ts +1 -0
  177. package/dist/glScreenSpaceFogEffect.d.ts.map +1 -1
  178. package/dist/glScreenSpaceFogEffect.js +4 -0
  179. package/dist/glScreenSpaceFogEffect.js.map +1 -1
  180. package/dist/glSharpenEffect.d.ts +1 -0
  181. package/dist/glSharpenEffect.d.ts.map +1 -1
  182. package/dist/glSharpenEffect.js +4 -0
  183. package/dist/glSharpenEffect.js.map +1 -1
  184. package/dist/glSketchEffect.d.ts +1 -0
  185. package/dist/glSketchEffect.d.ts.map +1 -1
  186. package/dist/glSketchEffect.js +4 -0
  187. package/dist/glSketchEffect.js.map +1 -1
  188. package/dist/glSmaaEffect.d.ts +1 -0
  189. package/dist/glSmaaEffect.d.ts.map +1 -1
  190. package/dist/glSmaaEffect.js +4 -0
  191. package/dist/glSmaaEffect.js.map +1 -1
  192. package/dist/glSsaoEffect.d.ts +1 -0
  193. package/dist/glSsaoEffect.d.ts.map +1 -1
  194. package/dist/glSsaoEffect.js +4 -0
  195. package/dist/glSsaoEffect.js.map +1 -1
  196. package/dist/glTiltShiftEffect.d.ts +1 -0
  197. package/dist/glTiltShiftEffect.d.ts.map +1 -1
  198. package/dist/glTiltShiftEffect.js +4 -0
  199. package/dist/glTiltShiftEffect.js.map +1 -1
  200. package/dist/glToneMapEffect.d.ts +1 -0
  201. package/dist/glToneMapEffect.d.ts.map +1 -1
  202. package/dist/glToneMapEffect.js +4 -0
  203. package/dist/glToneMapEffect.js.map +1 -1
  204. package/dist/glVignetteEffect.d.ts +1 -0
  205. package/dist/glVignetteEffect.d.ts.map +1 -1
  206. package/dist/glVignetteEffect.js +4 -0
  207. package/dist/glVignetteEffect.js.map +1 -1
  208. package/dist/glWhiteBalanceEffect.d.ts +1 -0
  209. package/dist/glWhiteBalanceEffect.d.ts.map +1 -1
  210. package/dist/glWhiteBalanceEffect.js +4 -0
  211. package/dist/glWhiteBalanceEffect.js.map +1 -1
  212. package/dist/index.d.ts +1 -1
  213. package/dist/index.d.ts.map +1 -1
  214. package/dist/index.js +1 -1
  215. package/dist/index.js.map +1 -1
  216. package/package.json +9 -6
  217. package/src/enableGlRenderEffectGuards.test.ts +156 -0
  218. package/src/glBevelEffect.test.ts +7 -1
  219. package/src/glBlendEffect.test.ts +26 -0
  220. package/src/glBloomEffect.test.ts +7 -1
  221. package/src/glBlurEffect.test.ts +69 -1
  222. package/src/glBokehDepthOfFieldEffect.test.ts +11 -1
  223. package/src/glCameraMotionBlurEffect.test.ts +11 -1
  224. package/src/glChromaticAberrationEffect.test.ts +7 -0
  225. package/src/glCompositeEffect.test.ts +7 -0
  226. package/src/glContactShadowsEffect.test.ts +43 -0
  227. package/src/glConvolutionEffect.test.ts +11 -1
  228. package/src/glCrtEffect.test.ts +7 -1
  229. package/src/glCustomShaderEffect.test.ts +7 -0
  230. package/src/glDirectionalBlurEffect.test.ts +11 -1
  231. package/src/glDisplacementEffect.test.ts +11 -1
  232. package/src/glDitherEffect.test.ts +7 -1
  233. package/src/glDropShadowEffect.test.ts +11 -9
  234. package/src/glEffectBoxBlur.test.ts +0 -5
  235. package/src/glFilmGrainEffect.test.ts +11 -1
  236. package/src/glFxaaEffect.test.ts +7 -1
  237. package/src/glGlitchEffect.test.ts +7 -1
  238. package/src/glGodRaysEffect.test.ts +7 -1
  239. package/src/glGradientBevelEffect.test.ts +11 -1
  240. package/src/glGradientGlowEffect.test.ts +11 -1
  241. package/src/glHalftoneEffect.test.ts +7 -1
  242. package/src/glInnerGlowEffect.test.ts +11 -9
  243. package/src/glInnerShadowEffect.test.ts +11 -9
  244. package/src/glKuwaharaEffect.test.ts +7 -1
  245. package/src/glLensDirtEffect.test.ts +7 -1
  246. package/src/glLensDistortionEffect.test.ts +11 -1
  247. package/src/glLensFlareEffect.test.ts +11 -1
  248. package/src/glMedianEffect.test.ts +7 -1
  249. package/src/glMotionBlurEffect.test.ts +11 -1
  250. package/src/glOuterGlowEffect.test.ts +11 -9
  251. package/src/glOutlineEffect.test.ts +7 -1
  252. package/src/glPixelateEffect.test.ts +7 -1
  253. package/src/glPosterizeEffect.test.ts +11 -1
  254. package/src/glRadialBlurEffect.test.ts +11 -1
  255. package/src/glRenderEffectPipeline.test.ts +15 -0
  256. package/src/glRenderEffectRegistry.test.ts +24 -14
  257. package/src/glRenderTextureEffect.test.ts +246 -0
  258. package/src/glScanlinesEffect.test.ts +11 -1
  259. package/src/glScreenSpaceFogEffect.test.ts +11 -1
  260. package/src/glSharpenEffect.test.ts +7 -1
  261. package/src/glSketchEffect.test.ts +7 -1
  262. package/src/glSmaaEffect.test.ts +7 -1
  263. package/src/glSpatialEffectRegistration.test.ts +64 -0
  264. package/src/glSsaoEffect.test.ts +7 -1
  265. package/src/glTiltShiftEffect.test.ts +11 -1
  266. package/src/glToneMapEffect.test.ts +7 -1
  267. package/src/glVignetteEffect.test.ts +7 -1
  268. package/src/glWhiteBalanceEffect.test.ts +11 -1
  269. package/dist/glSsrEffect.d.ts +0 -4
  270. package/dist/glSsrEffect.d.ts.map +0 -1
  271. package/dist/glSsrEffect.js +0 -24
  272. package/dist/glSsrEffect.js.map +0 -1
  273. package/dist/glTaaEffect.d.ts +0 -4
  274. package/dist/glTaaEffect.d.ts.map +0 -1
  275. package/dist/glTaaEffect.js +0 -22
  276. package/dist/glTaaEffect.js.map +0 -1
  277. package/src/glSsrEffect.test.ts +0 -13
  278. package/src/glTaaEffect.test.ts +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"glLensDistortionEffect.d.ts","sourceRoot":"","sources":["../src/glLensDistortionEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAMlC,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GACrC,IAAI,CAQN;AAED,eAAO,MAAM,mCAAmC,EAAE,oBAEjD,CAAC"}
1
+ {"version":3,"file":"glLensDistortionEffect.d.ts","sourceRoot":"","sources":["../src/glLensDistortionEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAOlC,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GACrC,IAAI,CAQN;AAED,eAAO,MAAM,mCAAmC,EAAE,oBAEjD,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEzE"}
@@ -1,5 +1,6 @@
1
1
  import { drawGlFullscreenPass } from '@flighthq/render-gl/contract';
2
2
  import { getGlEffectProgram } from './glEffectProgramCache';
3
+ import { registerGlRenderEffect } from './glRenderEffectRegistry';
3
4
  // Lens distortion: remap uv by a radial polynomial. Positive amount bulges outward (barrel), negative
4
5
  // pinches inward (pincushion); scale re-frames the result so corners stay in view.
5
6
  export function applyLensDistortionEffectToGl(state, source, dest, effect) {
@@ -14,6 +15,9 @@ export function applyLensDistortionEffectToGl(state, source, dest, effect) {
14
15
  export const defaultGlLensDistortionEffectRunner = (ctx, effect) => {
15
16
  applyLensDistortionEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
16
17
  };
18
+ export function registerGlLensDistortionEffect(state) {
19
+ registerGlRenderEffect(state, 'LensDistortionEffect', defaultGlLensDistortionEffectRunner);
20
+ }
17
21
  const LENS_DISTORTION_FRAGMENT_SRC = `#version 300 es
18
22
  precision highp float;
19
23
  in vec2 v_texCoord;
@@ -1 +1 @@
1
- {"version":3,"file":"glLensDistortionEffect.js","sourceRoot":"","sources":["../src/glLensDistortionEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAQpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,sGAAsG;AACtG,mFAAmF;AACnF,MAAM,UAAU,6BAA6B,CAC3C,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAsC;IAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,EAAE,4BAA4B,CAAC,CAAC;IAC/F,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,mCAAmC,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACvF,6BAA6B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA8B,CAAC,CAAC;AACjG,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;EAgBnC,CAAC"}
1
+ {"version":3,"file":"glLensDistortionEffect.js","sourceRoot":"","sources":["../src/glLensDistortionEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAQpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,sGAAsG;AACtG,mFAAmF;AACnF,MAAM,UAAU,6BAA6B,CAC3C,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAsC;IAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,EAAE,4BAA4B,CAAC,CAAC;IAC/F,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,mCAAmC,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACvF,6BAA6B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA8B,CAAC,CAAC;AACjG,CAAC,CAAC;AAEF,MAAM,UAAU,8BAA8B,CAAC,KAAoB;IACjE,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,EAAE,mCAAmC,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;EAgBnC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, LensFlareEffect } from '@flighthq/types/contract';
2
2
  export declare function applyLensFlareEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<LensFlareEffect>): void;
3
3
  export declare const defaultGlLensFlareEffectRunner: GlRenderEffectRunner;
4
+ export declare function registerGlLensFlareEffect(state: GlRenderState): void;
4
5
  //# sourceMappingURL=glLensFlareEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glLensFlareEffect.d.ts","sourceRoot":"","sources":["../src/glLensFlareEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AASrH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAYN;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAE5C,CAAC"}
1
+ {"version":3,"file":"glLensFlareEffect.d.ts","sourceRoot":"","sources":["../src/glLensFlareEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAUrH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAYN;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAE5C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEpE"}
@@ -1,5 +1,6 @@
1
1
  import { drawGlFullscreenPass } from '@flighthq/render-gl/contract';
2
2
  import { getGlEffectProgram } from './glEffectProgramCache';
3
+ import { registerGlRenderEffect } from './glRenderEffectRegistry';
3
4
  // Lens flare: a single-pass approximation. A true flare is a multi-pass recipe (downsample a bright
4
5
  // pass, then accumulate ghosts and a halo from it). Here, on each fragment, we sample the source's
5
6
  // bright spots along the vector from the pixel toward the center, adding `ghosts` evenly spaced ghost
@@ -21,6 +22,9 @@ export function applyLensFlareEffectToGl(state, source, dest, effect) {
21
22
  export const defaultGlLensFlareEffectRunner = (ctx, effect) => {
22
23
  applyLensFlareEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
23
24
  };
25
+ export function registerGlLensFlareEffect(state) {
26
+ registerGlRenderEffect(state, 'LensFlareEffect', defaultGlLensFlareEffectRunner);
27
+ }
24
28
  const LENS_FLARE_FRAGMENT_SRC = `#version 300 es
25
29
  precision highp float;
26
30
  in vec2 v_texCoord;
@@ -1 +1 @@
1
- {"version":3,"file":"glLensFlareEffect.js","sourceRoot":"","sources":["../src/glLensFlareEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,oGAAoG;AACpG,mGAAmG;AACnG,sGAAsG;AACtG,wGAAwG;AACxG,UAAU;AACV,MAAM,UAAU,wBAAwB,CACtC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAiC;IAEjC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;IAChC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IACrF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAClF,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAyB,CAAC,CAAC;AACvF,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B9B,CAAC"}
1
+ {"version":3,"file":"glLensFlareEffect.js","sourceRoot":"","sources":["../src/glLensFlareEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,oGAAoG;AACpG,mGAAmG;AACnG,sGAAsG;AACtG,wGAAwG;AACxG,UAAU;AACV,MAAM,UAAU,wBAAwB,CACtC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAiC;IAEjC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;IAChC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IACrF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAClF,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAyB,CAAC,CAAC;AACvF,CAAC,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,KAAoB;IAC5D,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,EAAE,8BAA8B,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B9B,CAAC"}
@@ -2,4 +2,5 @@ import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, MedianEffect
2
2
  export declare const MAX_MEDIAN_EFFECT_GL_RADIUS = 2;
3
3
  export declare function applyMedianEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<MedianEffect>): void;
4
4
  export declare const defaultGlMedianEffectRunner: GlRenderEffectRunner;
5
+ export declare function registerGlMedianEffect(state: GlRenderState): void;
5
6
  //# sourceMappingURL=glMedianEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glMedianEffect.d.ts","sourceRoot":"","sources":["../src/glMedianEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAMlH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAM7C,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,IAAI,CAON;AAED,eAAO,MAAM,2BAA2B,EAAE,oBAEzC,CAAC"}
1
+ {"version":3,"file":"glMedianEffect.d.ts","sourceRoot":"","sources":["../src/glMedianEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOlH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAM7C,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,IAAI,CAON;AAED,eAAO,MAAM,2BAA2B,EAAE,oBAEzC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEjE"}
@@ -1,5 +1,6 @@
1
1
  import { drawGlFullscreenPass } from '@flighthq/render-gl/contract';
2
2
  import { getGlEffectProgram } from './glEffectProgramCache';
3
+ import { registerGlRenderEffect } from './glRenderEffectRegistry';
3
4
  // Largest median-filter radius the WebGL path supports (radius 2 → a 5×5, 25-sample window). The cap
4
5
  // is the fixed sort-array size in the fragment shader; larger radii are unsupported on this backend.
5
6
  export const MAX_MEDIAN_EFFECT_GL_RADIUS = 2;
@@ -17,6 +18,9 @@ export function applyMedianEffectToGl(state, source, dest, effect) {
17
18
  export const defaultGlMedianEffectRunner = (ctx, effect) => {
18
19
  applyMedianEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
19
20
  };
21
+ export function registerGlMedianEffect(state) {
22
+ registerGlRenderEffect(state, 'MedianEffect', defaultGlMedianEffectRunner);
23
+ }
20
24
  const MEDIAN_FRAGMENT_SRC = `#version 300 es
21
25
  precision mediump float;
22
26
  in vec2 v_texCoord;
@@ -1 +1 @@
1
- {"version":3,"file":"glMedianEffect.js","sourceRoot":"","sources":["../src/glMedianEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,qGAAqG;AACrG,qGAAqG;AACrG,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,MAAM,WAAW,GAAG,CAAC,2BAA2B,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,2BAA2B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;AAExG,iGAAiG;AACjG,gGAAgG;AAChG,MAAM,UAAU,qBAAqB,CACnC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAA8B;IAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;IACrF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACnG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC/E,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAsB,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG;;;;;;;;oBAQR,WAAW;;;;;;;;;;;;;;;+BAeA,2BAA2B;;;;;;;;;;;mBAWvC,2BAA2B,WAAW,2BAA2B;qBAC/D,2BAA2B,WAAW,2BAA2B;;;;;;;;;;;;;;;;;EAiBpF,CAAC"}
1
+ {"version":3,"file":"glMedianEffect.js","sourceRoot":"","sources":["../src/glMedianEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,qGAAqG;AACrG,qGAAqG;AACrG,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,MAAM,WAAW,GAAG,CAAC,2BAA2B,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,2BAA2B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;AAExG,iGAAiG;AACjG,gGAAgG;AAChG,MAAM,UAAU,qBAAqB,CACnC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAA8B;IAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;IACrF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACnG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC/E,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAsB,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,KAAoB;IACzD,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,2BAA2B,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,mBAAmB,GAAG;;;;;;;;oBAQR,WAAW;;;;;;;;;;;;;;;+BAeA,2BAA2B;;;;;;;;;;;mBAWvC,2BAA2B,WAAW,2BAA2B;qBAC/D,2BAA2B,WAAW,2BAA2B;;;;;;;;;;;;;;;;;EAiBpF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, MotionBlurEffect } from '@flighthq/types/contract';
2
2
  export declare function applyMotionBlurEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, velocityTexture: WebGLTexture | null, effect: Readonly<MotionBlurEffect>): void;
3
3
  export declare const defaultGlMotionBlurEffectRunner: GlRenderEffectRunner;
4
+ export declare function registerGlMotionBlurEffect(state: GlRenderState): void;
4
5
  //# sourceMappingURL=glMotionBlurEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glMotionBlurEffect.d.ts","sourceRoot":"","sources":["../src/glMotionBlurEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAWtH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,eAAe,EAAE,YAAY,GAAG,IAAI,EACpC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACjC,IAAI,CAYN;AAED,eAAO,MAAM,+BAA+B,EAAE,oBAE7C,CAAC"}
1
+ {"version":3,"file":"glMotionBlurEffect.d.ts","sourceRoot":"","sources":["../src/glMotionBlurEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAYtH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,eAAe,EAAE,YAAY,GAAG,IAAI,EACpC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACjC,IAAI,CAYN;AAED,eAAO,MAAM,+BAA+B,EAAE,oBAE7C,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAErE"}
@@ -1,5 +1,6 @@
1
1
  import { drawGlFullscreenPass } from '@flighthq/render-gl/contract';
2
2
  import { getGlEffectProgram } from './glEffectProgramCache';
3
+ import { registerGlRenderEffect } from './glRenderEffectRegistry';
3
4
  // Motion blur (per-object): the velocity-driven analog of the depth consumers (fog/DoF). When the scene
4
5
  // produced a per-pixel velocity buffer (`velocityTexture`, rgba16f screen-space velocity in pixels in the
5
6
  // RG channels), this is the real recipe — read each fragment's velocity, scale it by `intensity`, and
@@ -23,6 +24,9 @@ export function applyMotionBlurEffectToGl(state, source, dest, velocityTexture,
23
24
  export const defaultGlMotionBlurEffectRunner = (ctx, effect) => {
24
25
  applyMotionBlurEffectToGl(ctx.state, ctx.source, ctx.dest, ctx.sceneVelocityTexture, effect);
25
26
  };
27
+ export function registerGlMotionBlurEffect(state) {
28
+ registerGlRenderEffect(state, 'MotionBlurEffect', defaultGlMotionBlurEffectRunner);
29
+ }
26
30
  const MOTION_BLUR_FRAGMENT_SRC = `#version 300 es
27
31
  precision highp float;
28
32
  in vec2 v_texCoord;
@@ -1 +1 @@
1
- {"version":3,"file":"glMotionBlurEffect.js","sourceRoot":"","sources":["../src/glMotionBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,wGAAwG;AACxG,0GAA0G;AAC1G,sGAAsG;AACtG,wGAAwG;AACxG,0GAA0G;AAC1G,+GAA+G;AAC/G,+FAA+F;AAC/F,MAAM,UAAU,yBAAyB,CACvC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,eAAoC,EACpC,MAAkC;IAElC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QAC3D,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,mFAAmF;QACnF,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5F,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACnF,yBAAyB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,oBAAoB,EAAE,MAA0B,CAAC,CAAC;AACnH,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC/B,CAAC"}
1
+ {"version":3,"file":"glMotionBlurEffect.js","sourceRoot":"","sources":["../src/glMotionBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,wGAAwG;AACxG,0GAA0G;AAC1G,sGAAsG;AACtG,wGAAwG;AACxG,0GAA0G;AAC1G,+GAA+G;AAC/G,+FAA+F;AAC/F,MAAM,UAAU,yBAAyB,CACvC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,eAAoC,EACpC,MAAkC;IAElC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QAC3D,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,mFAAmF;QACnF,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5F,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACnF,yBAAyB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,oBAAoB,EAAE,MAA0B,CAAC,CAAC;AACnH,CAAC,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAoB;IAC7D,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,EAAE,+BAA+B,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC/B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { OuterGlowEffect, GlRenderEffectRunner, GlRenderState, GlRenderTarget, GlRenderTargetPool } from '@flighthq/types/contract';
2
2
  export declare function applyOuterGlowEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, pool: GlRenderTargetPool, effect: Readonly<OuterGlowEffect>): void;
3
3
  export declare const defaultGlOuterGlowEffectRunner: GlRenderEffectRunner;
4
+ export declare function registerGlOuterGlowEffect(state: GlRenderState): void;
4
5
  //# sourceMappingURL=glOuterGlowEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glOuterGlowEffect.d.ts","sourceRoot":"","sources":["../src/glOuterGlowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAYlC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAyCN;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAE5C,CAAC"}
1
+ {"version":3,"file":"glOuterGlowEffect.d.ts","sourceRoot":"","sources":["../src/glOuterGlowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAalC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAyCN;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAE5C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEpE"}
@@ -2,6 +2,7 @@ import { acquireGlRenderTarget, clearGlRenderTarget, releaseGlRenderTarget } fro
2
2
  import { applyGlEffectBlitPass, applyGlEffectErasePass } from './glEffectBlitShader';
3
3
  import { applyGlEffectBoxBlur } from './glEffectBoxBlur';
4
4
  import { applyGlEffectTintPass } from './glEffectTintShader';
5
+ import { registerGlRenderEffect } from './glRenderEffectRegistry';
5
6
  // Outer-glow composite effect: tint the scene silhouette, blur it centered (no offset), then composite the source over the glow.
6
7
  // Full-frame realization: acquires the recipe's three scratch targets from the effect pool, runs the
7
8
  // inlined multi-pass recipe, then releases them.
@@ -46,4 +47,7 @@ export function applyOuterGlowEffectToGl(state, source, dest, pool, effect) {
46
47
  export const defaultGlOuterGlowEffectRunner = (ctx, effect) => {
47
48
  applyOuterGlowEffectToGl(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
48
49
  };
50
+ export function registerGlOuterGlowEffect(state) {
51
+ registerGlRenderEffect(state, 'OuterGlowEffect', defaultGlOuterGlowEffectRunner);
52
+ }
49
53
  //# sourceMappingURL=glOuterGlowEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glOuterGlowEffect.js","sourceRoot":"","sources":["../src/glOuterGlowEffect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"glOuterGlowEffect.js","sourceRoot":"","sources":["../src/glOuterGlowEffect.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, OutlineEffect } from '@flighthq/types/contract';
2
2
  export declare function applyOutlineEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<OutlineEffect>): void;
3
3
  export declare const defaultGlOutlineEffectRunner: GlRenderEffectRunner;
4
+ export declare function registerGlOutlineEffect(state: GlRenderState): void;
4
5
  //# sourceMappingURL=glOutlineEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glOutlineEffect.d.ts","sourceRoot":"","sources":["../src/glOutlineEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMnH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC9B,IAAI,CAiBN;AAED,eAAO,MAAM,4BAA4B,EAAE,oBAE1C,CAAC"}
1
+ {"version":3,"file":"glOutlineEffect.d.ts","sourceRoot":"","sources":["../src/glOutlineEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAOnH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC9B,IAAI,CAiBN;AAED,eAAO,MAAM,4BAA4B,EAAE,oBAE1C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAElE"}
@@ -1,5 +1,6 @@
1
1
  import { drawGlFullscreenPass } from '@flighthq/render-gl/contract';
2
2
  import { getGlEffectProgram } from './glEffectProgramCache';
3
+ import { registerGlRenderEffect } from './glRenderEffectRegistry';
3
4
  // Outline: Sobel edge detection on luminance; where the gradient magnitude exceeds `threshold`, mix
4
5
  // the pixel toward the outline color by `thickness`. Color arrives packed RGBA, unpacked to 0..1 here.
5
6
  export function applyOutlineEffectToGl(state, source, dest, effect) {
@@ -17,6 +18,9 @@ export function applyOutlineEffectToGl(state, source, dest, effect) {
17
18
  export const defaultGlOutlineEffectRunner = (ctx, effect) => {
18
19
  applyOutlineEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
19
20
  };
21
+ export function registerGlOutlineEffect(state) {
22
+ registerGlRenderEffect(state, 'OutlineEffect', defaultGlOutlineEffectRunner);
23
+ }
20
24
  const OUTLINE_FRAGMENT_SRC = `#version 300 es
21
25
  precision highp float;
22
26
  in vec2 v_texCoord;
@@ -1 +1 @@
1
- {"version":3,"file":"glOutlineEffect.js","sourceRoot":"","sources":["../src/glOutlineEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,oGAAoG;AACpG,uGAAuG;AACvG,MAAM,UAAU,sBAAsB,CACpC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAA+B;IAE/B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC;IACzC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;IACvF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,EAAE,CAAC,SAAS,CACV,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAC3C,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAC7B,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAC7B,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAC5B,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CACrB,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAChF,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAuB,CAAC,CAAC;AACnF,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4B3B,CAAC"}
1
+ {"version":3,"file":"glOutlineEffect.js","sourceRoot":"","sources":["../src/glOutlineEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,oGAAoG;AACpG,uGAAuG;AACvG,MAAM,UAAU,sBAAsB,CACpC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAA+B;IAE/B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC;IACzC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;IACvF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,EAAE,CAAC,SAAS,CACV,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAC3C,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAC7B,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAC7B,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAC5B,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CACrB,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAChF,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAuB,CAAC,CAAC;AACnF,CAAC,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,KAAoB;IAC1D,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,4BAA4B,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4B3B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, PixelateEffect } from '@flighthq/types/contract';
2
2
  export declare function applyPixelateEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<PixelateEffect>): void;
3
3
  export declare const defaultGlPixelateEffectRunner: GlRenderEffectRunner;
4
+ export declare function registerGlPixelateEffect(state: GlRenderState): void;
4
5
  //# sourceMappingURL=glPixelateEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glPixelateEffect.d.ts","sourceRoot":"","sources":["../src/glPixelateEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAKpH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAC/B,IAAI,CAON;AAED,eAAO,MAAM,6BAA6B,EAAE,oBAE3C,CAAC"}
1
+ {"version":3,"file":"glPixelateEffect.d.ts","sourceRoot":"","sources":["../src/glPixelateEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAMpH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAC/B,IAAI,CAON;AAED,eAAO,MAAM,6BAA6B,EAAE,oBAE3C,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEnE"}
@@ -1,5 +1,6 @@
1
1
  import { drawGlFullscreenPass } from '@flighthq/render-gl/contract';
2
2
  import { getGlEffectProgram } from './glEffectProgramCache';
3
+ import { registerGlRenderEffect } from './glRenderEffectRegistry';
3
4
  // Pixelate: snap uv to the center of `size`-pixel blocks before sampling, producing hard mosaic blocks.
4
5
  export function applyPixelateEffectToGl(state, source, dest, effect) {
5
6
  const size = effect.size ?? 8;
@@ -12,6 +13,9 @@ export function applyPixelateEffectToGl(state, source, dest, effect) {
12
13
  export const defaultGlPixelateEffectRunner = (ctx, effect) => {
13
14
  applyPixelateEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
14
15
  };
16
+ export function registerGlPixelateEffect(state) {
17
+ registerGlRenderEffect(state, 'PixelateEffect', defaultGlPixelateEffectRunner);
18
+ }
15
19
  const PIXELATE_FRAGMENT_SRC = `#version 300 es
16
20
  precision highp float;
17
21
  in vec2 v_texCoord;
@@ -1 +1 @@
1
- {"version":3,"file":"glPixelateEffect.js","sourceRoot":"","sources":["../src/glPixelateEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,wGAAwG;AACxG,MAAM,UAAU,uBAAuB,CACrC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAgC;IAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC;IACzF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5E,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACjF,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAwB,CAAC,CAAC;AACrF,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG;;;;;;;;;;;EAW5B,CAAC"}
1
+ {"version":3,"file":"glPixelateEffect.js","sourceRoot":"","sources":["../src/glPixelateEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,wGAAwG;AACxG,MAAM,UAAU,uBAAuB,CACrC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAgC;IAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC;IACzF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5E,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACjF,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAwB,CAAC,CAAC;AACrF,CAAC,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,KAAoB;IAC3D,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,EAAE,6BAA6B,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,qBAAqB,GAAG;;;;;;;;;;;EAW5B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, PosterizeEffect } from '@flighthq/types/contract';
2
2
  export declare function applyPosterizeEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<PosterizeEffect>): void;
3
3
  export declare const defaultGlPosterizeEffectRunner: GlRenderEffectRunner;
4
+ export declare function registerGlPosterizeEffect(state: GlRenderState): void;
4
5
  //# sourceMappingURL=glPosterizeEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glPosterizeEffect.d.ts","sourceRoot":"","sources":["../src/glPosterizeEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKrH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAMN;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAE5C,CAAC"}
1
+ {"version":3,"file":"glPosterizeEffect.d.ts","sourceRoot":"","sources":["../src/glPosterizeEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAMrH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAMN;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAE5C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEpE"}
@@ -1,5 +1,6 @@
1
1
  import { drawGlFullscreenPass } from '@flighthq/render-gl/contract';
2
2
  import { getGlEffectProgram } from './glEffectProgramCache';
3
+ import { registerGlRenderEffect } from './glRenderEffectRegistry';
3
4
  // Posterize: floor each channel to `levels` discrete steps.
4
5
  export function applyPosterizeEffectToGl(state, source, dest, effect) {
5
6
  const levels = Math.max(2, effect.levels ?? 8);
@@ -11,6 +12,9 @@ export function applyPosterizeEffectToGl(state, source, dest, effect) {
11
12
  export const defaultGlPosterizeEffectRunner = (ctx, effect) => {
12
13
  applyPosterizeEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
13
14
  };
15
+ export function registerGlPosterizeEffect(state) {
16
+ registerGlRenderEffect(state, 'PosterizeEffect', defaultGlPosterizeEffectRunner);
17
+ }
14
18
  const POSTERIZE_FRAGMENT_SRC = `#version 300 es
15
19
  precision highp float;
16
20
  in vec2 v_texCoord;
@@ -1 +1 @@
1
- {"version":3,"file":"glPosterizeEffect.js","sourceRoot":"","sources":["../src/glPosterizeEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,4DAA4D;AAC5D,MAAM,UAAU,wBAAwB,CACtC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAiC;IAEjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;IAC1F,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAClF,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAyB,CAAC,CAAC;AACvF,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;EAU7B,CAAC"}
1
+ {"version":3,"file":"glPosterizeEffect.js","sourceRoot":"","sources":["../src/glPosterizeEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,4DAA4D;AAC5D,MAAM,UAAU,wBAAwB,CACtC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAiC;IAEjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;IAC1F,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAClF,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAyB,CAAC,CAAC;AACvF,CAAC,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,KAAoB;IAC5D,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,EAAE,8BAA8B,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,sBAAsB,GAAG;;;;;;;;;;EAU7B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, RadialBlurEffect } from '@flighthq/types/contract';
2
2
  export declare function applyRadialBlurEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<RadialBlurEffect>): void;
3
3
  export declare const defaultGlRadialBlurEffectRunner: GlRenderEffectRunner;
4
+ export declare function registerGlRadialBlurEffect(state: GlRenderState): void;
4
5
  //# sourceMappingURL=glRadialBlurEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glRadialBlurEffect.d.ts","sourceRoot":"","sources":["../src/glRadialBlurEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAMtH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACjC,IAAI,CAWN;AAED,eAAO,MAAM,+BAA+B,EAAE,oBAE7C,CAAC"}
1
+ {"version":3,"file":"glRadialBlurEffect.d.ts","sourceRoot":"","sources":["../src/glRadialBlurEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAOtH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACjC,IAAI,CAWN;AAED,eAAO,MAAM,+BAA+B,EAAE,oBAE7C,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAErE"}
@@ -1,5 +1,6 @@
1
1
  import { drawGlFullscreenPass } from '@flighthq/render-gl/contract';
2
2
  import { getGlEffectProgram } from './glEffectProgramCache';
3
+ import { registerGlRenderEffect } from './glRenderEffectRegistry';
3
4
  // Radial blur: accumulate samples stepped from the current uv toward (centerX, centerY) scaled by
4
5
  // `strength`, normalized by the sample count. Single-pass reference recipe.
5
6
  export function applyRadialBlurEffectToGl(state, source, dest, effect) {
@@ -17,6 +18,9 @@ export function applyRadialBlurEffectToGl(state, source, dest, effect) {
17
18
  export const defaultGlRadialBlurEffectRunner = (ctx, effect) => {
18
19
  applyRadialBlurEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
19
20
  };
21
+ export function registerGlRadialBlurEffect(state) {
22
+ registerGlRenderEffect(state, 'RadialBlurEffect', defaultGlRadialBlurEffectRunner);
23
+ }
20
24
  const RADIAL_BLUR_FRAGMENT_SRC = `#version 300 es
21
25
  precision highp float;
22
26
  in vec2 v_texCoord;
@@ -1 +1 @@
1
- {"version":3,"file":"glRadialBlurEffect.js","sourceRoot":"","sources":["../src/glRadialBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,kGAAkG;AAClG,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB,CACvC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAkC;IAElC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAC;IAClF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7E,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC;QACvE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACnF,yBAAyB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA0B,CAAC,CAAC;AACzF,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;EAsB/B,CAAC"}
1
+ {"version":3,"file":"glRadialBlurEffect.js","sourceRoot":"","sources":["../src/glRadialBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,kGAAkG;AAClG,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB,CACvC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAkC;IAElC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAC;IAClF,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7E,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC;QACvE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACnF,yBAAyB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA0B,CAAC,CAAC;AACzF,CAAC,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAoB;IAC7D,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,EAAE,+BAA+B,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;EAsB/B,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { Adjustment, GlRenderEffectPipeline, GlRenderState, RenderEffect, RenderEffectPipelineOptions } from '@flighthq/types/contract';
2
- export declare function beginGlRenderEffectPipeline(state: GlRenderState, pipeline: GlRenderEffectPipeline): void;
1
+ import type { Adjustment, GlRenderEffectPipeline, GlRenderState, RenderEffect, RenderEffectPipelineOptions, RenderTargetColorSpace } from '@flighthq/types/contract';
2
+ export declare function beginGlRenderEffectPipeline(state: GlRenderState, pipeline: GlRenderEffectPipeline, colorSpace?: RenderTargetColorSpace): void;
3
3
  export declare function createGlRenderEffectPipeline(_state: GlRenderState, options?: Readonly<RenderEffectPipelineOptions>): GlRenderEffectPipeline;
4
4
  export declare function destroyGlRenderEffectPipeline(state: GlRenderState, pipeline: GlRenderEffectPipeline): void;
5
5
  export declare function endGlRenderEffectPipeline(state: GlRenderState, pipeline: GlRenderEffectPipeline, operations: ReadonlyArray<RenderEffect | Adjustment>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"glRenderEffectPipeline.d.ts","sourceRoot":"","sources":["../src/glRenderEffectPipeline.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,UAAU,EACV,sBAAsB,EACtB,aAAa,EAEb,YAAY,EACZ,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAYlC,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAkBxG;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,QAAQ,CAAC,2BAA2B,CAAM,GAClD,sBAAsB,CASxB;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAa1G;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,sBAAsB,EAChC,UAAU,EAAE,aAAa,CAAC,YAAY,GAAG,UAAU,CAAC,GACnD,IAAI,CA4EN;AAID,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAErH"}
1
+ {"version":3,"file":"glRenderEffectPipeline.d.ts","sourceRoot":"","sources":["../src/glRenderEffectPipeline.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,UAAU,EACV,sBAAsB,EACtB,aAAa,EAEb,YAAY,EACZ,2BAA2B,EAC3B,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAYlC,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,sBAAsB,EAChC,UAAU,GAAE,sBAA+B,GAC1C,IAAI,CAyBN;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,QAAQ,CAAC,2BAA2B,CAAM,GAClD,sBAAsB,CASxB;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAa1G;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,sBAAsB,EAChC,UAAU,EAAE,aAAa,CAAC,YAAY,GAAG,UAAU,CAAC,GACnD,IAAI,CA4EN;AAID,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAErH"}
@@ -8,21 +8,28 @@ import { getGlRenderEffectRunner } from './glRenderEffectRegistry';
8
8
  // between begin/end; end resolves MSAA, runs the agnostic effect list through the per-state registry
9
9
  // ping-ponging pooled targets, then presents to the canvas. The default render loop imports none of
10
10
  // this. The effect list is per-frame data; only the scene target and pool are retained.
11
- export function beginGlRenderEffectPipeline(state, pipeline) {
11
+ export function beginGlRenderEffectPipeline(state, pipeline, colorSpace = 'srgb') {
12
12
  const w = state.canvas.width;
13
13
  const h = state.canvas.height;
14
14
  const { sampleCount, format, depth } = pipeline.options;
15
15
  if (pipeline.sceneTarget === null) {
16
- pipeline.sceneTarget = createGlRenderTarget(state, { width: w, height: h, sampleCount, format, depth });
16
+ pipeline.sceneTarget = createGlRenderTarget(state, {
17
+ width: w,
18
+ height: h,
19
+ sampleCount,
20
+ format,
21
+ depth,
22
+ colorSpace,
23
+ });
17
24
  }
18
25
  else {
19
26
  resizeGlRenderTarget(state, pipeline.sceneTarget, w, h);
20
27
  }
21
- // Reset the declared color space each frame so the frame's producer re-declares it: drawGlScene3D stamps
22
- // 'linear' while it draws (the present then encodes once); a 2D display-object frame leaves it 'srgb'
23
- // (plain-copy present, byte-identical to before this seam existed). A reused pipeline never carries a
24
- // stale space from a prior frame's content.
25
- pipeline.sceneTarget.colorSpace = 'srgb';
28
+ // Declare the producer's space before the pass opens. A background clear happens before the first
29
+ // scene draw, so the target must already say whether renderGlBackground should decode its packed
30
+ // sRGB input into linear storage. The explicit frame value also prevents a reused pipeline from
31
+ // carrying the previous producer's color space.
32
+ pipeline.sceneTarget.colorSpace = colorSpace;
26
33
  // Preserve, don't clear: the frame's scene render fills the target (matching the pre-pass behavior),
27
34
  // and the current 2D render transform is inherited — begin no longer sets it.
28
35
  beginGlRenderPass(state, pipeline.sceneTarget, { preserveColor: true, preserveDepth: true });
@@ -1 +1 @@
1
- {"version":3,"file":"glRenderEffectPipeline.js","sourceRoot":"","sources":["../src/glRenderEffectPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"glRenderEffectPipeline.js","sourceRoot":"","sources":["../src/glRenderEffectPipeline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"glRenderEffectRegistry.d.ts","sourceRoot":"","sources":["../src/glRenderEffectRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAOpF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAEvG;AAKD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAO7G"}
1
+ {"version":3,"file":"glRenderEffectRegistry.d.ts","sourceRoot":"","sources":["../src/glRenderEffectRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AASpF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAEvG;AAKD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAG7G"}
@@ -1,23 +1,21 @@
1
+ import { getGlRenderStateRuntime } from '@flighthq/render-gl/contract';
1
2
  // Per-state registry mapping an effect `kind` string to its Gl runner — the material-renderer
2
3
  // pattern one tier up. Registration is opt-in (import a runner only to register it) and dispatch is a
3
4
  // Map lookup, so there is no monolithic switch and unused effect recipes tree-shake away. Register an
4
- // alternative runner under the same key to swap algorithms.
5
+ // alternative runner under the same key to swap algorithms. A built-in registerGl<Kind>Effect wrapper
6
+ // is pure ergonomics: it calls this function with the literal kind and public default runner, and
7
+ // installs no padding, shader-source, or backdrop companions.
5
8
  export function getGlRenderEffectRunner(state, kind) {
6
- return _registries.get(state)?.get(kind) ?? null;
9
+ return getGlRenderStateRuntime(state).glRenderEffectRegistry?.get(kind) ?? null;
7
10
  }
8
11
  // Returns true if a runner is registered for the given kind in this state. Use to validate an effect
9
12
  // chain before dispatching — the pipeline silently skips unregistered kinds; check up front to apply
10
13
  // your own policy (warn, throw, filter) rather than relying on silent no-ops.
11
14
  export function hasGlRenderEffectRunner(state, kind) {
12
- return _registries.get(state)?.has(kind) ?? false;
15
+ return getGlRenderStateRuntime(state).glRenderEffectRegistry?.has(kind) ?? false;
13
16
  }
14
17
  export function registerGlRenderEffect(state, kind, runner) {
15
- let registry = _registries.get(state);
16
- if (registry === undefined) {
17
- registry = new Map();
18
- _registries.set(state, registry);
19
- }
20
- registry.set(kind, runner);
18
+ const runtime = getGlRenderStateRuntime(state);
19
+ (runtime.glRenderEffectRegistry ??= new Map()).set(kind, runner);
21
20
  }
22
- const _registries = new WeakMap();
23
21
  //# sourceMappingURL=glRenderEffectRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glRenderEffectRegistry.js","sourceRoot":"","sources":["../src/glRenderEffectRegistry.ts"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,sGAAsG;AACtG,sGAAsG;AACtG,4DAA4D;AAE5D,MAAM,UAAU,uBAAuB,CAAC,KAAoB,EAAE,IAAY;IACxE,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACnD,CAAC;AAED,qGAAqG;AACrG,qGAAqG;AACrG,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CAAC,KAAoB,EAAE,IAAY;IACxE,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAoB,EAAE,IAAY,EAAE,MAA4B;IACrG,IAAI,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QACrB,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IACD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,OAAO,EAAoD,CAAC"}
1
+ {"version":3,"file":"glRenderEffectRegistry.js","sourceRoot":"","sources":["../src/glRenderEffectRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,8FAA8F;AAC9F,sGAAsG;AACtG,sGAAsG;AACtG,sGAAsG;AACtG,kGAAkG;AAClG,8DAA8D;AAE9D,MAAM,UAAU,uBAAuB,CAAC,KAAoB,EAAE,IAAY;IACxE,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAClF,CAAC;AAED,qGAAqG;AACrG,qGAAqG;AACrG,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CAAC,KAAoB,EAAE,IAAY;IACxE,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAoB,EAAE,IAAY,EAAE,MAA4B;IACrG,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,OAAO,CAAC,sBAAsB,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { GlRenderEffectApplicationExplanation, GlRenderEffectApplicationGuard, GlRenderState, GlRenderTexturePool, RenderEffect, RenderTexture } from '@flighthq/types/contract';
2
+ export declare function applyGlRenderEffectsToRenderTexture(state: GlRenderState, pool: GlRenderTexturePool, source: Readonly<RenderTexture>, dest: RenderTexture, scratch: RenderTexture, effects: ReadonlyArray<Readonly<RenderEffect>>): boolean;
3
+ export declare function explainGlRenderEffectApplication(state: GlRenderState, effects: ReadonlyArray<Readonly<RenderEffect>>, sourceAvailable: boolean, destinationAvailable?: boolean): GlRenderEffectApplicationExplanation;
4
+ export declare function setGlRenderEffectApplicationGuard(state: GlRenderState, guard: GlRenderEffectApplicationGuard | null): void;
5
+ //# sourceMappingURL=glRenderTextureEffect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glRenderTextureEffect.d.ts","sourceRoot":"","sources":["../src/glRenderTextureEffect.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,oCAAoC,EACpC,8BAA8B,EAC9B,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACd,MAAM,0BAA0B,CAAC;AAOlC,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC/B,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAC7C,OAAO,CA8CT;AAMD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAC9C,eAAe,EAAE,OAAO,EACxB,oBAAoB,UAAQ,GAC3B,oCAAoC,CAkBtC;AAID,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,8BAA8B,GAAG,IAAI,GAC3C,IAAI,CAGN"}