opengl colorspace + BT2020
[goodguy/history.git] / cinelerra-5.1 / cinelerra / cwindowtool.C
index 73f1f23254a5925e7d1e4e28a8f647e4f25bd2fd..329b09ecc8bacacd120cf6ed7f965ebf5df5392a 100644 (file)
@@ -546,7 +546,7 @@ void CWindowEyedropGUI::update()
        rgb_hex->update(rgb_text);
        
        float y, u, v;
-       YUV::rgb_to_yuv_f(r, g, b, y, u, v);
+       YUV::yuv.rgb_to_yuv_f(r, g, b, y, u, v);
        this->y->update(y);
        this->u->update(u);  u += 0.5;
        this->v->update(v);  v += 0.5;
@@ -789,16 +789,12 @@ void CWindowCameraGUI::create_objects()
 
 void CWindowCameraGUI::update_preview()
 {
-       mwindow->restart_brender();
-       mwindow->sync_parameters(CHANGE_PARAMS);
-
-       mwindow->cwindow->playback_engine->que->send_command(CURRENT_FRAME,
-                       CHANGE_NONE,
-                       mwindow->edl,
-                       1);
        mwindow->gui->lock_window("CWindowCameraGUI::update_preview");
+       mwindow->restart_brender();
        mwindow->gui->draw_overlays(1);
+       mwindow->sync_parameters(CHANGE_PARAMS);
        mwindow->gui->unlock_window();
+       mwindow->cwindow->refresh_frame(CHANGE_NONE);
        mwindow->cwindow->gui->lock_window("CWindowCameraGUI::update_preview");
        mwindow->cwindow->gui->canvas->draw_refresh();
        mwindow->cwindow->gui->unlock_window();
@@ -1237,16 +1233,12 @@ void CWindowProjectorGUI::create_objects()
 
 void CWindowProjectorGUI::update_preview()
 {
+       mwindow->gui->lock_window("CWindowProjectorGUI::update_preview");
        mwindow->restart_brender();
        mwindow->sync_parameters(CHANGE_PARAMS);
-       mwindow->cwindow->playback_engine->que->send_command(CURRENT_FRAME,
-                       CHANGE_NONE,
-                       mwindow->edl,
-                       1);
-       // TODO: really need to lock the main window??
-       mwindow->gui->lock_window("CWindowProjectorGUI::update_preview");
        mwindow->gui->draw_overlays(1);
        mwindow->gui->unlock_window();
+       mwindow->cwindow->refresh_frame(CHANGE_NONE);
        mwindow->cwindow->gui->lock_window("CWindowProjectorGUI::update_preview");
        mwindow->cwindow->gui->canvas->draw_refresh();
        mwindow->cwindow->gui->unlock_window();
@@ -1670,6 +1662,9 @@ int CWindowMaskDelete::handle_event()
                temp_keyframe.copy_data(keyframe);
 // Update parameter
                SubMask *submask = temp_keyframe.get_submask(mwindow->edl->session->cwindow_mask);
+               if( shift_down() )
+                       submask->points.remove_all_objects();
+
                for(int i = mwindow->cwindow->gui->affected_point;
                        i < submask->points.total - 1;
                        i++)
@@ -1691,6 +1686,8 @@ int CWindowMaskDelete::handle_event()
                        current; )
                {
                        SubMask *submask = current->get_submask(mwindow->edl->session->cwindow_mask);
+                       if( shift_down() )
+                               submask->points.remove_all_objects();
 
                        for(int i = mwindow->cwindow->gui->affected_point;
                                i < submask->points.total - 1;
@@ -2264,12 +2261,12 @@ void CWindowMaskGUI::handle_event()
 
 void CWindowMaskGUI::update_preview()
 {
+       mwindow->gui->lock_window("CWindowMaskGUI::update_preview");
        mwindow->restart_brender();
        mwindow->sync_parameters(CHANGE_PARAMS);
-       mwindow->cwindow->playback_engine->que->send_command(CURRENT_FRAME,
-                       CHANGE_NONE,
-                       mwindow->edl,
-                       1);
+       mwindow->gui->draw_overlays(1);
+       mwindow->gui->unlock_window();
+       mwindow->cwindow->refresh_frame(CHANGE_NONE);
        mwindow->cwindow->gui->lock_window("CWindowMaskGUI::update_preview");
        mwindow->cwindow->gui->canvas->draw_refresh();
        mwindow->cwindow->gui->unlock_window();