[mutter] clutter/blur: Shortcircuit when sigma is 0



commit d717cc92312c76d4944626c7b688d5b2a08c0659
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Tue Dec 15 09:48:01 2020 -0300

    clutter/blur: Shortcircuit when sigma is 0
    
    When there's no blur to be performed, don't do any; instead,
    return the original texture, and don't run the vertical and
    horizontal blur pipelines.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1637>

 clutter/clutter/clutter-blur.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
---
diff --git a/clutter/clutter/clutter-blur.c b/clutter/clutter/clutter-blur.c
index 8c8cde9ae3..4cb3479ab1 100644
--- a/clutter/clutter/clutter-blur.c
+++ b/clutter/clutter/clutter-blur.c
@@ -355,6 +355,9 @@ clutter_blur_new (CoglTexture  *texture,
   blur->source_texture = cogl_object_ref (texture);
   blur->downscale_factor = calculate_downscale_factor (width, height, sigma);
 
+  if (sigma == 0)
+    goto out;
+
   vpass = &blur->pass[VERTICAL];
   hpass = &blur->pass[HORIZONTAL];
 
@@ -365,6 +368,7 @@ clutter_blur_new (CoglTexture  *texture,
       return NULL;
     }
 
+out:
   return g_steal_pointer (&blur);
 }
 
@@ -378,6 +382,9 @@ clutter_blur_new (CoglTexture  *texture,
 void
 clutter_blur_apply (ClutterBlur *blur)
 {
+  if (blur->sigma == 0)
+    return;
+
   apply_blur_pass (&blur->pass[VERTICAL]);
   apply_blur_pass (&blur->pass[HORIZONTAL]);
 }
@@ -394,7 +401,10 @@ clutter_blur_apply (ClutterBlur *blur)
 CoglTexture *
 clutter_blur_get_texture (ClutterBlur *blur)
 {
-  return blur->pass[HORIZONTAL].texture;
+  if (blur->sigma == 0)
+    return blur->source_texture;
+  else
+    return blur->pass[HORIZONTAL].texture;
 }
 
 /**


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