[Bf-blender-cvs] [62cc4edf969] greasepencil-object: GPencil: Fix missing tag when change a material

Antonio Vazquez noreply at git.blender.org
Thu Feb 27 20:13:22 CET 2020


Commit: 62cc4edf9695744b4206d32cb9e1566ba998a4a2
Author: Antonio Vazquez
Date:   Thu Feb 27 20:12:55 2020 +0100
Branches: greasepencil-object
https://developer.blender.org/rB62cc4edf9695744b4206d32cb9e1566ba998a4a2

GPencil: Fix missing tag when change a material

The new draw engine need to tag all GP Objects.

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

M	source/blender/makesrna/intern/rna_material.c

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

diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c
index fd121e625c0..f206e0061fc 100644
--- a/source/blender/makesrna/intern/rna_material.c
+++ b/source/blender/makesrna/intern/rna_material.c
@@ -63,6 +63,7 @@ const EnumPropertyItem rna_enum_ramp_blend_items[] = {
 
 #  include "MEM_guardedalloc.h"
 
+#  include "DNA_gpencil_types.h"
 #  include "DNA_node_types.h"
 #  include "DNA_object_types.h"
 #  include "DNA_screen_types.h"
@@ -111,8 +112,16 @@ static void rna_Material_update_previews(Main *UNUSED(bmain),
 static void rna_MaterialGpencil_update(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
   Material *ma = (Material *)ptr->owner_id;
-
   rna_Material_update(bmain, scene, ptr);
+
+  /* Need set all caches as dirty. */
+  for (Object *ob = bmain->objects.first; ob; ob = ob->id.next) {
+    if (ob->type == OB_GPENCIL) {
+      bGPdata *gpd = (bGPdata *)ob->data;
+      DEG_id_tag_update(&gpd->id, ID_RECALC_GEOMETRY);
+    }
+  }
+
   WM_main_add_notifier(NC_GPENCIL | ND_DATA, ma);
 }



More information about the Bf-blender-cvs mailing list