mask xy scale, mask boundary only overlay, fix 8 char mask nm bug, rework maskgui...
[goodguy/cinelerra.git] / cinelerra-5.1 / guicast / vframe.C
index 76d6ae1d0e024521626e5143ab75a0ab9b5dfe8f..14794aa2b8aea07fb7a6e6eb64612238b3eef3fd 100644 (file)
@@ -390,7 +390,8 @@ int VFrame::get_keyframe()
 
 void VFrame::get_temp(VFrame *&vfrm, int w, int h, int color_model)
 {
-       if( vfrm && ( vfrm->get_w() != w || vfrm->get_h() != h ) ) {
+       if( vfrm && ( vfrm->color_model != color_model ||
+           vfrm->get_w() != w || vfrm->get_h() != h ) ) {
                delete vfrm;  vfrm = 0;
        }
        if( !vfrm ) vfrm = new VFrame(w, h, color_model, 0);
@@ -1169,7 +1170,8 @@ int VFrame::transfer_from(VFrame *that, int bg_color, int in_x, int in_y, int in
        timestamp = that->timestamp;
        copy_params(that);
 
-       if( this->get_color_model() == that->get_color_model() &&
+       if( in_x == 0 && in_y == 0 && in_w == that->get_w() && in_h == that->get_h() &&
+           bg_color == 0 && this->get_color_model() == that->get_color_model() &&
            this->get_w() == that->get_w() && this->get_h() == that->get_h() &&
            this->get_bytes_per_line() == that->get_bytes_per_line() )
                return this->copy_from(that);