[Bf-blender-cvs] [9bb70e59b89] blender2.8: Curve Batch Cache: Fix issue with cd_used

Clément Foucault noreply at git.blender.org
Mon Dec 17 17:16:57 CET 2018


Commit: 9bb70e59b89423070c065f6b120b563bad47113b
Author: Clément Foucault
Date:   Sun Dec 16 15:46:14 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB9bb70e59b89423070c065f6b120b563bad47113b

Curve Batch Cache: Fix issue with cd_used

cd_used needs to be the combination of generated data.

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

M	source/blender/draw/intern/draw_cache_impl_curve.c

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

diff --git a/source/blender/draw/intern/draw_cache_impl_curve.c b/source/blender/draw/intern/draw_cache_impl_curve.c
index f8508a54661..ecdbdcf094f 100644
--- a/source/blender/draw/intern/draw_cache_impl_curve.c
+++ b/source/blender/draw/intern/draw_cache_impl_curve.c
@@ -909,7 +909,10 @@ void DRW_curve_batch_cache_create_requested(Object *ob)
 			memset(cache->surf_per_mat[i], 0, sizeof(*cache->surf_per_mat[i]));
 		}
 	}
-	cache->cd_used = cache->cd_needed;
+	if ((cache->cd_used & cache->cd_needed) != cache->cd_needed) {
+		cache->cd_used |= cache->cd_needed;
+		cache->cd_needed = 0;
+	}
 
 	/* Init batches and request VBOs & IBOs */
 	if (DRW_batch_requested(cache->batch.surfaces, GPU_PRIM_TRIS)) {
@@ -1021,14 +1024,14 @@ void DRW_curve_batch_cache_create_requested(Object *ob)
 		curve_create_edit_curves_nor(rdata, cache->edit.curves_nor);
 	}
 
+	curve_render_data_free(rdata);
+
 #ifdef DEBUG
 	/* Make sure all requested batches have been setup. */
 	for (int i = 0; i < sizeof(cache->batch) / sizeof(void *); ++i) {
 		BLI_assert(!DRW_batch_requested(((GPUBatch **)&cache->batch)[i], 0));
 	}
 #endif
-
-	curve_render_data_free(rdata);
 }
 
 /** \} */



More information about the Bf-blender-cvs mailing list