diff options
author | marha <marha@users.sourceforge.net> | 2011-01-13 22:07:24 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-01-13 22:07:24 +0000 |
commit | dc54712d6b67dac7fc745cf3b9019b2c4c81f193 (patch) | |
tree | 002b3fd0e0233fe3e6c57d603a8471794f5ba922 /pixman | |
parent | ca14143b18b939ee4506936e77478f8c593802b5 (diff) | |
parent | a0a46bd55d7cbbf70757a29c067e21b70ac4e2df (diff) | |
download | vcxsrv-dc54712d6b67dac7fc745cf3b9019b2c4c81f193.tar.gz vcxsrv-dc54712d6b67dac7fc745cf3b9019b2c4c81f193.tar.bz2 vcxsrv-dc54712d6b67dac7fc745cf3b9019b2c4c81f193.zip |
svn merge ^/branches/released .
Diffstat (limited to 'pixman')
-rw-r--r-- | pixman/pixman/pixman-radial-gradient.c | 20 |
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);
|