Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2017-01-26 21:08:27 +0300
committerDalai Felinto <dfelinto@gmail.com>2017-01-26 21:14:39 +0300
commit8d04f49d0ea53552500e82afea92addaaa939dfd (patch)
tree37dc5b262fdd13b4174f5607f45ff7f9cba52aaf
parent9b7b9d6ae9f7177995f1e849a2f3f4d4ad4ffcf4 (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.h2
-rw-r--r--source/blender/blenkernel/intern/mesh_render.c25
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;