mirror of
https://github.com/brl/mutter.git
synced 2024-12-23 11:32:04 +00:00
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>
This commit is contained in:
parent
7de5f79ddb
commit
d717cc9231
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user