refresh frame fix, dblclk proxy viewer fix, vicon refresh fix for awdw resize, fix...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / canvas.C
index 9f3ddc3b6e7d6cac46b5520164eda2419e5603a0..0d738c808de59187730041c66cfcbb245e841033 100644 (file)
@@ -857,9 +857,11 @@ void Canvas::update_refresh(VideoDevice *device, VFrame *output_frame)
        if( use_opengl )
                best_color_model = BC_RGB888;
 
+       int out_w = output_frame->get_w();
+       int out_h = output_frame->get_h();
        if( refresh_frame &&
-          (refresh_frame->get_w() != device->out_w ||
-           refresh_frame->get_h() != device->out_h ||
+          (refresh_frame->get_w() != out_w ||
+           refresh_frame->get_h() != out_h ||
            refresh_frame->get_color_model() != best_color_model ) ) {
 // x11 direct render uses BC_BGR8888, use tranfer_from to remap
                delete refresh_frame;  refresh_frame = 0;
@@ -867,7 +869,7 @@ void Canvas::update_refresh(VideoDevice *device, VFrame *output_frame)
 
        if( !refresh_frame ) {
                refresh_frame =
-                       new VFrame(device->out_w, device->out_h, best_color_model);
+                       new VFrame(out_w, out_h, best_color_model);
        }
 
        if( use_opengl ) {
@@ -879,10 +881,20 @@ void Canvas::update_refresh(VideoDevice *device, VFrame *output_frame)
                get_canvas()->lock_window(" Canvas::output_refresh");
        }
        else
-               refresh_frame->transfer_from(output_frame);
+               refresh_frame->copy_from(output_frame);
 }
 
 
+void Canvas::clear(int flush)
+{
+       if( refresh_frame )
+               refresh_frame->clear_frame();
+       BC_WindowBase *wdw = get_canvas();
+       if( !wdw ) return;
+       wdw->set_bg_color(BLACK);
+       wdw->clear_box(0,0, wdw->get_w(), wdw->get_h());
+       wdw->flash(flush);
+}
 
 
 
@@ -1159,7 +1171,7 @@ int CanvasPopupSize::handle_event()
 
 
 CanvasPopupResetCamera::CanvasPopupResetCamera(Canvas *canvas)
- : BC_MenuItem(_("Reset camera"))
+ : BC_MenuItem(_("Reset camera"), "F11", KEY_F11)
 {
        this->canvas = canvas;
 }
@@ -1172,7 +1184,7 @@ int CanvasPopupResetCamera::handle_event()
 
 
 CanvasPopupResetProjector::CanvasPopupResetProjector(Canvas *canvas)
- : BC_MenuItem(_("Reset projector"))
+ : BC_MenuItem(_("Reset projector"), "F12", KEY_F12)
 {
        this->canvas = canvas;
 }