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:
authorCampbell Barton <ideasman42@gmail.com>2017-04-19 22:55:48 +0300
committerCampbell Barton <ideasman42@gmail.com>2017-04-19 22:55:48 +0300
commita738e985c6d3b5d3803aa3dc5c48b0bd0e4cfa8a (patch)
treeda554188229933bf2a5d5863e69e8c0479b72372 /source/blender/blenkernel
parent72efee07ff837ca4651e25b63c0029b81e2d61b1 (diff)
Fix update drawing curve editmode
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/intern/curve_render.c26
1 files changed, 17 insertions, 9 deletions
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);