Performance tweak - NoteBase doesn't recalculate colour as often.

- not sure if we can store this atm.
This commit is contained in:
nick_m 2016-06-20 01:04:23 +10:00
parent 3c1bc99df9
commit e856615c75

View file

@ -119,9 +119,9 @@ NoteBase::on_channel_selection_change(uint16_t selection)
{ {
// make note change its color if its channel is not marked active // make note change its color if its channel is not marked active
if ( (selection & (1 << _note->channel())) == 0 ) { if ( (selection & (1 << _note->channel())) == 0 ) {
set_fill_color(UIConfiguration::instance().color ("midi note inactive channel")); const ArdourCanvas::Color inactive_ch = UIConfiguration::instance().color ("midi note inactive channel");
set_outline_color(calculate_outline(UIConfiguration::instance().color ("midi note inactive channel"), set_fill_color(inactive_ch);
_selected)); set_outline_color(calculate_outline(inactive_ch, _selected));
} else { } else {
// set the color according to the notes selection state // set the color according to the notes selection state
set_selected(_selected); set_selected(_selected);
@ -145,10 +145,12 @@ NoteBase::set_selected(bool selected)
return; return;
} }
_selected = selected; const uint32_t base_col = base_color();
set_fill_color (base_color());
set_outline_color(calculate_outline(base_color(), _selected)); _selected = selected;
set_fill_color (base_col);
set_outline_color(calculate_outline(base_col, _selected));
} }
#define SCALE_USHORT_TO_UINT8_T(x) ((x) / 257) #define SCALE_USHORT_TO_UINT8_T(x) ((x) / 257)
@ -166,8 +168,8 @@ NoteBase::base_color()
switch (mode) { switch (mode) {
case TrackColor: case TrackColor:
{ {
uint32_t color = _region.midi_stream_view()->get_region_color(); const uint32_t region_color = _region.midi_stream_view()->get_region_color();
return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (color, opacity), return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (region_color, opacity),
UIConfiguration::instance().color ("midi note selected"), UIConfiguration::instance().color ("midi note selected"),
0.5); 0.5);
} }