From 19f6d85243545ef488ceea02b66ae45393843006 Mon Sep 17 00:00:00 2001 From: Filippo Scognamiglio Date: Sun, 14 Sep 2014 12:20:49 +0200 Subject: [PATCH] Real fix to bloom borders issues. Using Connections to update main source instead of live: true. --- app/qml/PreprocessedTerminal.qml | 20 +++++++++++++------- app/qml/ShaderTerminal.qml | 4 +++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/qml/PreprocessedTerminal.qml b/app/qml/PreprocessedTerminal.qml index d71672e..d6bbd0c 100644 --- a/app/qml/PreprocessedTerminal.qml +++ b/app/qml/PreprocessedTerminal.qml @@ -171,6 +171,17 @@ Item{ hideSource: true smooth: mScanlines == shadersettings.no_rasterization wrapMode: ShaderEffectSource.ClampToEdge + live: false + + signal sourceUpdate + + Connections{ + target: kterminal + onUpdatedImage:{ + kterminalSource.scheduleUpdate(); + kterminalSource.sourceUpdate(); + } + } } Loader{ id: blurredSourceLoader @@ -199,7 +210,6 @@ Item{ timeBinding.target = null } } - Connections{ id: timeBinding target: timeManager @@ -207,10 +217,9 @@ Item{ _blurredSourceEffect.scheduleUpdate(); } } - Connections{ - target: kterminal - onUpdatedImage:{ + target: kterminalSource + onSourceUpdate:{ livetimer.restart(); } } @@ -280,9 +289,6 @@ Item{ sourceItem: bloomEffectLoader.item hideSource: true smooth: false - wrapMode: ShaderEffectSource.ClampToEdge - //sourceRect is needed because FastBlur expands slightly outside the rectangle - sourceRect: Qt.rect(-1, -1, sourceItem.width + 2, sourceItem.height + 2) } } diff --git a/app/qml/ShaderTerminal.qml b/app/qml/ShaderTerminal.qml index 72360cf..dc30bbd 100644 --- a/app/qml/ShaderTerminal.qml +++ b/app/qml/ShaderTerminal.qml @@ -222,7 +222,9 @@ ShaderEffect { (bloom_strength !== 0 ? "vec4 bloomFullColor = texture2D(bloomSource, coords); vec3 bloomColor = bloomFullColor.rgb; - float bloomAlpha = bloomFullColor.a;" + + vec2 minBound = step(vec2(0.0), coords); + vec2 maxBound = step(coords, vec2(1.0)); + float bloomAlpha = bloomFullColor.a * minBound.x * minBound.y * maxBound.x * maxBound.y;" + (chroma_color !== 0 ? "bloomColor = font_color.rgb * mix(vec3(rgb2grey(bloomColor)), bloomColor, chroma_color);" :