[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