forked from AuroraMiddleware/gtk
cairoblur: Fix the blur code
We weren't passing in the right "d" value, which was causing the blur to behave incorrectly, especially in the case of 1px blurs, which would cause no blurs at all. The blur should now match the web.
This commit is contained in:
parent
3013997e23
commit
ac9ac55555
@ -147,6 +147,7 @@ _boxblur (guchar *buffer,
|
||||
int radius)
|
||||
{
|
||||
guchar *flipped_buffer;
|
||||
int d = _gtk_cairo_blur_compute_pixels (radius);
|
||||
|
||||
flipped_buffer = g_malloc (width * height);
|
||||
|
||||
@ -154,13 +155,13 @@ _boxblur (guchar *buffer,
|
||||
flip_buffer (flipped_buffer, buffer, width, height);
|
||||
|
||||
/* Step 2: blur rows (really columns) */
|
||||
blur_rows (flipped_buffer, buffer, height, width, radius);
|
||||
blur_rows (flipped_buffer, buffer, height, width, d);
|
||||
|
||||
/* Step 3: swap rows and columns */
|
||||
flip_buffer (buffer, flipped_buffer, height, width);
|
||||
|
||||
/* Step 4: blur rows */
|
||||
blur_rows (buffer, flipped_buffer, width, height, radius);
|
||||
blur_rows (buffer, flipped_buffer, width, height, d);
|
||||
|
||||
g_free (flipped_buffer);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user