summaryrefslogtreecommitdiffstats
path: root/src/sp-gradient.cpp
diff options
context:
space:
mode:
authorJasper van de Gronde <jasper.vandegronde@gmail.com>2009-04-01 19:00:07 +0000
committerjaspervdg <jaspervdg@users.sourceforge.net>2009-04-01 19:00:07 +0000
commit47963508364dbfced408347de0bf766e23f9390e (patch)
tree40d0c496513dea283a2c98998b9b5d227d54f80b /src/sp-gradient.cpp
parentKorean and French translations update. (diff)
downloadinkscape-47963508364dbfced408347de0bf766e23f9390e.tar.gz
inkscape-47963508364dbfced408347de0bf766e23f9390e.zip
Fix for gradient code I committed recently (which accidentally used unsigned ints where it should not).
(bzr r7601)
Diffstat (limited to 'src/sp-gradient.cpp')
-rw-r--r--src/sp-gradient.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/sp-gradient.cpp b/src/sp-gradient.cpp
index 3abb91690..09c2bd65f 100644
--- a/src/sp-gradient.cpp
+++ b/src/sp-gradient.cpp
@@ -1100,10 +1100,10 @@ sp_gradient_ensure_colors(SPGradient *gr)
gint o1 = (gint) floor(gr->vector.stops[i + 1].offset * (NCOLORS - 0.001));
if (o1 > o0) {
for (int j = o0; j < o1 + 1; j++) {
- gr->color[4 * j + 0] = r0 + DIV_ROUND((j-o0)*(r1-r0),(o1-o0));
- gr->color[4 * j + 1] = g0 + DIV_ROUND((j-o0)*(g1-g0),(o1-o0));
- gr->color[4 * j + 2] = b0 + DIV_ROUND((j-o0)*(b1-b0),(o1-o0));
- gr->color[4 * j + 3] = a0 + DIV_ROUND((j-o0)*(a1-a0),(o1-o0));
+ gr->color[4 * j + 0] = r0 + ((j-o0)*(r1-r0) + (o1-o0)/2)/(o1-o0);
+ gr->color[4 * j + 1] = g0 + ((j-o0)*(g1-g0) + (o1-o0)/2)/(o1-o0);
+ gr->color[4 * j + 2] = b0 + ((j-o0)*(b1-b0) + (o1-o0)/2)/(o1-o0);
+ gr->color[4 * j + 3] = a0 + ((j-o0)*(a1-a0) + (o1-o0)/2)/(o1-o0);
}
}
}