[Bf-blender-cvs] [47c1fbdc857] greasepencil-object: Add set cache to dirty when Gpencil is update in several places

Antonio Vazquez noreply at git.blender.org
Wed May 17 16:50:34 CEST 2017


Commit: 47c1fbdc85790262da71e3565ae66d13041c5d69
Author: Antonio Vazquez
Date:   Wed May 17 16:42:42 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rB47c1fbdc85790262da71e3565ae66d13041c5d69

Add set cache to dirty when Gpencil is update in several places

===================================================================

M	source/blender/editors/gpencil/gpencil_data.c
M	source/blender/editors/gpencil/gpencil_edit.c
M	source/blender/editors/gpencil/gpencil_interpolate.c

===================================================================

diff --git a/source/blender/editors/gpencil/gpencil_data.c b/source/blender/editors/gpencil/gpencil_data.c
index cf4209a8153..e27b625317f 100644
--- a/source/blender/editors/gpencil/gpencil_data.c
+++ b/source/blender/editors/gpencil/gpencil_data.c
@@ -259,6 +259,7 @@ static int gp_layer_remove_exec(bContext *C, wmOperator *op)
 	BKE_gpencil_layer_delete(gpd, gpl);
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -298,6 +299,7 @@ static int gp_layer_move_exec(bContext *C, wmOperator *op)
 	
 	BLI_assert(ELEM(direction, -1, 0, 1)); /* we use value below */
 	if (BLI_listbase_link_move(&gpd->layers, gpl, direction)) {
+		BKE_gpencil_batch_cache_dirty(gpd, 0);
 		WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	}
 	
@@ -348,6 +350,7 @@ static int gp_layer_copy_exec(bContext *C, wmOperator *UNUSED(op))
 	BKE_gpencil_layer_setactive(gpd, new_layer);
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -396,6 +399,7 @@ static int gp_hide_exec(bContext *C, wmOperator *op)
 	}
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -442,6 +446,7 @@ static int gp_reveal_exec(bContext *C, wmOperator *UNUSED(op))
 	}
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -479,6 +484,7 @@ static int gp_lock_all_exec(bContext *C, wmOperator *UNUSED(op))
 	}
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -516,6 +522,7 @@ static int gp_unlock_all_exec(bContext *C, wmOperator *UNUSED(op))
 	}
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -588,6 +595,7 @@ static int gp_isolate_layer_exec(bContext *C, wmOperator *op)
 	}
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -647,6 +655,7 @@ static int gp_merge_layer_exec(bContext *C, wmOperator *op)
 	BLI_ghash_free(gh_frames_cur, NULL, NULL);
 
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 
 	return OPERATOR_FINISHED;
@@ -708,6 +717,7 @@ static int gp_layer_change_exec(bContext *C, wmOperator *op)
 	BKE_gpencil_layer_setactive(gpd, gpl);
 	
 	/* updates */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -828,6 +838,7 @@ static int gp_stroke_arrange_exec(bContext *C, wmOperator *op)
 	BLI_freelistN(&selected);
 
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 
 	return OPERATOR_FINISHED;
@@ -924,6 +935,7 @@ static int gp_stroke_change_palette_exec(bContext *C, wmOperator *op)
 		}
 	}
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 
 	return OPERATOR_FINISHED;
@@ -997,6 +1009,7 @@ static int gp_stroke_change_color_exec(bContext *C, wmOperator *UNUSED(op))
 		}
 	}
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 
 	return OPERATOR_FINISHED;
@@ -1054,6 +1067,7 @@ static int gp_stroke_lock_color_exec(bContext *C, wmOperator *UNUSED(op))
 		}
 	}
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 
 	return OPERATOR_FINISHED;
