mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-22 22:56:32 +01:00
[P4/git history rebuild] various changes in rendering of audio regions (and theoretically other TimeAxisViewItems)
This commit is contained in:
parent
f557a92376
commit
140348122b
1 changed files with 13 additions and 86 deletions
|
|
@ -189,7 +189,7 @@ TimeAxisViewItem::init (ArdourCanvas::Group* parent, double fpp, Gdk::Color cons
|
||||||
|
|
||||||
if (visibility & ShowFrame) {
|
if (visibility & ShowFrame) {
|
||||||
frame = new ArdourCanvas::Rectangle (group,
|
frame = new ArdourCanvas::Rectangle (group,
|
||||||
ArdourCanvas::Rect (0.0, 0.0,
|
ArdourCanvas::Rect (0.0, 1.0,
|
||||||
trackview.editor().sample_to_pixel(duration) + RIGHT_EDGE_SHIFT,
|
trackview.editor().sample_to_pixel(duration) + RIGHT_EDGE_SHIFT,
|
||||||
trackview.current_height() - 1.0));
|
trackview.current_height() - 1.0));
|
||||||
|
|
||||||
|
|
@ -203,7 +203,7 @@ TimeAxisViewItem::init (ArdourCanvas::Group* parent, double fpp, Gdk::Color cons
|
||||||
frame->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TimeAxisFrame());
|
frame->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TimeAxisFrame());
|
||||||
}
|
}
|
||||||
|
|
||||||
frame->set_outline_what (ArdourCanvas::Rectangle::What (ArdourCanvas::Rectangle::RIGHT|ArdourCanvas::Rectangle::LEFT));
|
// frame->set_outline_what (ArdourCanvas::Rectangle::What (ArdourCanvas::Rectangle::RIGHT|ArdourCanvas::Rectangle::LEFT));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|
@ -227,7 +227,7 @@ TimeAxisViewItem::init (ArdourCanvas::Group* parent, double fpp, Gdk::Color cons
|
||||||
ArdourCanvas::Rect (start,
|
ArdourCanvas::Rect (start,
|
||||||
trackview.current_height() - TimeAxisViewItem::NAME_HIGHLIGHT_SIZE,
|
trackview.current_height() - TimeAxisViewItem::NAME_HIGHLIGHT_SIZE,
|
||||||
width - 2.0 + RIGHT_EDGE_SHIFT,
|
width - 2.0 + RIGHT_EDGE_SHIFT,
|
||||||
trackview.current_height() - 1.0));
|
trackview.current_height()));
|
||||||
CANVAS_DEBUG_NAME (name_highlight, string_compose ("name highlight for %1", get_item_name()));
|
CANVAS_DEBUG_NAME (name_highlight, string_compose ("name highlight for %1", get_item_name()));
|
||||||
name_highlight->set_data ("timeaxisviewitem", this);
|
name_highlight->set_data ("timeaxisviewitem", this);
|
||||||
name_highlight->set_outline_what (ArdourCanvas::Rectangle::TOP);
|
name_highlight->set_outline_what (ArdourCanvas::Rectangle::TOP);
|
||||||
|
|
@ -660,80 +660,6 @@ TimeAxisViewItem::compute_colors (Gdk::Color const & base_color)
|
||||||
g = base_color.get_green()/256;
|
g = base_color.get_green()/256;
|
||||||
b = base_color.get_blue()/256;
|
b = base_color.get_blue()/256;
|
||||||
fill_color = RGBA_TO_UINT(r,g,b,160);
|
fill_color = RGBA_TO_UINT(r,g,b,160);
|
||||||
|
|
||||||
/* for minor colors:
|
|
||||||
if the overall saturation is strong, make the minor colors light.
|
|
||||||
if its weak, make them dark.
|
|
||||||
|
|
||||||
we do this by moving an equal distance to the other side of the
|
|
||||||
central circle in the color wheel from where we started.
|
|
||||||
*/
|
|
||||||
|
|
||||||
radius = (unsigned char) rint (floor (sqrt (static_cast<double>(r*r + g*g + b+b))/3.0f));
|
|
||||||
minor_shift = 125 - radius;
|
|
||||||
|
|
||||||
/* LABEL: rotate around color wheel by 120 degrees anti-clockwise */
|
|
||||||
|
|
||||||
r = base_color.get_red()/256;
|
|
||||||
g = base_color.get_green()/256;
|
|
||||||
b = base_color.get_blue()/256;
|
|
||||||
|
|
||||||
if (r > b)
|
|
||||||
{
|
|
||||||
if (r > g)
|
|
||||||
{
|
|
||||||
/* red sector => green */
|
|
||||||
swap (r,g);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* green sector => blue */
|
|
||||||
swap (g,b);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (b > g)
|
|
||||||
{
|
|
||||||
/* blue sector => red */
|
|
||||||
swap (b,r);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* green sector => blue */
|
|
||||||
swap (g,b);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
r += minor_shift;
|
|
||||||
b += minor_shift;
|
|
||||||
g += minor_shift;
|
|
||||||
|
|
||||||
label_color = RGBA_TO_UINT(r,g,b,255);
|
|
||||||
r = (base_color.get_red()/256) + 127;
|
|
||||||
g = (base_color.get_green()/256) + 127;
|
|
||||||
b = (base_color.get_blue()/256) + 127;
|
|
||||||
|
|
||||||
label_color = RGBA_TO_UINT(r,g,b,255);
|
|
||||||
|
|
||||||
/* XXX can we do better than this ? */
|
|
||||||
/* We're trying;) */
|
|
||||||
/* NUKECOLORS */
|
|
||||||
|
|
||||||
//frame_color_r = 192;
|
|
||||||
//frame_color_g = 192;
|
|
||||||
//frame_color_b = 194;
|
|
||||||
|
|
||||||
//selected_frame_color_r = 182;
|
|
||||||
//selected_frame_color_g = 145;
|
|
||||||
//selected_frame_color_b = 168;
|
|
||||||
|
|
||||||
//handle_color_r = 25;
|
|
||||||
//handle_color_g = 0;
|
|
||||||
//handle_color_b = 255;
|
|
||||||
//lock_handle_color_r = 235;
|
|
||||||
//lock_handle_color_g = 16;
|
|
||||||
//lock_handle_color_b = 16;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -745,7 +671,7 @@ TimeAxisViewItem::set_colors()
|
||||||
set_frame_color();
|
set_frame_color();
|
||||||
|
|
||||||
if (name_highlight) {
|
if (name_highlight) {
|
||||||
name_highlight->set_fill_color (fill_color);
|
name_highlight->set_fill_color (fill_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name_text) {
|
if (name_text) {
|
||||||
|
|
@ -824,6 +750,7 @@ TimeAxisViewItem::get_fill_color () const
|
||||||
f = ARDOUR_UI::config()->get_canvasvar_FrameBase();
|
f = ARDOUR_UI::config()->get_canvasvar_FrameBase();
|
||||||
} else {
|
} else {
|
||||||
f = fill_color;
|
f = fill_color;
|
||||||
|
f = UINT_RGBA_CHANGE_A (f, (ARDOUR_UI::config()->get_canvasvar_FrameBase() & 0x000000ff));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -846,7 +773,7 @@ TimeAxisViewItem::set_frame_color()
|
||||||
f = get_fill_color ();
|
f = get_fill_color ();
|
||||||
|
|
||||||
if (fill_opacity) {
|
if (fill_opacity) {
|
||||||
f = UINT_RGBA_CHANGE_A (f, fill_opacity);
|
f = UINT_RGBA_CHANGE_A (f, (ARDOUR_UI::config()->get_canvasvar_FrameBase() & 0x000000ff));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!rect_visible) {
|
if (!rect_visible) {
|
||||||
|
|
@ -887,16 +814,16 @@ TimeAxisViewItem::set_frame_gradient ()
|
||||||
/* need to get alpha value */
|
/* need to get alpha value */
|
||||||
ArdourCanvas::color_to_rgba (f, r, g, b, a);
|
ArdourCanvas::color_to_rgba (f, r, g, b, a);
|
||||||
|
|
||||||
stops.push_back (std::make_pair (0.0, f));
|
|
||||||
|
|
||||||
/* now a darker version */
|
/* now a darker version */
|
||||||
|
|
||||||
ArdourCanvas::color_to_hsv (f, h, s, v);
|
ArdourCanvas::color_to_hsv (f, h, s, v);
|
||||||
|
|
||||||
v = min (1.0, v * (1.0 - ARDOUR_UI::config()->get_timeline_item_gradient_depth()));
|
v = min (1.0, v * (1.0 + ARDOUR_UI::config()->get_timeline_item_gradient_depth()));
|
||||||
|
|
||||||
ArdourCanvas::Color darker = ArdourCanvas::hsv_to_color (h, s, v, a);
|
ArdourCanvas::Color lighter = ArdourCanvas::hsv_to_color (h, s, v, a);
|
||||||
stops.push_back (std::make_pair (1.0, darker));
|
stops.push_back (std::make_pair (0.0, lighter));
|
||||||
|
stops.push_back (std::make_pair (0.37, f));
|
||||||
|
stops.push_back (std::make_pair (1.0, f));
|
||||||
|
|
||||||
frame->set_gradient (stops, true);
|
frame->set_gradient (stops, true);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue