rescale refresh frame for X11 direct scaling
authorGood Guy <good1.2guy@gmail.com>
Tue, 4 Sep 2018 20:19:53 +0000 (14:19 -0600)
committerGood Guy <good1.2guy@gmail.com>
Tue, 4 Sep 2018 20:19:53 +0000 (14:19 -0600)
cinelerra-5.1/cinelerra/cwindowgui.C

index eca6fad0f7011b86062779705592d89950d1b640..3b1d0ac8a05913895fb5aa0d6f78cc6ae38c9052 100644 (file)
@@ -1082,6 +1082,15 @@ void CWindowCanvas::draw_refresh(int flush)
                                in_x2 > in_x1 &&
                                in_y2 > in_y1)
                        {
+// input scaled from session to refresh frame coordinates
+                               int ow = get_output_w(mwindow->edl);
+                               int oh = get_output_h(mwindow->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;
 // Can't use OpenGL here because it is called asynchronously of the
 // playback operation.
                                get_canvas()->draw_vframe(refresh_frame,