From 4b4fabaee34d3104bb3aae3e9880213d9079343a Mon Sep 17 00:00:00 2001
From: Filippo Scognamiglio <flscogna@gmail.com>
Date: Sun, 3 Aug 2014 10:36:07 +0200
Subject: [PATCH] Fix issues between colors and motion blur.

---
 app/PreprocessedTerminal.qml | 8 +++++---
 app/ShaderTerminal.qml       | 3 ++-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/app/PreprocessedTerminal.qml b/app/PreprocessedTerminal.qml
index 223e2e5..b3b5553 100644
--- a/app/PreprocessedTerminal.qml
+++ b/app/PreprocessedTerminal.qml
@@ -255,16 +255,18 @@ Item{
                 : "") +
                 "coords = coords + delta;" +
                 "vec4 vcolor = texture2D(source, coords) * 256.0;
-                 float color = vcolor.r * 0.21 + vcolor.g * 0.72 + vcolor.b + 0.04;" +
+                 float color = vcolor.r * 0.21 + vcolor.g * 0.72 + vcolor.b * 0.04;" +
                 (mBlur !== 0 ?
+                    "vec4 blurredVcolor = texture2D(blurredSource, coords) * 256.0;" +
                     "float blurredSourceColor = texture2D(blurredSource, coords).a * 256.0;" +
                     "blurredSourceColor = blurredSourceColor - blurredSourceColor * " + (1.0 - motionBlurCoefficient) * fpsAttenuation+ ";" +
+                    "vcolor = step(1.0, color) * vcolor + step(color, 1.0) * blurredVcolor;" +
                     "color = step(1.0, color) * color + step(color, 1.0) * blurredSourceColor;"
                 : "") +
 
 
-                "gl_FragColor = texture2D(source, coords);" +
-                "gl_FragColor.a = color / 256.0;" + 
+                "gl_FragColor = floor(vcolor) / 256.0;" +
+                "gl_FragColor.a = floor(color) / 256.0;" +
             "}"
 
         onStatusChanged: if (log) console.log(log) //Print warning messages
diff --git a/app/ShaderTerminal.qml b/app/ShaderTerminal.qml
index 9a411d5..a2e1c0d 100644
--- a/app/ShaderTerminal.qml
+++ b/app/ShaderTerminal.qml
@@ -191,7 +191,8 @@ ShaderEffect {
                 "vec4 realBackColor = texture2D(source, txt_coords);" +
                 (saturation_color !== 0 ?
                     "vec4 satured_font_color = mix(font_color, vec4(1) , "+ str(saturation_color) + ");" +
-                    "vec4 mixedColor = mix(font_color, realBackColor * satured_font_color, "+ str(chroma_color) +");":
+                    "vec4 mixedColor = mix(font_color, realBackColor * satured_font_color, "+ str(chroma_color) +");"
+                :
                     "vec4 mixedColor = mix(font_color, realBackColor * font_color, "+ str(chroma_color) +");"
                 ) +