@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.
- package/dist/contract.d.ts +3 -2
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +3 -2
- package/dist/contract.js.map +1 -1
- package/dist/enableGlRenderEffectGuards.d.ts +5 -0
- package/dist/enableGlRenderEffectGuards.d.ts.map +1 -0
- package/dist/enableGlRenderEffectGuards.js +43 -0
- package/dist/enableGlRenderEffectGuards.js.map +1 -0
- package/dist/glBevelEffect.d.ts +1 -0
- package/dist/glBevelEffect.d.ts.map +1 -1
- package/dist/glBevelEffect.js +7 -3
- package/dist/glBevelEffect.js.map +1 -1
- package/dist/glBlendEffect.d.ts +2 -0
- package/dist/glBlendEffect.d.ts.map +1 -1
- package/dist/glBlendEffect.js +13 -2
- package/dist/glBlendEffect.js.map +1 -1
- package/dist/glBloomEffect.d.ts +1 -0
- package/dist/glBloomEffect.d.ts.map +1 -1
- package/dist/glBloomEffect.js +4 -0
- package/dist/glBloomEffect.js.map +1 -1
- package/dist/glBlurEffect.d.ts +7 -1
- package/dist/glBlurEffect.d.ts.map +1 -1
- package/dist/glBlurEffect.js +34 -6
- package/dist/glBlurEffect.js.map +1 -1
- package/dist/glBokehDepthOfFieldEffect.d.ts +1 -0
- package/dist/glBokehDepthOfFieldEffect.d.ts.map +1 -1
- package/dist/glBokehDepthOfFieldEffect.js +4 -0
- package/dist/glBokehDepthOfFieldEffect.js.map +1 -1
- package/dist/glCameraMotionBlurEffect.d.ts +1 -0
- package/dist/glCameraMotionBlurEffect.d.ts.map +1 -1
- package/dist/glCameraMotionBlurEffect.js +4 -0
- package/dist/glCameraMotionBlurEffect.js.map +1 -1
- package/dist/glChromaticAberrationEffect.d.ts +1 -0
- package/dist/glChromaticAberrationEffect.d.ts.map +1 -1
- package/dist/glChromaticAberrationEffect.js +4 -0
- package/dist/glChromaticAberrationEffect.js.map +1 -1
- package/dist/glCompositeEffect.d.ts +1 -0
- package/dist/glCompositeEffect.d.ts.map +1 -1
- package/dist/glCompositeEffect.js +4 -0
- package/dist/glCompositeEffect.js.map +1 -1
- package/dist/glContactShadowsEffect.d.ts +5 -0
- package/dist/glContactShadowsEffect.d.ts.map +1 -0
- package/dist/glContactShadowsEffect.js +20 -0
- package/dist/glContactShadowsEffect.js.map +1 -0
- package/dist/glConvolutionEffect.d.ts +1 -0
- package/dist/glConvolutionEffect.d.ts.map +1 -1
- package/dist/glConvolutionEffect.js +4 -0
- package/dist/glConvolutionEffect.js.map +1 -1
- package/dist/glCrtEffect.d.ts +1 -0
- package/dist/glCrtEffect.d.ts.map +1 -1
- package/dist/glCrtEffect.js +4 -0
- package/dist/glCrtEffect.js.map +1 -1
- package/dist/glCustomShaderEffect.d.ts +1 -0
- package/dist/glCustomShaderEffect.d.ts.map +1 -1
- package/dist/glCustomShaderEffect.js +4 -0
- package/dist/glCustomShaderEffect.js.map +1 -1
- package/dist/glDirectionalBlurEffect.d.ts +1 -0
- package/dist/glDirectionalBlurEffect.d.ts.map +1 -1
- package/dist/glDirectionalBlurEffect.js +4 -0
- package/dist/glDirectionalBlurEffect.js.map +1 -1
- package/dist/glDisplacementEffect.d.ts +1 -0
- package/dist/glDisplacementEffect.d.ts.map +1 -1
- package/dist/glDisplacementEffect.js +4 -0
- package/dist/glDisplacementEffect.js.map +1 -1
- package/dist/glDitherEffect.d.ts +1 -0
- package/dist/glDitherEffect.d.ts.map +1 -1
- package/dist/glDitherEffect.js +4 -0
- package/dist/glDitherEffect.js.map +1 -1
- package/dist/glDropShadowEffect.d.ts +1 -0
- package/dist/glDropShadowEffect.d.ts.map +1 -1
- package/dist/glDropShadowEffect.js +4 -0
- package/dist/glDropShadowEffect.js.map +1 -1
- package/dist/glEffectBlitShader.js +6 -6
- package/dist/glEffectBlitShader.js.map +1 -1
- package/dist/glEffectBoxBlur.js +2 -2
- package/dist/glEffectBoxBlur.js.map +1 -1
- package/dist/glEffectProgramCache.js +5 -5
- package/dist/glEffectProgramCache.js.map +1 -1
- package/dist/glEffectTintShader.js +4 -4
- package/dist/glEffectTintShader.js.map +1 -1
- package/dist/glFilmGrainEffect.d.ts +1 -0
- package/dist/glFilmGrainEffect.d.ts.map +1 -1
- package/dist/glFilmGrainEffect.js +4 -0
- package/dist/glFilmGrainEffect.js.map +1 -1
- package/dist/glFxaaEffect.d.ts +1 -0
- package/dist/glFxaaEffect.d.ts.map +1 -1
- package/dist/glFxaaEffect.js +4 -0
- package/dist/glFxaaEffect.js.map +1 -1
- package/dist/glGlitchEffect.d.ts +1 -0
- package/dist/glGlitchEffect.d.ts.map +1 -1
- package/dist/glGlitchEffect.js +4 -0
- package/dist/glGlitchEffect.js.map +1 -1
- package/dist/glGodRaysEffect.d.ts +1 -0
- package/dist/glGodRaysEffect.d.ts.map +1 -1
- package/dist/glGodRaysEffect.js +4 -0
- package/dist/glGodRaysEffect.js.map +1 -1
- package/dist/glGradientBevelEffect.d.ts +1 -0
- package/dist/glGradientBevelEffect.d.ts.map +1 -1
- package/dist/glGradientBevelEffect.js +8 -4
- package/dist/glGradientBevelEffect.js.map +1 -1
- package/dist/glGradientGlowEffect.d.ts +1 -0
- package/dist/glGradientGlowEffect.d.ts.map +1 -1
- package/dist/glGradientGlowEffect.js +6 -2
- package/dist/glGradientGlowEffect.js.map +1 -1
- package/dist/glHalftoneEffect.d.ts +1 -0
- package/dist/glHalftoneEffect.d.ts.map +1 -1
- package/dist/glHalftoneEffect.js +4 -0
- package/dist/glHalftoneEffect.js.map +1 -1
- package/dist/glInnerGlowEffect.d.ts +1 -0
- package/dist/glInnerGlowEffect.d.ts.map +1 -1
- package/dist/glInnerGlowEffect.js +6 -2
- package/dist/glInnerGlowEffect.js.map +1 -1
- package/dist/glInnerShadowEffect.d.ts +1 -0
- package/dist/glInnerShadowEffect.d.ts.map +1 -1
- package/dist/glInnerShadowEffect.js +6 -2
- package/dist/glInnerShadowEffect.js.map +1 -1
- package/dist/glKuwaharaEffect.d.ts +1 -0
- package/dist/glKuwaharaEffect.d.ts.map +1 -1
- package/dist/glKuwaharaEffect.js +4 -0
- package/dist/glKuwaharaEffect.js.map +1 -1
- package/dist/glLensDirtEffect.d.ts +1 -0
- package/dist/glLensDirtEffect.d.ts.map +1 -1
- package/dist/glLensDirtEffect.js +4 -0
- package/dist/glLensDirtEffect.js.map +1 -1
- package/dist/glLensDistortionEffect.d.ts +1 -0
- package/dist/glLensDistortionEffect.d.ts.map +1 -1
- package/dist/glLensDistortionEffect.js +4 -0
- package/dist/glLensDistortionEffect.js.map +1 -1
- package/dist/glLensFlareEffect.d.ts +1 -0
- package/dist/glLensFlareEffect.d.ts.map +1 -1
- package/dist/glLensFlareEffect.js +4 -0
- package/dist/glLensFlareEffect.js.map +1 -1
- package/dist/glMedianEffect.d.ts +1 -0
- package/dist/glMedianEffect.d.ts.map +1 -1
- package/dist/glMedianEffect.js +4 -0
- package/dist/glMedianEffect.js.map +1 -1
- package/dist/glMotionBlurEffect.d.ts +1 -0
- package/dist/glMotionBlurEffect.d.ts.map +1 -1
- package/dist/glMotionBlurEffect.js +4 -0
- package/dist/glMotionBlurEffect.js.map +1 -1
- package/dist/glOuterGlowEffect.d.ts +1 -0
- package/dist/glOuterGlowEffect.d.ts.map +1 -1
- package/dist/glOuterGlowEffect.js +4 -0
- package/dist/glOuterGlowEffect.js.map +1 -1
- package/dist/glOutlineEffect.d.ts +1 -0
- package/dist/glOutlineEffect.d.ts.map +1 -1
- package/dist/glOutlineEffect.js +4 -0
- package/dist/glOutlineEffect.js.map +1 -1
- package/dist/glPixelateEffect.d.ts +1 -0
- package/dist/glPixelateEffect.d.ts.map +1 -1
- package/dist/glPixelateEffect.js +4 -0
- package/dist/glPixelateEffect.js.map +1 -1
- package/dist/glPosterizeEffect.d.ts +1 -0
- package/dist/glPosterizeEffect.d.ts.map +1 -1
- package/dist/glPosterizeEffect.js +4 -0
- package/dist/glPosterizeEffect.js.map +1 -1
- package/dist/glRadialBlurEffect.d.ts +1 -0
- package/dist/glRadialBlurEffect.d.ts.map +1 -1
- package/dist/glRadialBlurEffect.js +4 -0
- package/dist/glRadialBlurEffect.js.map +1 -1
- package/dist/glRenderEffectPipeline.d.ts +2 -2
- package/dist/glRenderEffectPipeline.d.ts.map +1 -1
- package/dist/glRenderEffectPipeline.js +14 -7
- package/dist/glRenderEffectPipeline.js.map +1 -1
- package/dist/glRenderEffectRegistry.d.ts.map +1 -1
- package/dist/glRenderEffectRegistry.js +8 -10
- package/dist/glRenderEffectRegistry.js.map +1 -1
- package/dist/glRenderTextureEffect.d.ts +5 -0
- package/dist/glRenderTextureEffect.d.ts.map +1 -0
- package/dist/glRenderTextureEffect.js +83 -0
- package/dist/glRenderTextureEffect.js.map +1 -0
- package/dist/glScanlinesEffect.d.ts +1 -0
- package/dist/glScanlinesEffect.d.ts.map +1 -1
- package/dist/glScanlinesEffect.js +4 -0
- package/dist/glScanlinesEffect.js.map +1 -1
- package/dist/glScreenSpaceFogEffect.d.ts +1 -0
- package/dist/glScreenSpaceFogEffect.d.ts.map +1 -1
- package/dist/glScreenSpaceFogEffect.js +4 -0
- package/dist/glScreenSpaceFogEffect.js.map +1 -1
- package/dist/glSharpenEffect.d.ts +1 -0
- package/dist/glSharpenEffect.d.ts.map +1 -1
- package/dist/glSharpenEffect.js +4 -0
- package/dist/glSharpenEffect.js.map +1 -1
- package/dist/glSketchEffect.d.ts +1 -0
- package/dist/glSketchEffect.d.ts.map +1 -1
- package/dist/glSketchEffect.js +4 -0
- package/dist/glSketchEffect.js.map +1 -1
- package/dist/glSmaaEffect.d.ts +1 -0
- package/dist/glSmaaEffect.d.ts.map +1 -1
- package/dist/glSmaaEffect.js +4 -0
- package/dist/glSmaaEffect.js.map +1 -1
- package/dist/glSsaoEffect.d.ts +1 -0
- package/dist/glSsaoEffect.d.ts.map +1 -1
- package/dist/glSsaoEffect.js +4 -0
- package/dist/glSsaoEffect.js.map +1 -1
- package/dist/glTiltShiftEffect.d.ts +1 -0
- package/dist/glTiltShiftEffect.d.ts.map +1 -1
- package/dist/glTiltShiftEffect.js +4 -0
- package/dist/glTiltShiftEffect.js.map +1 -1
- package/dist/glToneMapEffect.d.ts +1 -0
- package/dist/glToneMapEffect.d.ts.map +1 -1
- package/dist/glToneMapEffect.js +4 -0
- package/dist/glToneMapEffect.js.map +1 -1
- package/dist/glVignetteEffect.d.ts +1 -0
- package/dist/glVignetteEffect.d.ts.map +1 -1
- package/dist/glVignetteEffect.js +4 -0
- package/dist/glVignetteEffect.js.map +1 -1
- package/dist/glWhiteBalanceEffect.d.ts +1 -0
- package/dist/glWhiteBalanceEffect.d.ts.map +1 -1
- package/dist/glWhiteBalanceEffect.js +4 -0
- package/dist/glWhiteBalanceEffect.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +9 -6
- package/src/enableGlRenderEffectGuards.test.ts +156 -0
- package/src/glBevelEffect.test.ts +7 -1
- package/src/glBlendEffect.test.ts +26 -0
- package/src/glBloomEffect.test.ts +7 -1
- package/src/glBlurEffect.test.ts +69 -1
- package/src/glBokehDepthOfFieldEffect.test.ts +11 -1
- package/src/glCameraMotionBlurEffect.test.ts +11 -1
- package/src/glChromaticAberrationEffect.test.ts +7 -0
- package/src/glCompositeEffect.test.ts +7 -0
- package/src/glContactShadowsEffect.test.ts +43 -0
- package/src/glConvolutionEffect.test.ts +11 -1
- package/src/glCrtEffect.test.ts +7 -1
- package/src/glCustomShaderEffect.test.ts +7 -0
- package/src/glDirectionalBlurEffect.test.ts +11 -1
- package/src/glDisplacementEffect.test.ts +11 -1
- package/src/glDitherEffect.test.ts +7 -1
- package/src/glDropShadowEffect.test.ts +11 -9
- package/src/glEffectBoxBlur.test.ts +0 -5
- package/src/glFilmGrainEffect.test.ts +11 -1
- package/src/glFxaaEffect.test.ts +7 -1
- package/src/glGlitchEffect.test.ts +7 -1
- package/src/glGodRaysEffect.test.ts +7 -1
- package/src/glGradientBevelEffect.test.ts +11 -1
- package/src/glGradientGlowEffect.test.ts +11 -1
- package/src/glHalftoneEffect.test.ts +7 -1
- package/src/glInnerGlowEffect.test.ts +11 -9
- package/src/glInnerShadowEffect.test.ts +11 -9
- package/src/glKuwaharaEffect.test.ts +7 -1
- package/src/glLensDirtEffect.test.ts +7 -1
- package/src/glLensDistortionEffect.test.ts +11 -1
- package/src/glLensFlareEffect.test.ts +11 -1
- package/src/glMedianEffect.test.ts +7 -1
- package/src/glMotionBlurEffect.test.ts +11 -1
- package/src/glOuterGlowEffect.test.ts +11 -9
- package/src/glOutlineEffect.test.ts +7 -1
- package/src/glPixelateEffect.test.ts +7 -1
- package/src/glPosterizeEffect.test.ts +11 -1
- package/src/glRadialBlurEffect.test.ts +11 -1
- package/src/glRenderEffectPipeline.test.ts +15 -0
- package/src/glRenderEffectRegistry.test.ts +24 -14
- package/src/glRenderTextureEffect.test.ts +246 -0
- package/src/glScanlinesEffect.test.ts +11 -1
- package/src/glScreenSpaceFogEffect.test.ts +11 -1
- package/src/glSharpenEffect.test.ts +7 -1
- package/src/glSketchEffect.test.ts +7 -1
- package/src/glSmaaEffect.test.ts +7 -1
- package/src/glSpatialEffectRegistration.test.ts +64 -0
- package/src/glSsaoEffect.test.ts +7 -1
- package/src/glTiltShiftEffect.test.ts +11 -1
- package/src/glToneMapEffect.test.ts +7 -1
- package/src/glVignetteEffect.test.ts +7 -1
- package/src/glWhiteBalanceEffect.test.ts +11 -1
- package/dist/glSsrEffect.d.ts +0 -4
- package/dist/glSsrEffect.d.ts.map +0 -1
- package/dist/glSsrEffect.js +0 -24
- package/dist/glSsrEffect.js.map +0 -1
- package/dist/glTaaEffect.d.ts +0 -4
- package/dist/glTaaEffect.d.ts.map +0 -1
- package/dist/glTaaEffect.js +0 -22
- package/dist/glTaaEffect.js.map +0 -1
- package/src/glSsrEffect.test.ts +0 -13
- package/src/glTaaEffect.test.ts +0 -13
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { FilmGrainEffect, GlRenderEffectRunner, GlRenderState, GlRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyFilmGrainEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<FilmGrainEffect>): void;
|
|
3
3
|
export declare const defaultGlFilmGrainEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlFilmGrainEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glFilmGrainEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glFilmGrainEffect.d.ts","sourceRoot":"","sources":["../src/glFilmGrainEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glFilmGrainEffect.d.ts","sourceRoot":"","sources":["../src/glFilmGrainEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAOrH,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,CAUN;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
|
// Film grain: add per-pixel hash noise scaled by intensity, with grain cell size and a seed so the
|
|
4
5
|
// noise can be animated frame to frame.
|
|
5
6
|
export function applyFilmGrainEffectToGl(state, source, dest, effect) {
|
|
@@ -16,6 +17,9 @@ export function applyFilmGrainEffectToGl(state, source, dest, effect) {
|
|
|
16
17
|
export const defaultGlFilmGrainEffectRunner = (ctx, effect) => {
|
|
17
18
|
applyFilmGrainEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
|
|
18
19
|
};
|
|
20
|
+
export function registerGlFilmGrainEffect(state) {
|
|
21
|
+
registerGlRenderEffect(state, 'FilmGrainEffect', defaultGlFilmGrainEffectRunner);
|
|
22
|
+
}
|
|
19
23
|
const FILM_GRAIN_FRAGMENT_SRC = `#version 300 es
|
|
20
24
|
precision highp float;
|
|
21
25
|
in vec2 v_texCoord;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glFilmGrainEffect.js","sourceRoot":"","sources":["../src/glFilmGrainEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"glFilmGrainEffect.js","sourceRoot":"","sources":["../src/glFilmGrainEffect.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,mGAAmG;AACnG,wCAAwC;AACxC,MAAM,UAAU,wBAAwB,CACtC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAiC;IAEjC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,CAAC,CAAC;IAC5F,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,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACjF,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;;;;;;;;;;;;;;;;EAgB9B,CAAC"}
|
package/dist/glFxaaEffect.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { FxaaEffect, GlRenderEffectRunner, GlRenderState, GlRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyFxaaEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<FxaaEffect>): void;
|
|
3
3
|
export declare const defaultGlFxaaEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlFxaaEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glFxaaEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glFxaaEffect.d.ts","sourceRoot":"","sources":["../src/glFxaaEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glFxaaEffect.d.ts","sourceRoot":"","sources":["../src/glFxaaEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAOhH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC3B,IAAI,CAON;AAED,eAAO,MAAM,yBAAyB,EAAE,oBAEvC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAE/D"}
|
package/dist/glFxaaEffect.js
CHANGED
|
@@ -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
|
// FXAA: luminance edge detection + directional blend along the detected edge. Single-pass reference
|
|
4
5
|
// recipe. Reads u_texture0; u_resolution gives the texel size; u_edgeThreshold gates edge detection.
|
|
5
6
|
export function applyFxaaEffectToGl(state, source, dest, effect) {
|
|
@@ -13,6 +14,9 @@ export function applyFxaaEffectToGl(state, source, dest, effect) {
|
|
|
13
14
|
export const defaultGlFxaaEffectRunner = (ctx, effect) => {
|
|
14
15
|
applyFxaaEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
|
|
15
16
|
};
|
|
17
|
+
export function registerGlFxaaEffect(state) {
|
|
18
|
+
registerGlRenderEffect(state, 'FxaaEffect', defaultGlFxaaEffectRunner);
|
|
19
|
+
}
|
|
16
20
|
const FXAA_FRAGMENT_SRC = `#version 300 es
|
|
17
21
|
precision highp float;
|
|
18
22
|
in vec2 v_texCoord;
|
package/dist/glFxaaEffect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glFxaaEffect.js","sourceRoot":"","sources":["../src/glFxaaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"glFxaaEffect.js","sourceRoot":"","sources":["../src/glFxaaEffect.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,qGAAqG;AACrG,MAAM,UAAU,mBAAmB,CACjC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAA4B;IAE5B,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC;IACrD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,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,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,iBAAiB,CAAC,EAAE,aAAa,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC7E,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAoB,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,KAAoB;IACvD,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CxB,CAAC"}
|
package/dist/glGlitchEffect.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GlitchEffect, GlRenderEffectRunner, GlRenderState, GlRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyGlitchEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<GlitchEffect>): void;
|
|
3
3
|
export declare const defaultGlGlitchEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlGlitchEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glGlitchEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glGlitchEffect.d.ts","sourceRoot":"","sources":["../src/glGlitchEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glGlitchEffect.d.ts","sourceRoot":"","sources":["../src/glGlitchEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAOlH,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,CAaN;AAED,eAAO,MAAM,2BAA2B,EAAE,oBAEzC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEjE"}
|
package/dist/glGlitchEffect.js
CHANGED
|
@@ -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
|
// Glitch: split the frame into horizontal blocks, displace each by a per-block hash (data-mosh tear),
|
|
4
5
|
// separate the RGB channels, and corrupt the occasional block to white. `seed` animates it.
|
|
5
6
|
export function applyGlitchEffectToGl(state, source, dest, effect) {
|
|
@@ -19,6 +20,9 @@ export function applyGlitchEffectToGl(state, source, dest, effect) {
|
|
|
19
20
|
export const defaultGlGlitchEffectRunner = (ctx, effect) => {
|
|
20
21
|
applyGlitchEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
|
|
21
22
|
};
|
|
23
|
+
export function registerGlGlitchEffect(state) {
|
|
24
|
+
registerGlRenderEffect(state, 'GlitchEffect', defaultGlGlitchEffectRunner);
|
|
25
|
+
}
|
|
22
26
|
const GLITCH_FRAGMENT_SRC = `#version 300 es
|
|
23
27
|
precision highp float;
|
|
24
28
|
in vec2 v_texCoord;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glGlitchEffect.js","sourceRoot":"","sources":["../src/glGlitchEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"glGlitchEffect.js","sourceRoot":"","sources":["../src/glGlitchEffect.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,sGAAsG;AACtG,4FAA4F;AAC5F,MAAM,UAAU,qBAAqB,CACnC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAA8B;IAE9B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,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,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,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;QAC3E,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/D,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,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;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B1B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, GodRaysEffect } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyGodRaysEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<GodRaysEffect>): void;
|
|
3
3
|
export declare const defaultGlGodRaysEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlGodRaysEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glGodRaysEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glGodRaysEffect.d.ts","sourceRoot":"","sources":["../src/glGodRaysEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glGodRaysEffect.d.ts","sourceRoot":"","sources":["../src/glGodRaysEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AASnH,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"}
|
package/dist/glGodRaysEffect.js
CHANGED
|
@@ -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
|
// God rays: radial light scattering from a screen-space light position (centerX, centerY). Marches
|
|
4
5
|
// SAMPLES steps along the ray from each fragment toward the light, accumulating color with per-step
|
|
5
6
|
// decay and weight, then scales by exposure. A true single-pass recipe — no depth needed. Reads
|
|
@@ -25,6 +26,9 @@ export function applyGodRaysEffectToGl(state, source, dest, effect) {
|
|
|
25
26
|
export const defaultGlGodRaysEffectRunner = (ctx, effect) => {
|
|
26
27
|
applyGodRaysEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
|
|
27
28
|
};
|
|
29
|
+
export function registerGlGodRaysEffect(state) {
|
|
30
|
+
registerGlRenderEffect(state, 'GodRaysEffect', defaultGlGodRaysEffectRunner);
|
|
31
|
+
}
|
|
28
32
|
function buildGodRaysFragment(samples) {
|
|
29
33
|
return GOD_RAYS_FRAGMENT_HEAD + samples.toFixed(1) + GOD_RAYS_FRAGMENT_TAIL;
|
|
30
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glGodRaysEffect.js","sourceRoot":"","sources":["../src/glGodRaysEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"glGodRaysEffect.js","sourceRoot":"","sources":["../src/glGodRaysEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GradientBevelEffect, GlRenderEffectRunner, GlRenderState, GlRenderTarget, GlRenderTargetPool } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyGradientBevelEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, pool: GlRenderTargetPool, effect: Readonly<GradientBevelEffect>): void;
|
|
3
3
|
export declare const defaultGlGradientBevelEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlGradientBevelEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glGradientBevelEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glGradientBevelEffect.d.ts","sourceRoot":"","sources":["../src/glGradientBevelEffect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,mBAAmB,EAEnB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glGradientBevelEffect.d.ts","sourceRoot":"","sources":["../src/glGradientBevelEffect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,mBAAmB,EAEnB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAwDlC,wBAAgB,4BAA4B,CAC1C,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,mBAAmB,CAAC,GACpC,IAAI,CA6CN;AAED,eAAO,MAAM,kCAAkC,EAAE,oBAEhD,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAExE"}
|
|
@@ -3,6 +3,7 @@ import { applyGlEffectBlitPass, applyGlEffectErasePass } from './glEffectBlitSha
|
|
|
3
3
|
import { applyGlEffectBoxBlur } from './glEffectBoxBlur';
|
|
4
4
|
import { createGlEffectGradientRampTexture } from './glEffectGradientRamp';
|
|
5
5
|
import { applyGlEffectTintPass } from './glEffectTintShader';
|
|
6
|
+
import { registerGlRenderEffect } from './glRenderEffectRegistry';
|
|
6
7
|
// Samples the blurred alpha at +offset and -offset to compute a bevel value
|
|
7
8
|
// in [-1, 1], mapped to [0, 1] for gradient lookup. Outputs the encoded
|
|
8
9
|
// bevel value in the red channel; alpha=1 (will be clipped later).
|
|
@@ -80,6 +81,9 @@ export function applyGradientBevelEffectToGl(state, source, dest, pool, effect)
|
|
|
80
81
|
export const defaultGlGradientBevelEffectRunner = (ctx, effect) => {
|
|
81
82
|
applyGradientBevelEffectToGl(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
82
83
|
};
|
|
84
|
+
export function registerGlGradientBevelEffect(state) {
|
|
85
|
+
registerGlRenderEffect(state, 'GradientBevelEffect', defaultGlGradientBevelEffectRunner);
|
|
86
|
+
}
|
|
83
87
|
function applyBevelApplyPass(state, encoded, ramp, source, dest) {
|
|
84
88
|
const loc = getApplyShader(state);
|
|
85
89
|
drawGlFullscreenPass(state, loc, [encoded.texture], dest, (gl) => {
|
|
@@ -101,7 +105,7 @@ function applyBevelEncodePass(state, blurred, dest, dx, dy) {
|
|
|
101
105
|
});
|
|
102
106
|
}
|
|
103
107
|
function getApplyShader(state) {
|
|
104
|
-
let loc = applyShaders.get(state);
|
|
108
|
+
let loc = applyShaders.get(state.gl);
|
|
105
109
|
if (loc === undefined) {
|
|
106
110
|
const gl = state.gl;
|
|
107
111
|
const base = compileGlFullscreenProgram(gl, BEVEL_APPLY_FRAGMENT_SRC);
|
|
@@ -110,17 +114,17 @@ function getApplyShader(state) {
|
|
|
110
114
|
locRamp: gl.getUniformLocation(base.program, 'u_ramp'),
|
|
111
115
|
locSource: gl.getUniformLocation(base.program, 'u_source'),
|
|
112
116
|
};
|
|
113
|
-
applyShaders.set(state, loc);
|
|
117
|
+
applyShaders.set(state.gl, loc);
|
|
114
118
|
}
|
|
115
119
|
return loc;
|
|
116
120
|
}
|
|
117
121
|
function getEncodeShader(state) {
|
|
118
|
-
let loc = encodeShaders.get(state);
|
|
122
|
+
let loc = encodeShaders.get(state.gl);
|
|
119
123
|
if (loc === undefined) {
|
|
120
124
|
const gl = state.gl;
|
|
121
125
|
const base = compileGlFullscreenProgram(gl, BEVEL_ENCODE_FRAGMENT_SRC);
|
|
122
126
|
loc = { ...base, locOffset: gl.getUniformLocation(base.program, 'u_offset') };
|
|
123
|
-
encodeShaders.set(state, loc);
|
|
127
|
+
encodeShaders.set(state.gl, loc);
|
|
124
128
|
}
|
|
125
129
|
return loc;
|
|
126
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glGradientBevelEffect.js","sourceRoot":"","sources":["../src/glGradientBevelEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAUtC,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"glGradientBevelEffect.js","sourceRoot":"","sources":["../src/glGradientBevelEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GradientGlowEffect, GlRenderEffectRunner, GlRenderState, GlRenderTarget, GlRenderTargetPool } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyGradientGlowEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, pool: GlRenderTargetPool, effect: Readonly<GradientGlowEffect>): void;
|
|
3
3
|
export declare const defaultGlGradientGlowEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlGradientGlowEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glGradientGlowEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glGradientGlowEffect.d.ts","sourceRoot":"","sources":["../src/glGradientGlowEffect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,kBAAkB,EAElB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glGradientGlowEffect.d.ts","sourceRoot":"","sources":["../src/glGradientGlowEffect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,kBAAkB,EAElB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAiClC,wBAAgB,2BAA2B,CACzC,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,kBAAkB,CAAC,GACnC,IAAI,CAmCN;AAED,eAAO,MAAM,iCAAiC,EAAE,oBAE/C,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEvE"}
|
|
@@ -3,6 +3,7 @@ import { applyGlEffectBlitPass, applyGlEffectErasePass } from './glEffectBlitSha
|
|
|
3
3
|
import { applyGlEffectBoxBlur } from './glEffectBoxBlur';
|
|
4
4
|
import { createGlEffectGradientRampTexture } from './glEffectGradientRamp';
|
|
5
5
|
import { applyGlEffectTintPass } from './glEffectTintShader';
|
|
6
|
+
import { registerGlRenderEffect } from './glRenderEffectRegistry';
|
|
6
7
|
// Uses the blurred alpha (unit 0) to index into a gradient ramp texture (unit 1).
|
|
7
8
|
// Outputs the gradient-colored glow at the correct intensity per pixel.
|
|
8
9
|
const GRADIENT_LOOKUP_FRAGMENT_SRC = `#version 300 es
|
|
@@ -55,6 +56,9 @@ export function applyGradientGlowEffectToGl(state, source, dest, pool, effect) {
|
|
|
55
56
|
export const defaultGlGradientGlowEffectRunner = (ctx, effect) => {
|
|
56
57
|
applyGradientGlowEffectToGl(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
57
58
|
};
|
|
59
|
+
export function registerGlGradientGlowEffect(state) {
|
|
60
|
+
registerGlRenderEffect(state, 'GradientGlowEffect', defaultGlGradientGlowEffectRunner);
|
|
61
|
+
}
|
|
58
62
|
function applyGradientLookupPass(state, blurred, ramp, dest) {
|
|
59
63
|
const loc = getLookupShader(state);
|
|
60
64
|
drawGlFullscreenPass(state, loc, [blurred.texture], dest, (gl) => {
|
|
@@ -66,12 +70,12 @@ function applyGradientLookupPass(state, blurred, ramp, dest) {
|
|
|
66
70
|
});
|
|
67
71
|
}
|
|
68
72
|
function getLookupShader(state) {
|
|
69
|
-
let loc = lookupShaders.get(state);
|
|
73
|
+
let loc = lookupShaders.get(state.gl);
|
|
70
74
|
if (loc === undefined) {
|
|
71
75
|
const gl = state.gl;
|
|
72
76
|
const base = compileGlFullscreenProgram(gl, GRADIENT_LOOKUP_FRAGMENT_SRC);
|
|
73
77
|
loc = { ...base, locRamp: gl.getUniformLocation(base.program, 'u_ramp') };
|
|
74
|
-
lookupShaders.set(state, loc);
|
|
78
|
+
lookupShaders.set(state.gl, loc);
|
|
75
79
|
}
|
|
76
80
|
return loc;
|
|
77
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glGradientGlowEffect.js","sourceRoot":"","sources":["../src/glGradientGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAUtC,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"glGradientGlowEffect.js","sourceRoot":"","sources":["../src/glGradientGlowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, HalftoneEffect } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyHalftoneEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<HalftoneEffect>): void;
|
|
3
3
|
export declare const defaultGlHalftoneEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlHalftoneEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glHalftoneEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glHalftoneEffect.d.ts","sourceRoot":"","sources":["../src/glHalftoneEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glHalftoneEffect.d.ts","sourceRoot":"","sources":["../src/glHalftoneEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAOpH,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,CASN;AAED,eAAO,MAAM,6BAA6B,EAAE,oBAE3C,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEnE"}
|
package/dist/glHalftoneEffect.js
CHANGED
|
@@ -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
|
// Halftone: sample luminance, then carve a rotated dot grid whose dot radius tracks darkness — the
|
|
4
5
|
// classic print/comic screen. `scale` sets the cell size, `angle` rotates the grid.
|
|
5
6
|
export function applyHalftoneEffectToGl(state, source, dest, effect) {
|
|
@@ -15,6 +16,9 @@ export function applyHalftoneEffectToGl(state, source, dest, effect) {
|
|
|
15
16
|
export const defaultGlHalftoneEffectRunner = (ctx, effect) => {
|
|
16
17
|
applyHalftoneEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
|
|
17
18
|
};
|
|
19
|
+
export function registerGlHalftoneEffect(state) {
|
|
20
|
+
registerGlRenderEffect(state, 'HalftoneEffect', defaultGlHalftoneEffectRunner);
|
|
21
|
+
}
|
|
18
22
|
const HALFTONE_FRAGMENT_SRC = `#version 300 es
|
|
19
23
|
precision highp float;
|
|
20
24
|
in vec2 v_texCoord;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glHalftoneEffect.js","sourceRoot":"","sources":["../src/glHalftoneEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"glHalftoneEffect.js","sourceRoot":"","sources":["../src/glHalftoneEffect.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,mGAAmG;AACnG,oFAAoF;AACpF,MAAM,UAAU,uBAAuB,CACrC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAgC;IAEhC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC;IAClC,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,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9E,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QACjE,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;;;;;;;;;;;;;;;;;;;EAmB5B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { InnerGlowEffect, GlRenderEffectRunner, GlRenderState, GlRenderTarget, GlRenderTargetPool } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyInnerGlowEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, pool: GlRenderTargetPool, effect: Readonly<InnerGlowEffect>): void;
|
|
3
3
|
export declare const defaultGlInnerGlowEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlInnerGlowEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glInnerGlowEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glInnerGlowEffect.d.ts","sourceRoot":"","sources":["../src/glInnerGlowEffect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,eAAe,EAEf,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glInnerGlowEffect.d.ts","sourceRoot":"","sources":["../src/glInnerGlowEffect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,eAAe,EAEf,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAwClC,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, compileGlFullscreenProgram,
|
|
|
2
2
|
import { applyGlEffectBlitPass } from './glEffectBlitShader';
|
|
3
3
|
import { applyGlEffectBoxBlur } from './glEffectBoxBlur';
|
|
4
4
|
import { applyGlEffectInvertTintPass } from './glEffectTintShader';
|
|
5
|
+
import { registerGlRenderEffect } from './glRenderEffectRegistry';
|
|
5
6
|
// Why: all filter passes use ONE/ONE_MINUS_SRC_ALPHA premultiplied blending — they never
|
|
6
7
|
// implicitly clear their destination. Reusing a scratch target without clearing first means
|
|
7
8
|
// the previous pass's content bleeds through wherever the new pass's alpha is 0 (i.e. the
|
|
@@ -68,6 +69,9 @@ export function applyInnerGlowEffectToGl(state, source, dest, pool, effect) {
|
|
|
68
69
|
export const defaultGlInnerGlowEffectRunner = (ctx, effect) => {
|
|
69
70
|
applyInnerGlowEffectToGl(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
70
71
|
};
|
|
72
|
+
export function registerGlInnerGlowEffect(state) {
|
|
73
|
+
registerGlRenderEffect(state, 'InnerGlowEffect', defaultGlInnerGlowEffectRunner);
|
|
74
|
+
}
|
|
71
75
|
function applyGlInnerClipPass(state, glow, source, dest) {
|
|
72
76
|
const loc = getClipShader(state);
|
|
73
77
|
drawGlFullscreenPass(state, loc, [glow.texture, source.texture], dest, (gl) => {
|
|
@@ -75,12 +79,12 @@ function applyGlInnerClipPass(state, glow, source, dest) {
|
|
|
75
79
|
});
|
|
76
80
|
}
|
|
77
81
|
function getClipShader(state) {
|
|
78
|
-
let loc = clipShaders.get(state);
|
|
82
|
+
let loc = clipShaders.get(state.gl);
|
|
79
83
|
if (loc === undefined) {
|
|
80
84
|
const gl = state.gl;
|
|
81
85
|
const base = compileGlFullscreenProgram(gl, INNER_CLIP_FRAGMENT_SRC);
|
|
82
86
|
loc = { ...base };
|
|
83
|
-
clipShaders.set(state, loc);
|
|
87
|
+
clipShaders.set(state.gl, loc);
|
|
84
88
|
}
|
|
85
89
|
return loc;
|
|
86
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glInnerGlowEffect.js","sourceRoot":"","sources":["../src/glInnerGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAUtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"glInnerGlowEffect.js","sourceRoot":"","sources":["../src/glInnerGlowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { InnerShadowEffect, GlRenderEffectRunner, GlRenderState, GlRenderTarget, GlRenderTargetPool } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyInnerShadowEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, pool: GlRenderTargetPool, effect: Readonly<InnerShadowEffect>): void;
|
|
3
3
|
export declare const defaultGlInnerShadowEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlInnerShadowEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glInnerShadowEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glInnerShadowEffect.d.ts","sourceRoot":"","sources":["../src/glInnerShadowEffect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,iBAAiB,EAEjB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glInnerShadowEffect.d.ts","sourceRoot":"","sources":["../src/glInnerShadowEffect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,iBAAiB,EAEjB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAuClC,wBAAgB,0BAA0B,CACxC,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,iBAAiB,CAAC,GAClC,IAAI,CAkDN;AAED,eAAO,MAAM,gCAAgC,EAAE,oBAE9C,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEtE"}
|
|
@@ -2,6 +2,7 @@ import { acquireGlRenderTarget, clearGlRenderTarget, compileGlFullscreenProgram,
|
|
|
2
2
|
import { applyGlEffectBlitOffsetPass, applyGlEffectBlitPass } from './glEffectBlitShader';
|
|
3
3
|
import { applyGlEffectBoxBlur } from './glEffectBoxBlur';
|
|
4
4
|
import { applyGlEffectInvertTintPass } from './glEffectTintShader';
|
|
5
|
+
import { registerGlRenderEffect } from './glRenderEffectRegistry';
|
|
5
6
|
// Why: all filter passes use ONE/ONE_MINUS_SRC_ALPHA premultiplied blending — they never
|
|
6
7
|
// implicitly clear their destination. Reusing a scratch target without clearing first means
|
|
7
8
|
// the previous pass's content bleeds through wherever the new pass's alpha is 0. Clearing
|
|
@@ -75,6 +76,9 @@ export function applyInnerShadowEffectToGl(state, source, dest, pool, effect) {
|
|
|
75
76
|
export const defaultGlInnerShadowEffectRunner = (ctx, effect) => {
|
|
76
77
|
applyInnerShadowEffectToGl(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
77
78
|
};
|
|
79
|
+
export function registerGlInnerShadowEffect(state) {
|
|
80
|
+
registerGlRenderEffect(state, 'InnerShadowEffect', defaultGlInnerShadowEffectRunner);
|
|
81
|
+
}
|
|
78
82
|
function applyGlInnerClipPass(state, shadow, source, dest) {
|
|
79
83
|
const loc = getClipShader(state);
|
|
80
84
|
drawGlFullscreenPass(state, loc, [shadow.texture, source.texture], dest, (gl) => {
|
|
@@ -82,12 +86,12 @@ function applyGlInnerClipPass(state, shadow, source, dest) {
|
|
|
82
86
|
});
|
|
83
87
|
}
|
|
84
88
|
function getClipShader(state) {
|
|
85
|
-
let loc = clipShaders.get(state);
|
|
89
|
+
let loc = clipShaders.get(state.gl);
|
|
86
90
|
if (loc === undefined) {
|
|
87
91
|
const gl = state.gl;
|
|
88
92
|
const base = compileGlFullscreenProgram(gl, INNER_CLIP_FRAGMENT_SRC);
|
|
89
93
|
loc = { ...base };
|
|
90
|
-
clipShaders.set(state, loc);
|
|
94
|
+
clipShaders.set(state.gl, loc);
|
|
91
95
|
}
|
|
92
96
|
return loc;
|
|
93
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glInnerShadowEffect.js","sourceRoot":"","sources":["../src/glInnerShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAUtC,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"glInnerShadowEffect.js","sourceRoot":"","sources":["../src/glInnerShadowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, KuwaharaEffect } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyKuwaharaEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<KuwaharaEffect>): void;
|
|
3
3
|
export declare const defaultGlKuwaharaEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlKuwaharaEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glKuwaharaEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glKuwaharaEffect.d.ts","sourceRoot":"","sources":["../src/glKuwaharaEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glKuwaharaEffect.d.ts","sourceRoot":"","sources":["../src/glKuwaharaEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQpH,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"}
|
package/dist/glKuwaharaEffect.js
CHANGED
|
@@ -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
|
// Kuwahara: edge-preserving smoothing. Over a fixed small radius split the neighborhood into four
|
|
4
5
|
// overlapping quadrants, compute each mean and variance, and emit the lowest-variance mean — flattens
|
|
5
6
|
// regions while keeping edges crisp. `radius` gates the sampled extent.
|
|
@@ -14,6 +15,9 @@ export function applyKuwaharaEffectToGl(state, source, dest, effect) {
|
|
|
14
15
|
export const defaultGlKuwaharaEffectRunner = (ctx, effect) => {
|
|
15
16
|
applyKuwaharaEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
|
|
16
17
|
};
|
|
18
|
+
export function registerGlKuwaharaEffect(state) {
|
|
19
|
+
registerGlRenderEffect(state, 'KuwaharaEffect', defaultGlKuwaharaEffectRunner);
|
|
20
|
+
}
|
|
17
21
|
const KUWAHARA_FRAGMENT_SRC = `#version 300 es
|
|
18
22
|
precision highp float;
|
|
19
23
|
in vec2 v_texCoord;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glKuwaharaEffect.js","sourceRoot":"","sources":["../src/glKuwaharaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"glKuwaharaEffect.js","sourceRoot":"","sources":["../src/glKuwaharaEffect.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,sGAAsG;AACtG,wEAAwE;AACxE,MAAM,UAAU,uBAAuB,CACrC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAClC,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,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAChF,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2C5B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, LensDirtEffect } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyLensDirtEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<LensDirtEffect>): void;
|
|
3
3
|
export declare const defaultGlLensDirtEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlLensDirtEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glLensDirtEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glLensDirtEffect.d.ts","sourceRoot":"","sources":["../src/glLensDirtEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glLensDirtEffect.d.ts","sourceRoot":"","sources":["../src/glLensDirtEffect.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,CAUN;AAED,eAAO,MAAM,6BAA6B,EAAE,oBAE3C,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEnE"}
|
package/dist/glLensDirtEffect.js
CHANGED
|
@@ -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 dirt: procedural soft smudges that brighten where the scene is bright — a cheap bloom-dirt overlay.
|
|
4
5
|
export function applyLensDirtEffectToGl(state, source, dest, effect) {
|
|
5
6
|
const intensity = effect.intensity ?? 1;
|
|
@@ -15,6 +16,9 @@ export function applyLensDirtEffectToGl(state, source, dest, effect) {
|
|
|
15
16
|
export const defaultGlLensDirtEffectRunner = (ctx, effect) => {
|
|
16
17
|
applyLensDirtEffectToGl(ctx.state, ctx.source, ctx.dest, effect);
|
|
17
18
|
};
|
|
19
|
+
export function registerGlLensDirtEffect(state) {
|
|
20
|
+
registerGlRenderEffect(state, 'LensDirtEffect', defaultGlLensDirtEffectRunner);
|
|
21
|
+
}
|
|
18
22
|
const LENS_DIRT_FRAGMENT_SRC = `#version 300 es
|
|
19
23
|
precision highp float;
|
|
20
24
|
in vec2 v_texCoord;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glLensDirtEffect.js","sourceRoot":"","sources":["../src/glLensDirtEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"glLensDirtEffect.js","sourceRoot":"","sources":["../src/glLensDirtEffect.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,2GAA2G;AAC3G,MAAM,UAAU,uBAAuB,CACrC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAgC;IAEhC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;IACnF,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,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACjE,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,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B7B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GlRenderEffectRunner, GlRenderState, GlRenderTarget, LensDistortionEffect } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyLensDistortionEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<LensDistortionEffect>): void;
|
|
3
3
|
export declare const defaultGlLensDistortionEffectRunner: GlRenderEffectRunner;
|
|
4
|
+
export declare function registerGlLensDistortionEffect(state: GlRenderState): void;
|
|
4
5
|
//# sourceMappingURL=glLensDistortionEffect.d.ts.map
|