summaryrefslogtreecommitdiff
path: root/gtk2_ardour/note_base.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2016-06-20 01:04:23 +1000
committernick_m <mainsbridge@gmail.com>2016-07-10 02:18:36 +1000
commite856615c75fb1df8045d1a48d221b9b45839afba (patch)
tree246e88d5b8e18eaf09a609940aaf4469b824f105 /gtk2_ardour/note_base.cc
parent3c1bc99df936a2ea1ea11ef6c884b9eecaef5c09 (diff)
Performance tweak - NoteBase doesn't recalculate colour as often.
- not sure if we can store this atm.
Diffstat (limited to 'gtk2_ardour/note_base.cc')
-rw-r--r--gtk2_ardour/note_base.cc16
1 files changed, 9 insertions, 7 deletions
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);
}