summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Niemelä <marko.a.niemela@nokia.com>2012-05-14 09:22:47 +0300
committerQt by Nokia <qt-info@nokia.com>2012-05-14 08:16:15 +0200
commitb872b1a213ef7f6eefc340b8ec5797891a612606 (patch)
tree9f25de7dae002fb0857b8a068e743ae6c1c759bd
parent6c06561beaa21d2f1b6d062b2a2181e1f1c666f2 (diff)
downloadqtgraphicaleffects-b872b1a213ef7f6eefc340b8ec5797891a612606.tar.gz
BrightnessContrast effect brightness handling fixed.
Brightness is now adjusted by mixing original pixels to white or black instead of the previous way which did not handle transparency correctly. Change-Id: I3346376cbd79302a67cb1ae5045b4948b1f4115f Reviewed-by: Kim Gronholm <kim.1.gronholm@nokia.com>
-rwxr-xr-x[-rw-r--r--]src/effects/BrightnessContrast.qml6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/effects/BrightnessContrast.qml b/src/effects/BrightnessContrast.qml
index 5e0f16a..545be08 100644..100755
--- a/src/effects/BrightnessContrast.qml
+++ b/src/effects/BrightnessContrast.qml
@@ -84,10 +84,8 @@ Item {
highp float c = 1.0 + contrast;
highp float contrastGainFactor = 1.0 + c * c * c * c * step(0.0, contrast);
pixelColor.rgb = ((pixelColor.rgb - 0.5) * (contrastGainFactor * contrast + 1.0)) + 0.5;
- pixelColor.rgb += brightness;
- pixelColor.rgb *= pixelColor.a;
- pixelColor.rgb = mix(pixelColor.rgb, vec3(1.0, 1.0, 1.0), brightness);
- gl_FragColor = pixelColor * qt_Opacity;
+ pixelColor.rgb = mix(pixelColor.rgb, vec3(step(0.0, brightness)), abs(brightness));
+ gl_FragColor = vec4(pixelColor.rgb * pixelColor.a, pixelColor.a) * qt_Opacity;
}
"
}