[Bf-blender-cvs] [c3e88fdd031] master: Refactor: use new api for write_pointcaches
Jacques Lucke
noreply at git.blender.org
Fri Jun 5 20:55:51 CEST 2020
Commit: c3e88fdd031f8b3bd7a47da5ac86e8960f7d361d
Author: Jacques Lucke
Date: Fri Jun 5 20:40:38 2020 +0200
Branches: master
https://developer.blender.org/rBc3e88fdd031f8b3bd7a47da5ac86e8960f7d361d
Refactor: use new api for write_pointcaches
===================================================================
M source/blender/blenloader/intern/writefile.c
===================================================================
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 0b18ae1cf56..bfe813d122f 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -1405,13 +1405,13 @@ static const char *ptcache_extra_struct[] = {
"",
"ParticleSpring",
};
-static void write_pointcaches(WriteData *wd, ListBase *ptcaches)
+static void write_pointcaches(BlendWriter *writer, ListBase *ptcaches)
{
PointCache *cache = ptcaches->first;
int i;
for (; cache; cache = cache->next) {
- writestruct(wd, DATA, PointCache, 1, cache);
+ BLO_write_struct(writer, PointCache, cache);
if ((cache->flag & PTCACHE_DISK_CACHE) == 0) {
PTCacheMem *pm = cache->mem_cache.first;
@@ -1419,15 +1419,16 @@ static void write_pointcaches(WriteData *wd, ListBase *ptcaches)
for (; pm; pm = pm->next) {
PTCacheExtra *extra = pm->extradata.first;
- writestruct(wd, DATA, PTCacheMem, 1, pm);
+ BLO_write_struct(writer, PTCacheMem, pm);
for (i = 0; i < BPHYS_TOT_DATA; i++) {
if (pm->data[i] && pm->data_types & (1 << i)) {
if (ptcache_data_struct[i][0] == '\0') {
- writedata(wd, DATA, MEM_allocN_len(pm->data[i]), pm->data[i]);
+ BLO_write_raw(writer, MEM_allocN_len(pm->data[i]), pm->data[i]);
}
else {
- writestruct_id(wd, DATA, ptcache_data_struct[i], pm->totpoint, pm->data[i]);
+ BLO_write_struct_array_by_name(
+ writer, ptcache_data_struct[i], pm->totpoint, pm->data[i]);
}
}
}
@@ -1436,8 +1437,9 @@ static void write_pointcaches(WriteData *wd, ListBase *ptcaches)
if (ptcache_extra_struct[extra->type][0] == '\0') {
continue;
}
- writestruct(wd, DATA, PTCacheExtra, 1, extra);
- writestruct_id(wd, DATA, ptcache_extra_struct[extra->type], extra->totdata, extra->data);
+ BLO_write_struct(writer, PTCacheExtra, extra);
+ BLO_write_struct_array_by_name(
+ writer, ptcache_extra_struct[extra->type], extra->totdata, extra->data);
}
}
}
@@ -1506,51 +1508,52 @@ static void write_particlesettings(BlendWriter *writer,
}
}
-static void write_particlesystems(WriteData *wd, ListBase *particles)
+static void write_particlesystems(BlendWriter *writer, ListBase *particles)
{
ParticleSystem *psys = particles->first;
ParticleTarget *pt;
int a;
for (; psys; psys = psys->next) {
- writestruct(wd, DATA, ParticleSystem, 1, psys);
+ BLO_write_struct(writer, ParticleSystem, psys);
if (psys->particles) {
- writestruct(wd, DATA, ParticleData, psys->totpart, psys->particles);
+ BLO_write_struct_array(writer, ParticleData, psys->totpart, psys->particles);
if (psys->particles->hair) {
ParticleData *pa = psys->particles;
for (a = 0; a < psys->totpart; a++, pa++) {
- writestruct(wd, DATA, HairKey, pa->totkey, pa->hair);
+ BLO_write_struct_array(writer, HairKey, pa->totkey, pa->hair);
}
}
if (psys->particles->boid && (psys->part->phystype == PART_PHYS_BOIDS)) {
- writestruct(wd, DATA, BoidParticle, psys->totpart, psys->particles->boid);
+ BLO_write_struct_array(writer, BoidParticle, psys->totpart, psys->particles->boid);
}
if (psys->part->fluid && (psys->part->phystype == PART_PHYS_FLUID) &&
(psys->part->fluid->flag & SPH_VISCOELASTIC_SPRINGS)) {
- writestruct(wd, DATA, ParticleSpring, psys->tot_fluidsprings, psys->fluid_springs);
+ BLO_write_struct_array(
+ writer, ParticleSpring, psys->tot_fluidsprings, psys->fluid_springs);
}
}
pt = psys->targets.first;
for (; pt; pt = pt->next) {
- writestruct(wd, DATA, ParticleTarget, 1, pt);
+ BLO_write_struct(writer, ParticleTarget, pt);
}
if (psys->child) {
- writestruct(wd, DATA, ChildParticle, psys->totchild, psys->child);
+ BLO_write_struct_array(writer, ChildParticle, psys->totchild, psys->child);
}
if (psys->clmd) {
- writestruct(wd, DATA, ClothModifierData, 1, psys->clmd);
- writestruct(wd, DATA, ClothSimSettings, 1, psys->clmd->sim_parms);
- writestruct(wd, DATA, ClothCollSettings, 1, psys->clmd->coll_parms);
+ BLO_write_struct(writer, ClothModifierData, psys->clmd);
+ BLO_write_struct(writer, ClothSimSettings, psys->clmd->sim_parms);
+ BLO_write_struct(writer, ClothCollSettings, psys->clmd->coll_parms);
}
- write_pointcaches(wd, &psys->ptcaches);
+ write_pointcaches(writer, &psys->ptcaches);
}
}
@@ -1718,7 +1721,7 @@ static void write_modifiers(BlendWriter *writer, ListBase *modbase)
BLO_write_struct(writer, ClothSimSettings, clmd->sim_parms);
BLO_write_struct(writer, ClothCollSettings, clmd->coll_parms);
BLO_write_struct(writer, EffectorWeights, clmd->sim_parms->effector_weights);
- write_pointcaches(writer->wd, &clmd->ptcaches);
+ write_pointcaches(writer, &clmd->ptcaches);
}
else if (md->type == eModifierType_Fluid) {
FluidModifierData *mmd = (FluidModifierData *)md;
@@ -1727,14 +1730,14 @@ static void write_modifiers(BlendWriter *writer, ListBase *modbase)
BLO_write_struct(writer, FluidDomainSettings, mmd->domain);
if (mmd->domain) {
- write_pointcaches(writer->wd, &(mmd->domain->ptcaches[0]));
+ write_pointcaches(writer, &(mmd->domain->ptcaches[0]));
/* create fake pointcache so that old blender versions can read it */
mmd->domain->point_cache[1] = BKE_ptcache_add(&mmd->domain->ptcaches[1]);
mmd->domain->point_cache[1]->flag |= PTCACHE_DISK_CACHE | PTCACHE_FAKE_SMOKE;
mmd->domain->point_cache[1]->step = 1;
- write_pointcaches(writer->wd, &(mmd->domain->ptcaches[1]));
+ write_pointcaches(writer, &(mmd->domain->ptcaches[1]));
if (mmd->domain->coba) {
BLO_write_struct(writer, ColorBand, mmd->domain->coba);
@@ -1772,7 +1775,7 @@ static void write_modifiers(BlendWriter *writer, ListBase *modbase)
}
/* write caches and effector weights */
for (surface = pmd->canvas->surfaces.first; surface; surface = surface->next) {
- write_pointcaches(writer->wd, &(surface->ptcaches));
+ write_pointcaches(writer, &(surface->ptcaches));
BLO_write_struct(writer, EffectorWeights, surface->effector_weights);
}
@@ -1990,7 +1993,7 @@ static void write_object(BlendWriter *writer, Object *ob, const void *id_address
ob->soft->ptcaches = ob->soft->shared->ptcaches;
BLO_write_struct(writer, SoftBody, ob->soft);
BLO_write_struct(writer, SoftBody_Shared, ob->soft->shared);
- write_pointcaches(writer->wd, &(ob->soft->shared->ptcaches));
+ write_pointcaches(writer, &(ob->soft->shared->ptcaches));
BLO_write_struct(writer, EffectorWeights, ob->soft->effector_weights);
}
@@ -2006,7 +2009,7 @@ static void write_object(BlendWriter *writer, Object *ob, const void *id_address
BLO_write_struct(writer, ImageUser, ob->iuser);
}
- write_particlesystems(writer->wd, &ob->particlesystem);
+ write_particlesystems(writer, &ob->particlesystem);
write_modifiers(writer, &ob->modifiers);
write_gpencil_modifiers(writer, &ob->greasepencil_modifiers);
write_shaderfxs(writer->wd, &ob->shader_fx);
@@ -2837,7 +2840,7 @@ static void write_scene(BlendWriter *writer, Scene *sce, const void *id_address)
BLO_write_struct(writer, RigidBodyWorld_Shared, sce->rigidbody_world->shared);
BLO_write_struct(writer, EffectorWeights, sce->rigidbody_world->effector_weights);
- write_pointcaches(writer->wd, &(sce->rigidbody_world->shared->ptcaches));
+ write_pointcaches(writer, &(sce->rigidbody_world->shared->ptcaches));
}
write_previews(writer, sce->preview);
More information about the Bf-blender-cvs
mailing list