[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22454] branches/blender2.5/blender/source /blender/blenkernel: Proper copy code for multiple point caches.
Janne Karhu
jhkarh at utu.fi
Fri Aug 14 18:26:01 CEST 2009
Revision: 22454
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22454
Author: jhk
Date: 2009-08-14 18:25:59 +0200 (Fri, 14 Aug 2009)
Log Message:
-----------
Proper copy code for multiple point caches.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h
branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c
branches/blender2.5/blender/source/blender/blenkernel/intern/object.c
branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c
Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h 2009-08-14 15:47:32 UTC (rev 22453)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h 2009-08-14 16:25:59 UTC (rev 22454)
@@ -192,7 +192,7 @@
void BKE_ptache_free_mem(struct PointCache *cache);
void BKE_ptcache_free(struct PointCache *cache);
void BKE_ptcache_free_list(struct ListBase *ptcaches);
-struct PointCache *BKE_ptcache_copy(struct PointCache *cache);
+struct PointCache *BKE_ptcache_copy_list(struct ListBase *ptcaches_new, struct ListBase *ptcaches_old);
/********************** Baking *********************/
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c 2009-08-14 15:47:32 UTC (rev 22453)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c 2009-08-14 16:25:59 UTC (rev 22454)
@@ -5978,7 +5978,7 @@
tclmd->sim_parms = MEM_dupallocN(clmd->sim_parms);
tclmd->coll_parms = MEM_dupallocN(clmd->coll_parms);
- tclmd->point_cache = BKE_ptcache_copy(clmd->point_cache);
+ tclmd->point_cache = BKE_ptcache_copy_list(&tclmd->ptcaches, &clmd->ptcaches);
tclmd->clothObject = NULL;
}
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/object.c 2009-08-14 15:47:32 UTC (rev 22453)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/object.c 2009-08-14 16:25:59 UTC (rev 22454)
@@ -1026,7 +1026,7 @@
sbn->scratch= NULL;
- sbn->pointcache= BKE_ptcache_copy(sb->pointcache);
+ sbn->pointcache= BKE_ptcache_copy_list(&sbn->ptcaches, &sb->ptcaches);
return sbn;
}
@@ -1085,7 +1085,7 @@
psysn->reactevents.first = psysn->reactevents.last = NULL;
psysn->renderdata = NULL;
- psysn->pointcache= BKE_ptcache_copy(psys->pointcache);
+ psysn->pointcache= BKE_ptcache_copy_list(&psysn->ptcaches, &psys->ptcaches);
id_us_plus((ID *)psysn->part);
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c 2009-08-14 15:47:32 UTC (rev 22453)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c 2009-08-14 16:25:59 UTC (rev 22454)
@@ -1630,7 +1630,7 @@
BLI_freelistN(ptcaches);
}
-PointCache *BKE_ptcache_copy(PointCache *cache)
+static PointCache *ptcache_copy(PointCache *cache)
{
PointCache *ncache;
@@ -1645,9 +1645,20 @@
return ncache;
}
+/* returns first point cache */
+PointCache *BKE_ptcache_copy_list(ListBase *ptcaches_new, ListBase *ptcaches_old)
+{
+ PointCache *cache = ptcaches_old->first;
+ ptcaches_new->first = ptcaches_new->last = NULL;
+ for(; cache; cache=cache->next)
+ BLI_addtail(ptcaches_new, ptcache_copy(cache));
+ return ptcaches_new->first;
+}
+
+
/* Baking */
static int count_quick_cache(Scene *scene, int *quick_step)
{
More information about the Bf-blender-cvs
mailing list