diff options
author | nick_m <mainsbridge@gmail.com> | 2016-06-20 01:01:26 +1000 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2016-07-10 02:18:36 +1000 |
commit | 3c1bc99df936a2ea1ea11ef6c884b9eecaef5c09 (patch) | |
tree | 68dff8945b8876434c680b6823e3894888cfd101 | |
parent | c6f2095fb7a7ca47e3980899aafc6aa85c0fcd9a (diff) |
Improve midi model redraw performance by caching colours.
-rw-r--r-- | gtk2_ardour/ghostregion.cc | 10 | ||||
-rw-r--r-- | 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*); |