diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2017-01-26 21:08:27 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2017-01-26 21:14:39 +0300 |
commit | 8d04f49d0ea53552500e82afea92addaaa939dfd (patch) | |
tree | 37dc5b262fdd13b4174f5607f45ff7f9cba52aaf | |
parent | 9b7b9d6ae9f7177995f1e849a2f3f4d4ad4ffcf4 (diff) |
Mesh batch caches update from depsgraph
We no longer need to rely on Derived mesh flag since the mesh is
properly flushed from the depsgraph
-rw-r--r-- | source/blender/blenkernel/BKE_DerivedMesh.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mesh_render.c | 25 |
2 files changed, 9 insertions, 18 deletions
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 784c76bffd3..789bc8df7e5 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -172,8 +172,6 @@ typedef enum DMDirtyFlag { /* check this with modifier dependsOnNormals callback to see if normals need recalculation */ DM_DIRTY_NORMALS = 1 << 2, - - DM_MESH_BATCH_CACHE = 1 << 3, } DMDirtyFlag; typedef struct DerivedMesh DerivedMesh; diff --git a/source/blender/blenkernel/intern/mesh_render.c b/source/blender/blenkernel/intern/mesh_render.c index e18b4ceb439..4118208d32f 100644 --- a/source/blender/blenkernel/intern/mesh_render.c +++ b/source/blender/blenkernel/intern/mesh_render.c @@ -255,18 +255,14 @@ static bool mesh_batch_cache_valid(Mesh *me) return false; } - if (cache->is_editmode) { - DerivedMesh *dm = me->edit_btmesh->derivedFinal; - if ((dm->dirty & DM_MESH_BATCH_CACHE) == 0) { - return false; - } - } - if (cache->is_dirty == false) { return true; } else { - if ((cache->tot_edges != mesh_render_get_num_edges(me)) || + if (cache->is_editmode) { + return false; + } + else if ((cache->tot_edges != mesh_render_get_num_edges(me)) || (cache->tot_faces != mesh_render_get_num_faces(me)) || (cache->tot_polys != mesh_render_get_num_polys(me)) || (cache->tot_verts != mesh_render_get_num_verts(me))) @@ -283,14 +279,11 @@ static void mesh_batch_cache_init(Mesh *me) MeshBatchCache *cache = me->batch_cache; cache->is_editmode = me->edit_btmesh != NULL; - cache->tot_edges = mesh_render_get_num_edges(me); - cache->tot_faces = mesh_render_get_num_faces(me); - cache->tot_polys = mesh_render_get_num_polys(me); - cache->tot_verts = mesh_render_get_num_verts(me); - - if (cache->is_editmode) { - DerivedMesh *dm = me->edit_btmesh->derivedFinal; - dm->dirty |= DM_MESH_BATCH_CACHE; + if (cache->is_editmode == false) { + cache->tot_edges = mesh_render_get_num_edges(me); + cache->tot_faces = mesh_render_get_num_faces(me); + cache->tot_polys = mesh_render_get_num_polys(me); + cache->tot_verts = mesh_render_get_num_verts(me); } cache->is_dirty = false; |