int refresh_w = 0;
// Ignore if called by resourcethread.
-// if( mode == IGNORE_THREAD ) return;
+ if( mode == IGNORE_THREAD ) return;
int y = 0;
if( edit->track->show_titles() )
VFrame *title_bar = new VFrame(tw, th, colormodel);
uint8_t **bar_rows = title_bar->get_rows();
const uint8_t gap_grey = 0x4a;
+ union { unsigned rgba; struct { uint8_t r,g,b,a; }; } c;
+ c.r = color>>16; c.g = color>>8; c.b = color>>0; c.a = 0xff;
if( BC_CModels::has_alpha(colormodel) && // fast path
BC_CModels::calculate_pixelsize(colormodel) == sizeof(unsigned) ) {
const unsigned gap_rgba = (0xff<<24) |
unsigned *bp = (unsigned *)bar_rows[0];
for( int i=tw; --i>=0; ) *bp++ = gap_rgba;
}
- unsigned rgba = (0xff<<24) | (color & 0xffffff);
for( int y=1; y<th; ++y ) {
unsigned *bp = (unsigned *)bar_rows[y];
if( tw > 0 ) *bp++ = gap_rgba;
- for( int i=tw1; --i>0; ++bp ) *bp = rgba;
+ for( int i=tw1; --i>0; ++bp ) *bp = c.rgba;
if( tw > 1 ) *bp = gap_rgba;
}
}
else {
- uint8_t cr = (color>>16), cg = (color>>8), cb = (color>>0);
if( th > 0 ) {
uint8_t *cp = bar_rows[0];
for( int x=0; x<tw; ++x ) {
cp += bpp;
}
for( int x=1; x<tw1; ++x ) {
- cp[0] = cr; cp[1] = cg; cp[2] = cb;
+ cp[0] = c.r; cp[1] = c.g; cp[2] = c.b;
if( bpp > 3 ) cp[3] = 0xff;
cp += bpp;
}
y2 = CLIP(y1, 0, y_max);
//printf("ResourcePixmap::draw_audio_source %d %d %d\n", __LINE__, y1, y2);
if( !rect_audio )
- canvas->draw_line(x1, y0, x2, y2, this);
+ canvas->draw_bline(x1, y0, x2, y2, this);
else
- canvas->draw_line(x2, center_pixel, x2, y2, this);
+ canvas->draw_bline(x2, center_pixel, x2, y2, this);
}
}
{
int rect_audio = mwindow->preferences->rectify_audio;
if( rect_audio ) { low = fabs(low); high = fabs(high); }
- int top_pixel = mwindow->edl->session->show_titles ? 0 :
+ int top_pixel = !mwindow->edl->session->show_titles ? 0 :
mwindow->theme->get_image("title_bg_data")->get_h();
int center_pixel = !rect_audio ?
mwindow->edl->local_session->zoom_track / 2 + top_pixel :