@@ -1494,6 +1508,7 @@ static int gp_convert_scene_to_object_exec(bContext *C, wmOperator *UNUSED(op))
 	ts->gpencil_src = GP_TOOL_SOURCE_OBJECT;
 
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED | ND_SPACE_PROPERTIES, NULL);
 
 	return OPERATOR_FINISHED;
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 13b85cc4a75..a74d1963cb2 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -313,6 +313,7 @@ static int gp_duplicate_exec(bContext *C, wmOperator *op)
 	CTX_DATA_END;
 	
 	/* updates */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -559,6 +560,7 @@ static int gp_strokes_paste_exec(bContext *C, wmOperator *op)
 	}
 	
 	/* updates */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -667,6 +669,7 @@ static int gp_move_to_layer_exec(bContext *C, wmOperator *op)
 	}
 	
 	/* updates */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -751,6 +754,7 @@ static int gp_blank_frame_add_exec(bContext *C, wmOperator *op)
 	CTX_DATA_END;
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -806,6 +810,7 @@ static int gp_actframe_delete_exec(bContext *C, wmOperator *op)
 	BKE_gpencil_layer_delframe(gpl, gpf);
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -839,6 +844,7 @@ static int gp_actframe_delete_all_poll(bContext *C)
 
 static int gp_actframe_delete_all_exec(bContext *C, wmOperator *op)
 {
+	bGPdata *gpd = ED_gpencil_data_get_active(C);
 	Scene *scene = CTX_data_scene(C);
 	bool success = false;
 	
@@ -860,7 +866,8 @@ static int gp_actframe_delete_all_exec(bContext *C, wmOperator *op)
 	
 	/* updates */
 	if (success) {
-		WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);		
+		BKE_gpencil_batch_cache_dirty(gpd, 0);
+		WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 		return OPERATOR_FINISHED;
 	}
 	else {
@@ -900,7 +907,8 @@ typedef enum eGP_DeleteMode {
 static int gp_delete_selected_strokes(bContext *C)
 {
 	bool changed = false;
-	
+	bGPdata *gpd = ED_gpencil_data_get_active(C);
+
 	CTX_DATA_BEGIN(C, bGPDlayer *, gpl, editable_gpencil_layers)
 	{
 		bGPDframe *gpf = gpl->actframe;
@@ -931,6 +939,7 @@ static int gp_delete_selected_strokes(bContext *C)
 	CTX_DATA_END;
 	
 	if (changed) {
+		BKE_gpencil_batch_cache_dirty(gpd, 0);
 		WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 		return OPERATOR_FINISHED;
 	}
@@ -944,6 +953,7 @@ static int gp_delete_selected_strokes(bContext *C)
 /* Delete selected points but keep the stroke */
 static int gp_dissolve_selected_points(bContext *C)
 {
+	bGPdata *gpd = ED_gpencil_data_get_active(C);
 	bool changed = false;
 	
 	CTX_DATA_BEGIN(C, bGPDlayer *, gpl, editable_gpencil_layers)
@@ -1024,6 +1034,7 @@ static int gp_dissolve_selected_points(bContext *C)
 	CTX_DATA_END;
 	
 	if (changed) {
+		BKE_gpencil_batch_cache_dirty(gpd, 0);
 		WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 		return OPERATOR_FINISHED;
 	}
@@ -1161,6 +1172,7 @@ void gp_stroke_delete_tagged_points(bGPDframe *gpf, bGPDstroke *gps, bGPDstroke
 /* Split selected strokes into segments, splitting on selected points */
 static int gp_delete_selected_points(bContext *C)
 {
+	bGPdata *gpd = ED_gpencil_data_get_active(C);
 	bool changed = false;
 	
 	CTX_DATA_BEGIN(C, bGPDlayer *, gpl, editable_gpencil_layers)
@@ -1197,6 +1209,7 @@ static int gp_delete_selected_points(bContext *C)
 	CTX_DATA_END;
 	
 	if (changed) {
+		BKE_gpencil_batch_cache_dirty(gpd, 0);
 		WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 		return OPERATOR_FINISHED;
 	}
@@ -1339,6 +1352,7 @@ static int gp_snap_to_grid(bContext *C, wmOperator *UNUSED(op))
 		}
 	}
 	
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	return OPERATOR_FINISHED;
 }
@@ -1420,6 +1434,7 @@ static int gp_snap_to_cursor(bContext *C, wmOperator *op)
 		}
 	}
 	
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	return OPERATOR_FINISHED;
 }
@@ -1510,6 +1525,7 @@ static int gp_snap_cursor_to_sel(bContext *C, wmOperator *UNUSED(op))
 	}
 
 	
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	return OPERATOR_FINISHED;
 }
@@ -1551,6 +1567,7 @@ static int gp_stroke_apply_thickness_exec(bContext *C, wmOperator *UNUSED(op))
 	gpl->thickness = 0.0f;
 
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 
 	return OPERATOR_FINISHED;
@@ -1623,6 +1640,7 @@ static int gp_stroke_cyclical_set_exec(bContext *C, wmOperator *op)
 	CTX_DATA_END;
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -1888,6 +1906,7 @@ static int gp_stroke_join_exec(bContext *C, wmOperator *op)
 	}
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -1954,6 +1973,7 @@ static int gp_stroke_flip_exec(bContext *C, wmOperator *UNUSED(op))
 	CTX_DATA_END;
 	
 	/* notifiers */
+	BKE_gpencil_batch_cache_dirty(gpd, 0);
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 	
 	return OPERATOR_FINISHED;
@@ -1994,6 +2014,7 @@ static int gp_strokes_reproject_poll(bContext *C)
 
 static int gp_strokes_reproject_exec(bContext *C, wmOperator *op)
 {
+	bGPdata *gpd = ED_gpencil_data_get_active(C);
 	Scene *scene = CTX_data_scene(C);
 	GP_SpaceConversion gsc = {NULL};
 	eG

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list