diff options
-rw-r--r-- | source/blender/blenkernel/BKE_mask.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mask.c | 7 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 2 | ||||
-rw-r--r-- | source/blender/editors/mask/mask_shapekey.c | 2 |
4 files changed, 7 insertions, 6 deletions
diff --git a/source/blender/blenkernel/BKE_mask.h b/source/blender/blenkernel/BKE_mask.h index d5e5e36cd42..92332116ba6 100644 --- a/source/blender/blenkernel/BKE_mask.h +++ b/source/blender/blenkernel/BKE_mask.h @@ -120,7 +120,7 @@ void BKE_mask_update_display(struct Mask *mask, float ctime); void BKE_mask_evaluate_all_masks(struct Main *bmain, float ctime, const int do_newframe); void BKE_mask_evaluate(struct Mask *mask, const float ctime, const int do_newframe); void BKE_mask_layer_evaluate(struct MaskLayer *masklay, const float ctime, const int do_newframe); -void BKE_mask_update_scene(struct Main *bmain, struct Scene *scene, const int do_newframe); +void BKE_mask_update_scene(struct Main *bmain, struct Scene *scene); void BKE_mask_parent_init(struct MaskParent *parent); void BKE_mask_calc_handle_adjacent_interp(struct MaskSpline *spline, struct MaskSplinePoint *point, const float u); void BKE_mask_calc_tangent_polyline(struct MaskSpline *spline, struct MaskSplinePoint *point, float t[2]); diff --git a/source/blender/blenkernel/intern/mask.c b/source/blender/blenkernel/intern/mask.c index 68500549539..b3c5ceefb2d 100644 --- a/source/blender/blenkernel/intern/mask.c +++ b/source/blender/blenkernel/intern/mask.c @@ -1525,13 +1525,14 @@ void BKE_mask_evaluate_all_masks(Main *bmain, float ctime, const int do_newframe } } -void BKE_mask_update_scene(Main *bmain, Scene *scene, const int do_newframe) +void BKE_mask_update_scene(Main *bmain, Scene *scene) { Mask *mask; for (mask = bmain->mask.first; mask; mask = mask->id.next) { - if (mask->id.flag & LIB_ID_RECALC) { - BKE_mask_evaluate_all_masks(bmain, CFRA, do_newframe); + if (mask->id.flag & (LIB_ID_RECALC | LIB_ID_RECALC_DATA)) { + bool do_new_frame = (mask->id.flag & LIB_ID_RECALC_DATA) != 0; + BKE_mask_evaluate_all_masks(bmain, CFRA, do_new_frame); } } } diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 76727987355..9c376f9ea04 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -1181,7 +1181,7 @@ static void scene_update_tagged_recursive(Main *bmain, Scene *scene, Scene *scen sound_update_scene(scene); /* update masking curves */ - BKE_mask_update_scene(bmain, scene, FALSE); + BKE_mask_update_scene(bmain, scene); } diff --git a/source/blender/editors/mask/mask_shapekey.c b/source/blender/editors/mask/mask_shapekey.c index c5b9fc33a9b..93bdca93096 100644 --- a/source/blender/editors/mask/mask_shapekey.c +++ b/source/blender/editors/mask/mask_shapekey.c @@ -124,7 +124,7 @@ static int mask_shape_key_clear_exec(bContext *C, wmOperator *UNUSED(op)) if (change) { WM_event_add_notifier(C, NC_MASK | ND_DATA, mask); - DAG_id_tag_update(&mask->id, 0); + DAG_id_tag_update(&mask->id, OB_RECALC_DATA); return OPERATOR_FINISHED; } |