From 5ba0726bc1a7c7343e9d31e01c15bb3510256bb7 Mon Sep 17 00:00:00 2001 From: Antonio Vazquez Date: Tue, 10 Sep 2019 17:47:17 +0200 Subject: GPencil: Deduplicate function The same code was duplicated and now it was moved to shared function. --- source/blender/editors/gpencil/gpencil_utils.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'source/blender/editors/gpencil/gpencil_utils.c') diff --git a/source/blender/editors/gpencil/gpencil_utils.c b/source/blender/editors/gpencil/gpencil_utils.c index d7492b5be4d..3ee7aed0a02 100644 --- a/source/blender/editors/gpencil/gpencil_utils.c +++ b/source/blender/editors/gpencil/gpencil_utils.c @@ -46,6 +46,7 @@ #include "BKE_action.h" #include "BKE_colortools.h" +#include "BKE_collection.h" #include "BKE_deform.h" #include "BKE_main.h" #include "BKE_brush.h" @@ -57,6 +58,7 @@ #include "BKE_tracking.h" #include "WM_api.h" +#include "WM_types.h" #include "WM_toolsystem.h" #include "RNA_access.h" @@ -2559,3 +2561,24 @@ tGPspoint *ED_gpencil_sbuffer_ensure(tGPspoint *buffer_array, return buffer_array; } + +/* Tag all scene grease pencil object to update. */ +void ED_gpencil_tag_scene_gpencil(Scene *scene) +{ + /* mark all grease pencil datablocks of the scene */ + FOREACH_SCENE_COLLECTION_BEGIN (scene, collection) { + FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN (collection, ob) { + if (ob->type == OB_GPENCIL) { + bGPdata *gpd = (bGPdata *)ob->data; + gpd->flag |= GP_DATA_CACHE_IS_DIRTY; + DEG_id_tag_update(&gpd->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY); + } + } + FOREACH_COLLECTION_OBJECT_RECURSIVE_END; + } + FOREACH_SCENE_COLLECTION_END; + + DEG_id_tag_update(&scene->id, ID_RECALC_COPY_ON_WRITE); + + WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL); +} -- cgit v1.2.3