Fix some of the effects in qmlvideofx

* TiltShift was sometimes applying the effect in the wrong place.
* Blur had some QML properties duplicated
* Blur kernel wasn't quite summing to 1, and was applying opacity twice
* The target width for the second pass was incorrect, so it was blending
darkness, resulting in a dreary image.

Change-Id: Ib8ba93d979c597cf4d225b3d24d26a22d0cdffc2
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
This commit is contained in:
Michael Goddard
2011-12-22 13:08:25 +10:00
committed by Qt by Nokia
parent 8af2548473
commit 2307825461
4 changed files with 8 additions and 7 deletions

View File

@@ -55,7 +55,7 @@ void main()
c += texture2D(source, uv - vec2(3.0*blurSize, 0.0)) * 0.09;
c += texture2D(source, uv - vec2(2.0*blurSize, 0.0)) * 0.12;
c += texture2D(source, uv - vec2(1.0*blurSize, 0.0)) * 0.15;
c += texture2D(source, uv) * 0.16;
c += texture2D(source, uv) * 0.18;
c += texture2D(source, uv + vec2(1.0*blurSize, 0.0)) * 0.15;
c += texture2D(source, uv + vec2(2.0*blurSize, 0.0)) * 0.12;
c += texture2D(source, uv + vec2(3.0*blurSize, 0.0)) * 0.09;

View File

@@ -55,7 +55,7 @@ void main()
c += texture2D(source, uv - vec2(0.0, 3.0*blurSize)) * 0.09;
c += texture2D(source, uv - vec2(0.0, 2.0*blurSize)) * 0.12;
c += texture2D(source, uv - vec2(0.0, 1.0*blurSize)) * 0.15;
c += texture2D(source, uv) * 0.16;
c += texture2D(source, uv) * 0.18;
c += texture2D(source, uv + vec2(0.0, 1.0*blurSize)) * 0.15;
c += texture2D(source, uv + vec2(0.0, 2.0*blurSize)) * 0.12;
c += texture2D(source, uv + vec2(0.0, 3.0*blurSize)) * 0.09;
@@ -63,5 +63,6 @@ void main()
} else {
c = texture2D(source, qt_TexCoord0);
}
gl_FragColor = qt_Opacity * c;
// First pass we don't apply opacity
gl_FragColor = c;
}

View File

@@ -67,7 +67,7 @@ void main()
{
vec2 uv = qt_TexCoord0.xy;
vec3 col;
if (uv.x < dividerValue && uv.y >= 0.4 && uv.y <= 0.6)
if (uv.x > dividerValue || (uv.y >= 0.4 && uv.y <= 0.6))
col = texture2D(source, uv).rgb;
else
col = blur();