diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-05-31 13:51:12 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-05-31 18:17:03 +0300 |
commit | f87bba0368ea3d0b71559cfae662ae9e3b39ad6f (patch) | |
tree | a51b9512487f41593e905f91123bba1d0147e35e /source/blender/draw/intern/draw_manager_data.c | |
parent | 151f69a5c214691de0665affcd8a49cecd6dd0aa (diff) |
Fix T62282: multires sculpting does not update smooth normals
It may be good to move the normals update out of the drawing code. But it was
already there for the non-multires sculpt cases, and does not have an obvious
place since we bypass the depsgraph and want to avoid the cost of updating the
normals multiple times when multiple events are handled before a redraw.
Diffstat (limited to 'source/blender/draw/intern/draw_manager_data.c')
-rw-r--r-- | source/blender/draw/intern/draw_manager_data.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/draw/intern/draw_manager_data.c b/source/blender/draw/intern/draw_manager_data.c index 09855769dae..9c9b91eaaed 100644 --- a/source/blender/draw/intern/draw_manager_data.c +++ b/source/blender/draw/intern/draw_manager_data.c @@ -665,8 +665,11 @@ static void drw_sculpt_generate_calls(DRWSculptCallbackData *scd, bool use_vcol) } } - BKE_pbvh_draw_cb( - pbvh, planes, NULL, use_vcol, (void (*)(void *, GPU_PBVH_Buffers *))sculpt_draw_cb, scd); + Mesh *mesh = scd->ob->data; + BKE_pbvh_update_normals(pbvh, mesh->runtime.subdiv_ccg); + BKE_pbvh_update_draw_buffers(pbvh, use_vcol); + + BKE_pbvh_draw_cb(pbvh, planes, (void (*)(void *, GPU_PBVH_Buffers *))sculpt_draw_cb, scd); #ifdef SCULPT_DEBUG_BUFFERS int node_nr = 0; |