diff options
| author | Krzysztof Kosi??ski <tweenk.pl@gmail.com> | 2014-03-13 04:45:38 +0000 |
|---|---|---|
| committer | Krzysztof KosiĆski <tweenk.pl@gmail.com> | 2014-03-13 04:45:38 +0000 |
| commit | e7a3f5b74d1f5a95390ee95b06371d184c1812f7 (patch) | |
| tree | 78f665a8013ebba1d57b3114744734730e4fa8b4 /src/display/drawing-group.cpp | |
| parent | Render zero-width PDF lines as 1px lines compensated for current transform. (diff) | |
| download | inkscape-e7a3f5b74d1f5a95390ee95b06371d184c1812f7.tar.gz inkscape-e7a3f5b74d1f5a95390ee95b06371d184c1812f7.zip | |
Provide a toggle in the document properties to optionally turn off
antialiasing for display and export.
Fixes a nearly 10 year old bug #170356
Fixed bugs:
- https://launchpad.net/bugs/170356
(bzr r13144)
Diffstat (limited to 'src/display/drawing-group.cpp')
| -rw-r--r-- | src/display/drawing-group.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/display/drawing-group.cpp b/src/display/drawing-group.cpp index 38ace001f..c03e0f3ba 100644 --- a/src/display/drawing-group.cpp +++ b/src/display/drawing-group.cpp @@ -22,6 +22,7 @@ DrawingGroup::DrawingGroup(Drawing &drawing) : DrawingItem(drawing) , _style(NULL) , _child_transform(NULL) + , _uses_antialiasing(true) {} DrawingGroup::~DrawingGroup() @@ -47,6 +48,15 @@ DrawingGroup::setStyle(SPStyle *style) _setStyleCommon(_style, style); } +void +DrawingGroup::setAntialiasing(bool a) +{ + if (_uses_antialiasing != a) { + _uses_antialiasing = a; + _markForUpdate(STATE_ALL, true); + } +} + /** * Set additional transform for the group. * This is applied after the normal transform and mainly useful for @@ -100,6 +110,13 @@ DrawingGroup::_updateItem(Geom::IntRect const &area, UpdateContext const &ctx, u unsigned DrawingGroup::_renderItem(DrawingContext &dc, Geom::IntRect const &area, unsigned flags, DrawingItem *stop_at) { + DrawingContext::Save aa_save; + + if (!_uses_antialiasing) { + aa_save.save(dc); + cairo_set_antialias(dc.raw(), CAIRO_ANTIALIAS_NONE); + } + if (stop_at == NULL) { // normal rendering for (ChildrenList::iterator i = _children.begin(); i != _children.end(); ++i) { |
