From 3c1bc99df936a2ea1ea11ef6c884b9eecaef5c09 Mon Sep 17 00:00:00 2001 From: nick_m Date: Mon, 20 Jun 2016 01:01:26 +1000 Subject: Improve midi model redraw performance by caching colours. --- gtk2_ardour/ghostregion.cc | 10 ++++++---- gtk2_ardour/ghostregion.h | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gtk2_ardour/ghostregion.cc b/gtk2_ardour/ghostregion.cc index 127ab64d41..fc66b1564d 100644 --- a/gtk2_ardour/ghostregion.cc +++ b/gtk2_ardour/ghostregion.cc @@ -267,8 +267,10 @@ MidiGhostRegion::set_colors() GhostRegion::set_colors(); for (EventList::iterator it = events.begin(); it != events.end(); ++it) { - (*it)->item->set_fill_color (UIConfiguration::instance().color_mod((*it)->event->base_color(), "ghost track midi fill")); - (*it)->item->set_outline_color (UIConfiguration::instance().color ("ghost track midi outline")); + _fill = UIConfiguration::instance().color_mod((*it)->event->base_color(), "ghost track midi fill"); + _outline = UIConfiguration::instance().color ("ghost track midi outline"); + (*it)->item->set_fill_color (_fill); + (*it)->item->set_outline_color (_outline); } } @@ -331,8 +333,8 @@ MidiGhostRegion::add_note (NoteBase* n) GhostEvent* event = new GhostEvent (n, group); events.push_back (event); - event->item->set_fill_color (UIConfiguration::instance().color_mod(n->base_color(), "ghost track midi fill")); - event->item->set_outline_color (UIConfiguration::instance().color ("ghost track midi outline")); + event->item->set_fill_color (_fill); + event->item->set_outline_color (_outline); MidiStreamView* mv = midi_view(); diff --git a/gtk2_ardour/ghostregion.h b/gtk2_ardour/ghostregion.h index 8a4a8284c0..152d34a64b 100644 --- a/gtk2_ardour/ghostregion.h +++ b/gtk2_ardour/ghostregion.h @@ -115,6 +115,8 @@ public: void clear_events(); private: + ArdourCanvas::Color _fill; + ArdourCanvas::Color _outline; MidiGhostRegion::GhostEvent* find_event (NoteBase*); -- cgit v1.2.3