Real fix to bloom borders issues. Using Connections to update main source instead of live: true.

This commit is contained in:
Filippo Scognamiglio 2014-09-14 12:20:49 +02:00
parent 1be7987abe
commit 19f6d85243
2 changed files with 16 additions and 8 deletions

View File

@ -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)
}
}

View File

@ -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);"
: