summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Canciani <ranma42@gmail.com>2012-01-11 16:57:25 +0100
committerAndrea Canciani <ranma42@gmail.com>2012-01-11 17:04:46 +0100
commiteb66255c30c15ce993e7004ea742d5ee735382ec (patch)
tree68e06e0b4031fe025c12f09cf55fbb58fb0c02ce
parent7fde772905fb3ae422d72130b69199cd10877108 (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.c6
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;