diff options
author | Marko Niemelä <marko.a.niemela@nokia.com> | 2012-05-14 09:22:47 +0300 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-14 08:16:15 +0200 |
commit | b872b1a213ef7f6eefc340b8ec5797891a612606 (patch) | |
tree | 9f25de7dae002fb0857b8a068e743ae6c1c759bd /src | |
parent | 6c06561beaa21d2f1b6d062b2a2181e1f1c666f2 (diff) | |
download | qtgraphicaleffects-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>
Diffstat (limited to 'src')
-rwxr-xr-x[-rw-r--r--] | src/effects/BrightnessContrast.qml | 6 |
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; } " } |