diff options
| author | bulia byak <buliabyak@gmail.com> | 2006-07-29 17:07:59 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2006-07-29 17:07:59 +0000 |
| commit | d06ccf5bc28b1b6b3ecd7d92721d978b72929034 (patch) | |
| tree | b1536d67e420c88fa81cae649e9da9b105f49920 /src/libnr/nr-gradient.cpp | |
| parent | Add Miklos's new Cairo PDF rendering (diff) | |
| download | inkscape-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.cpp | 18 |
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; |
