@flighthq/effects-gl 0.3.0 → 0.3.1-next.1041.35b950c
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/enableGlRenderEffectGuards.d.ts.map +1 -1
- package/dist/enableGlRenderEffectGuards.js +35 -1
- package/dist/enableGlRenderEffectGuards.js.map +1 -1
- package/dist/glBevelEffect.d.ts.map +1 -1
- package/dist/glBevelEffect.js +11 -5
- package/dist/glBevelEffect.js.map +1 -1
- package/dist/glConvolutionEffect.d.ts.map +1 -1
- package/dist/glConvolutionEffect.js +5 -1
- package/dist/glConvolutionEffect.js.map +1 -1
- package/dist/glCrtEffect.js +3 -1
- package/dist/glCrtEffect.js.map +1 -1
- package/dist/glCustomShaderEffect.d.ts +3 -1
- package/dist/glCustomShaderEffect.d.ts.map +1 -1
- package/dist/glCustomShaderEffect.js +34 -12
- package/dist/glCustomShaderEffect.js.map +1 -1
- package/dist/glDisplacementEffect.js +8 -2
- package/dist/glDisplacementEffect.js.map +1 -1
- package/dist/glDropShadowEffect.d.ts.map +1 -1
- package/dist/glDropShadowEffect.js +3 -1
- package/dist/glDropShadowEffect.js.map +1 -1
- package/dist/glEffectTintShader.d.ts.map +1 -1
- package/dist/glEffectTintShader.js +9 -4
- package/dist/glEffectTintShader.js.map +1 -1
- package/dist/glGlitchEffect.js +5 -1
- package/dist/glGlitchEffect.js.map +1 -1
- package/dist/glGradientBevelEffect.js +1 -1
- package/dist/glGradientBevelEffect.js.map +1 -1
- package/dist/glGradientGlowEffect.js +1 -1
- package/dist/glGradientGlowEffect.js.map +1 -1
- package/dist/glInnerGlowEffect.d.ts.map +1 -1
- package/dist/glInnerGlowEffect.js +8 -8
- package/dist/glInnerGlowEffect.js.map +1 -1
- package/dist/glInnerShadowEffect.d.ts.map +1 -1
- package/dist/glInnerShadowEffect.js +8 -8
- package/dist/glInnerShadowEffect.js.map +1 -1
- package/dist/glOuterGlowEffect.js +1 -1
- package/dist/glOuterGlowEffect.js.map +1 -1
- package/dist/glRenderEffectPipeline.d.ts +2 -1
- package/dist/glRenderEffectPipeline.d.ts.map +1 -1
- package/dist/glRenderEffectPipeline.js +16 -1
- package/dist/glRenderEffectPipeline.js.map +1 -1
- package/dist/glRenderEffectRegistry.d.ts +3 -2
- package/dist/glRenderEffectRegistry.d.ts.map +1 -1
- package/dist/glRenderEffectRegistry.js +25 -4
- package/dist/glRenderEffectRegistry.js.map +1 -1
- package/dist/glRenderTextureEffect.d.ts.map +1 -1
- package/dist/glRenderTextureEffect.js +21 -6
- package/dist/glRenderTextureEffect.js.map +1 -1
- package/dist/glScanlinesEffect.js +3 -1
- package/dist/glScanlinesEffect.js.map +1 -1
- package/dist/glScreenSpaceFogEffect.js +6 -3
- package/dist/glScreenSpaceFogEffect.js.map +1 -1
- package/dist/glTiltShiftEffect.js +4 -1
- package/dist/glTiltShiftEffect.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 -7
- package/src/enableGlRenderEffectGuards.test.ts +71 -0
- package/src/glBevelEffect.test.ts +98 -0
- package/src/glConvolutionEffect.test.ts +60 -0
- package/src/glCustomShaderEffect.test.ts +109 -3
- package/src/glDropShadowEffect.test.ts +19 -0
- package/src/glEffectTintShader.test.ts +66 -0
- package/src/glInnerGlowEffect.test.ts +1 -1
- package/src/glInnerShadowEffect.test.ts +1 -1
- package/src/glRenderEffectPipeline.test.ts +25 -0
- package/src/glRenderEffectRegistry.test.ts +40 -2
- package/src/glRenderTextureEffect.test.ts +57 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableGlRenderEffectGuards.d.ts","sourceRoot":"","sources":["../src/enableGlRenderEffectGuards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwC,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"enableGlRenderEffectGuards.d.ts","sourceRoot":"","sources":["../src/enableGlRenderEffectGuards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwC,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAOpG,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAE5E;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAKtE;AAMD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAKrE"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { logOnce } from '@flighthq/log/contract';
|
|
2
2
|
import { LogLevel } from '@flighthq/types/contract';
|
|
3
|
+
import { setGlCustomShaderSourceGuard } from './glCustomShaderEffect';
|
|
4
|
+
import { setGlRenderEffectPipelineSkipGuard } from './glRenderEffectPipeline';
|
|
3
5
|
import { setGlRenderEffectApplicationGuard } from './glRenderTextureEffect';
|
|
4
6
|
export function areGlRenderEffectGuardsEnabled(state) {
|
|
5
7
|
return _guardedStates.has(state);
|
|
6
8
|
}
|
|
7
9
|
export function disableGlRenderEffectGuards(state) {
|
|
8
10
|
setGlRenderEffectApplicationGuard(state, null);
|
|
11
|
+
setGlCustomShaderSourceGuard(state, null);
|
|
12
|
+
setGlRenderEffectPipelineSkipGuard(state, null);
|
|
9
13
|
_guardedStates.delete(state);
|
|
10
14
|
}
|
|
11
15
|
// Installs diagnostics for the effect-chain sentinels that are indistinguishable from working code:
|
|
@@ -14,16 +18,34 @@ export function disableGlRenderEffectGuards(state) {
|
|
|
14
18
|
// the effects it could not run. Both are correct by contract and neither surfaces anywhere.
|
|
15
19
|
export function enableGlRenderEffectGuards(state) {
|
|
16
20
|
setGlRenderEffectApplicationGuard(state, warnGlRenderEffectApplication);
|
|
21
|
+
setGlCustomShaderSourceGuard(state, warnGlCustomShaderSourceReregistered);
|
|
22
|
+
setGlRenderEffectPipelineSkipGuard(state, warnGlRenderEffectPipelineSkip);
|
|
17
23
|
_guardedStates.add(state);
|
|
18
24
|
}
|
|
25
|
+
// Re-registering different source under a live shaderKey leaves the ALREADY-COMPILED program running,
|
|
26
|
+
// because the program cache is keyed by shaderKey rather than by source. Nothing fails: the effect
|
|
27
|
+
// still draws, using the old shader, so an author editing their shader sees their edit have no effect
|
|
28
|
+
// and has no way to tell that from the edit being wrong.
|
|
29
|
+
function warnGlCustomShaderSourceReregistered(_state, shaderKey, _previousSource, _nextSource) {
|
|
30
|
+
// Keyed by shaderKey: the same key re-registered every frame is one observation, while a second key
|
|
31
|
+
// hitting the same trap is a new one worth reporting.
|
|
32
|
+
logOnce(`effects-gl:custom-shader-source-reregistered:${shaderKey}`, LogLevel.Warn, {
|
|
33
|
+
message: `registerGlCustomShaderSource: shaderKey "${shaderKey}" already held DIFFERENT source, and the compiled program is cached by key — the new source will NOT run and the effect keeps drawing with the old one; register edited source under a new key and point the effect at it`,
|
|
34
|
+
shaderKey,
|
|
35
|
+
}, 'effects-gl');
|
|
36
|
+
}
|
|
19
37
|
function getGlRenderEffectApplicationMessage(explanation) {
|
|
20
38
|
switch (explanation.status) {
|
|
21
39
|
case 'partial-registration':
|
|
22
40
|
return `applyGlRenderEffectsToRenderTexture: ${explanation.unregisteredKinds.length} of ${explanation.requestedCount} effect kinds have no registered runner and were SKIPPED — the destination was written without them; call registerGlRenderEffect(state, kind, runner) for ${explanation.unregisteredKinds.join(', ')}`;
|
|
23
41
|
case 'source-unavailable':
|
|
24
42
|
return 'applyGlRenderEffectsToRenderTexture: the source render Texture has no realized GL target, so the call returned false and the destination was NOT written — render into the source before applying effects';
|
|
43
|
+
case 'partial-resolution':
|
|
44
|
+
return `applyGlRenderEffectsToRenderTexture: ${explanation.unresolvedIndexes.length} of ${explanation.requestedCount} effects have a runner but nothing to run with, so those stages COPIED THE INPUT THROUGH UNCHANGED — they were not dropped and the destination WAS written; chain position(s) ${explanation.unresolvedIndexes.join(', ')} name something unregistered, such as a shaderKey with no registerGlCustomShaderSource call`;
|
|
25
45
|
case 'stale-destination':
|
|
26
46
|
return 'applyGlRenderEffectsToRenderTexture: the call returned false before replacing the destination, so its previously published pixels are a STALE DESTINATION — handle the false return before sampling dest, and make the source and runners available before retrying';
|
|
47
|
+
case 'unresolved-effects':
|
|
48
|
+
return `applyGlRenderEffectsToRenderTexture: every effect has a runner but NONE can resolve what it names, so the whole chain COPIED THE INPUT THROUGH UNCHANGED — the call returned true and the destination WAS written, which looks like effects that did nothing rather than effects that failed; chain position(s) ${explanation.unresolvedIndexes.join(', ')} name something unregistered, such as a shaderKey with no registerGlCustomShaderSource call`;
|
|
27
49
|
default:
|
|
28
50
|
return `applyGlRenderEffectsToRenderTexture: no registered runner for any of ${explanation.unregisteredKinds.join(', ')}, so the call returned false and the destination was NEVER WRITTEN — anything sampling it reads a stale or empty texture; call registerGlRenderEffect(state, kind, runner)`;
|
|
29
51
|
}
|
|
@@ -31,7 +53,7 @@ function getGlRenderEffectApplicationMessage(explanation) {
|
|
|
31
53
|
function warnGlRenderEffectApplication(_state, explanation) {
|
|
32
54
|
// Keyed by status plus the kinds involved: a chain missing a different effect is a different
|
|
33
55
|
// observation worth reporting, while the same miss every frame is not.
|
|
34
|
-
logOnce(`effects-gl:effect-application:${explanation.status}:${explanation.unregisteredKinds.join(',')}`, LogLevel.Warn, {
|
|
56
|
+
logOnce(`effects-gl:effect-application:${explanation.status}:${explanation.unregisteredKinds.join(',')}:${explanation.unresolvedIndexes.join(',')}`, LogLevel.Warn, {
|
|
35
57
|
message: getGlRenderEffectApplicationMessage(explanation),
|
|
36
58
|
registeredCount: explanation.registeredCount,
|
|
37
59
|
requestedCount: explanation.requestedCount,
|
|
@@ -39,5 +61,17 @@ function warnGlRenderEffectApplication(_state, explanation) {
|
|
|
39
61
|
unregisteredKinds: explanation.unregisteredKinds,
|
|
40
62
|
}, 'effects-gl');
|
|
41
63
|
}
|
|
64
|
+
// A pipeline pass drops an effect whose kind has no runner with a bare `continue`: no draw, no error,
|
|
65
|
+
// no artifact. Seven effect kinds ship a descriptor and a constructor with no runner on ANY backend
|
|
66
|
+
// (AutoExposure, BarrelDistortion, FilmEmulation, PanniniProjection, Ssr, Taa, VolumetricLight), so a
|
|
67
|
+
// caller can build one into a chain and watch nothing happen with nothing to grep for.
|
|
68
|
+
function warnGlRenderEffectPipelineSkip(_state, kind) {
|
|
69
|
+
// Keyed by kind, not by frame: the same missing kind every frame is one observation, and a second
|
|
70
|
+
// kind going missing is a new one worth reporting.
|
|
71
|
+
logOnce(`effects-gl:pipeline-effect-skipped:${kind}`, LogLevel.Warn, {
|
|
72
|
+
kind,
|
|
73
|
+
message: `endGlRenderEffectPipeline: effect kind "${kind}" has no registered runner, so the pass was SKIPPED — the frame was written without it and nothing else reports this; call registerGlRenderEffect(state, "${kind}", runner), or check whether this kind has a runner on this backend at all`,
|
|
74
|
+
}, 'effects-gl');
|
|
75
|
+
}
|
|
42
76
|
const _guardedStates = new WeakSet();
|
|
43
77
|
//# sourceMappingURL=enableGlRenderEffectGuards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableGlRenderEffectGuards.js","sourceRoot":"","sources":["../src/enableGlRenderEffectGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAE5E,MAAM,UAAU,8BAA8B,CAAC,KAAoB;IACjE,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAoB;IAC9D,iCAAiC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,oGAAoG;AACpG,qGAAqG;AACrG,mGAAmG;AACnG,4FAA4F;AAC5F,MAAM,UAAU,0BAA0B,CAAC,KAAoB;IAC7D,iCAAiC,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;IACxE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,mCAAmC,CAAC,WAA2D;IACtG,QAAQ,WAAW,CAAC,MAAM,EAAE,CAAC;QAC3B,KAAK,sBAAsB;YACzB,OAAO,wCAAwC,WAAW,CAAC,iBAAiB,CAAC,MAAM,OAAO,WAAW,CAAC,cAAc,6JAA6J,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9T,KAAK,oBAAoB;YACvB,OAAO,2MAA2M,CAAC;QACrN,KAAK,mBAAmB;YACtB,OAAO,qQAAqQ,CAAC;QAC/Q;YACE,OAAO,wEAAwE,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,4KAA4K,CAAC;IACxS,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CACpC,MAAqB,EACrB,WAA2D;IAE3D,6FAA6F;IAC7F,uEAAuE;IACvE,OAAO,CACL,iCAAiC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"enableGlRenderEffectGuards.js","sourceRoot":"","sources":["../src/enableGlRenderEffectGuards.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glBevelEffect.d.ts","sourceRoot":"","sources":["../src/glBevelEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"glBevelEffect.d.ts","sourceRoot":"","sources":["../src/glBevelEffect.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,WAAW,EAEX,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAsBlC,wBAAgB,oBAAoB,CAClC,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,WAAW,CAAC,GAC5B,IAAI,CA2DN;AAED,eAAO,MAAM,0BAA0B,EAAE,oBAExC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEhE"}
|
package/dist/glBevelEffect.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getColorAlpha, getColorRgb } from '@flighthq/color/contract';
|
|
1
2
|
import { acquireGlRenderTarget, clearGlRenderTarget, compileGlFullscreenProgram, drawGlFullscreenPass, releaseGlRenderTarget, } from '@flighthq/render-gl/contract';
|
|
2
3
|
import { applyGlEffectBlitPass, applyGlEffectErasePass } from './glEffectBlitShader';
|
|
3
4
|
import { applyGlEffectBoxBlur } from './glEffectBoxBlur';
|
|
@@ -30,10 +31,15 @@ export function applyBevelEffectToGl(state, source, dest, pool, effect) {
|
|
|
30
31
|
// Match the surface reference, which snaps the light offset to whole pixels.
|
|
31
32
|
const offsetX = Math.round(Math.cos(angle) * distance);
|
|
32
33
|
const offsetY = Math.round(Math.sin(angle) * distance);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const
|
|
34
|
+
// The color is packed RGBA and its alpha multiplies the separate *Alpha field, matching what
|
|
35
|
+
// BitmapBevelOptions does offscreen. The composite still wants RGB plus one alpha, so the split
|
|
36
|
+
// happens here rather than in the shader.
|
|
37
|
+
const shadowPacked = effect.shadowColor ?? 0x000000ff;
|
|
38
|
+
const shadowColor = getColorRgb(shadowPacked);
|
|
39
|
+
const shadowAlpha = (effect.shadowAlpha ?? 1) * getColorAlpha(shadowPacked);
|
|
40
|
+
const highlightPacked = effect.highlightColor ?? 0xffffffff;
|
|
41
|
+
const highlightColor = getColorRgb(highlightPacked);
|
|
42
|
+
const highlightAlpha = (effect.highlightAlpha ?? 1) * getColorAlpha(highlightPacked);
|
|
37
43
|
const strength = effect.strength ?? 1;
|
|
38
44
|
const quality = Math.max(1, Math.round(effect.quality ?? 1));
|
|
39
45
|
const sourceMode = effect.sourceMode ?? 'draw';
|
|
@@ -41,7 +47,7 @@ export function applyBevelEffectToGl(state, source, dest, pool, effect) {
|
|
|
41
47
|
const [tinted, blurred, blurTemp] = [s0, s1, s2];
|
|
42
48
|
// Blurred alpha field (neutral white tint, strength 1 — strength is the gradient
|
|
43
49
|
// intensity applied per-pixel in the composite, not baked into the field).
|
|
44
|
-
applyGlEffectTintPass(state, src, tinted,
|
|
50
|
+
applyGlEffectTintPass(state, src, tinted, 0xffffffff, 1, 1);
|
|
45
51
|
applyGlEffectBoxBlur(state, tinted, blurred, blurTemp, {
|
|
46
52
|
blurX: effect.blurX ?? 4,
|
|
47
53
|
blurY: effect.blurY ?? 4,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glBevelEffect.js","sourceRoot":"","sources":["../src/glBevelEffect.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,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,uKAAuK;AACvK,qGAAqG;AACrG,iDAAiD;AACjD,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,EAAE;AACF,8BAA8B;AAC9B,2EAA2E;AAC3E,gEAAgE;AAChE,wBAAwB;AACxB,MAAM,UAAU,oBAAoB,CAClC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,IAAwB,EACxB,MAA6B;IAE7B,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACzF,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAE1D,MAAM,GAAG,GAAG,MAAwB,CAAC;IACrC,MAAM,GAAG,GAAG,IAAsB,CAAC;IAEnC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,6EAA6E;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;IACvD,MAAM,
|
|
1
|
+
{"version":3,"file":"glBevelEffect.js","sourceRoot":"","sources":["../src/glBevelEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glConvolutionEffect.d.ts","sourceRoot":"","sources":["../src/glConvolutionEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"glConvolutionEffect.d.ts","sourceRoot":"","sources":["../src/glConvolutionEffect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAOvH,eAAO,MAAM,qCAAqC,KAAK,CAAC;AAIxD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAClC,IAAI,CAmCN;AAED,eAAO,MAAM,gCAAgC,EAAE,oBAE9C,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEtE"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { unpackColorRgba } from '@flighthq/color/contract';
|
|
1
2
|
import { drawGlFullscreenPass } from '@flighthq/render-gl/contract';
|
|
2
3
|
import { getGlEffectProgram } from './glEffectProgramCache';
|
|
3
4
|
import { registerGlRenderEffect } from './glRenderEffectRegistry';
|
|
@@ -32,7 +33,8 @@ export function applyConvolutionEffectToGl(state, source, dest, effect) {
|
|
|
32
33
|
gl.uniform1f(gl.getUniformLocation(p.program, 'u_bias'), bias);
|
|
33
34
|
gl.uniform1i(gl.getUniformLocation(p.program, 'u_clamp'), clampEdge ? 1 : 0);
|
|
34
35
|
gl.uniform1i(gl.getUniformLocation(p.program, 'u_preserveAlpha'), preserveAlpha ? 1 : 0);
|
|
35
|
-
|
|
36
|
+
unpackColorRgba(scratchEdgeColor, edgeColor);
|
|
37
|
+
gl.uniform4f(gl.getUniformLocation(p.program, 'u_edgeColor'), scratchEdgeColor[0], scratchEdgeColor[1], scratchEdgeColor[2], scratchEdgeColor[3]);
|
|
36
38
|
});
|
|
37
39
|
}
|
|
38
40
|
export const defaultGlConvolutionEffectRunner = (ctx, effect) => {
|
|
@@ -95,4 +97,6 @@ void main() {
|
|
|
95
97
|
}
|
|
96
98
|
fragColor = sum;
|
|
97
99
|
}`;
|
|
100
|
+
// Reused across passes: the unpack writes into it on every draw, so it never escapes this module.
|
|
101
|
+
const scratchEdgeColor = [0, 0, 0, 0];
|
|
98
102
|
//# sourceMappingURL=glConvolutionEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glConvolutionEffect.js","sourceRoot":"","sources":["../src/glConvolutionEffect.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"glConvolutionEffect.js","sourceRoot":"","sources":["../src/glConvolutionEffect.ts"],"names":[],"mappings":"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"}
|
package/dist/glCrtEffect.js
CHANGED
|
@@ -50,7 +50,9 @@ void main() {
|
|
|
50
50
|
float b = texture(u_texture0, uv - off).b;
|
|
51
51
|
float a = texture(u_texture0, uv).a;
|
|
52
52
|
vec3 col = vec3(r, g, b);
|
|
53
|
-
|
|
53
|
+
// Scanlines are counted DOWN the image so a given line falls on the same row on either backend; a
|
|
54
|
+
// render target is bottom-left, so the row is measured from the far edge first.
|
|
55
|
+
float line = sin((1.0 - uv.y) * u_resolution.y * 3.14159265) * 0.5 + 0.5;
|
|
54
56
|
col *= 1.0 - u_scanlineIntensity * (1.0 - line);
|
|
55
57
|
vec2 vc = uv * 2.0 - 1.0;
|
|
56
58
|
col *= 1.0 - u_vignette * dot(vc, vc);
|
package/dist/glCrtEffect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glCrtEffect.js","sourceRoot":"","sources":["../src/glCrtEffect.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,uEAAuE;AACvE,MAAM,UAAU,kBAAkB,CAChC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAA2B;IAE3B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,GAAG,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAC/E,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,qBAAqB,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACzF,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,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;QAC3E,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,wBAAwB,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC5E,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAmB,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,KAAoB;IACtD,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,gBAAgB,GAAG
|
|
1
|
+
{"version":3,"file":"glCrtEffect.js","sourceRoot":"","sources":["../src/glCrtEffect.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,uEAAuE;AACvE,MAAM,UAAU,kBAAkB,CAChC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAA2B;IAE3B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,GAAG,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAC/E,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,qBAAqB,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACzF,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,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;QAC3E,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,wBAAwB,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC5E,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAmB,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,KAAoB;IACtD,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCvB,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { CustomShaderEffect, GlRenderEffectRunner, GlRenderState, GlRenderTarget } from '@flighthq/types/contract';
|
|
1
|
+
import type { CustomShaderEffect, GlCustomShaderSourceGuard, GlRenderEffectRunner, GlRenderState, GlRenderTarget, RenderEffect } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applyCustomShaderEffectToGl(state: GlRenderState, source: Readonly<GlRenderTarget>, dest: Readonly<GlRenderTarget>, effect: Readonly<CustomShaderEffect>): void;
|
|
3
3
|
export declare const defaultGlCustomShaderEffectRunner: GlRenderEffectRunner;
|
|
4
4
|
export declare function getGlCustomShaderSource(state: GlRenderState, shaderKey: string): string | null;
|
|
5
|
+
export declare function isGlCustomShaderEffectResolvable(state: GlRenderState, effect: Readonly<RenderEffect>): boolean;
|
|
5
6
|
export declare function registerGlCustomShaderEffect(state: GlRenderState): void;
|
|
6
7
|
export declare function registerGlCustomShaderSource(state: GlRenderState, shaderKey: string, fragmentSource: string): void;
|
|
8
|
+
export declare function setGlCustomShaderSourceGuard(state: GlRenderState, guard: GlCustomShaderSourceGuard | null): void;
|
|
7
9
|
//# sourceMappingURL=glCustomShaderEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glCustomShaderEffect.d.ts","sourceRoot":"","sources":["../src/glCustomShaderEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"glCustomShaderEffect.d.ts","sourceRoot":"","sources":["../src/glCustomShaderEffect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,YAAY,EACb,MAAM,0BAA0B,CAAC;AAYlC,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACnC,IAAI,CA0CN;AAED,eAAO,MAAM,iCAAiC,EAAE,oBAE/C,CAAC;AAKF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9F;AAKD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAE9G;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CASvE;AAQD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAelH;AAID,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,yBAAyB,GAAG,IAAI,GAAG,IAAI,CAGhH"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { withRegistryTableEntry } from '@flighthq/registry/contract';
|
|
2
|
+
import { drawGlFullscreenPass, getGlRenderStateRuntime } from '@flighthq/render-gl/contract';
|
|
3
|
+
import { RegistryEntryState } from '@flighthq/types/contract';
|
|
2
4
|
import { getGlEffectProgram, getGlEffectUniformLocation } from './glEffectProgramCache';
|
|
3
5
|
import { registerGlRenderEffect } from './glRenderEffectRegistry';
|
|
4
6
|
// Runs a user-authored fragment shader as a fullscreen post-process pass. The descriptor carries a
|
|
@@ -58,26 +60,47 @@ export const defaultGlCustomShaderEffectRunner = (ctx, effect) => {
|
|
|
58
60
|
// registered. Doubles as the introspection query for the identity-passthrough fallback in
|
|
59
61
|
// applyCustomShaderEffectToGl.
|
|
60
62
|
export function getGlCustomShaderSource(state, shaderKey) {
|
|
61
|
-
|
|
63
|
+
const entry = getGlRenderStateRuntime(state).registries.customEffectShaders.entries.get(shaderKey);
|
|
64
|
+
return entry?.state === RegistryEntryState.Bound ? entry.value : null;
|
|
65
|
+
}
|
|
66
|
+
// Whether this CustomShaderEffect names a shaderKey that has source registered for the state. An
|
|
67
|
+
// effect that does not still RUNS — it copies the input through unchanged — so this is the query that
|
|
68
|
+
// separates "the shader ran" from "the pass did nothing".
|
|
69
|
+
export function isGlCustomShaderEffectResolvable(state, effect) {
|
|
70
|
+
return getGlCustomShaderSource(state, effect.shaderKey) !== null;
|
|
62
71
|
}
|
|
63
72
|
export function registerGlCustomShaderEffect(state) {
|
|
64
|
-
|
|
73
|
+
// The resolver is what makes the identity-passthrough fallback visible: without it a chain naming an
|
|
74
|
+
// unregistered shaderKey reports 'complete' while copying its input through untouched.
|
|
75
|
+
registerGlRenderEffect(state, 'CustomShaderEffect', defaultGlCustomShaderEffectRunner, isGlCustomShaderEffectResolvable);
|
|
65
76
|
}
|
|
66
77
|
// Registers a fragment shader source under `shaderKey` for this state, so a CustomShaderEffect naming
|
|
67
78
|
// that key runs it. The source is a complete WebGL2 fragment shader: it declares `uniform sampler2D
|
|
68
79
|
// u_texture0;` for the input, reads texcoords from `in vec2 v_texCoord;`, writes `out vec4 o_color;`,
|
|
69
80
|
// and may declare any float/vec uniforms it wants supplied through the effect's `uniforms` bag.
|
|
70
|
-
// Last write wins for the source lookup,
|
|
71
|
-
//
|
|
72
|
-
// Register edited source under a new key (and point the effect at it) to force a recompile.
|
|
81
|
+
// Last write wins for the source lookup, while the compiled program is cached by the shaderKey — so
|
|
82
|
+
// the two disagree after a re-registration. enableGlRenderEffectGuards reports that divergence.
|
|
73
83
|
export function registerGlCustomShaderSource(state, shaderKey, fragmentSource) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
84
|
+
const runtime = getGlRenderStateRuntime(state);
|
|
85
|
+
// The seam, not a message: core carries no warning strings, and an unguarded state pays one map
|
|
86
|
+
// read. Fires only when the key already holds DIFFERENT source, since re-registering identical
|
|
87
|
+
// source is a no-op the caller cannot be harmed by and warning on it would train readers to ignore
|
|
88
|
+
// the crumb.
|
|
89
|
+
const previousSource = getGlCustomShaderSource(state, shaderKey);
|
|
90
|
+
if (previousSource !== null && previousSource !== fragmentSource) {
|
|
91
|
+
_sourceGuards.get(state)?.(state, shaderKey, previousSource, fragmentSource);
|
|
78
92
|
}
|
|
79
|
-
|
|
93
|
+
runtime.registries.customEffectShaders = withRegistryTableEntry(runtime.registries.customEffectShaders, shaderKey, fragmentSource);
|
|
94
|
+
}
|
|
95
|
+
// Installs (or clears) the re-registration guard for this state. Separate from registration itself so
|
|
96
|
+
// an app that never imports the guard module carries no logging dependency and no warning strings.
|
|
97
|
+
export function setGlCustomShaderSourceGuard(state, guard) {
|
|
98
|
+
if (guard === null)
|
|
99
|
+
_sourceGuards.delete(state);
|
|
100
|
+
else
|
|
101
|
+
_sourceGuards.set(state, guard);
|
|
80
102
|
}
|
|
103
|
+
const _sourceGuards = new WeakMap();
|
|
81
104
|
const NO_UNIFORMS = () => { };
|
|
82
105
|
const PASSTHROUGH_FRAGMENT_SRC = `#version 300 es
|
|
83
106
|
precision highp float;
|
|
@@ -87,5 +110,4 @@ out vec4 o_color;
|
|
|
87
110
|
void main() {
|
|
88
111
|
o_color = texture(u_texture0, v_texCoord);
|
|
89
112
|
}`;
|
|
90
|
-
const _customShaders = new WeakMap();
|
|
91
113
|
//# sourceMappingURL=glCustomShaderEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glCustomShaderEffect.js","sourceRoot":"","sources":["../src/glCustomShaderEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"glCustomShaderEffect.js","sourceRoot":"","sources":["../src/glCustomShaderEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,11 +31,17 @@ uniform vec2 u_resolution;
|
|
|
31
31
|
out vec4 o_color;
|
|
32
32
|
void main() {
|
|
33
33
|
float f = u_frequency;
|
|
34
|
+
// The warp is defined in IMAGE space, which is what makes the same seed produce the same picture on
|
|
35
|
+
// a bottom-left-origin target as on a top-left one. Two separate conversions are needed and they are
|
|
36
|
+
// easy to mistake for one: the sine PHASE reads an image-space row, and the vertical offset is then
|
|
37
|
+
// negated on the way back out, because moving down the image is moving down this target's y.
|
|
38
|
+
float imageY = 1.0 - v_texCoord.y;
|
|
34
39
|
vec2 warp = vec2(
|
|
35
|
-
sin(
|
|
40
|
+
sin(imageY * f + u_seed) + sin(imageY * f * 2.3 + u_seed * 1.7) * 0.5,
|
|
36
41
|
cos(v_texCoord.x * f * 0.8 + u_seed * 1.3)
|
|
37
42
|
);
|
|
38
|
-
vec2
|
|
43
|
+
vec2 offset = warp * (u_intensity / u_resolution);
|
|
44
|
+
vec2 displaced = vec2(v_texCoord.x + offset.x, v_texCoord.y - offset.y);
|
|
39
45
|
o_color = texture(u_texture0, displaced);
|
|
40
46
|
}`;
|
|
41
47
|
//# sourceMappingURL=glDisplacementEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glDisplacementEffect.js","sourceRoot":"","sources":["../src/glDisplacementEffect.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,MAAM,UAAU,2BAA2B,CACzC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAoC;IAEpC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,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,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;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,iCAAiC,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACrF,2BAA2B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA4B,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAAC,KAAoB;IAC/D,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,EAAE,iCAAiC,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,yBAAyB,GAAG
|
|
1
|
+
{"version":3,"file":"glDisplacementEffect.js","sourceRoot":"","sources":["../src/glDisplacementEffect.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,MAAM,UAAU,2BAA2B,CACzC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,MAAoC;IAEpC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,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,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;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,iCAAiC,GAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACrF,2BAA2B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAA4B,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAAC,KAAoB;IAC/D,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,EAAE,iCAAiC,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;EAuBhC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glDropShadowEffect.d.ts","sourceRoot":"","sources":["../src/glDropShadowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAalC,wBAAgB,yBAAyB,CACvC,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,gBAAgB,CAAC,GACjC,IAAI,
|
|
1
|
+
{"version":3,"file":"glDropShadowEffect.d.ts","sourceRoot":"","sources":["../src/glDropShadowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAalC,wBAAgB,yBAAyB,CACvC,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,gBAAgB,CAAC,GACjC,IAAI,CA+CN;AAED,eAAO,MAAM,+BAA+B,EAAE,oBAE7C,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAErE"}
|
|
@@ -20,7 +20,9 @@ export function applyDropShadowEffectToGl(state, source, dest, pool, effect) {
|
|
|
20
20
|
const distance = effect.distance ?? 4;
|
|
21
21
|
const dx = Math.cos(angle) * distance;
|
|
22
22
|
const dy = Math.sin(angle) * distance;
|
|
23
|
-
|
|
23
|
+
// Packed RGBA, matching BitmapDropShadowOptions.color offscreen. The tint pass folds this color's own
|
|
24
|
+
// alpha into the effect-level one, so nothing splits the value here.
|
|
25
|
+
const color = effect.color ?? 0x000000ff;
|
|
24
26
|
const alpha = effect.alpha ?? 1;
|
|
25
27
|
const strength = effect.strength ?? 1;
|
|
26
28
|
const quality = Math.max(1, Math.round(effect.quality ?? 1));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glDropShadowEffect.js","sourceRoot":"","sources":["../src/glDropShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AASjH,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAClH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,4IAA4I;AAC5I,qGAAqG;AACrG,iDAAiD;AACjD,EAAE;AACF,kGAAkG;AAClG,6FAA6F;AAC7F,MAAM,UAAU,yBAAyB,CACvC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,IAAwB,EACxB,MAAkC;IAElC,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACzF,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAE1D,MAAM,GAAG,GAAG,MAAwB,CAAC;IACrC,MAAM,GAAG,GAAG,IAAsB,CAAC;IAEnC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACtC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"glDropShadowEffect.js","sourceRoot":"","sources":["../src/glDropShadowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glEffectTintShader.d.ts","sourceRoot":"","sources":["../src/glEffectTintShader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"glEffectTintShader.d.ts","sourceRoot":"","sources":["../src/glEffectTintShader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAuB,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAyCnF,wGAAwG;AACxG,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,IAAI,CASN;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,IAAI,CASN"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { unpackColorRgba } from '@flighthq/color/contract';
|
|
1
2
|
import { compileGlFullscreenProgram, drawGlFullscreenPass } from '@flighthq/render-gl/contract';
|
|
2
3
|
// Extracts the source alpha, tints it with a solid color, and outputs a
|
|
3
4
|
// premultiplied RGBA texture.
|
|
@@ -33,8 +34,9 @@ const invertTintShaders = new WeakMap();
|
|
|
33
34
|
export function applyGlEffectInvertTintPass(state, source, dest, color, alpha, strength) {
|
|
34
35
|
const loc = getGlInvertTintShader(state);
|
|
35
36
|
drawGlFullscreenPass(state, loc, [source.texture], dest, (gl) => {
|
|
36
|
-
|
|
37
|
-
gl.
|
|
37
|
+
unpackColorRgba(scratchTint, color);
|
|
38
|
+
gl.uniform3f(loc.locColor, scratchTint[0], scratchTint[1], scratchTint[2]);
|
|
39
|
+
gl.uniform1f(loc.locAlpha, alpha * scratchTint[3]);
|
|
38
40
|
gl.uniform1f(loc.locStrength, strength);
|
|
39
41
|
gl.blendFunc(gl.ONE, gl.ZERO);
|
|
40
42
|
});
|
|
@@ -43,8 +45,9 @@ export function applyGlEffectInvertTintPass(state, source, dest, color, alpha, s
|
|
|
43
45
|
export function applyGlEffectTintPass(state, source, dest, color, alpha, strength) {
|
|
44
46
|
const loc = getGlTintShader(state);
|
|
45
47
|
drawGlFullscreenPass(state, loc, [source.texture], dest, (gl) => {
|
|
46
|
-
|
|
47
|
-
gl.
|
|
48
|
+
unpackColorRgba(scratchTint, color);
|
|
49
|
+
gl.uniform3f(loc.locColor, scratchTint[0], scratchTint[1], scratchTint[2]);
|
|
50
|
+
gl.uniform1f(loc.locAlpha, alpha * scratchTint[3]);
|
|
48
51
|
gl.uniform1f(loc.locStrength, strength);
|
|
49
52
|
gl.blendFunc(gl.ONE, gl.ZERO);
|
|
50
53
|
});
|
|
@@ -79,4 +82,6 @@ function getGlTintShader(state) {
|
|
|
79
82
|
}
|
|
80
83
|
return loc;
|
|
81
84
|
}
|
|
85
|
+
// Reused across passes: the unpack writes into it on every draw, so it never escapes this module.
|
|
86
|
+
const scratchTint = [0, 0, 0, 0];
|
|
82
87
|
//# sourceMappingURL=glEffectTintShader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glEffectTintShader.js","sourceRoot":"","sources":["../src/glEffectTintShader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIhG,wEAAwE;AACxE,8BAA8B;AAC9B,MAAM,iBAAiB,GAAG;;;;;;;;;;;EAWxB,CAAC;AAEH,+EAA+E;AAC/E,8EAA8E;AAC9E,MAAM,wBAAwB,GAAG;;;;;;;;;;;EAW/B,CAAC;AAQH,MAAM,WAAW,GAAG,IAAI,OAAO,EAA+C,CAAC;AAC/E,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAA+C,CAAC;AAErF,wGAAwG;AACxG,MAAM,UAAU,2BAA2B,CACzC,KAAoB,EACpB,MAAsB,EACtB,IAAoB,EACpB,KAAa,EACb,KAAa,EACb,QAAgB;IAEhB,MAAM,GAAG,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACzC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;QAC9D,
|
|
1
|
+
{"version":3,"file":"glEffectTintShader.js","sourceRoot":"","sources":["../src/glEffectTintShader.ts"],"names":[],"mappings":"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"}
|
package/dist/glGlitchEffect.js
CHANGED
|
@@ -36,7 +36,11 @@ out vec4 o_color;
|
|
|
36
36
|
float ghash(float n) { return fract(sin(n) * 43758.5453123); }
|
|
37
37
|
void main() {
|
|
38
38
|
float blockSize = max(2.0, u_blockSize);
|
|
39
|
-
|
|
39
|
+
// Blocks are numbered down the image, so the tear and corruption of a given band land where the
|
|
40
|
+
// author placed them. A render target is bottom-left origin, so the image-space row is measured
|
|
41
|
+
// from the far edge; numbering straight from v_texCoord.y would run the bands the other way up.
|
|
42
|
+
// Only the block INDEX converts — sampling below stays in the target's own coordinates.
|
|
43
|
+
float block = floor((1.0 - v_texCoord.y) * u_resolution.y / blockSize);
|
|
40
44
|
float r = ghash(block + u_seed * 7.0);
|
|
41
45
|
float tear = step(1.0 - u_intensity * 0.6, r);
|
|
42
46
|
float shiftPx = (ghash(block * 1.7 + u_seed) - 0.5) * 2.0 * tear * u_intensity * 40.0;
|
|
@@ -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;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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B1B,CAAC"}
|
|
@@ -54,7 +54,7 @@ export function applyGradientBevelEffectToGl(state, source, dest, pool, effect)
|
|
|
54
54
|
const sourceMode = effect.sourceMode ?? 'draw';
|
|
55
55
|
const gl = state.gl;
|
|
56
56
|
// Build blur basis → s1
|
|
57
|
-
applyGlEffectTintPass(state, src, s0,
|
|
57
|
+
applyGlEffectTintPass(state, src, s0, 0xffffffff, 1, Math.min(1, strength));
|
|
58
58
|
applyGlEffectBoxBlur(state, s0, s1, s2, { blurX: effect.blurX ?? 4, blurY: effect.blurY ?? 4, passes: quality });
|
|
59
59
|
// Encode bevel value from blurred alpha offset samples → s0.
|
|
60
60
|
// The Y offset is negated because render targets are bottom-left origin (V-flipped vs image space),
|
|
@@ -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;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,4EAA4E;AAC5E,wEAAwE;AACxE,mEAAmE;AACnE,MAAM,yBAAyB,GAAG;;;;;;;;;;;EAWhC,CAAC;AAEH,0EAA0E;AAC1E,4DAA4D;AAC5D,MAAM,wBAAwB,GAAG;;;;;;;;;;;;EAY/B,CAAC;AAWH,MAAM,aAAa,GAAG,IAAI,OAAO,EAAgD,CAAC;AAClF,MAAM,YAAY,GAAG,IAAI,OAAO,EAA+C,CAAC;AAEhF,wKAAwK;AACxK,qGAAqG;AACrG,8FAA8F;AAC9F,2EAA2E;AAC3E,MAAM,UAAU,4BAA4B,CAC1C,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,IAAwB,EACxB,MAAqC;IAErC,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACzF,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAE1D,MAAM,GAAG,GAAG,MAAwB,CAAC;IACrC,MAAM,GAAG,GAAG,IAAsB,CAAC;IAEnC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;IAE/C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IAEpB,wBAAwB;IACxB,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"glGradientBevelEffect.js","sourceRoot":"","sources":["../src/glGradientBevelEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ export function applyGradientGlowEffectToGl(state, source, dest, pool, effect) {
|
|
|
35
35
|
const sourceMode = effect.sourceMode ?? 'draw';
|
|
36
36
|
const gl = state.gl;
|
|
37
37
|
// Extract alpha as a neutral (white) mask, then blur → s1
|
|
38
|
-
applyGlEffectTintPass(state, src, s0,
|
|
38
|
+
applyGlEffectTintPass(state, src, s0, 0xffffffff, 1, Math.min(1, strength));
|
|
39
39
|
applyGlEffectBoxBlur(state, s0, s1, s2, { blurX: effect.blurX ?? 6, blurY: effect.blurY ?? 6, passes: quality });
|
|
40
40
|
// Build gradient ramp texture and look up the blurred alpha → s0
|
|
41
41
|
const ramp = createGlEffectGradientRampTexture(gl, effect.colors, effect.alphas, effect.ratios);
|
|
@@ -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;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,kFAAkF;AAClF,wEAAwE;AACxE,MAAM,4BAA4B,GAAG;;;;;;;;;EASnC,CAAC;AAMH,MAAM,aAAa,GAAG,IAAI,OAAO,EAAmD,CAAC;AAErF,4JAA4J;AAC5J,qGAAqG;AACrG,2FAA2F;AAC3F,+FAA+F;AAC/F,EAAE;AACF,mGAAmG;AACnG,MAAM,UAAU,2BAA2B,CACzC,KAAoB,EACpB,MAAgC,EAChC,IAA8B,EAC9B,IAAwB,EACxB,MAAoC;IAEpC,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACzF,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAE1D,MAAM,GAAG,GAAG,MAAwB,CAAC;IACrC,MAAM,GAAG,GAAG,IAAsB,CAAC;IAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;IAE/C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IAEpB,0DAA0D;IAC1D,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"glGradientGlowEffect.js","sourceRoot":"","sources":["../src/glGradientGlowEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glInnerGlowEffect.d.ts","sourceRoot":"","sources":["../src/glInnerGlowEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"glInnerGlowEffect.d.ts","sourceRoot":"","sources":["../src/glInnerGlowEffect.ts"],"names":[],"mappings":"AAQA,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"}
|