[Bf-blender-cvs] [8d04f49d0e] blender2.8: Mesh batch caches update from depsgraph
Dalai Felinto
noreply at git.blender.org
Thu Jan 26 19:15:32 CET 2017
Commit: 8d04f49d0ea53552500e82afea92addaaa939dfd
Author: Dalai Felinto
Date: Thu Jan 26 19:08:27 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB8d04f49d0ea53552500e82afea92addaaa939dfd
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
===================================================================
M source/blender/blenkernel/BKE_DerivedMesh.h
M source/blender/blenkernel/intern/mesh_render.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h
index 784c76bffd..789bc8df7e 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 e18b4ceb43..4118208d32 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;
More information about the Bf-blender-cvs
mailing list