summaryrefslogtreecommitdiffstats
path: root/src/sp-gradient.cpp
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2016-10-12 11:10:37 +0000
committertavmjong-free <tavmjong@free.fr>2016-10-12 11:10:37 +0000
commitce1a41cdce443963665ad56e2a73cbe63e5cdf5f (patch)
tree4b4ee3b092910bf2bcc836f58c456d03d409614b /src/sp-gradient.cpp
parent[Bug #1426423] Updated Icelandic translation for 0.92. (diff)
downloadinkscape-ce1a41cdce443963665ad56e2a73cbe63e5cdf5f.tar.gz
inkscape-ce1a41cdce443963665ad56e2a73cbe63e5cdf5f.zip
Render mesh gradients that reference other mesh gradients.
(bzr r15163)
Diffstat (limited to 'src/sp-gradient.cpp')
-rw-r--r--src/sp-gradient.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/sp-gradient.cpp b/src/sp-gradient.cpp
index 333316697..49f117a51 100644
--- a/src/sp-gradient.cpp
+++ b/src/sp-gradient.cpp
@@ -1144,15 +1144,17 @@ sp_gradient_pattern_common_setup(cairo_pattern_t *cp,
}
// add stops
- for (std::vector<SPGradientStop>::iterator i = gr->vector.stops.begin();
- i != gr->vector.stops.end(); ++i)
- {
- // multiply stop opacity by paint opacity
- cairo_pattern_add_color_stop_rgba(cp, i->offset,
- i->color.v.c[0], i->color.v.c[1], i->color.v.c[2], i->opacity * opacity);
+ if (!SP_IS_MESHGRADIENT(gr)) {
+ for (std::vector<SPGradientStop>::iterator i = gr->vector.stops.begin();
+ i != gr->vector.stops.end(); ++i)
+ {
+ // multiply stop opacity by paint opacity
+ cairo_pattern_add_color_stop_rgba(cp, i->offset,
+ i->color.v.c[0], i->color.v.c[1], i->color.v.c[2], i->opacity * opacity);
+ }
}
- // set pattern matrix
+ // set pattern transform matrix
Geom::Affine gs2user = gr->gradientTransform;
if (gr->getUnits() == SP_GRADIENT_UNITS_OBJECTBOUNDINGBOX && bbox) {
Geom::Affine bbox2user(bbox->width(), 0, 0, bbox->height(), bbox->left(), bbox->top());