X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fvwindowgui.C;h=69ad7bbf2ea4ad1b0c8ef8983248857986a8fa18;hb=853b81c6d430bd41037984ecc95fd304fd98964e;hp=e1524d6dd269adbadd1a6b276b09a4dbbb769070;hpb=307d7f624510fcca7a7f6c1e683796cb73637106;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/vwindowgui.C b/cinelerra-5.1/cinelerra/vwindowgui.C index e1524d6d..69ad7bbf 100644 --- a/cinelerra-5.1/cinelerra/vwindowgui.C +++ b/cinelerra-5.1/cinelerra/vwindowgui.C @@ -823,37 +823,30 @@ void VWindowCanvas::draw_refresh(int flush) { EDL *edl = gui->vwindow->get_edl(); - if(!get_canvas()->get_video_on()) get_canvas()->clear_box(0, 0, get_canvas()->get_w(), get_canvas()->get_h()); - if(!get_canvas()->get_video_on() && refresh_frame && edl) - { - float in_x1, in_y1, in_x2, in_y2; - float out_x1, out_y1, out_x2, out_y2; - get_transfers(edl, - in_x1, in_y1, in_x2, in_y2, - out_x1, out_y1, out_x2, out_y2); + if( !get_canvas()->get_video_on() ) { + int cw = get_canvas()->get_w(), ch = get_canvas()->get_h(); + get_canvas()->clear_box(0, 0, cw, ch); + int ow = get_output_w(edl), oh = get_output_h(edl); + if( ow > 0 && oh > 0 && refresh_frame && edl ) { + float in_x1, in_y1, in_x2, in_y2; + float out_x1, out_y1, out_x2, out_y2; + get_transfers(edl, + in_x1, in_y1, in_x2, in_y2, + out_x1, out_y1, out_x2, out_y2); // input scaled from session to refresh frame coordinates - int ow = get_output_w(edl); - int oh = get_output_h(edl); - int rw = refresh_frame->get_w(); - int rh = refresh_frame->get_h(); - float xs = (float)rw / ow; - float ys = (float)rh / oh; - in_x1 *= xs; in_x2 *= xs; - in_y1 *= ys; in_y2 *= ys; - get_canvas()->draw_vframe(refresh_frame, - (int)out_x1, - (int)out_y1, - (int)(out_x2 - out_x1), - (int)(out_y2 - out_y1), - (int)in_x1, - (int)in_y1, - (int)(in_x2 - in_x1), - (int)(in_y2 - in_y1), + int rw = refresh_frame->get_w(); + int rh = refresh_frame->get_h(); + float xs = (float)rw / ow; + float ys = (float)rh / oh; + in_x1 *= xs; in_x2 *= xs; + in_y1 *= ys; in_y2 *= ys; + get_canvas()->draw_vframe(refresh_frame, + (int)out_x1, (int)out_y1, + (int)(out_x2 - out_x1), (int)(out_y2 - out_y1), + (int)in_x1, (int)in_y1, + (int)(in_x2 - in_x1), (int)(in_y2 - in_y1), 0); - } - - if(!get_canvas()->get_video_on()) - { + } draw_overlays(); get_canvas()->flash(flush); }