[librsvg] bgo#634324 - Gaussian blur with negative-scaling transformation matrix is not rendered
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] bgo#634324 - Gaussian blur with negative-scaling transformation matrix is not rendered
- Date: Tue, 18 Apr 2017 16:25:43 +0000 (UTC)
commit f7ccfbff857b5ec8d7ace494e20f28d97f1c91f1
Author: Federico Mena Quintero <federico gnome org>
Date: Tue Apr 18 11:22:18 2017 -0500
bgo#634324 - Gaussian blur with negative-scaling transformation matrix is not rendered
When we figure out the standard deviations for Gaussian blurs, we were
simply multiplying the given values by the scaling factors in the current
transformation. But if this is a negative-scaling matrix, we'd get
negative values, and we would not do a blur at all.
Take the absolute value of the scaled factors instead.
https://bugzilla.gnome.org/show_bug.cgi?id=634324
rsvg-filter.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/rsvg-filter.c b/rsvg-filter.c
index a4623ef..b517d72 100644
--- a/rsvg-filter.c
+++ b/rsvg-filter.c
@@ -1902,7 +1902,7 @@ rsvg_filter_primitive_gaussian_blur_render (RsvgNode *node, RsvgFilterPrimitive
int width, height;
cairo_surface_t *output, *in;
RsvgIRect boundarys;
- gfloat sdx, sdy;
+ gdouble sdx, sdy;
RsvgFilterPrimitiveOutput op;
cairo_t *cr;
@@ -1922,8 +1922,8 @@ rsvg_filter_primitive_gaussian_blur_render (RsvgNode *node, RsvgFilterPrimitive
}
/* scale the SD values */
- sdx = gaussian->sdx * ctx->paffine.xx;
- sdy = gaussian->sdy * ctx->paffine.yy;
+ sdx = fabs (gaussian->sdx * ctx->paffine.xx);
+ sdy = fabs (gaussian->sdy * ctx->paffine.yy);
gaussian_blur_surface (in, output, sdx, sdy);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]