[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