From e856615c75fb1df8045d1a48d221b9b45839afba Mon Sep 17 00:00:00 2001 From: nick_m Date: Mon, 20 Jun 2016 01:04:23 +1000 Subject: Performance tweak - NoteBase doesn't recalculate colour as often. - not sure if we can store this atm. --- gtk2_ardour/note_base.cc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/note_base.cc b/gtk2_ardour/note_base.cc index 9c47fa7b18..6bd6425ac5 100644 --- a/gtk2_ardour/note_base.cc +++ b/gtk2_ardour/note_base.cc @@ -119,9 +119,9 @@ NoteBase::on_channel_selection_change(uint16_t selection) { // make note change its color if its channel is not marked active if ( (selection & (1 << _note->channel())) == 0 ) { - set_fill_color(UIConfiguration::instance().color ("midi note inactive channel")); - set_outline_color(calculate_outline(UIConfiguration::instance().color ("midi note inactive channel"), - _selected)); + const ArdourCanvas::Color inactive_ch = UIConfiguration::instance().color ("midi note inactive channel"); + set_fill_color(inactive_ch); + set_outline_color(calculate_outline(inactive_ch, _selected)); } else { // set the color according to the notes selection state set_selected(_selected); @@ -145,10 +145,12 @@ NoteBase::set_selected(bool selected) return; } + const uint32_t base_col = base_color(); + _selected = selected; - set_fill_color (base_color()); + set_fill_color (base_col); - set_outline_color(calculate_outline(base_color(), _selected)); + set_outline_color(calculate_outline(base_col, _selected)); } #define SCALE_USHORT_TO_UINT8_T(x) ((x) / 257) @@ -166,8 +168,8 @@ NoteBase::base_color() switch (mode) { case TrackColor: { - uint32_t color = _region.midi_stream_view()->get_region_color(); - return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (color, opacity), + const uint32_t region_color = _region.midi_stream_view()->get_region_color(); + return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (region_color, opacity), UIConfiguration::instance().color ("midi note selected"), 0.5); } -- cgit v1.2.3