summaryrefslogtreecommitdiffstats
path: root/src/libnr/nr-gradient.cpp
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2006-07-29 17:07:59 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2006-07-29 17:07:59 +0000
commitd06ccf5bc28b1b6b3ecd7d92721d978b72929034 (patch)
treeb1536d67e420c88fa81cae649e9da9b105f49920 /src/libnr/nr-gradient.cpp
parentAdd Miklos's new Cairo PDF rendering (diff)
downloadinkscape-d06ccf5bc28b1b6b3ecd7d92721d978b72929034.tar.gz
inkscape-d06ccf5bc28b1b6b3ecd7d92721d978b72929034.zip
patch for rendering quality and speed from Jasper van de Gronde
(bzr r1503)
Diffstat (limited to 'src/libnr/nr-gradient.cpp')
-rw-r--r--src/libnr/nr-gradient.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/libnr/nr-gradient.cpp b/src/libnr/nr-gradient.cpp
index 4553eb598..7383d6c76 100644
--- a/src/libnr/nr-gradient.cpp
+++ b/src/libnr/nr-gradient.cpp
@@ -161,10 +161,10 @@ nr_rgradient_render_generic_symmetric(NRRGradientRenderer *rgr, NRPixBlock *pb)
idx = (int) CLAMP(pos, 0, (double) NRG_MASK);
}
unsigned char const *s = rgr->vector + 4 * idx;
- d[0] = NR_COMPOSENPP(s[0], s[3], d[0], d[3]);
- d[1] = NR_COMPOSENPP(s[1], s[3], d[1], d[3]);
- d[2] = NR_COMPOSENPP(s[2], s[3], d[2], d[3]);
- d[3] = (255*255 - (255 - s[3]) * (255 - d[3]) + 127) / 255;
+ d[0] = NR_COMPOSENPP_1111(s[0], s[3], d[0]);
+ d[1] = NR_COMPOSENPP_1111(s[1], s[3], d[1]);
+ d[2] = NR_COMPOSENPP_1111(s[2], s[3], d[2]);
+ d[3] = NR_COMPOSEA_111(s[3], d[3]);
d += 4;
gx += dx;
gy += dy;
@@ -193,11 +193,11 @@ nr_rgradient_render_generic_symmetric(NRRGradientRenderer *rgr, NRPixBlock *pb)
d[2] = s[2];
d[3] = 255;
} else if (s[3] != 0) {
- unsigned ca = 255*255 - (255 - s[3]) * (255 - d[3]);
- d[0] = NR_COMPOSENNN_A7(s[0], s[3], d[0], d[3], ca);
- d[1] = NR_COMPOSENNN_A7(s[1], s[3], d[1], d[3], ca);
- d[2] = NR_COMPOSENNN_A7(s[2], s[3], d[2], d[3], ca);
- d[3] = (ca + 127) / 255;
+ unsigned ca = NR_COMPOSEA_112(s[3], d[3]);
+ d[0] = NR_COMPOSENNN_111121(s[0], s[3], d[0], d[3], ca);
+ d[1] = NR_COMPOSENNN_111121(s[1], s[3], d[1], d[3], ca);
+ d[2] = NR_COMPOSENNN_111121(s[2], s[3], d[2], d[3], ca);
+ d[3] = NR_NORMALIZE_21(ca);
}
d += 4;
gx += dx;