Code

revert jasper's way overzealous fix in png-write.cpp rev 13700; new fix in item_rende...
[inkscape.git] / src / display / nr-arena-item.h
index 52408d1547f09892879ad9aa28e652e191c37f89..103315c5eadd2ca4f316cc6c1e53b4938259dfa2 100644 (file)
 #include "gc-soft-ptr.h"
 #include "nr-arena-forward.h"
 #include "display/nr-filter.h"
-
-// My testing shows that disabling cache reduces the amount 
-// of leaked memory when many documents are loaded one from the other,
-// while there's no noticeable change in speed
-//#define arena_item_tile_cache
+#include <cairo.h>
 
 struct NRGC {
        NRGC(NRGC const *p) : parent(p) {}
@@ -91,11 +87,6 @@ struct NRArenaItem : public NRObject {
        /* Key for secondary rendering */
        unsigned int key;
   
-#ifdef arena_item_tile_cache
-  bool     skipCaching;
-  double   activity;
-#endif
-  
        /* BBox in grid coordinates */
        NRRectL bbox;
        /* Our affine */
@@ -132,7 +123,7 @@ struct NRArenaItemClass : public NRObjectClass {
        void (* set_child_position) (NRArenaItem *item, NRArenaItem *child, NRArenaItem *ref);
 
        unsigned int (* update) (NRArenaItem *item, NRRectL *area, NRGC *gc, unsigned int state, unsigned int reset);
-       unsigned int (* render) (NRArenaItem *item, NRRectL *area, NRPixBlock *pb, unsigned int flags);
+       unsigned int (* render) (cairo_t *ct, NRArenaItem *item, NRRectL *area, NRPixBlock *pb, unsigned int flags);
        unsigned int (* clip) (NRArenaItem *item, NRRectL *area, NRPixBlock *pb);
        NRArenaItem * (* pick) (NRArenaItem *item, NR::Point p, double delta, unsigned int sticky);
 };
@@ -161,7 +152,7 @@ void nr_arena_item_set_child_position (NRArenaItem *item, NRArenaItem *child, NR
 
 unsigned int nr_arena_item_invoke_update (NRArenaItem *item, NRRectL *area, NRGC *gc, unsigned int state, unsigned int reset);
 
-unsigned int nr_arena_item_invoke_render(NRArenaItem *item, NRRectL const *area, NRPixBlock *pb, unsigned int flags);
+unsigned int nr_arena_item_invoke_render(cairo_t *ct, NRArenaItem *item, NRRectL const *area, NRPixBlock *pb, unsigned int flags);
 
 unsigned int nr_arena_item_invoke_clip (NRArenaItem *item, NRRectL *area, NRPixBlock *pb);
 NRArenaItem *nr_arena_item_invoke_pick (NRArenaItem *item, NR::Point p, double delta, unsigned int sticky);