From 6bbe69e712f757a9da56abce2a76f6e16a1af563 Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Sat, 21 Sep 2013 20:06:48 -0700 Subject: [PATCH] Timeline: Fix error in drawing of region fade outs. --- timeline/src/Audio_Region.C | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/timeline/src/Audio_Region.C b/timeline/src/Audio_Region.C index 65a2d06..9e173e0 100644 --- a/timeline/src/Audio_Region.C +++ b/timeline/src/Audio_Region.C @@ -399,28 +399,16 @@ Audio_Region::draw_fade ( const Fade &fade, Fade::fade_dir_e dir, bool line, int fl_vertex( fx, dy + height ); { - nframes_t tsx = timeline->x_to_ts( 1 ); + const float ti = 1.0f / (float)width; + float ts = 0.0f; + + const int xi = dir == Fade::In ? 1 : -1; - if ( dir == Fade::In ) - { - nframes_t ts = 0; - - for ( int i = 0; i < width; ++i, ts += tsx ) - fl_vertex( fx + i, dy + height - ( height * fade.gain( ts / (double)fade.length ) )); - } - else - { - nframes_t ts = tsx * width; - - for ( int i = 0; i < width; ++i, ts -= tsx ) - fl_vertex( fx - i, dy + ( height * fade.gain( ts / (double)fade.length ) )); - } + for ( int i = 0; i < width; i++, ts += ti, fx += xi ) + fl_vertex( fx, dy + height - ( height * fade.gain( ts ))); } - if ( dir == Fade::In ) - fl_vertex( fx + width, dy ); - else - fl_vertex( fx - width, dy ); + fl_vertex( fx, dy ); if ( line ) fl_end_line();