summaryrefslogtreecommitdiffstats
path: root/src/libnr/nr-pixblock.cpp
diff options
context:
space:
mode:
authorAndrius Ramanauskas <knutux@gmail.com>2006-04-19 05:14:26 +0000
committerknutux <knutux@users.sourceforge.net>2006-04-19 05:14:26 +0000
commitcd3043cf07c274cd641b8483b55177e9a5cb1e10 (patch)
treef860995235a5dc981868ab4f3482e861322ffe01 /src/libnr/nr-pixblock.cpp
parentfix name and size (diff)
downloadinkscape-cd3043cf07c274cd641b8483b55177e9a5cb1e10.tar.gz
inkscape-cd3043cf07c274cd641b8483b55177e9a5cb1e10.zip
Rendering optimisation, which gives best results for zoomed in drawings with complex (multi-node) paths. Optimisation focus - eliminating cubicTo and LineTo nodes outside of visible area, so no unneeded calculations is needed and less memory is consumed (this avoids crashes which were occurring previously if zooming into a complex drawing)
(bzr r541)
Diffstat (limited to 'src/libnr/nr-pixblock.cpp')
-rw-r--r--src/libnr/nr-pixblock.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/libnr/nr-pixblock.cpp b/src/libnr/nr-pixblock.cpp
index 9b1ff2752..59e64b558 100644
--- a/src/libnr/nr-pixblock.cpp
+++ b/src/libnr/nr-pixblock.cpp
@@ -64,10 +64,10 @@ nr_pixblock_setup_fast (NRPixBlock *pb, NR_PIXBLOCK_MODE mode, int x0, int y0, i
pb->mode = mode;
pb->empty = 1;
- pb->area.x0 = x0;
- pb->area.y0 = y0;
- pb->area.x1 = x1;
- pb->area.y1 = y1;
+ pb->visible_area.x0 = pb->area.x0 = x0;
+ pb->visible_area.y0 = pb->area.y0 = y0;
+ pb->visible_area.x1 = pb->area.x1 = x1;
+ pb->visible_area.y1 = pb->area.y1 = y1;
pb->rs = bpp * w;
}
@@ -103,10 +103,10 @@ nr_pixblock_setup (NRPixBlock *pb, NR_PIXBLOCK_MODE mode, int x0, int y0, int x1
pb->mode = mode;
pb->empty = 1;
- pb->area.x0 = x0;
- pb->area.y0 = y0;
- pb->area.x1 = x1;
- pb->area.y1 = y1;
+ pb->visible_area.x0 = pb->area.x0 = x0;
+ pb->visible_area.y0 = pb->area.y0 = y0;
+ pb->visible_area.x1 = pb->area.x1 = x1;
+ pb->visible_area.y1 = pb->area.y1 = y1;
pb->rs = bpp * w;
}
@@ -130,10 +130,10 @@ nr_pixblock_setup_extern (NRPixBlock *pb, NR_PIXBLOCK_MODE mode, int x0, int y0,
pb->size = NR_PIXBLOCK_SIZE_STATIC;
pb->mode = mode;
pb->empty = empty;
- pb->area.x0 = x0;
- pb->area.y0 = y0;
- pb->area.x1 = x1;
- pb->area.y1 = y1;
+ pb->visible_area.x0 = pb->area.x0 = x0;
+ pb->visible_area.y0 = pb->area.y0 = y0;
+ pb->visible_area.x1 = pb->area.x1 = x1;
+ pb->visible_area.y1 = pb->area.y1 = y1;
pb->data.px = px;
pb->rs = rs;