diff options
author | Pablo Dobarro <pablodp606@gmail.com> | 2019-10-09 20:03:57 +0300 |
---|---|---|
committer | Pablo Dobarro <pablodp606@gmail.com> | 2019-10-09 22:23:11 +0300 |
commit | d95bb087d0346164ab35df003ed8c4a27088e9eb (patch) | |
tree | 755e68c995f06fa7c95bfa3193bf80e56b14bde2 /source/blender/blenkernel/intern | |
parent | e84685286274a48de4fbb3fa8e8836f921168319 (diff) |
Sculpt: Fix wireframe drawing
With this commit sculpt mode draws the real mesh wireframe instead of the
triangulated version by ignoring non real edges when building the PBVH GPU buffers
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D6032
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/paint.c | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/pbvh.c | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/pbvh_intern.h | 1 |
3 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index 2c67761126a..cc9d1b98ba4 100644 --- a/source/blender/blenkernel/intern/paint.c +++ b/source/blender/blenkernel/intern/paint.c @@ -1489,6 +1489,7 @@ static PBVH *build_pbvh_from_regular_mesh(Object *ob, Mesh *me_eval_deform) BKE_mesh_recalc_looptri(me->mloop, me->mpoly, me->mvert, me->totloop, me->totpoly, looptri); BKE_pbvh_build_mesh(pbvh, + me, me->mpoly, me->mloop, me->mvert, diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c index 8549ad1f7f0..4e193e35109 100644 --- a/source/blender/blenkernel/intern/pbvh.c +++ b/source/blender/blenkernel/intern/pbvh.c @@ -27,6 +27,7 @@ #include "BLI_ghash.h" #include "BLI_task.h" +#include "DNA_mesh_types.h" #include "DNA_meshdata_types.h" #include "BKE_pbvh.h" @@ -533,6 +534,7 @@ static void pbvh_build(PBVH *bvh, BB *cb, BBC *prim_bbc, int totprim) * (which means it may rewrite it if needed, see #BKE_pbvh_vert_coords_apply(). */ void BKE_pbvh_build_mesh(PBVH *bvh, + const Mesh *mesh, const MPoly *mpoly, const MLoop *mloop, MVert *verts, @@ -545,6 +547,7 @@ void BKE_pbvh_build_mesh(PBVH *bvh, BBC *prim_bbc = NULL; BB cb; + bvh->mesh = mesh; bvh->type = PBVH_FACES; bvh->mpoly = mpoly; bvh->mloop = mloop; @@ -1222,7 +1225,8 @@ static void pbvh_update_draw_buffer_cb(void *__restrict userdata, bvh->looptri, bvh->verts, node->prim_indices, - node->totprim); + node->totprim, + bvh->mesh); break; case PBVH_BMESH: node->draw_buffers = GPU_pbvh_bmesh_buffers_build(bvh->flags & diff --git a/source/blender/blenkernel/intern/pbvh_intern.h b/source/blender/blenkernel/intern/pbvh_intern.h index bad103743eb..bdee05f1aab 100644 --- a/source/blender/blenkernel/intern/pbvh_intern.h +++ b/source/blender/blenkernel/intern/pbvh_intern.h @@ -127,6 +127,7 @@ struct PBVH { int leaf_limit; /* Mesh data */ + const struct Mesh *mesh; MVert *verts; const MPoly *mpoly; const MLoop *mloop; |