aboutsummaryrefslogtreecommitdiff
path: root/pixman
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-01-13 22:01:27 +0000
committermarha <marha@users.sourceforge.net>2011-01-13 22:01:27 +0000
commita0a46bd55d7cbbf70757a29c067e21b70ac4e2df (patch)
tree95803181a66e63d191b3fe06a031f9ed8ae701b8 /pixman
parent2ebdcfeee38bed8c65daa78aa7d18d8d1d93ed85 (diff)
downloadvcxsrv-a0a46bd55d7cbbf70757a29c067e21b70ac4e2df.tar.gz
vcxsrv-a0a46bd55d7cbbf70757a29c067e21b70ac4e2df.tar.bz2
vcxsrv-a0a46bd55d7cbbf70757a29c067e21b70ac4e2df.zip
mesalib pixman xkbcomp git update 13 jan 2011
Diffstat (limited to 'pixman')
-rw-r--r--pixman/pixman/pixman-radial-gradient.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/pixman/pixman/pixman-radial-gradient.c b/pixman/pixman/pixman-radial-gradient.c
index 7dfc1d04e..97c151865 100644
--- a/pixman/pixman/pixman-radial-gradient.c
+++ b/pixman/pixman/pixman-radial-gradient.c
@@ -96,8 +96,24 @@ radial_compute_color (double a,
if (a == 0)
{
- return _pixman_gradient_walker_pixel (walker,
- pixman_fixed_1 / 2 * c / b);
+ double t;
+
+ if (b == 0)
+ return 0;
+
+ t = pixman_fixed_1 / 2 * c / b;
+ if (repeat == PIXMAN_REPEAT_NONE)
+ {
+ if (0 <= t && t <= pixman_fixed_1)
+ return _pixman_gradient_walker_pixel (walker, t);
+ }
+ else
+ {
+ if (t * dr > mindr)
+ return _pixman_gradient_walker_pixel (walker, t);
+ }
+
+ return 0;
}
det = fdot (b, a, 0, b, -c, 0);