Curve Batch Cache: Fix issue with cd_used

cd_used needs to be the combination of generated data.
This commit is contained in:
Clément Foucault 2018-12-16 15:46:14 +01:00
parent 36cc42e796
commit 9bb70e59b8
1 changed files with 6 additions and 3 deletions

View File

@ -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);
}
/** \} */