mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 23:35:03 +01:00
Performance tweak - NoteBase doesn't recalculate colour as often.
- not sure if we can store this atm.
This commit is contained in:
parent
3c1bc99df9
commit
e856615c75
1 changed files with 10 additions and 8 deletions
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue