[Bf-blender-cvs] [48b2e05ffdb] greasepencil-object: Update draw manager cache when change any RNA property
Antonio Vazquez
noreply at git.blender.org
Mon May 15 20:12:56 CEST 2017
Commit: 48b2e05ffdb3845d7db4060d05c5c1a8173694a1
Author: Antonio Vazquez
Date: Mon May 15 20:12:18 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rB48b2e05ffdb3845d7db4060d05c5c1a8173694a1
Update draw manager cache when change any RNA property
===================================================================
M source/blender/blenkernel/BKE_gpencil.h
M source/blender/blenkernel/intern/gpencil.c
M source/blender/makesrna/intern/rna_gpencil.c
M source/blender/makesrna/intern/rna_palette.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h
index 14e242a54d5..6a568d97095 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -54,6 +54,7 @@ void BKE_gpencil_free(struct bGPdata *gpd, bool free_all);
void BKE_gpencil_batch_cache_dirty(struct bGPdata *gpd, int mode);
void BKE_gpencil_batch_cache_free(struct bGPdata *gpd);
+void BKE_gpencil_batch_cache_alldirty();
void BKE_gpencil_stroke_sync_selection(struct bGPDstroke *gps);
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index ff8dc1e842c..5682f6e8270 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1437,3 +1437,15 @@ void BKE_gpencil_move_animdata_to_palettes(bGPdata *gpd)
}
}
}
+
+/* Change draw manager status in all gpd datablocks */
+void BKE_gpencil_batch_cache_alldirty()
+{
+ bGPdata *gpd;
+ Main *bmain = G.main;
+
+ for (gpd = bmain->gpencil.first; gpd; gpd = gpd->id.next) {
+ BKE_gpencil_batch_cache_dirty(gpd, 0);
+ }
+}
+
diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c
index 6111ab7aa44..c0b9c7529f5 100644
--- a/source/blender/makesrna/intern/rna_gpencil.c
+++ b/source/blender/makesrna/intern/rna_gpencil.c
@@ -66,13 +66,18 @@ static EnumPropertyItem parent_type_items[] = {
#include "BKE_action.h"
-static void rna_GPencil_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
+static void rna_GPencil_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
{
+ bGPdata *gpd = (bGPdata *)ptr->id.data;
+ BKE_gpencil_batch_cache_dirty(gpd, 0);
WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL);
}
-static void rna_GPencil_editmode_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
+static void rna_GPencil_editmode_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
{
+ bGPdata *gpd = (bGPdata *)ptr->id.data;
+ BKE_gpencil_batch_cache_dirty(gpd, 0);
+
/* Notify all places where GPencil data lives that the editing state is different */
WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL);
WM_main_add_notifier(NC_SCENE | ND_MODE, NULL);
diff --git a/source/blender/makesrna/intern/rna_palette.c b/source/blender/makesrna/intern/rna_palette.c
index c6ac0c25eed..3b34d793a35 100644
--- a/source/blender/makesrna/intern/rna_palette.c
+++ b/source/blender/makesrna/intern/rna_palette.c
@@ -54,6 +54,7 @@
static void rna_GPencil_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
{
+ BKE_gpencil_batch_cache_alldirty();
WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL);
}
More information about the Bf-blender-cvs
mailing list