From 4ddf97f5a2b505997935a1079f2fd9232c1f634e Mon Sep 17 00:00:00 2001 From: Tim Mayberry Date: Tue, 28 Mar 2017 15:52:28 +1000 Subject: Add Canvas::get_microseconds_since_render_start() method Initial use is for the WaveView class to determine whether on not to draw the waveform in the GUI thread. --- libs/canvas/canvas.cc | 12 ++++++++++++ libs/canvas/canvas/canvas.h | 2 ++ 2 files changed, 14 insertions(+) (limited to 'libs/canvas') diff --git a/libs/canvas/canvas.cc b/libs/canvas/canvas.cc index a004d64ad3..47784626aa 100644 --- a/libs/canvas/canvas.cc +++ b/libs/canvas/canvas.cc @@ -163,6 +163,18 @@ Canvas::prepare_for_render (Rect const & area) const } } +gint64 +Canvas::get_microseconds_since_render_start () const +{ + gint64 timestamp = g_get_monotonic_time(); + + if (_last_render_start_timestamp == 0 || timestamp <= _last_render_start_timestamp) { + return 0; + } + + return timestamp - _last_render_start_timestamp; +} + ostream& operator<< (ostream& o, Canvas& c) { diff --git a/libs/canvas/canvas/canvas.h b/libs/canvas/canvas/canvas.h index 70a44d2f80..3bcf58256d 100644 --- a/libs/canvas/canvas/canvas.h +++ b/libs/canvas/canvas/canvas.h @@ -91,6 +91,8 @@ public: gint64 get_last_render_start_timestamp () const { return _last_render_start_timestamp; } + gint64 get_microseconds_since_render_start () const; + /** @return root group */ Item* root () { return &_root; -- cgit v1.2.3