From d717cc92312c76d4944626c7b688d5b2a08c0659 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Tue, 15 Dec 2020 09:48:01 -0300 Subject: [PATCH] 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: --- 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 8c8cde9ae..4cb3479ab 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; } /**