diff options
m--------- | release/datafiles/locale | 0 | ||||
m--------- | release/scripts/addons | 0 | ||||
m--------- | release/scripts/addons_contrib | 0 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt.c | 21 |
4 files changed, 17 insertions, 4 deletions
diff --git a/release/datafiles/locale b/release/datafiles/locale -Subproject 647c85462d87c3a9d3a189d28d72d1bd93f4d4a +Subproject ebc3989630d18afe00624fc5e4bae6cc0de7a26 diff --git a/release/scripts/addons b/release/scripts/addons -Subproject d936e4c01fa263a71a7d0665628ae621283b15e +Subproject 1c8e7f124d17b64ff05cbe179264ba7c7c3aa9f diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib -Subproject 61e45814503f51963c91c51aaf764612e7c5dc7 +Subproject 61efd17f87b45c3049091127a5619219f9d2a82 diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 5bb4eb7cebf..2c6c4c82676 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1354,8 +1354,23 @@ static void paint_mesh_restore_co_task_cb(void *__restrict userdata, SculptSession *ss = data->ob->sculpt; SculptUndoNode *unode; - SculptUndoType type = (data->brush->sculpt_tool == SCULPT_TOOL_MASK ? SCULPT_UNDO_MASK : - SCULPT_UNDO_COORDS); + SculptUndoType type; + + switch (data->brush->sculpt_tool) { + case SCULPT_TOOL_MASK: + type = SCULPT_UNDO_MASK; + BKE_pbvh_node_mark_update_mask(data->nodes[n]); + break; + case SCULPT_TOOL_PAINT: + case SCULPT_TOOL_SMEAR: + type = SCULPT_UNDO_COLOR; + BKE_pbvh_node_mark_update_color(data->nodes[n]); + break; + default: + type = SCULPT_UNDO_COORDS; + BKE_pbvh_node_mark_update(data->nodes[n]); + break; + } if (ss->bm) { unode = SCULPT_undo_push_node(data->ob, data->nodes[n], type); @@ -1397,8 +1412,6 @@ static void paint_mesh_restore_co_task_cb(void *__restrict userdata, } } BKE_pbvh_vertex_iter_end; - - BKE_pbvh_node_mark_update(data->nodes[n]); } static void paint_mesh_restore_co(Sculpt *sd, Object *ob) |