[Bf-blender-cvs] [a738e985c6d] blender2.8: Fix update drawing curve editmode

Campbell Barton noreply at git.blender.org
Wed Apr 19 21:54:01 CEST 2017


Commit: a738e985c6d3b5d3803aa3dc5c48b0bd0e4cfa8a
Author: Campbell Barton
Date:   Thu Apr 20 05:55:48 2017 +1000
Branches: blender2.8
https://developer.blender.org/rBa738e985c6d3b5d3803aa3dc5c48b0bd0e4cfa8a

Fix update drawing curve editmode

===================================================================

M	source/blender/blenkernel/intern/curve_render.c

===================================================================

diff --git a/source/blender/blenkernel/intern/curve_render.c b/source/blender/blenkernel/intern/curve_render.c
index 31ec2ccc760..18fe02be5b4 100644
--- a/source/blender/blenkernel/intern/curve_render.c
+++ b/source/blender/blenkernel/intern/curve_render.c
@@ -322,6 +322,15 @@ static bool curve_batch_cache_valid(Curve *cu)
 		return false;
 	}
 
+	if (cache->is_editmode) {
+		if ((cache->hide_handles != ((cu->drawflag & CU_HIDE_HANDLES) != 0))) {
+			return false;
+		}
+		else if ((cache->hide_normals != ((cu->drawflag & CU_HIDE_NORMALS) != 0))) {
+			return false;
+		}
+	}
+
 	if (cache->is_dirty == false) {
 		return true;
 	}
@@ -330,12 +339,6 @@ static bool curve_batch_cache_valid(Curve *cu)
 		if (cache->is_editmode) {
 			return false;
 		}
-		else if ((cache->hide_handles != ((cu->drawflag & CU_HIDE_HANDLES) != 0))) {
-			return false;
-		}
-		else if ((cache->hide_normals != ((cu->drawflag & CU_HIDE_NORMALS) != 0))) {
-			return false;
-		}
 	}
 
 	return true;
@@ -352,8 +355,8 @@ static void curve_batch_cache_init(Curve *cu)
 		memset(cache, 0, sizeof(*cache));
 	}
 
-	cache->hide_handles = (cu->flag & CU_HIDE_HANDLES) != 0;
-	cache->hide_normals = (cu->flag & CU_HIDE_NORMALS) != 0;
+	cache->hide_handles = (cu->drawflag & CU_HIDE_HANDLES) != 0;
+	cache->hide_normals = (cu->drawflag & CU_HIDE_NORMALS) != 0;
 
 #if 0
 	ListBase *nurbs;
@@ -408,8 +411,10 @@ void BKE_curve_batch_cache_clear(Curve *cu)
 	BATCH_DISCARD_ALL_SAFE(cache->overlay.edges);
 
 	if (cache->wire.batch) {
-		/* Also handles: 'cache->wire.verts', 'cache->wire.edges', 'cache->wire.elem' */
 		BATCH_DISCARD_ALL_SAFE(cache->wire.batch);
+		cache->wire.verts = NULL;
+		cache->wire.edges = NULL;
+		cache->wire.elem = NULL;
 	}
 	else {
 		VERTEXBUFFER_DISCARD_SAFE(cache->wire.verts);
@@ -419,6 +424,9 @@ void BKE_curve_batch_cache_clear(Curve *cu)
 
 	if (cache->normal.batch) {
 		BATCH_DISCARD_ALL_SAFE(cache->normal.batch);
+		cache->normal.verts = NULL;
+		cache->normal.edges = NULL;
+		cache->normal.elem = NULL;
 	}
 	else {
 		VERTEXBUFFER_DISCARD_SAFE(cache->normal.verts);




More information about the Bf-blender-cvs mailing list