From f88cfdb47802241c306273d98f31538d44e6781a Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 20 Apr 2013 16:11:30 -0400 Subject: remove Editor::redraw_measures to improve efficiency of tempo measure line redraws --- gtk2_ardour/editor_tempodisplay.cc | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) (limited to 'gtk2_ardour/editor_tempodisplay.cc') diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc index 4eb43ad53b..09d9b39c73 100644 --- a/gtk2_ardour/editor_tempodisplay.cc +++ b/gtk2_ardour/editor_tempodisplay.cc @@ -119,7 +119,7 @@ Editor::tempo_map_changed (const PropertyChange& /*ignored*/) compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_samples(), begin, end); _session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks); // redraw metric markers - redraw_measures (); + draw_measures (begin, end); update_tempo_based_rulers (begin, end); } @@ -130,22 +130,18 @@ Editor::redisplay_tempo (bool immediate_redraw) return; } - ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin; - ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end; - - compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_samples(), - current_bbt_points_begin, current_bbt_points_end); - if (immediate_redraw) { - redraw_measures (); + ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin; + ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end; + + compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_samples(), + current_bbt_points_begin, current_bbt_points_end); + draw_measures (current_bbt_points_begin, current_bbt_points_end); + update_tempo_based_rulers (current_bbt_points_begin, current_bbt_points_end); // redraw rulers and measures + } else { -#ifdef GTKOSX - redraw_measures (); -#else - Glib::signal_idle().connect (sigc::mem_fun (*this, &Editor::redraw_measures)); -#endif + Glib::signal_idle().connect (sigc::bind_return (sigc::bind (sigc::mem_fun (*this, &Editor::redisplay_tempo), true), false)); } - update_tempo_based_rulers (current_bbt_points_begin, current_bbt_points_end); // redraw rulers and measures } void @@ -170,18 +166,6 @@ Editor::hide_measures () tempo_lines->hide(); } -bool -Editor::redraw_measures () -{ - ARDOUR::TempoMap::BBTPointList::const_iterator begin; - ARDOUR::TempoMap::BBTPointList::const_iterator end; - - compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_samples(), begin, end); - draw_measures (begin, end); - - return false; -} - void Editor::draw_measures (ARDOUR::TempoMap::BBTPointList::const_iterator& begin, ARDOUR::TempoMap::BBTPointList::const_iterator& end) -- cgit v1.2.3