0
@@ -1068,10 +1068,14 @@ box_blur(unsigned char *in, unsigned char *out,
0
unsigned int len = 4 * width * height
0
#define RAW_FILTER_END(self_t) \
0
- cr = cairo_create(target); \
0
- cairo_surface_destroy(source);
0
+ cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR); \
0
+ cairo_set_operator(cr, CAIRO_OPERATOR_OVER); \
0
+ cairo_set_source_surface(cr, target, 0, 0); \
0
+ cairo_surface_destroy(target);
0
shoes_gaussian_blur_filter(cairo_t *cr, void *data)
0
shoes_effect *fx = (shoes_effect *)data;
0
@@ -1081,7 +1085,7 @@ shoes_gaussian_blur_filter(cairo_t *cr, void *data)
0
float blur_y = ATTR2(dbl, fx->attr, height, blur_d);
0
if (blur_x < 0 || blur_y < 0)
0
if (blur_x == 0 || blur_y == 0)
0
@@ -1134,10 +1138,9 @@ shoes_gaussian_blur_filter(cairo_t *cr, void *data)
0
shoes_layer_blur_filter(cairo_t *cr, void *data, cairo_operator_t blur_op,
0
cairo_operator_t merge_op, int distance)
0
@@ -1164,35 +1167,33 @@ shoes_layer_blur_filter(cairo_t *cr, void *data, cairo_operator_t blur_op,
0
cairo_rectangle(cr2, 0, 0, width, height);
0
- cairo_t *cr3 = shoes_gaussian_blur_filter(cr2, data);
0
- cairo_set_operator(cr3, merge_op);
0
- cairo_set_source_surface(cr3, source, 0, 0);
0
+ shoes_gaussian_blur_filter(cr2, data);
0
+ cairo_set_operator(cr, merge_op);
0
+ cairo_set_source_surface(cr, target, 0, 0);
0
shoes_shadow_filter(cairo_t *cr, void *data)
0
shoes_effect *fx = (shoes_effect *)data;
0
int distance = ATTR2(int, fx->attr, distance, 4);
0
-
return shoes_layer_blur_filter(cr, data, CAIRO_OPERATOR_IN, CAIRO_OPERATOR_OVER, distance);
0
+
shoes_layer_blur_filter(cr, data, CAIRO_OPERATOR_IN, CAIRO_OPERATOR_OVER, distance);
0
shoes_glow_filter(cairo_t *cr, void *data)
0
shoes_effect *fx = (shoes_effect *)data;
0
cairo_operator_t blur_op = CAIRO_OPERATOR_IN;
0
- cairo_operator_t merge_op = CAIRO_OPERATOR_
OVER;
0
+ cairo_operator_t merge_op = CAIRO_OPERATOR_
DEST_OVER;
0
if (RTEST(ATTR(fx->attr, inner)))
0
blur_op = CAIRO_OPERATOR_OUT;
0
- merge_op = CAIRO_OPERATOR_
DEST_ATOP;
0
+ merge_op = CAIRO_OPERATOR_
ATOP;
0
-
return shoes_layer_blur_filter(cr, data, blur_op, merge_op, 0);
0
+
shoes_layer_blur_filter(cr, data, blur_op, merge_op, 0);
0
@@ -1315,7 +1316,7 @@ shoes_effect_draw(VALUE self, VALUE c, VALUE actual)
0
-
canvas->cr = self_t->filter(canvas->cr, (void *)self_t);
0
+
self_t->filter(canvas->cr, (void *)self_t);
Comments
No one has commented yet.