[Bf-blender-cvs] [1c6414dd1bc] blender2.8: Draw manager: Get number of cached segments from edit

Sergey Sharybin noreply at git.blender.org
Fri May 11 12:49:32 CEST 2018


Commit: 1c6414dd1bc27a18e7ef3a5393cb88e6d845ac0d
Author: Sergey Sharybin
Date:   Fri May 11 10:33:08 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB1c6414dd1bc27a18e7ef3a5393cb88e6d845ac0d

Draw manager: Get number of cached segments from edit

This way we know it's in sync with edit mode.

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

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

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

diff --git a/source/blender/draw/intern/draw_cache_impl_particles.c b/source/blender/draw/intern/draw_cache_impl_particles.c
index 017ffabab7a..82c4eb9cb4e 100644
--- a/source/blender/draw/intern/draw_cache_impl_particles.c
+++ b/source/blender/draw/intern/draw_cache_impl_particles.c
@@ -190,7 +190,7 @@ static void ensure_seg_pt_count(ParticleSystem *psys, ParticleBatchCache *cache)
 
 		PTCacheEdit *edit = PE_get_current_from_psys(psys);
 		if (edit != NULL && edit->pathcache != NULL) {
-			count_cache_segment_keys(edit->pathcache, psys->totpart, cache);
+			count_cache_segment_keys(edit->pathcache, edit->totcached, cache);
 		}
 		else {
 			if (psys->pathcache &&
@@ -325,6 +325,7 @@ static int particle_batch_cache_fill_segments(
 	const bool is_simple = (psys->part->childtype == PART_CHILD_PARTICLES);
 	const bool is_child = (particle_source == PARTICLE_SOURCE_CHILDREN);
 	if (is_simple && *r_parent_uvs == NULL) {
+		/* TODO(sergey): For edit mode it should be edit->totcached. */
 		*r_parent_uvs = MEM_callocN(sizeof(*r_parent_uvs) * psys->totpart,
 		                            "Parent particle UVs");
 	}
@@ -456,7 +457,7 @@ static void particle_batch_cache_ensure_pos_and_seg(ParticleSystem *psys,
 	if (edit != NULL && edit->pathcache != NULL) {
 		curr_point = particle_batch_cache_fill_segments(
 		        psys, psmd, edit->pathcache, PARTICLE_SOURCE_PARENT,
-		        0, 0, psys->totpart,
+		        0, 0, edit->totcached,
 		        num_uv_layers, mtfaces, uv_id, &parent_uvs,
 		        &elb, &attr_id, cache);
 	}
@@ -481,6 +482,7 @@ static void particle_batch_cache_ensure_pos_and_seg(ParticleSystem *psys,
 	}
 	/* Cleanup. */
 	if (parent_uvs != NULL) {
+		/* TODO(sergey): For edit mode it should be edit->totcached. */
 		for (int i = 0; i < psys->totpart; i++) {
 			MEM_SAFE_FREE(parent_uvs[i]);
 		}



More information about the Bf-blender-cvs mailing list