Fix T61185: Missing modifiers update on changes to texture
authorPhilipp Oeser <info@graphics-engineer.com>
Tue, 5 Feb 2019 09:04:09 +0000 (10:04 +0100)
committerPhilipp Oeser <info@graphics-engineer.com>
Mon, 11 Feb 2019 09:38:30 +0000 (10:38 +0100)
Also update relations when modifier texture changes.

Basically same as rB6e00415a85a9, rBca2680aaeb1 but this time for
VertexWeight modifiers

Reviewers: sergey

Maniphest Tasks: T61185

Differential Revision: https://developer.blender.org/D4305

source/blender/makesrna/intern/rna_modifier.c
source/blender/modifiers/intern/MOD_weightvgedit.c
source/blender/modifiers/intern/MOD_weightvgmix.c
source/blender/modifiers/intern/MOD_weightvgproximity.c

index d9b7b03..2eaa831 100644 (file)
@@ -3790,7 +3790,7 @@ static void rna_def_modifier_weightvg_mask(BlenderRNA *UNUSED(brna), StructRNA *
        prop = RNA_def_property(srna, "mask_texture", PROP_POINTER, PROP_NONE);
        RNA_def_property_ui_text(prop, "Masking Tex", "Masking texture");
        RNA_def_property_flag(prop, PROP_EDITABLE);
-       RNA_def_property_update(prop, 0, "rna_Modifier_update");
+       RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
 
        prop = RNA_def_property(srna, "mask_tex_use_channel", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_items(prop, weightvg_mask_tex_used_items);
index 5da265c..e7a360f 100644 (file)
@@ -138,6 +138,9 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
        else if (wmd->mask_tex_mapping == MOD_DISP_MAP_GLOBAL) {
                DEG_add_object_relation(ctx->node, ctx->object, DEG_OB_COMP_TRANSFORM, "WeightVGEdit Modifier");
        }
+       if (wmd->mask_texture != NULL) {
+               DEG_add_generic_id_relation(ctx->node, &wmd->mask_texture->id, "WeightVGEdit Modifier");
+       }
 }
 
 static bool isDisabled(const struct Scene *UNUSED(scene), ModifierData *md, bool UNUSED(useRenderParams))
index c7be044..b20a062 100644 (file)
@@ -176,6 +176,9 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
                DEG_add_object_relation(ctx->node, ctx->object, DEG_OB_COMP_TRANSFORM, "WeightVGMix Modifier");
                DEG_add_object_relation(ctx->node, ctx->object, DEG_OB_COMP_GEOMETRY, "WeightVGMix Modifier");
        }
+       if (wmd->mask_texture != NULL) {
+               DEG_add_generic_id_relation(ctx->node, &wmd->mask_texture->id, "WeightVGMix Modifier");
+       }
 }
 
 static bool isDisabled(const struct Scene *UNUSED(scene), ModifierData *md, bool UNUSED(useRenderParams))
index b832fbd..7f71096 100644 (file)
@@ -344,6 +344,9 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
                DEG_add_object_relation(ctx->node, wmd->mask_tex_map_obj, DEG_OB_COMP_TRANSFORM, "WeightVGProximity Modifier");
                DEG_add_object_relation(ctx->node, wmd->mask_tex_map_obj, DEG_OB_COMP_GEOMETRY, "WeightVGProximity Modifier");
        }
+       if (wmd->mask_texture != NULL) {
+               DEG_add_generic_id_relation(ctx->node, &wmd->mask_texture->id, "WeightVGProximity Modifier");
+       }
        DEG_add_object_relation(ctx->node, ctx->object, DEG_OB_COMP_TRANSFORM, "WeightVGProximity Modifier");
        DEG_add_object_relation(ctx->node, ctx->object, DEG_OB_COMP_GEOMETRY, "WeightVGProximity Modifier");
 }