X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmaskauto.C;h=3ddd946338219262d1fa0ec699109ca8832ad394;hp=8b5a2a4222d35a501cc9c2cb2cb457227da9cde8;hb=9fed7535470aa37781733db836068da3b4c17a0d;hpb=7ead9f7382846e81c2f8efb25780014e5f8834c3 diff --git a/cinelerra-5.1/cinelerra/maskauto.C b/cinelerra-5.1/cinelerra/maskauto.C index 8b5a2a42..3ddd9463 100644 --- a/cinelerra-5.1/cinelerra/maskauto.C +++ b/cinelerra-5.1/cinelerra/maskauto.C @@ -174,12 +174,12 @@ void SubMask::copy(FileXML *file) } } -void SubMask::dump() +void SubMask::dump(FILE *fp) { for( int i=0; ix, points.values[i]->y, points.values[i]->control_x1, points.values[i]->control_y1, points.values[i]->control_x2, points.values[i]->control_y2); @@ -345,9 +345,9 @@ void MaskAuto::set_points(ArrayList *points, void MaskAuto::load(FileXML *file) { // legacy, moved to SubMask - int old_mode = file->tag.get_property("MODE", MASK_MULTIPLY_ALPHA); - int old_feather = file->tag.get_property("FEATHER", 0); + int old_mode = file->tag.get_property("MODE", -1); int old_value = file->tag.get_property("VALUE", 100); + float old_feather = file->tag.get_property("FEATHER", 0); apply_before_plugins = file->tag.get_property("APPLY_BEFORE_PLUGINS", apply_before_plugins); disable_opengl_masking = file->tag.get_property("DISABLE_OPENGL_MASKING", disable_opengl_masking); for( int i=0; iname, name, sizeof(mask->name)); mask->feather = file->tag.get_property("FEATHER", old_feather); mask->fader = file->tag.get_property("FADER", old_value); - if( old_mode == MASK_SUBTRACT_ALPHA ) + if( old_mode == MASK_MULTIPLY_ALPHA ) mask->fader = -mask->fader; mask->load(file); } } -// dump(); } void MaskAuto::copy(int64_t start, int64_t end, FileXML *file, int default_auto) @@ -393,11 +392,13 @@ void MaskAuto::copy(int64_t start, int64_t end, FileXML *file, int default_auto) file->append_newline(); } -void MaskAuto::dump() +void MaskAuto::dump(FILE *fp) { + fprintf(fp,"mask_auto: apply_before_plugins %d, disable_opengl_masking %d\n", + apply_before_plugins, disable_opengl_masking); for( int i=0; idump(); + fprintf(fp," submask %d:\n", i); + masks.values[i]->dump(fp); } } @@ -435,4 +436,17 @@ void MaskAuto::scale_submasks(int orig_scale, int new_scale) } } +int MaskAuto::has_active_mask() +{ + int total_points = 0; + float min_fader = 100; + for( int i=0; ipoints.size(); + if( submask_points > 1 ) total_points += submask_points; + int fader = mask->fader; + if( fader < min_fader ) min_fader = fader; + } + return min_fader >= 0 && total_points < 2 ? 0 : 1; +}