[gnome-shell] st-scroll-view-fade: Don't fade out gradient



commit 6ef9ab6a0b3c4af177b511eef80595b4140cb9db
Author: Adel Gadllah <adel gadllah gmail com>
Date:   Fri Mar 22 17:19:26 2013 +0100

    st-scroll-view-fade: Don't fade out gradient
    
    The changes from commit b4f5f1e4617434 and b394d184cc7fa6 increased the
    instructions required for the fade fragment shader. This is over the limit
    for some hardware (like intel gen3), which causes the driver to fallback
    to software rendering for the shader. The result is that painting a scrollview
    that has a fade effect takes around 30 (!!) seconds.
    
    So lets go back to the old effect for 3.8 until we find a solution.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=696404

 src/st/st-scroll-view-fade.glsl |   15 ++++-----------
 1 files changed, 4 insertions(+), 11 deletions(-)
---
diff --git a/src/st/st-scroll-view-fade.glsl b/src/st/st-scroll-view-fade.glsl
index 4324c00..0c76c53 100644
--- a/src/st/st-scroll-view-fade.glsl
+++ b/src/st/st-scroll-view-fade.glsl
@@ -36,13 +36,6 @@ uniform float hvalue;
  */
 uniform mat2 fade_area;
 
-/*
- * Scale from [0.0, 1.0] to [1.0, 1.0]. Do this by
- * changing it to scaling [1.0, 0.0] to [0.0, 0.0]
- * and then transforming the end result.
- */
-#define FADE(gradient, factor) (1.0 - (1.0 - gradient) * factor)
-
 void main ()
 {
     cogl_color_out = cogl_color_in * texture2D (tex, vec2 (cogl_tex_coord_in[0].xy));
@@ -66,20 +59,20 @@ void main ()
 
         float vfade_scale = height / vfade_offset;
         if (fade_top) {
-            ratio *= FADE((y / vfade_offset), min(sqrt(vvalue) * vfade_scale, 1.0));
+            ratio *= y / vfade_offset;
         }
 
         if (fade_bottom) {
-            ratio *= FADE((fade_area[1][1] - y)/(fade_area[1][1] - fade_bottom_start), min(sqrt(1.0 - 
vvalue) * vfade_scale, 1.0));
+            ratio *= (fade_area[1][1] - y) / (fade_area[1][1] - fade_bottom_start);
         }
 
         float hfade_scale = width / hfade_offset;
         if (fade_left) {
-            ratio *= FADE(x / hfade_offset, min(sqrt(hvalue) * hfade_scale, 1.0));
+            ratio *= x / hfade_offset;
         }
 
         if (fade_right) {
-            ratio *= FADE((fade_area[1][0] - x)/(fade_area[1][0] - fade_right_start), min(sqrt(1.0 - hvalue) 
* hfade_scale, 1.0));
+            ratio *= (fade_area[1][0] - x) / (fade_area[1][0] - fade_right_start);
         }
 
         cogl_color_out *= ratio;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]