summaryrefslogtreecommitdiff
path: root/libs/canvas/canvas/item.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/canvas/canvas/item.h')
-rw-r--r--libs/canvas/canvas/item.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/canvas/canvas/item.h b/libs/canvas/canvas/item.h
index 02f84a62ee..4088011a01 100644
--- a/libs/canvas/canvas/item.h
+++ b/libs/canvas/canvas/item.h
@@ -75,6 +75,13 @@ public:
*/
virtual void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const = 0;
+ /** Item has changed will be rendered in next render pass so give item a
+ * chance to perhaps schedule work in another thread etc.
+ *
+ * @param area Area to draw, in **window** coordinates
+ */
+ virtual void prepare_for_render (Rect const & area) const { }
+
/** Adds one or more items to the vector @param items based on their
* covering @param point which is in **window** coordinates
*
@@ -309,6 +316,7 @@ protected:
void add_child_bounding_boxes (bool include_hidden = false) const;
void render_children (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const;
+ void prepare_for_render_children (Rect const & area) const;
Duple scroll_offset() const;
Duple position_offset() const;