summaryrefslogtreecommitdiffstats
path: root/src/display/nr-arena-image.cpp
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2010-07-07 17:21:03 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2010-07-07 17:21:03 +0000
commit2f5eafec8d66d018d760b85a829c1d4ba1b0ed6d (patch)
tree271bd139e254192743f02b6686aa33ee39e8c2a7 /src/display/nr-arena-image.cpp
parentSmaller intermediate rendering regions (diff)
downloadinkscape-2f5eafec8d66d018d760b85a829c1d4ba1b0ed6d.tar.gz
inkscape-2f5eafec8d66d018d760b85a829c1d4ba1b0ed6d.zip
Switch to nearest neighbor filtering when image is larger than original
(bzr r9508.1.12)
Diffstat (limited to 'src/display/nr-arena-image.cpp')
-rw-r--r--src/display/nr-arena-image.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/display/nr-arena-image.cpp b/src/display/nr-arena-image.cpp
index f198b176b..325cff65a 100644
--- a/src/display/nr-arena-image.cpp
+++ b/src/display/nr-arena-image.cpp
@@ -197,6 +197,11 @@ nr_arena_image_render( cairo_t *ct, NRArenaItem *item, NRRectL *area, NRPixBlock
cairo_pattern_t *p = cairo_get_source(ct);
ink_cairo_pattern_set_matrix(p, image->grid2px);
+ Geom::Matrix total = item->ctm * image->grid2px.inverse();
+ if (total.expansionX() > 1.0 || total.expansionY() > 1.0) {
+ cairo_pattern_set_filter(p, CAIRO_FILTER_NEAREST);
+ }
+
cairo_paint_with_alpha(ct, ((double) item->opacity) / 255.0);
cairo_restore(ct);