summaryrefslogtreecommitdiffstats
path: root/src/display/nr-arena.cpp
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2011-07-28 05:04:08 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2011-07-28 05:04:08 +0000
commit905b8a96963f78358abfd109c0c49758c6fe4e9d (patch)
treef36eff88e8cc148264f9ea46df7b525c6a9ea80e /src/display/nr-arena.cpp
parentAdd deferred allocation functionality to DrawingSurface (diff)
downloadinkscape-905b8a96963f78358abfd109c0c49758c6fe4e9d.tar.gz
inkscape-905b8a96963f78358abfd109c0c49758c6fe4e9d.zip
Per-item render cache.
Cache some offscreen data to facilitate smoother navigation. (bzr r10347.1.20)
Diffstat (limited to 'src/display/nr-arena.cpp')
-rw-r--r--src/display/nr-arena.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/display/nr-arena.cpp b/src/display/nr-arena.cpp
index 5747de26c..735d44e9e 100644
--- a/src/display/nr-arena.cpp
+++ b/src/display/nr-arena.cpp
@@ -151,6 +151,17 @@ nr_arena_set_renderoffscreen (NRArena *arena)
}
+void
+nr_arena_set_cache_limit (NRArena *arena, Geom::OptIntRect const &cache_limit)
+{
+ arena->cache_limit = cache_limit;
+ for (std::set<NRArenaItem *>::iterator i = arena->cached_items.begin();
+ i != arena->cached_items.end(); ++i)
+ {
+ nr_arena_item_request_update(*i, NR_ARENA_ITEM_STATE_CACHE, FALSE);
+ }
+}
+
#define FLOAT_TO_UINT8(f) (int(f*255))
#define RGBA_R(v) ((v) >> 24)
#define RGBA_G(v) (((v) >> 16) & 0xff)