diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-02-28 16:09:19 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-02-28 21:17:16 +0300 |
commit | da1323d1c95095feff98e8aa054d73fd323c363d (patch) | |
tree | 021ec89b4a50696ba8b6ae02df82f278354812cf /source/blender/editors/sculpt_paint | |
parent | acd462347196fef9450115f28ac2594cb12b0226 (diff) |
Fix T60366: texture paint slots not updating when editing material.
Now always refresh when the material changes. Depsgraph tag moved out
of the refresh function since that gets called on depsgraph update,
which should not trigger a second depsgraph update.
Diffstat (limited to 'source/blender/editors/sculpt_paint')
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_image.c | 2 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_image_proj.c | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 44f05c39a25..9d90b6fcd5f 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -1095,7 +1095,7 @@ static int texture_paint_toggle_exec(bContext *C, wmOperator *op) /* This has to stay here to regenerate the texture paint * cache in case we are loading a file */ - BKE_texpaint_slots_refresh_object(scene, ob); + BKE_texpaint_slots_refresh_object(ob); BKE_paint_proj_mesh_data_check(scene, ob, NULL, NULL, NULL, NULL); diff --git a/source/blender/editors/sculpt_paint/paint_image_proj.c b/source/blender/editors/sculpt_paint/paint_image_proj.c index d803b4d0aa8..b4abab0fabd 100644 --- a/source/blender/editors/sculpt_paint/paint_image_proj.c +++ b/source/blender/editors/sculpt_paint/paint_image_proj.c @@ -5757,7 +5757,7 @@ bool BKE_paint_proj_mesh_data_check(Scene *scene, Object *ob, bool *uvs, bool *m hasmat = true; if (!ma->texpaintslot) { /* refresh here just in case */ - BKE_texpaint_slot_refresh_cache(scene, ma); + BKE_texpaint_slot_refresh_cache(ma); /* if still no slots, we have to add */ if (ma->texpaintslot) { @@ -6017,13 +6017,13 @@ static bool proj_paint_add_slot(bContext *C, wmOperator *op) nodePositionPropagate(out_node); if (ima) { - BKE_texpaint_slot_refresh_cache(scene, ma); + BKE_texpaint_slot_refresh_cache(ma); BKE_image_signal(bmain, ima, NULL, IMA_SIGNAL_USER_NEW_IMAGE); WM_event_add_notifier(C, NC_IMAGE | NA_ADDED, ima); } DEG_id_tag_update(&ntree->id, 0); - DEG_id_tag_update(&ma->id, ID_RECALC_SHADING); + DEG_id_tag_update(&ma->id, ID_RECALC_SHADING | ID_RECALC_COPY_ON_WRITE); ED_area_tag_redraw(CTX_wm_area(C)); BKE_paint_proj_mesh_data_check(scene, ob, NULL, NULL, NULL, NULL); |