diff options
author | Andrea Canciani <ranma42@gmail.com> | 2012-01-11 16:57:25 +0100 |
---|---|---|
committer | Andrea Canciani <ranma42@gmail.com> | 2012-01-11 17:04:46 +0100 |
commit | eb66255c30c15ce993e7004ea742d5ee735382ec (patch) | |
tree | 68e06e0b4031fe025c12f09cf55fbb58fb0c02ce | |
parent | 7fde772905fb3ae422d72130b69199cd10877108 (diff) |
radial-gradient: Ignore sign on radiuseswip/gradtest
When a radial gradient is created, ignore the sign of the radiuses.
Fixes radial-gradient-test.
-rw-r--r-- | pixman/pixman-radial-gradient.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/pixman/pixman-radial-gradient.c b/pixman/pixman-radial-gradient.c index b6dd6b2..97d0d48 100644 --- a/pixman/pixman-radial-gradient.c +++ b/pixman/pixman-radial-gradient.c @@ -34,6 +34,8 @@ #include <math.h> #include "pixman-private.h" +#define ABS(f) (((f) < 0)? (-(f)) : (f)) + static inline pixman_fixed_32_32_t dot (pixman_fixed_48_16_t x1, pixman_fixed_48_16_t y1, @@ -447,10 +449,10 @@ pixman_image_create_radial_gradient (pixman_point_fixed_t * inner, radial->c1.x = inner->x; radial->c1.y = inner->y; - radial->c1.radius = inner_radius; + radial->c1.radius = ABS (inner_radius); radial->c2.x = outer->x; radial->c2.y = outer->y; - radial->c2.radius = outer_radius; + radial->c2.radius = ABS (outer_radius); /* warning: this computations may overflow */ radial->delta.x = radial->c2.x - radial->c1.x; |