summaryrefslogtreecommitdiff
path: root/libs/canvas
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2017-03-28 14:05:03 +1000
committerTim Mayberry <mojofunk@gmail.com>2017-06-26 08:40:47 +1000
commitab13e87ec2f61489bbbb52ade6c3f9a1b67a0e1b (patch)
tree0082d359bccad91027a0302b2b0a261a1fe4eac5 /libs/canvas
parent8538ba35fe29645e6cd263f7149eebcc4ab62873 (diff)
Add Canvas::get_last_render_start_timestamp method
Diffstat (limited to 'libs/canvas')
-rw-r--r--libs/canvas/canvas.cc3
-rw-r--r--libs/canvas/canvas/canvas.h4
2 files changed, 7 insertions, 0 deletions
diff --git a/libs/canvas/canvas.cc b/libs/canvas/canvas.cc
index 7415478b60..a004d64ad3 100644
--- a/libs/canvas/canvas.cc
+++ b/libs/canvas/canvas.cc
@@ -58,6 +58,7 @@ uint32_t Canvas::tooltip_timeout_msecs = 750;
Canvas::Canvas ()
: _root (this)
, _bg_color (rgba_to_color (0, 1.0, 0.0, 1.0))
+ , _last_render_start_timestamp(0)
{
set_epoch ();
}
@@ -103,6 +104,8 @@ Canvas::render (Rect const & area, Cairo::RefPtr<Cairo::Context> const & context
{
PreRender (); // emit signal
+ _last_render_start_timestamp = g_get_monotonic_time();
+
#ifdef CANVAS_DEBUG
if (DEBUG_ENABLED(PBD::DEBUG::CanvasRender)) {
cerr << this << " RENDER: " << area << endl;
diff --git a/libs/canvas/canvas/canvas.h b/libs/canvas/canvas/canvas.h
index cb4f6dd70c..70a44d2f80 100644
--- a/libs/canvas/canvas/canvas.h
+++ b/libs/canvas/canvas/canvas.h
@@ -89,6 +89,8 @@ public:
void prepare_for_render (Rect const &) const;
+ gint64 get_last_render_start_timestamp () const { return _last_render_start_timestamp; }
+
/** @return root group */
Item* root () {
return &_root;
@@ -169,6 +171,8 @@ protected:
Root _root;
Color _bg_color;
+ mutable gint64 _last_render_start_timestamp;
+
static uint32_t tooltip_timeout_msecs;
void queue_draw_item_area (Item *, Rect);