diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-03-11 18:48:19 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-03-11 18:49:52 +0300 |
commit | 01dec326edb046d5fec272bfe62f178a2dc3e519 (patch) | |
tree | ebeaa52d593a634a2b9792b6e92d17ae3dd4edc0 | |
parent | 4879d8001c00fde6b7a82b98004668e0860e344d (diff) |
Fix T62366: Grease pencil material color keying
Do proper tagging for material changes, and avoid grease-pencil hack
in the relations builder.
The dependency graph code was forcing animation to be run for any
copy-on-write change of material. However, animation is not supposed
to be run on copy-on-write changes.
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations.cc | 4 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_material.c | 4 |
2 files changed, 2 insertions, 6 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index d6670ec2afa..fe1ef81262d 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -2623,10 +2623,6 @@ void DepsgraphRelationBuilder::build_copy_on_write_relations(IDNode *id_node) if (id_type == ID_ME && comp_node->type == NodeType::GEOMETRY) { rel_flag &= ~RELATION_FLAG_NO_FLUSH; } - /* materials need update grease pencil objects */ - if (id_type == ID_MA) { - rel_flag &= ~RELATION_FLAG_NO_FLUSH; - } /* Notes on exceptions: * - Parameters component is where drivers are living. Changing any * of the (custom) properties in the original datablock (even the diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index 90c46c8b03d..994efc36f00 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -91,7 +91,7 @@ static void rna_Material_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Point { Material *ma = ptr->id.data; - DEG_id_tag_update(&ma->id, ID_RECALC_COPY_ON_WRITE); + DEG_id_tag_update(&ma->id, ID_RECALC_SHADING); WM_main_add_notifier(NC_MATERIAL | ND_SHADING, ma); } @@ -125,7 +125,7 @@ static void rna_Material_draw_update(Main *UNUSED(bmain), Scene *UNUSED(scene), { Material *ma = ptr->id.data; - DEG_id_tag_update(&ma->id, ID_RECALC_COPY_ON_WRITE); + DEG_id_tag_update(&ma->id, ID_RECALC_SHADING); WM_main_add_notifier(NC_MATERIAL | ND_SHADING_DRAW, ma); } |